diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 0000000..61ea2f5
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,106 @@
+name: CI
+
+on:
+ push:
+ branches: [ master, "upgrade/**" ]
+ pull_request:
+ branches: [ master ]
+
+jobs:
+ phpunit:
+ name: PHPUnit (PHP ${{ matrix.php }})
+ runs-on: ubuntu-latest
+
+ strategy:
+ fail-fast: false
+ matrix:
+ php: ['8.2', '8.3']
+
+ services:
+ mysql:
+ image: mysql:8.0
+ env:
+ MYSQL_ROOT_PASSWORD: secret
+ MYSQL_DATABASE: absensi_testing
+ ports:
+ - 3306:3306
+ options: >-
+ --health-cmd="mysqladmin ping -h 127.0.0.1 -u root --password=secret"
+ --health-interval=10s
+ --health-timeout=5s
+ --health-retries=10
+
+ env:
+ DB_CONNECTION: mysql
+ DB_HOST: 127.0.0.1
+ DB_PORT: 3306
+ DB_DATABASE: absensi_testing
+ DB_USERNAME: root
+ DB_PASSWORD: secret
+
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Setup PHP
+ uses: shivammathur/setup-php@v2
+ with:
+ php-version: ${{ matrix.php }}
+ extensions: mbstring, pdo_mysql, bcmath, gd, zip, intl, exif
+ coverage: none
+ tools: composer:v2
+
+ - name: Cache Composer packages
+ uses: actions/cache@v4
+ with:
+ path: vendor
+ key: composer-${{ matrix.php }}-${{ hashFiles('composer.lock') }}
+ restore-keys: composer-${{ matrix.php }}-
+
+ - name: Install dependencies
+ run: composer install --no-interaction --prefer-dist --no-progress
+
+ - name: Setup Node
+ uses: actions/setup-node@v4
+ with:
+ node-version: '20'
+ cache: 'npm'
+
+ - name: Build frontend assets (Vite)
+ # Test yang me-render view butuh public/build/manifest.json.
+ run: |
+ npm ci
+ npm run build
+
+ - name: Install PyMuPDF (CV extraction)
+ # CvExtractionService memakai python3 + pymupdf untuk baca teks PDF.
+ run: pip install --quiet pymupdf
+
+ - name: Prepare environment
+ run: |
+ cp .env.example .env
+ php artisan key:generate
+ # phpunit.xml hanya override DB_DATABASE; host/port/user/password diambil
+ # dari .env — set eksplisit agar cocok dengan MySQL service di atas.
+ sed -i 's/^DB_HOST=.*/DB_HOST=127.0.0.1/' .env
+ sed -i 's/^DB_PORT=.*/DB_PORT=3306/' .env
+ sed -i 's/^DB_DATABASE=.*/DB_DATABASE=absensi_testing/' .env
+ sed -i 's/^DB_USERNAME=.*/DB_USERNAME=root/' .env
+ sed -i 's/^DB_PASSWORD=.*/DB_PASSWORD=secret/' .env
+
+ - name: Wait for MySQL
+ run: |
+ for i in $(seq 1 30); do
+ if mysqladmin ping -h 127.0.0.1 -u root --password=secret --silent; then
+ echo "MySQL is up"; break
+ fi
+ echo "waiting for mysql... ($i)"; sleep 2
+ done
+
+ - name: Run migrations
+ run: php artisan migrate --force --database=mysql
+ env:
+ DB_DATABASE: absensi_testing
+
+ - name: Run PHPUnit
+ # artisan test OOM di app ini (render menu) — pakai phpunit langsung + flag memory.
+ run: php -d memory_limit=2G -d xdebug.mode=off vendor/bin/phpunit --no-coverage
diff --git a/README.md b/README.md
index 158a5a9..adad47e 100644
--- a/README.md
+++ b/README.md
@@ -6,10 +6,11 @@
-
-
+
+
+
@@ -25,7 +26,7 @@ Cocok sebagai **aplikasi absensi karyawan**, **software payroll Indonesia**, dan
**sistem HR** untuk UMKM hingga perusahaan multi-cabang — self-hosted, open source,
tanpa biaya lisensi per pengguna.
-Dibangun dengan Laravel 10 dan Backpack CRUD 6 (edisi gratis) di atas MySQL 8.
+Dibangun dengan Laravel 12 dan Backpack CRUD 6 (edisi gratis) di atas MySQL 8.
**Dokumentasi:** [Panduan Pengguna](docs/PANDUAN-PENGGUNA.md) ·
[Panduan Developer](docs/PANDUAN-DEVELOPER.md)
@@ -99,7 +100,7 @@ data.
| Docker | untuk MySQL 8 |
| Node.js | 18+ — hanya bila menjalankan pengujian browser |
-Ekstensi PHP yang dibutuhkan mengikuti kebutuhan standar Laravel 10, ditambah
+Ekstensi PHP yang dibutuhkan mengikuti kebutuhan standar Laravel 12, ditambah
`gd` untuk pembuatan QR dan kartu karyawan.
---
diff --git a/composer.json b/composer.json
index 320fa82..c6cb378 100644
--- a/composer.json
+++ b/composer.json
@@ -5,33 +5,33 @@
"keywords": ["laravel", "framework"],
"license": "MIT",
"require": {
- "php": "^8.1",
- "backpack/basset": "^1.2",
- "backpack/crud": "^6.5",
+ "php": "^8.2",
+ "backpack/basset": "^1.3",
+ "backpack/crud": "^6.8",
"backpack/theme-tabler": "^1.2",
- "barryvdh/laravel-dompdf": "^2.0",
+ "barryvdh/laravel-dompdf": "^3.0",
"guzzlehttp/guzzle": "^7.2",
- "laravel/framework": "^10.10",
- "laravel/sanctum": "^3.3",
- "laravel/tinker": "^2.8",
+ "laravel/framework": "^12.0",
+ "laravel/sanctum": "^4.0",
+ "laravel/tinker": "^2.9",
"league/flysystem-aws-s3-v3": "^3.0",
"league/flysystem-webdav": "^3.0",
"maatwebsite/excel": "^3.1",
"masbug/flysystem-google-drive-ext": "^2.0",
"opcodesio/log-viewer": "^3.1",
"simplesoftwareio/simple-qrcode": "^4.2",
- "spatie/laravel-backup": "^8.5",
+ "spatie/laravel-backup": "^9.0",
"spatie/laravel-permission": "^6.25"
},
"require-dev": {
"backpack/generators": "^4.0",
"fakerphp/faker": "^1.9.1",
"laravel/pint": "^1.0",
- "laravel/sail": "^1.18",
- "mockery/mockery": "^1.4.4",
- "nunomaduro/collision": "^7.0",
- "phpunit/phpunit": "^10.1",
- "spatie/laravel-ignition": "^2.0"
+ "laravel/sail": "^1.26",
+ "mockery/mockery": "^1.6",
+ "nunomaduro/collision": "^8.8",
+ "phpunit/phpunit": "^11.0",
+ "spatie/laravel-ignition": "^2.4"
},
"autoload": {
"psr-4": {
diff --git a/composer.lock b/composer.lock
index 8a1a046..4a691ce 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": "f8c204abe7f27db9fd243eff3a4d8774",
+ "content-hash": "132e26066578ea9c705aba0a2ec1e634",
"packages": [
{
"name": "aws/aws-crt-php",
@@ -62,16 +62,16 @@
},
{
"name": "aws/aws-sdk-php",
- "version": "3.388.13",
+ "version": "3.394.1",
"source": {
"type": "git",
"url": "https://github.com/aws/aws-sdk-php.git",
- "reference": "45b9e9814f42cdeceb046434d068c9e77fd2a530"
+ "reference": "577edcbe852e463a1a52c269917303f850359e4e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/45b9e9814f42cdeceb046434d068c9e77fd2a530",
- "reference": "45b9e9814f42cdeceb046434d068c9e77fd2a530",
+ "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/577edcbe852e463a1a52c269917303f850359e4e",
+ "reference": "577edcbe852e463a1a52c269917303f850359e4e",
"shasum": ""
},
"require": {
@@ -79,9 +79,9 @@
"ext-json": "*",
"ext-pcre": "*",
"ext-simplexml": "*",
- "guzzlehttp/guzzle": "^7.4.5",
- "guzzlehttp/promises": "^2.0",
- "guzzlehttp/psr7": "^2.4.5",
+ "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.1",
"psr/http-message": "^1.0 || ^2.0",
@@ -153,35 +153,35 @@
"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.388.13"
+ "source": "https://github.com/aws/aws-sdk-php/tree/3.394.1"
},
- "time": "2026-07-23T18:06:54+00:00"
+ "time": "2026-08-26T18:32:55+00:00"
},
{
"name": "backpack/basset",
- "version": "1.2.2",
+ "version": "1.3.10",
"source": {
"type": "git",
"url": "https://github.com/Laravel-Backpack/basset.git",
- "reference": "224e9ed08bf0fa0b96397f163fb1c2301dde8cc9"
+ "reference": "fe0c3ef47ec651663c610e6d8e8aef9bf783dc7d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Laravel-Backpack/basset/zipball/224e9ed08bf0fa0b96397f163fb1c2301dde8cc9",
- "reference": "224e9ed08bf0fa0b96397f163fb1c2301dde8cc9",
+ "url": "https://api.github.com/repos/Laravel-Backpack/basset/zipball/fe0c3ef47ec651663c610e6d8e8aef9bf783dc7d",
+ "reference": "fe0c3ef47ec651663c610e6d8e8aef9bf783dc7d",
"shasum": ""
},
"require": {
"guzzlehttp/guzzle": "^7.5",
- "laravel/framework": "^10.15"
+ "laravel/framework": "^10.15|^11|^12.0"
},
"require-dev": {
- "nunomaduro/collision": "^6.0|^7.2",
- "orchestra/testbench": "^7.22|^8.5",
- "pestphp/pest": "^1.22|^2.5",
- "pestphp/pest-plugin-laravel": "^1.4|^2.0",
- "phpstan/phpstan": "^1.10",
- "phpunit/phpunit": "~9.0|~10.0"
+ "nunomaduro/collision": "^6.0|^7.2|^8.0",
+ "orchestra/testbench": "^7.22|^8.5|^9.0|^10.0",
+ "pestphp/pest": "^1.22|^2.5|^3.7",
+ "pestphp/pest-plugin-laravel": "^1.4|^2.0|^3.1",
+ "phpstan/phpstan": "^1.10|^2.1",
+ "phpunit/phpunit": "~9.0|~10.0|^11.5.3"
},
"suggest": {
"ext-zip": "Required to use @bassetArchive with .zip archives."
@@ -189,12 +189,12 @@
"type": "library",
"extra": {
"laravel": {
- "providers": [
- "Backpack\\Basset\\BassetServiceProvider"
- ],
"aliases": {
"Basset": "Backpack\\Basset\\Facades\\Basset"
- }
+ },
+ "providers": [
+ "Backpack\\Basset\\BassetServiceProvider"
+ ]
}
},
"autoload": {
@@ -227,36 +227,35 @@
],
"support": {
"issues": "https://github.com/Laravel-Backpack/basset/issues",
- "source": "https://github.com/Laravel-Backpack/basset/tree/1.2.2"
+ "source": "https://github.com/Laravel-Backpack/basset/tree/1.3.10"
},
- "time": "2023-11-21T09:04:24+00:00"
+ "time": "2026-03-17T15:22:50+00:00"
},
{
"name": "backpack/crud",
- "version": "6.5.1",
+ "version": "6.8.16",
"source": {
"type": "git",
"url": "https://github.com/Laravel-Backpack/CRUD.git",
- "reference": "1afa91a4b6b7f024c3b8d04b79e965b134f39405"
+ "reference": "5c00a831135ecd4e1601cf5463fa70bb0c724081"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Laravel-Backpack/CRUD/zipball/1afa91a4b6b7f024c3b8d04b79e965b134f39405",
- "reference": "1afa91a4b6b7f024c3b8d04b79e965b134f39405",
+ "url": "https://api.github.com/repos/Laravel-Backpack/CRUD/zipball/5c00a831135ecd4e1601cf5463fa70bb0c724081",
+ "reference": "5c00a831135ecd4e1601cf5463fa70bb0c724081",
"shasum": ""
},
"require": {
- "backpack/basset": "^1.1.1",
- "creativeorange/gravatar": "~1.0",
- "doctrine/dbal": "^3.0",
+ "backpack/basset": "^1.1.1|^1.3.2",
+ "creativeorange/gravatar": "^1.0",
+ "doctrine/dbal": "^3.0|^4.0",
"guzzlehttp/guzzle": "^7.0",
- "laravel/framework": "^10.0",
+ "laravel/framework": "^10.0|^11.0|^12",
"prologue/alerts": "^1.0"
},
"require-dev": {
- "orchestra/testbench": "^8.0",
- "phpunit/phpunit": "~10.0|~9.0",
- "scrutinizer/ocular": "~1.7",
+ "orchestra/testbench": "^8.0|^9.0|^10.0",
+ "phpunit/phpunit": "^10.0|^9.0|^11.0",
"spatie/laravel-translatable": "^6.0"
},
"suggest": {
@@ -266,17 +265,14 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-master": "4.0-dev"
- },
"laravel": {
- "providers": [
- "Backpack\\CRUD\\BackpackServiceProvider"
- ],
"aliases": {
"CRUD": "Backpack\\CRUD\\app\\Library\\CrudPanel\\CrudPanelFacade",
"Widget": "Backpack\\CRUD\\app\\Library\\Widget"
- }
+ },
+ "providers": [
+ "Backpack\\CRUD\\BackpackServiceProvider"
+ ]
}
},
"autoload": {
@@ -322,22 +318,22 @@
],
"support": {
"issues": "https://github.com/Laravel-Backpack/CRUD/issues",
- "source": "https://github.com/Laravel-Backpack/CRUD/tree/6.5.1"
+ "source": "https://github.com/Laravel-Backpack/CRUD/tree/6.8.16"
},
- "time": "2023-12-30T11:36:37+00:00"
+ "time": "2026-06-17T12:25:12+00:00"
},
{
"name": "backpack/theme-tabler",
- "version": "1.2.0",
+ "version": "1.2.19",
"source": {
"type": "git",
"url": "https://github.com/Laravel-Backpack/theme-tabler.git",
- "reference": "03c37fb1f39624a1106c0f9a106cb758628ab1db"
+ "reference": "194e16138d446e224fb8fc9b231c5bbdd03d52cf"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Laravel-Backpack/theme-tabler/zipball/03c37fb1f39624a1106c0f9a106cb758628ab1db",
- "reference": "03c37fb1f39624a1106c0f9a106cb758628ab1db",
+ "url": "https://api.github.com/repos/Laravel-Backpack/theme-tabler/zipball/194e16138d446e224fb8fc9b231c5bbdd03d52cf",
+ "reference": "194e16138d446e224fb8fc9b231c5bbdd03d52cf",
"shasum": ""
},
"require": {
@@ -349,13 +345,13 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.0.x-dev"
- },
"laravel": {
"providers": [
"Backpack\\ThemeTabler\\AddonServiceProvider"
]
+ },
+ "branch-alias": {
+ "dev-main": "1.0.x-dev"
}
},
"autoload": {
@@ -395,9 +391,9 @@
],
"support": {
"issues": "https://github.com/Laravel-Backpack/theme-tabler/issues",
- "source": "https://github.com/Laravel-Backpack/theme-tabler/tree/1.2.0"
+ "source": "https://github.com/Laravel-Backpack/theme-tabler/tree/1.2.19"
},
- "time": "2023-12-30T02:42:47+00:00"
+ "time": "2026-05-18T13:52:37+00:00"
},
{
"name": "bacon/bacon-qr-code",
@@ -455,42 +451,42 @@
},
{
"name": "barryvdh/laravel-dompdf",
- "version": "v2.0.1",
+ "version": "v3.1.2",
"source": {
"type": "git",
"url": "https://github.com/barryvdh/laravel-dompdf.git",
- "reference": "9843d2be423670fb434f4c978b3c0f4dd92c87a6"
+ "reference": "ee3b72b19ccdf57d0243116ecb2b90261344dedc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/barryvdh/laravel-dompdf/zipball/9843d2be423670fb434f4c978b3c0f4dd92c87a6",
- "reference": "9843d2be423670fb434f4c978b3c0f4dd92c87a6",
+ "url": "https://api.github.com/repos/barryvdh/laravel-dompdf/zipball/ee3b72b19ccdf57d0243116ecb2b90261344dedc",
+ "reference": "ee3b72b19ccdf57d0243116ecb2b90261344dedc",
"shasum": ""
},
"require": {
- "dompdf/dompdf": "^2.0.1",
- "illuminate/support": "^6|^7|^8|^9|^10",
- "php": "^7.2 || ^8.0"
+ "dompdf/dompdf": "^3.0",
+ "illuminate/support": "^9|^10|^11|^12|^13.0",
+ "php": "^8.1"
},
"require-dev": {
- "nunomaduro/larastan": "^1|^2",
- "orchestra/testbench": "^4|^5|^6|^7|^8",
- "phpro/grumphp": "^1",
+ "larastan/larastan": "^2.7|^3.0",
+ "orchestra/testbench": "^7|^8|^9.16|^10|^11.0",
+ "phpro/grumphp": "^2.5",
"squizlabs/php_codesniffer": "^3.5"
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-master": "2.0-dev"
- },
"laravel": {
+ "aliases": {
+ "PDF": "Barryvdh\\DomPDF\\Facade\\Pdf",
+ "Pdf": "Barryvdh\\DomPDF\\Facade\\Pdf"
+ },
"providers": [
"Barryvdh\\DomPDF\\ServiceProvider"
- ],
- "aliases": {
- "Pdf": "Barryvdh\\DomPDF\\Facade\\Pdf",
- "PDF": "Barryvdh\\DomPDF\\Facade\\Pdf"
- }
+ ]
+ },
+ "branch-alias": {
+ "dev-master": "3.0-dev"
}
},
"autoload": {
@@ -516,7 +512,7 @@
],
"support": {
"issues": "https://github.com/barryvdh/laravel-dompdf/issues",
- "source": "https://github.com/barryvdh/laravel-dompdf/tree/v2.0.1"
+ "source": "https://github.com/barryvdh/laravel-dompdf/tree/v3.1.2"
},
"funding": [
{
@@ -528,29 +524,29 @@
"type": "github"
}
],
- "time": "2023-01-12T15:12:49+00:00"
+ "time": "2026-02-21T08:51:10+00:00"
},
{
"name": "brick/math",
- "version": "0.11.0",
+ "version": "0.14.8",
"source": {
"type": "git",
"url": "https://github.com/brick/math.git",
- "reference": "0ad82ce168c82ba30d1c01ec86116ab52f589478"
+ "reference": "63422359a44b7f06cae63c3b429b59e8efcc0629"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/brick/math/zipball/0ad82ce168c82ba30d1c01ec86116ab52f589478",
- "reference": "0ad82ce168c82ba30d1c01ec86116ab52f589478",
+ "url": "https://api.github.com/repos/brick/math/zipball/63422359a44b7f06cae63c3b429b59e8efcc0629",
+ "reference": "63422359a44b7f06cae63c3b429b59e8efcc0629",
"shasum": ""
},
"require": {
- "php": "^8.0"
+ "php": "^8.2"
},
"require-dev": {
"php-coveralls/php-coveralls": "^2.2",
- "phpunit/phpunit": "^9.0",
- "vimeo/psalm": "5.0.0"
+ "phpstan/phpstan": "2.1.22",
+ "phpunit/phpunit": "^11.5"
},
"type": "library",
"autoload": {
@@ -570,12 +566,17 @@
"arithmetic",
"bigdecimal",
"bignum",
+ "bignumber",
"brick",
- "math"
+ "decimal",
+ "integer",
+ "math",
+ "mathematics",
+ "rational"
],
"support": {
"issues": "https://github.com/brick/math/issues",
- "source": "https://github.com/brick/math/tree/0.11.0"
+ "source": "https://github.com/brick/math/tree/0.14.8"
},
"funding": [
{
@@ -583,30 +584,30 @@
"type": "github"
}
],
- "time": "2023-01-15T23:15:59+00:00"
+ "time": "2026-02-10T14:33:43+00:00"
},
{
"name": "carbonphp/carbon-doctrine-types",
- "version": "2.1.0",
+ "version": "3.2.0",
"source": {
"type": "git",
"url": "https://github.com/CarbonPHP/carbon-doctrine-types.git",
- "reference": "99f76ffa36cce3b70a4a6abce41dba15ca2e84cb"
+ "reference": "18ba5ddfec8976260ead6e866180bd5d2f71aa1d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/CarbonPHP/carbon-doctrine-types/zipball/99f76ffa36cce3b70a4a6abce41dba15ca2e84cb",
- "reference": "99f76ffa36cce3b70a4a6abce41dba15ca2e84cb",
+ "url": "https://api.github.com/repos/CarbonPHP/carbon-doctrine-types/zipball/18ba5ddfec8976260ead6e866180bd5d2f71aa1d",
+ "reference": "18ba5ddfec8976260ead6e866180bd5d2f71aa1d",
"shasum": ""
},
"require": {
- "php": "^7.4 || ^8.0"
+ "php": "^8.1"
},
"conflict": {
- "doctrine/dbal": "<3.7.0 || >=4.0.0"
+ "doctrine/dbal": "<4.0.0 || >=5.0.0"
},
"require-dev": {
- "doctrine/dbal": "^3.7.0",
+ "doctrine/dbal": "^4.0.0",
"nesbot/carbon": "^2.71.0 || ^3.0.0",
"phpunit/phpunit": "^10.3"
},
@@ -636,7 +637,7 @@
],
"support": {
"issues": "https://github.com/CarbonPHP/carbon-doctrine-types/issues",
- "source": "https://github.com/CarbonPHP/carbon-doctrine-types/tree/2.1.0"
+ "source": "https://github.com/CarbonPHP/carbon-doctrine-types/tree/3.2.0"
},
"funding": [
{
@@ -652,28 +653,104 @@
"type": "tidelift"
}
],
- "time": "2023-12-11T17:09:12+00:00"
+ "time": "2024-02-09T16:56:22+00:00"
},
{
- "name": "composer/semver",
+ "name": "composer/pcre",
"version": "3.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer/pcre.git",
+ "reference": "d5a341b3fb61f3001970940afb1d332968a183ed"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/composer/pcre/zipball/d5a341b3fb61f3001970940afb1d332968a183ed",
+ "reference": "d5a341b3fb61f3001970940afb1d332968a183ed",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.4 || ^8.0"
+ },
+ "conflict": {
+ "phpstan/phpstan": "<2.2.2"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^2",
+ "phpstan/phpstan-deprecation-rules": "^2",
+ "phpstan/phpstan-strict-rules": "^2",
+ "phpunit/phpunit": "^9"
+ },
+ "type": "library",
+ "extra": {
+ "phpstan": {
+ "includes": [
+ "extension.neon"
+ ]
+ },
+ "branch-alias": {
+ "dev-main": "3.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Composer\\Pcre\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be",
+ "homepage": "http://seld.be"
+ }
+ ],
+ "description": "PCRE wrapping library that offers type-safe preg_* replacements.",
+ "keywords": [
+ "PCRE",
+ "preg",
+ "regex",
+ "regular expression"
+ ],
+ "support": {
+ "issues": "https://github.com/composer/pcre/issues",
+ "source": "https://github.com/composer/pcre/tree/3.4.0"
+ },
+ "funding": [
+ {
+ "url": "https://packagist.com",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/composer",
+ "type": "github"
+ }
+ ],
+ "time": "2026-06-07T11:47:49+00:00"
+ },
+ {
+ "name": "composer/semver",
+ "version": "3.4.4",
"source": {
"type": "git",
"url": "https://github.com/composer/semver.git",
- "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32"
+ "reference": "198166618906cb2de69b95d7d47e5fa8aa1b2b95"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/composer/semver/zipball/35e8d0af4486141bc745f23a29cc2091eb624a32",
- "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32",
+ "url": "https://api.github.com/repos/composer/semver/zipball/198166618906cb2de69b95d7d47e5fa8aa1b2b95",
+ "reference": "198166618906cb2de69b95d7d47e5fa8aa1b2b95",
"shasum": ""
},
"require": {
"php": "^5.3.2 || ^7.0 || ^8.0"
},
"require-dev": {
- "phpstan/phpstan": "^1.4",
- "symfony/phpunit-bridge": "^4.2 || ^5"
+ "phpstan/phpstan": "^1.11",
+ "symfony/phpunit-bridge": "^3 || ^7"
},
"type": "library",
"extra": {
@@ -717,7 +794,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.0"
+ "source": "https://github.com/composer/semver/tree/3.4.4"
},
"funding": [
{
@@ -727,46 +804,42 @@
{
"url": "https://github.com/composer",
"type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/composer/composer",
- "type": "tidelift"
}
],
- "time": "2023-08-31T09:50:34+00:00"
+ "time": "2025-08-20T19:15:30+00:00"
},
{
"name": "creativeorange/gravatar",
- "version": "v1.0.23",
+ "version": "v1.0.26",
"source": {
"type": "git",
- "url": "https://github.com/creativeorange/gravatar.git",
- "reference": "3a1b227c48091b039b967265ec13c0800c70ac79"
+ "url": "https://github.com/brainpink/gravatar.git",
+ "reference": "3789de373029c8f8b94e0f880e3dc2ac36eac918"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/creativeorange/gravatar/zipball/3a1b227c48091b039b967265ec13c0800c70ac79",
- "reference": "3a1b227c48091b039b967265ec13c0800c70ac79",
+ "url": "https://api.github.com/repos/brainpink/gravatar/zipball/3789de373029c8f8b94e0f880e3dc2ac36eac918",
+ "reference": "3789de373029c8f8b94e0f880e3dc2ac36eac918",
"shasum": ""
},
"require": {
- "illuminate/support": "^5|^6|^7|^8|^9|^10.0",
+ "illuminate/support": "^5|^6|^7|^8|^9|^10.0|^11.0|^12.0|^13.0",
"php": ">=5.4.0"
},
"require-dev": {
"nunomaduro/larastan": "^0.6.2|^2.4",
- "orchestra/testbench": "^5.4|^8.0",
+ "orchestra/testbench": "^5.4|^8.0|^9.0|^10.0|^11.0",
"php": ">=7.2"
},
"type": "library",
"extra": {
"laravel": {
- "providers": [
- "Creativeorange\\Gravatar\\GravatarServiceProvider"
- ],
"aliases": {
"Gravatar": "Creativeorange\\Gravatar\\Facades\\Gravatar"
- }
+ },
+ "providers": [
+ "Creativeorange\\Gravatar\\GravatarServiceProvider"
+ ]
}
},
"autoload": {
@@ -793,30 +866,30 @@
"laravel"
],
"support": {
- "issues": "https://github.com/creativeorange/gravatar/issues",
- "source": "https://github.com/creativeorange/gravatar/tree/v1.0.23"
+ "issues": "https://github.com/brainpink/gravatar/issues",
+ "source": "https://github.com/brainpink/gravatar/tree/v1.0.26"
},
- "time": "2023-02-06T07:57:20+00:00"
+ "time": "2026-03-20T23:47:31+00:00"
},
{
"name": "dasprid/enum",
- "version": "1.0.5",
+ "version": "1.0.7",
"source": {
"type": "git",
"url": "https://github.com/DASPRiD/Enum.git",
- "reference": "6faf451159fb8ba4126b925ed2d78acfce0dc016"
+ "reference": "b5874fa9ed0043116c72162ec7f4fb50e02e7cce"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/DASPRiD/Enum/zipball/6faf451159fb8ba4126b925ed2d78acfce0dc016",
- "reference": "6faf451159fb8ba4126b925ed2d78acfce0dc016",
+ "url": "https://api.github.com/repos/DASPRiD/Enum/zipball/b5874fa9ed0043116c72162ec7f4fb50e02e7cce",
+ "reference": "b5874fa9ed0043116c72162ec7f4fb50e02e7cce",
"shasum": ""
},
"require": {
"php": ">=7.1 <9.0"
},
"require-dev": {
- "phpunit/phpunit": "^7 | ^8 | ^9",
+ "phpunit/phpunit": "^7 || ^8 || ^9 || ^10 || ^11",
"squizlabs/php_codesniffer": "*"
},
"type": "library",
@@ -844,22 +917,22 @@
],
"support": {
"issues": "https://github.com/DASPRiD/Enum/issues",
- "source": "https://github.com/DASPRiD/Enum/tree/1.0.5"
+ "source": "https://github.com/DASPRiD/Enum/tree/1.0.7"
},
- "time": "2023-08-25T16:18:39+00:00"
+ "time": "2025-09-16T12:23:56+00:00"
},
{
"name": "dflydev/dot-access-data",
- "version": "v3.0.2",
+ "version": "v3.0.3",
"source": {
"type": "git",
"url": "https://github.com/dflydev/dflydev-dot-access-data.git",
- "reference": "f41715465d65213d644d3141a6a93081be5d3549"
+ "reference": "a23a2bf4f31d3518f3ecb38660c95715dfead60f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/f41715465d65213d644d3141a6a93081be5d3549",
- "reference": "f41715465d65213d644d3141a6a93081be5d3549",
+ "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/a23a2bf4f31d3518f3ecb38660c95715dfead60f",
+ "reference": "a23a2bf4f31d3518f3ecb38660c95715dfead60f",
"shasum": ""
},
"require": {
@@ -919,146 +992,46 @@
],
"support": {
"issues": "https://github.com/dflydev/dflydev-dot-access-data/issues",
- "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.2"
+ "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.3"
},
- "time": "2022-10-27T11:44:00+00:00"
- },
- {
- "name": "doctrine/cache",
- "version": "2.2.0",
- "source": {
- "type": "git",
- "url": "https://github.com/doctrine/cache.git",
- "reference": "1ca8f21980e770095a31456042471a57bc4c68fb"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/doctrine/cache/zipball/1ca8f21980e770095a31456042471a57bc4c68fb",
- "reference": "1ca8f21980e770095a31456042471a57bc4c68fb",
- "shasum": ""
- },
- "require": {
- "php": "~7.1 || ^8.0"
- },
- "conflict": {
- "doctrine/common": ">2.2,<2.4"
- },
- "require-dev": {
- "cache/integration-tests": "dev-master",
- "doctrine/coding-standard": "^9",
- "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
- "psr/cache": "^1.0 || ^2.0 || ^3.0",
- "symfony/cache": "^4.4 || ^5.4 || ^6",
- "symfony/var-exporter": "^4.4 || ^5.4 || ^6"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Guilherme Blanco",
- "email": "guilhermeblanco@gmail.com"
- },
- {
- "name": "Roman Borschel",
- "email": "roman@code-factory.org"
- },
- {
- "name": "Benjamin Eberlei",
- "email": "kontakt@beberlei.de"
- },
- {
- "name": "Jonathan Wage",
- "email": "jonwage@gmail.com"
- },
- {
- "name": "Johannes Schmitt",
- "email": "schmittjoh@gmail.com"
- }
- ],
- "description": "PHP Doctrine Cache library is a popular cache implementation that supports many different drivers such as redis, memcache, apc, mongodb and others.",
- "homepage": "https://www.doctrine-project.org/projects/cache.html",
- "keywords": [
- "abstraction",
- "apcu",
- "cache",
- "caching",
- "couchdb",
- "memcached",
- "php",
- "redis",
- "xcache"
- ],
- "support": {
- "issues": "https://github.com/doctrine/cache/issues",
- "source": "https://github.com/doctrine/cache/tree/2.2.0"
- },
- "funding": [
- {
- "url": "https://www.doctrine-project.org/sponsorship.html",
- "type": "custom"
- },
- {
- "url": "https://www.patreon.com/phpdoctrine",
- "type": "patreon"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcache",
- "type": "tidelift"
- }
- ],
- "time": "2022-05-20T20:07:39+00:00"
+ "time": "2024-07-08T12:26:09+00:00"
},
{
"name": "doctrine/dbal",
- "version": "3.7.2",
+ "version": "4.4.4",
"source": {
"type": "git",
"url": "https://github.com/doctrine/dbal.git",
- "reference": "0ac3c270590e54910715e9a1a044cc368df282b2"
+ "reference": "fb9e0ffe15e1590e24dc61c0c0a23f9a33ee42ce"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/dbal/zipball/0ac3c270590e54910715e9a1a044cc368df282b2",
- "reference": "0ac3c270590e54910715e9a1a044cc368df282b2",
+ "url": "https://api.github.com/repos/doctrine/dbal/zipball/fb9e0ffe15e1590e24dc61c0c0a23f9a33ee42ce",
+ "reference": "fb9e0ffe15e1590e24dc61c0c0a23f9a33ee42ce",
"shasum": ""
},
"require": {
- "composer-runtime-api": "^2",
- "doctrine/cache": "^1.11|^2.0",
- "doctrine/deprecations": "^0.5.3|^1",
- "doctrine/event-manager": "^1|^2",
- "php": "^7.4 || ^8.0",
+ "doctrine/deprecations": "^1.1.5",
+ "php": "^8.2",
"psr/cache": "^1|^2|^3",
"psr/log": "^1|^2|^3"
},
"require-dev": {
- "doctrine/coding-standard": "12.0.0",
+ "doctrine/coding-standard": "14.0.0",
"fig/log-test": "^1",
- "jetbrains/phpstorm-stubs": "2023.1",
- "phpstan/phpstan": "1.10.42",
- "phpstan/phpstan-strict-rules": "^1.5",
- "phpunit/phpunit": "9.6.13",
- "psalm/plugin-phpunit": "0.18.4",
- "slevomat/coding-standard": "8.13.1",
- "squizlabs/php_codesniffer": "3.7.2",
- "symfony/cache": "^5.4|^6.0",
- "symfony/console": "^4.4|^5.4|^6.0",
- "vimeo/psalm": "4.30.0"
+ "jetbrains/phpstorm-stubs": "2023.2",
+ "phpstan/phpstan": "2.1.30",
+ "phpstan/phpstan-phpunit": "2.0.7",
+ "phpstan/phpstan-strict-rules": "^2",
+ "phpunit/phpunit": "11.5.50",
+ "slevomat/coding-standard": "8.27.1",
+ "squizlabs/php_codesniffer": "4.0.1",
+ "symfony/cache": "^6.3.8|^7.0|^8.0",
+ "symfony/console": "^5.4|^6.3|^7.0|^8.0"
},
"suggest": {
"symfony/console": "For helpful console commands such as SQL execution and import of files."
},
- "bin": [
- "bin/doctrine-dbal"
- ],
"type": "library",
"autoload": {
"psr-4": {
@@ -1111,7 +1084,7 @@
],
"support": {
"issues": "https://github.com/doctrine/dbal/issues",
- "source": "https://github.com/doctrine/dbal/tree/3.7.2"
+ "source": "https://github.com/doctrine/dbal/tree/4.4.4"
},
"funding": [
{
@@ -1127,33 +1100,34 @@
"type": "tidelift"
}
],
- "time": "2023-11-19T08:06:58+00:00"
+ "time": "2026-07-21T14:34:40+00:00"
},
{
"name": "doctrine/deprecations",
- "version": "1.1.2",
+ "version": "1.1.6",
"source": {
"type": "git",
"url": "https://github.com/doctrine/deprecations.git",
- "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931"
+ "reference": "d4fe3e6fd9bb9e72557a19674f44d8ac7db4c6ca"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/deprecations/zipball/4f2d4f2836e7ec4e7a8625e75c6aa916004db931",
- "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931",
+ "url": "https://api.github.com/repos/doctrine/deprecations/zipball/d4fe3e6fd9bb9e72557a19674f44d8ac7db4c6ca",
+ "reference": "d4fe3e6fd9bb9e72557a19674f44d8ac7db4c6ca",
"shasum": ""
},
"require": {
"php": "^7.1 || ^8.0"
},
+ "conflict": {
+ "phpunit/phpunit": "<=7.5 || >=14"
+ },
"require-dev": {
- "doctrine/coding-standard": "^9",
- "phpstan/phpstan": "1.4.10 || 1.10.15",
- "phpstan/phpstan-phpunit": "^1.0",
- "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
- "psalm/plugin-phpunit": "0.18.4",
- "psr/log": "^1 || ^2 || ^3",
- "vimeo/psalm": "4.30.0 || 5.12.0"
+ "doctrine/coding-standard": "^9 || ^12 || ^14",
+ "phpstan/phpstan": "1.4.10 || 2.1.30",
+ "phpstan/phpstan-phpunit": "^1.0 || ^2",
+ "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6 || ^10.5 || ^11.5 || ^12.4 || ^13.0",
+ "psr/log": "^1 || ^2 || ^3"
},
"suggest": {
"psr/log": "Allows logging deprecations via PSR-3 logger implementation"
@@ -1161,7 +1135,7 @@
"type": "library",
"autoload": {
"psr-4": {
- "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations"
+ "Doctrine\\Deprecations\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -1172,130 +1146,38 @@
"homepage": "https://www.doctrine-project.org/",
"support": {
"issues": "https://github.com/doctrine/deprecations/issues",
- "source": "https://github.com/doctrine/deprecations/tree/1.1.2"
+ "source": "https://github.com/doctrine/deprecations/tree/1.1.6"
},
- "time": "2023-09-27T20:04:15+00:00"
- },
- {
- "name": "doctrine/event-manager",
- "version": "2.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/doctrine/event-manager.git",
- "reference": "750671534e0241a7c50ea5b43f67e23eb5c96f32"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/doctrine/event-manager/zipball/750671534e0241a7c50ea5b43f67e23eb5c96f32",
- "reference": "750671534e0241a7c50ea5b43f67e23eb5c96f32",
- "shasum": ""
- },
- "require": {
- "php": "^8.1"
- },
- "conflict": {
- "doctrine/common": "<2.9"
- },
- "require-dev": {
- "doctrine/coding-standard": "^10",
- "phpstan/phpstan": "^1.8.8",
- "phpunit/phpunit": "^9.5",
- "vimeo/psalm": "^4.28"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Doctrine\\Common\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Guilherme Blanco",
- "email": "guilhermeblanco@gmail.com"
- },
- {
- "name": "Roman Borschel",
- "email": "roman@code-factory.org"
- },
- {
- "name": "Benjamin Eberlei",
- "email": "kontakt@beberlei.de"
- },
- {
- "name": "Jonathan Wage",
- "email": "jonwage@gmail.com"
- },
- {
- "name": "Johannes Schmitt",
- "email": "schmittjoh@gmail.com"
- },
- {
- "name": "Marco Pivetta",
- "email": "ocramius@gmail.com"
- }
- ],
- "description": "The Doctrine Event Manager is a simple PHP event system that was built to be used with the various Doctrine projects.",
- "homepage": "https://www.doctrine-project.org/projects/event-manager.html",
- "keywords": [
- "event",
- "event dispatcher",
- "event manager",
- "event system",
- "events"
- ],
- "support": {
- "issues": "https://github.com/doctrine/event-manager/issues",
- "source": "https://github.com/doctrine/event-manager/tree/2.0.0"
- },
- "funding": [
- {
- "url": "https://www.doctrine-project.org/sponsorship.html",
- "type": "custom"
- },
- {
- "url": "https://www.patreon.com/phpdoctrine",
- "type": "patreon"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fevent-manager",
- "type": "tidelift"
- }
- ],
- "time": "2022-10-12T20:59:15+00:00"
+ "time": "2026-02-07T07:09:04+00:00"
},
{
"name": "doctrine/inflector",
- "version": "2.0.8",
+ "version": "2.1.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/inflector.git",
- "reference": "f9301a5b2fb1216b2b08f02ba04dc45423db6bff"
+ "reference": "6d6c96277ea252fc1304627204c3d5e6e15faa3b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/inflector/zipball/f9301a5b2fb1216b2b08f02ba04dc45423db6bff",
- "reference": "f9301a5b2fb1216b2b08f02ba04dc45423db6bff",
+ "url": "https://api.github.com/repos/doctrine/inflector/zipball/6d6c96277ea252fc1304627204c3d5e6e15faa3b",
+ "reference": "6d6c96277ea252fc1304627204c3d5e6e15faa3b",
"shasum": ""
},
"require": {
"php": "^7.2 || ^8.0"
},
"require-dev": {
- "doctrine/coding-standard": "^11.0",
- "phpstan/phpstan": "^1.8",
- "phpstan/phpstan-phpunit": "^1.1",
- "phpstan/phpstan-strict-rules": "^1.3",
- "phpunit/phpunit": "^8.5 || ^9.5",
- "vimeo/psalm": "^4.25 || ^5.4"
+ "doctrine/coding-standard": "^12.0 || ^13.0",
+ "phpstan/phpstan": "^1.12 || ^2.0",
+ "phpstan/phpstan-phpunit": "^1.4 || ^2.0",
+ "phpstan/phpstan-strict-rules": "^1.6 || ^2.0",
+ "phpunit/phpunit": "^8.5 || ^12.2"
},
"type": "library",
"autoload": {
"psr-4": {
- "Doctrine\\Inflector\\": "lib/Doctrine/Inflector"
+ "Doctrine\\Inflector\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -1340,7 +1222,7 @@
],
"support": {
"issues": "https://github.com/doctrine/inflector/issues",
- "source": "https://github.com/doctrine/inflector/tree/2.0.8"
+ "source": "https://github.com/doctrine/inflector/tree/2.1.0"
},
"funding": [
{
@@ -1356,31 +1238,31 @@
"type": "tidelift"
}
],
- "time": "2023-06-16T13:40:37+00:00"
+ "time": "2025-08-10T19:31:58+00:00"
},
{
"name": "doctrine/lexer",
- "version": "3.0.0",
+ "version": "3.0.1",
"source": {
"type": "git",
"url": "https://github.com/doctrine/lexer.git",
- "reference": "84a527db05647743d50373e0ec53a152f2cde568"
+ "reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/lexer/zipball/84a527db05647743d50373e0ec53a152f2cde568",
- "reference": "84a527db05647743d50373e0ec53a152f2cde568",
+ "url": "https://api.github.com/repos/doctrine/lexer/zipball/31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd",
+ "reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd",
"shasum": ""
},
"require": {
"php": "^8.1"
},
"require-dev": {
- "doctrine/coding-standard": "^10",
- "phpstan/phpstan": "^1.9",
- "phpunit/phpunit": "^9.5",
+ "doctrine/coding-standard": "^12",
+ "phpstan/phpstan": "^1.10",
+ "phpunit/phpunit": "^10.5",
"psalm/plugin-phpunit": "^0.18.3",
- "vimeo/psalm": "^5.0"
+ "vimeo/psalm": "^5.21"
},
"type": "library",
"autoload": {
@@ -1417,7 +1299,7 @@
],
"support": {
"issues": "https://github.com/doctrine/lexer/issues",
- "source": "https://github.com/doctrine/lexer/tree/3.0.0"
+ "source": "https://github.com/doctrine/lexer/tree/3.0.1"
},
"funding": [
{
@@ -1433,36 +1315,38 @@
"type": "tidelift"
}
],
- "time": "2022-12-15T16:57:16+00:00"
+ "time": "2024-02-05T11:56:58+00:00"
},
{
"name": "dompdf/dompdf",
- "version": "v2.0.4",
+ "version": "v3.1.6",
"source": {
"type": "git",
"url": "https://github.com/dompdf/dompdf.git",
- "reference": "093f2d9739cec57428e39ddadedfd4f3ae862c0f"
+ "reference": "6d4b4eb8500f7a786da8868ba463a71b725a4005"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/dompdf/dompdf/zipball/093f2d9739cec57428e39ddadedfd4f3ae862c0f",
- "reference": "093f2d9739cec57428e39ddadedfd4f3ae862c0f",
+ "url": "https://api.github.com/repos/dompdf/dompdf/zipball/6d4b4eb8500f7a786da8868ba463a71b725a4005",
+ "reference": "6d4b4eb8500f7a786da8868ba463a71b725a4005",
"shasum": ""
},
"require": {
+ "dompdf/php-font-lib": "^1.0.0",
+ "dompdf/php-svg-lib": "^1.0.0",
"ext-dom": "*",
"ext-mbstring": "*",
"masterminds/html5": "^2.0",
- "phenx/php-font-lib": ">=0.5.4 <1.0.0",
- "phenx/php-svg-lib": ">=0.3.3 <1.0.0",
"php": "^7.1 || ^8.0"
},
"require-dev": {
+ "ext-gd": "*",
"ext-json": "*",
"ext-zip": "*",
"mockery/mockery": "^1.3",
- "phpunit/phpunit": "^7.5 || ^8 || ^9",
- "squizlabs/php_codesniffer": "^3.5"
+ "phpunit/phpunit": "^7.5 || ^8 || ^9 || ^10 || ^11",
+ "squizlabs/php_codesniffer": "^3.5",
+ "symfony/process": "^4.4 || ^5.4 || ^6.2 || ^7.0"
},
"suggest": {
"ext-gd": "Needed to process images",
@@ -1493,38 +1377,132 @@
"homepage": "https://github.com/dompdf/dompdf",
"support": {
"issues": "https://github.com/dompdf/dompdf/issues",
- "source": "https://github.com/dompdf/dompdf/tree/v2.0.4"
+ "source": "https://github.com/dompdf/dompdf/tree/v3.1.6"
+ },
+ "time": "2026-07-20T12:29:38+00:00"
+ },
+ {
+ "name": "dompdf/php-font-lib",
+ "version": "1.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/dompdf/php-font-lib.git",
+ "reference": "a6e9a688a2a80016ac080b97be73d3e10c444c9a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/dompdf/php-font-lib/zipball/a6e9a688a2a80016ac080b97be73d3e10c444c9a",
+ "reference": "a6e9a688a2a80016ac080b97be73d3e10c444c9a",
+ "shasum": ""
+ },
+ "require": {
+ "ext-mbstring": "*",
+ "php": "^7.1 || ^8.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^7.5 || ^8 || ^9 || ^10 || ^11 || ^12"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "FontLib\\": "src/FontLib"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "LGPL-2.1-or-later"
+ ],
+ "authors": [
+ {
+ "name": "The FontLib Community",
+ "homepage": "https://github.com/dompdf/php-font-lib/blob/master/AUTHORS.md"
+ }
+ ],
+ "description": "A library to read, parse, export and make subsets of different types of font files.",
+ "homepage": "https://github.com/dompdf/php-font-lib",
+ "support": {
+ "issues": "https://github.com/dompdf/php-font-lib/issues",
+ "source": "https://github.com/dompdf/php-font-lib/tree/1.0.2"
},
- "time": "2023-12-12T20:19:39+00:00"
+ "time": "2026-01-20T14:10:26+00:00"
+ },
+ {
+ "name": "dompdf/php-svg-lib",
+ "version": "1.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/dompdf/php-svg-lib.git",
+ "reference": "8259ffb930817e72b1ff1caef5d226501f3dfeb1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/dompdf/php-svg-lib/zipball/8259ffb930817e72b1ff1caef5d226501f3dfeb1",
+ "reference": "8259ffb930817e72b1ff1caef5d226501f3dfeb1",
+ "shasum": ""
+ },
+ "require": {
+ "ext-mbstring": "*",
+ "php": "^7.1 || ^8.0",
+ "sabberworm/php-css-parser": "^8.4 || ^9.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^7.5 || ^8 || ^9 || ^10 || ^11"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Svg\\": "src/Svg"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "LGPL-3.0-or-later"
+ ],
+ "authors": [
+ {
+ "name": "The SvgLib Community",
+ "homepage": "https://github.com/dompdf/php-svg-lib/blob/master/AUTHORS.md"
+ }
+ ],
+ "description": "A library to read, parse and export to PDF SVG files.",
+ "homepage": "https://github.com/dompdf/php-svg-lib",
+ "support": {
+ "issues": "https://github.com/dompdf/php-svg-lib/issues",
+ "source": "https://github.com/dompdf/php-svg-lib/tree/1.0.2"
+ },
+ "time": "2026-01-02T16:01:13+00:00"
},
{
"name": "dragonmantank/cron-expression",
- "version": "v3.3.3",
+ "version": "v3.6.0",
"source": {
"type": "git",
"url": "https://github.com/dragonmantank/cron-expression.git",
- "reference": "adfb1f505deb6384dc8b39804c5065dd3c8c8c0a"
+ "reference": "d61a8a9604ec1f8c3d150d09db6ce98b32675013"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/adfb1f505deb6384dc8b39804c5065dd3c8c8c0a",
- "reference": "adfb1f505deb6384dc8b39804c5065dd3c8c8c0a",
+ "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/d61a8a9604ec1f8c3d150d09db6ce98b32675013",
+ "reference": "d61a8a9604ec1f8c3d150d09db6ce98b32675013",
"shasum": ""
},
"require": {
- "php": "^7.2|^8.0",
- "webmozart/assert": "^1.0"
+ "php": "^8.2|^8.3|^8.4|^8.5"
},
"replace": {
"mtdowling/cron-expression": "^1.0"
},
"require-dev": {
- "phpstan/extension-installer": "^1.0",
- "phpstan/phpstan": "^1.0",
- "phpstan/phpstan-webmozart-assert": "^1.0",
- "phpunit/phpunit": "^7.0|^8.0|^9.0"
+ "phpstan/extension-installer": "^1.4.3",
+ "phpstan/phpstan": "^1.12.32|^2.1.31",
+ "phpunit/phpunit": "^8.5.48|^9.0"
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.x-dev"
+ }
+ },
"autoload": {
"psr-4": {
"Cron\\": "src/Cron/"
@@ -1548,7 +1526,7 @@
],
"support": {
"issues": "https://github.com/dragonmantank/cron-expression/issues",
- "source": "https://github.com/dragonmantank/cron-expression/tree/v3.3.3"
+ "source": "https://github.com/dragonmantank/cron-expression/tree/v3.6.0"
},
"funding": [
{
@@ -1556,20 +1534,20 @@
"type": "github"
}
],
- "time": "2023-08-10T19:36:49+00:00"
+ "time": "2025-10-31T18:51:33+00:00"
},
{
"name": "egulias/email-validator",
- "version": "4.0.2",
+ "version": "4.0.4",
"source": {
"type": "git",
"url": "https://github.com/egulias/EmailValidator.git",
- "reference": "ebaaf5be6c0286928352e054f2d5125608e5405e"
+ "reference": "d42c8731f0624ad6bdc8d3e5e9a4524f68801cfa"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/ebaaf5be6c0286928352e054f2d5125608e5405e",
- "reference": "ebaaf5be6c0286928352e054f2d5125608e5405e",
+ "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/d42c8731f0624ad6bdc8d3e5e9a4524f68801cfa",
+ "reference": "d42c8731f0624ad6bdc8d3e5e9a4524f68801cfa",
"shasum": ""
},
"require": {
@@ -1615,7 +1593,7 @@
],
"support": {
"issues": "https://github.com/egulias/EmailValidator/issues",
- "source": "https://github.com/egulias/EmailValidator/tree/4.0.2"
+ "source": "https://github.com/egulias/EmailValidator/tree/4.0.4"
},
"funding": [
{
@@ -1623,24 +1601,24 @@
"type": "github"
}
],
- "time": "2023-10-06T06:47:41+00:00"
+ "time": "2025-03-06T22:45:56+00:00"
},
{
"name": "ezyang/htmlpurifier",
- "version": "v4.17.0",
+ "version": "v4.19.0",
"source": {
"type": "git",
"url": "https://github.com/ezyang/htmlpurifier.git",
- "reference": "bbc513d79acf6691fa9cf10f192c90dd2957f18c"
+ "reference": "b287d2a16aceffbf6e0295559b39662612b77fcf"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/bbc513d79acf6691fa9cf10f192c90dd2957f18c",
- "reference": "bbc513d79acf6691fa9cf10f192c90dd2957f18c",
+ "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/b287d2a16aceffbf6e0295559b39662612b77fcf",
+ "reference": "b287d2a16aceffbf6e0295559b39662612b77fcf",
"shasum": ""
},
"require": {
- "php": "~5.6.0 || ~7.0.0 || ~7.1.0 || ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0"
+ "php": "~5.6.0 || ~7.0.0 || ~7.1.0 || ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0"
},
"require-dev": {
"cerdic/css-tidy": "^1.7 || ^2.0",
@@ -1682,9 +1660,9 @@
],
"support": {
"issues": "https://github.com/ezyang/htmlpurifier/issues",
- "source": "https://github.com/ezyang/htmlpurifier/tree/v4.17.0"
+ "source": "https://github.com/ezyang/htmlpurifier/tree/v4.19.0"
},
- "time": "2023-11-17T15:01:25+00:00"
+ "time": "2025-10-17T16:34:55+00:00"
},
{
"name": "firebase/php-jwt",
@@ -1754,31 +1732,31 @@
},
{
"name": "fruitcake/php-cors",
- "version": "v1.3.0",
+ "version": "v1.4.0",
"source": {
"type": "git",
"url": "https://github.com/fruitcake/php-cors.git",
- "reference": "3d158f36e7875e2f040f37bc0573956240a5a38b"
+ "reference": "38aaa6c3fd4c157ffe2a4d10aa8b9b16ba8de379"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/fruitcake/php-cors/zipball/3d158f36e7875e2f040f37bc0573956240a5a38b",
- "reference": "3d158f36e7875e2f040f37bc0573956240a5a38b",
+ "url": "https://api.github.com/repos/fruitcake/php-cors/zipball/38aaa6c3fd4c157ffe2a4d10aa8b9b16ba8de379",
+ "reference": "38aaa6c3fd4c157ffe2a4d10aa8b9b16ba8de379",
"shasum": ""
},
"require": {
- "php": "^7.4|^8.0",
- "symfony/http-foundation": "^4.4|^5.4|^6|^7"
+ "php": "^8.1",
+ "symfony/http-foundation": "^5.4|^6.4|^7.3|^8"
},
"require-dev": {
- "phpstan/phpstan": "^1.4",
+ "phpstan/phpstan": "^2",
"phpunit/phpunit": "^9",
- "squizlabs/php_codesniffer": "^3.5"
+ "squizlabs/php_codesniffer": "^4"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.2-dev"
+ "dev-master": "1.3-dev"
}
},
"autoload": {
@@ -1809,7 +1787,7 @@
],
"support": {
"issues": "https://github.com/fruitcake/php-cors/issues",
- "source": "https://github.com/fruitcake/php-cors/tree/v1.3.0"
+ "source": "https://github.com/fruitcake/php-cors/tree/v1.4.0"
},
"funding": [
{
@@ -1821,7 +1799,7 @@
"type": "github"
}
],
- "time": "2023-10-12T05:21:21+00:00"
+ "time": "2025-12-03T09:33:47+00:00"
},
{
"name": "google/apiclient",
@@ -1940,29 +1918,30 @@
},
{
"name": "google/auth",
- "version": "v1.52.0",
+ "version": "v1.53.0",
"source": {
"type": "git",
"url": "https://github.com/googleapis/google-auth-library-php.git",
- "reference": "7a7e5ab2ff2d9449a252eab587d4dae978c22a77"
+ "reference": "d677d0b0c4bd52ab222a85df8e74e0d491c0cc5a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/googleapis/google-auth-library-php/zipball/7a7e5ab2ff2d9449a252eab587d4dae978c22a77",
- "reference": "7a7e5ab2ff2d9449a252eab587d4dae978c22a77",
+ "url": "https://api.github.com/repos/googleapis/google-auth-library-php/zipball/d677d0b0c4bd52ab222a85df8e74e0d491c0cc5a",
+ "reference": "d677d0b0c4bd52ab222a85df8e74e0d491c0cc5a",
"shasum": ""
},
"require": {
"firebase/php-jwt": "^6.0||^7.0",
- "guzzlehttp/guzzle": "^7.4.5",
- "guzzlehttp/psr7": "^2.4.5",
+ "guzzlehttp/guzzle": "^7.8.2||^8.0",
+ "guzzlehttp/psr7": "^2.6.3||^3.0",
"php": "^8.1",
"psr/cache": "^2.0||^3.0",
+ "psr/http-client": "^1.0",
"psr/http-message": "^1.1||^2.0",
"psr/log": "^2.0||^3.0"
},
"require-dev": {
- "guzzlehttp/promises": "^2.0",
+ "guzzlehttp/promises": "^2.0.3||^3.0",
"kelvinmo/simplejwt": "^1.1.0",
"phpseclib/phpseclib": "^3.0.35",
"phpspec/prophecy-phpunit": "^2.1",
@@ -1996,30 +1975,30 @@
"support": {
"docs": "https://cloud.google.com/php/docs/reference/auth/latest",
"issues": "https://github.com/googleapis/google-auth-library-php/issues",
- "source": "https://github.com/googleapis/google-auth-library-php/tree/v1.52.0"
+ "source": "https://github.com/googleapis/google-auth-library-php/tree/v1.53.0"
},
- "time": "2026-06-23T16:43:15+00:00"
+ "time": "2026-07-22T22:36:10+00:00"
},
{
"name": "graham-campbell/result-type",
- "version": "v1.1.2",
+ "version": "v1.2.0",
"source": {
"type": "git",
"url": "https://github.com/GrahamCampbell/Result-Type.git",
- "reference": "fbd48bce38f73f8a4ec8583362e732e4095e5862"
+ "reference": "adccca3324eece92ca35463648c12b9e6293c05b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/fbd48bce38f73f8a4ec8583362e732e4095e5862",
- "reference": "fbd48bce38f73f8a4ec8583362e732e4095e5862",
+ "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.2"
+ "phpoption/phpoption": "^1.10"
},
"require-dev": {
- "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2"
+ "phpunit/phpunit": "^8.5.52 || ^9.6.34 || ^10.5.63 || ^11.5.55 || ^12.5.14"
},
"type": "library",
"autoload": {
@@ -2048,7 +2027,7 @@
],
"support": {
"issues": "https://github.com/GrahamCampbell/Result-Type/issues",
- "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.2"
+ "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.2.0"
},
"funding": [
{
@@ -2060,29 +2039,30 @@
"type": "tidelift"
}
],
- "time": "2023-11-12T22:16:48+00:00"
+ "time": "2026-08-24T09:06:52+00:00"
},
{
"name": "guzzlehttp/guzzle",
- "version": "7.8.1",
+ "version": "7.15.5",
"source": {
"type": "git",
"url": "https://github.com/guzzle/guzzle.git",
- "reference": "41042bc7ab002487b876a0683fc8dce04ddce104"
+ "reference": "ee80339fd9177ba44c49cdb653ff02a4d1106b9a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/guzzle/zipball/41042bc7ab002487b876a0683fc8dce04ddce104",
- "reference": "41042bc7ab002487b876a0683fc8dce04ddce104",
+ "url": "https://api.github.com/repos/guzzle/guzzle/zipball/ee80339fd9177ba44c49cdb653ff02a4d1106b9a",
+ "reference": "ee80339fd9177ba44c49cdb653ff02a4d1106b9a",
"shasum": ""
},
"require": {
"ext-json": "*",
- "guzzlehttp/promises": "^1.5.3 || ^2.0.1",
- "guzzlehttp/psr7": "^1.9.1 || ^2.5.1",
+ "guzzlehttp/promises": "^2.5.3",
+ "guzzlehttp/psr7": "^2.13.1",
"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"
@@ -2090,9 +2070,10 @@
"require-dev": {
"bamarni/composer-bin-plugin": "^1.8.2",
"ext-curl": "*",
- "php-http/client-integration-tests": "dev-master#2c025848417c1135031fdf9c728ee53d0a7ceaee as 3.0.999",
+ "guzzle/client-integration-tests": "3.0.3",
+ "guzzlehttp/test-server": "^0.7",
"php-http/message-factory": "^1.1",
- "phpunit/phpunit": "^8.5.36 || ^9.6.15",
+ "phpunit/phpunit": "^8.5.52 || ^9.6.34",
"psr/log": "^1.1 || ^2.0 || ^3.0"
},
"suggest": {
@@ -2170,7 +2151,7 @@
],
"support": {
"issues": "https://github.com/guzzle/guzzle/issues",
- "source": "https://github.com/guzzle/guzzle/tree/7.8.1"
+ "source": "https://github.com/guzzle/guzzle/tree/7.15.5"
},
"funding": [
{
@@ -2186,28 +2167,29 @@
"type": "tidelift"
}
],
- "time": "2023-12-03T20:35:24+00:00"
+ "time": "2026-08-24T09:21:06+00:00"
},
{
"name": "guzzlehttp/promises",
- "version": "2.0.2",
+ "version": "2.5.3",
"source": {
"type": "git",
"url": "https://github.com/guzzle/promises.git",
- "reference": "bbff78d96034045e58e13dedd6ad91b5d1253223"
+ "reference": "cde49999552d185d64715fe9c1f77a2aadd2f9f1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/promises/zipball/bbff78d96034045e58e13dedd6ad91b5d1253223",
- "reference": "bbff78d96034045e58e13dedd6ad91b5d1253223",
+ "url": "https://api.github.com/repos/guzzle/promises/zipball/cde49999552d185d64715fe9c1f77a2aadd2f9f1",
+ "reference": "cde49999552d185d64715fe9c1f77a2aadd2f9f1",
"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.36 || ^9.6.15"
+ "phpunit/phpunit": "^8.5.52 || ^9.6.34"
},
"type": "library",
"extra": {
@@ -2253,7 +2235,7 @@
],
"support": {
"issues": "https://github.com/guzzle/promises/issues",
- "source": "https://github.com/guzzle/promises/tree/2.0.2"
+ "source": "https://github.com/guzzle/promises/tree/2.5.3"
},
"funding": [
{
@@ -2269,27 +2251,29 @@
"type": "tidelift"
}
],
- "time": "2023-12-03T20:19:20+00:00"
+ "time": "2026-08-24T09:11:28+00:00"
},
{
"name": "guzzlehttp/psr7",
- "version": "2.6.2",
+ "version": "2.13.1",
"source": {
"type": "git",
"url": "https://github.com/guzzle/psr7.git",
- "reference": "45b30f99ac27b5ca93cb4831afe16285f57b8221"
+ "reference": "95e7828100de18b4e269fb1703be530082d5166d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/psr7/zipball/45b30f99ac27b5ca93cb4831afe16285f57b8221",
- "reference": "45b30f99ac27b5ca93cb4831afe16285f57b8221",
+ "url": "https://api.github.com/repos/guzzle/psr7/zipball/95e7828100de18b4e269fb1703be530082d5166d",
+ "reference": "95e7828100de18b4e269fb1703be530082d5166d",
"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",
@@ -2297,8 +2281,9 @@
},
"require-dev": {
"bamarni/composer-bin-plugin": "^1.8.2",
- "http-interop/http-factory-tests": "^0.9",
- "phpunit/phpunit": "^8.5.36 || ^9.6.15"
+ "http-interop/http-factory-tests": "1.1.0",
+ "jshttp/mime-db": "1.54.0.1",
+ "phpunit/phpunit": "^8.5.52 || ^9.6.34"
},
"suggest": {
"laminas/laminas-httphandlerrunner": "Emit PSR-7 responses"
@@ -2369,7 +2354,7 @@
],
"support": {
"issues": "https://github.com/guzzle/psr7/issues",
- "source": "https://github.com/guzzle/psr7/tree/2.6.2"
+ "source": "https://github.com/guzzle/psr7/tree/2.13.1"
},
"funding": [
{
@@ -2385,29 +2370,29 @@
"type": "tidelift"
}
],
- "time": "2023-12-03T20:05:35+00:00"
+ "time": "2026-08-24T09:13:11+00:00"
},
{
"name": "guzzlehttp/uri-template",
- "version": "v1.0.3",
+ "version": "v1.0.11",
"source": {
"type": "git",
"url": "https://github.com/guzzle/uri-template.git",
- "reference": "ecea8feef63bd4fef1f037ecb288386999ecc11c"
+ "reference": "d0058dccf4299d70c3d9da3378b8908b32780368"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/uri-template/zipball/ecea8feef63bd4fef1f037ecb288386999ecc11c",
- "reference": "ecea8feef63bd4fef1f037ecb288386999ecc11c",
+ "url": "https://api.github.com/repos/guzzle/uri-template/zipball/d0058dccf4299d70c3d9da3378b8908b32780368",
+ "reference": "d0058dccf4299d70c3d9da3378b8908b32780368",
"shasum": ""
},
"require": {
"php": "^7.2.5 || ^8.0",
- "symfony/polyfill-php80": "^1.24"
+ "symfony/polyfill-php80": "^1.25"
},
"require-dev": {
"bamarni/composer-bin-plugin": "^1.8.2",
- "phpunit/phpunit": "^8.5.36 || ^9.6.15",
+ "phpunit/phpunit": "^8.5.52 || ^9.6.34",
"uri-template/tests": "1.0.0"
},
"type": "library",
@@ -2455,7 +2440,7 @@
],
"support": {
"issues": "https://github.com/guzzle/uri-template/issues",
- "source": "https://github.com/guzzle/uri-template/tree/v1.0.3"
+ "source": "https://github.com/guzzle/uri-template/tree/v1.0.11"
},
"funding": [
{
@@ -2471,27 +2456,27 @@
"type": "tidelift"
}
],
- "time": "2023-12-03T19:50:20+00:00"
+ "time": "2026-08-24T09:15:32+00:00"
},
{
"name": "laravel/framework",
- "version": "v10.39.0",
+ "version": "v12.68.0",
"source": {
"type": "git",
"url": "https://github.com/laravel/framework.git",
- "reference": "114926b07bfb5fbf2545c03aa2ce5c8c37be650c"
+ "reference": "1343c22b92edd48e29ff273d8ce7c15cf75d974c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/framework/zipball/114926b07bfb5fbf2545c03aa2ce5c8c37be650c",
- "reference": "114926b07bfb5fbf2545c03aa2ce5c8c37be650c",
+ "url": "https://api.github.com/repos/laravel/framework/zipball/1343c22b92edd48e29ff273d8ce7c15cf75d974c",
+ "reference": "1343c22b92edd48e29ff273d8ce7c15cf75d974c",
"shasum": ""
},
"require": {
- "brick/math": "^0.9.3|^0.10.2|^0.11",
+ "brick/math": "^0.11|^0.12|^0.13|^0.14",
"composer-runtime-api": "^2.2",
"doctrine/inflector": "^2.0.5",
- "dragonmantank/cron-expression": "^3.3.2",
+ "dragonmantank/cron-expression": "^3.4",
"egulias/email-validator": "^3.2.1|^4.0",
"ext-ctype": "*",
"ext-filter": "*",
@@ -2500,42 +2485,47 @@
"ext-openssl": "*",
"ext-session": "*",
"ext-tokenizer": "*",
- "fruitcake/php-cors": "^1.2",
+ "fruitcake/php-cors": "^1.3",
+ "guzzlehttp/guzzle": "^7.8.2",
"guzzlehttp/uri-template": "^1.0",
- "laravel/prompts": "^0.1.9",
- "laravel/serializable-closure": "^1.3",
- "league/commonmark": "^2.2.1",
- "league/flysystem": "^3.8.0",
+ "laravel/prompts": "^0.3.0",
+ "laravel/serializable-closure": "^1.3|^2.0",
+ "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",
- "nesbot/carbon": "^2.67",
- "nunomaduro/termwind": "^1.13",
- "php": "^8.1",
+ "nesbot/carbon": "^3.8.4",
+ "nunomaduro/termwind": "^2.0",
+ "php": "^8.2",
"psr/container": "^1.1.1|^2.0.1",
"psr/log": "^1.0|^2.0|^3.0",
"psr/simple-cache": "^1.0|^2.0|^3.0",
"ramsey/uuid": "^4.7",
- "symfony/console": "^6.2",
- "symfony/error-handler": "^6.2",
- "symfony/finder": "^6.2",
- "symfony/http-foundation": "^6.4",
- "symfony/http-kernel": "^6.2",
- "symfony/mailer": "^6.2",
- "symfony/mime": "^6.2",
- "symfony/process": "^6.2",
- "symfony/routing": "^6.2",
- "symfony/uid": "^6.2",
- "symfony/var-dumper": "^6.2",
+ "symfony/console": "^7.2.0",
+ "symfony/error-handler": "^7.2.0",
+ "symfony/finder": "^7.2.0",
+ "symfony/http-foundation": "^7.2.0",
+ "symfony/http-kernel": "^7.2.0",
+ "symfony/mailer": "^7.2.0",
+ "symfony/mime": "^7.2.0",
+ "symfony/polyfill-php83": "^1.33",
+ "symfony/polyfill-php84": "^1.34",
+ "symfony/polyfill-php85": "^1.34",
+ "symfony/process": "^7.2.0",
+ "symfony/routing": "^7.2.0",
+ "symfony/uid": "^7.2.0",
+ "symfony/var-dumper": "^7.2.0",
"tijsverkoyen/css-to-inline-styles": "^2.2.5",
- "vlucas/phpdotenv": "^5.4.1",
- "voku/portable-ascii": "^2.0"
+ "vlucas/phpdotenv": "^5.6.1",
+ "voku/portable-ascii": "^2.0.2"
},
"conflict": {
- "carbonphp/carbon-doctrine-types": ">=3.0",
- "doctrine/dbal": ">=4.0",
"tightenco/collect": "<5.5.33"
},
"provide": {
"psr/container-implementation": "1.1|2.0",
+ "psr/log-implementation": "1.0|2.0|3.0",
"psr/simple-cache-implementation": "1.0|2.0|3.0"
},
"replace": {
@@ -2544,6 +2534,7 @@
"illuminate/bus": "self.version",
"illuminate/cache": "self.version",
"illuminate/collections": "self.version",
+ "illuminate/concurrency": "self.version",
"illuminate/conditionable": "self.version",
"illuminate/config": "self.version",
"illuminate/console": "self.version",
@@ -2556,6 +2547,7 @@
"illuminate/filesystem": "self.version",
"illuminate/hashing": "self.version",
"illuminate/http": "self.version",
+ "illuminate/json-schema": "self.version",
"illuminate/log": "self.version",
"illuminate/macroable": "self.version",
"illuminate/mail": "self.version",
@@ -2565,42 +2557,47 @@
"illuminate/process": "self.version",
"illuminate/queue": "self.version",
"illuminate/redis": "self.version",
+ "illuminate/reflection": "self.version",
"illuminate/routing": "self.version",
"illuminate/session": "self.version",
"illuminate/support": "self.version",
"illuminate/testing": "self.version",
"illuminate/translation": "self.version",
"illuminate/validation": "self.version",
- "illuminate/view": "self.version"
+ "illuminate/view": "self.version",
+ "spatie/once": "*"
},
"require-dev": {
"ably/ably-php": "^1.0",
- "aws/aws-sdk-php": "^3.235.5",
- "doctrine/dbal": "^3.5.1",
+ "aws/aws-sdk-php": "^3.322.9",
"ext-gmp": "*",
- "fakerphp/faker": "^1.21",
- "guzzlehttp/guzzle": "^7.5",
- "league/flysystem-aws-s3-v3": "^3.0",
- "league/flysystem-ftp": "^3.0",
- "league/flysystem-path-prefixing": "^3.3",
- "league/flysystem-read-only": "^3.3",
- "league/flysystem-sftp-v3": "^3.0",
- "mockery/mockery": "^1.5.1",
- "nyholm/psr7": "^1.2",
- "orchestra/testbench-core": "^8.18",
- "pda/pheanstalk": "^4.0",
- "phpstan/phpstan": "^1.4.7",
- "phpunit/phpunit": "^10.0.7",
- "predis/predis": "^2.0.2",
- "symfony/cache": "^6.2",
- "symfony/http-client": "^6.2.4",
- "symfony/psr-http-message-bridge": "^2.0"
+ "fakerphp/faker": "^1.24",
+ "guzzlehttp/promises": "^2.0.3",
+ "guzzlehttp/psr7": "^2.4",
+ "laravel/pint": "^1.18",
+ "league/flysystem-aws-s3-v3": "^3.25.1",
+ "league/flysystem-ftp": "^3.25.1",
+ "league/flysystem-path-prefixing": "^3.25.1",
+ "league/flysystem-read-only": "^3.25.1",
+ "league/flysystem-sftp-v3": "^3.25.1",
+ "mockery/mockery": "^1.6.10",
+ "opis/json-schema": "^2.4.1",
+ "orchestra/testbench-core": "^10.9.0",
+ "pda/pheanstalk": "^5.0.6|^7.0.0",
+ "php-http/discovery": "^1.15",
+ "phpstan/phpstan": "^2.1.41",
+ "phpunit/phpunit": "^10.5.35|^11.5.3|^12.0.1",
+ "predis/predis": "^2.3|^3.0",
+ "resend/resend-php": "^0.10.0|^1.0",
+ "symfony/cache": "^7.2.0",
+ "symfony/http-client": "^7.2.0",
+ "symfony/psr-http-message-bridge": "^7.2.0",
+ "symfony/translation": "^7.2.0"
},
"suggest": {
"ably/ably-php": "Required to use the Ably broadcast driver (^1.0).",
- "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage, and SES mail driver (^3.235.5).",
- "brianium/paratest": "Required to run tests in parallel (^6.0).",
- "doctrine/dbal": "Required to rename columns and drop SQLite columns (^3.5.1).",
+ "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.",
"ext-fileinfo": "Required to use the Filesystem class.",
"ext-ftp": "Required to use the Flysystem FTP driver.",
@@ -2609,42 +2606,46 @@
"ext-pcntl": "Required to use all features of the queue worker and console signal trapping.",
"ext-pdo": "Required to use all database features.",
"ext-posix": "Required to use all features of the queue worker.",
- "ext-redis": "Required to use the Redis cache and queue drivers (^4.0|^5.0).",
- "fakerphp/faker": "Required to use the eloquent factory builder (^1.9.1).",
+ "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).",
- "guzzlehttp/guzzle": "Required to use the HTTP Client and the ping methods on schedules (^7.5).",
"laravel/tinker": "Required to use the tinker console command (^2.0).",
- "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^3.0).",
- "league/flysystem-ftp": "Required to use the Flysystem FTP driver (^3.0).",
- "league/flysystem-path-prefixing": "Required to use the scoped driver (^3.3).",
- "league/flysystem-read-only": "Required to use read-only disks (^3.3)",
- "league/flysystem-sftp-v3": "Required to use the Flysystem SFTP driver (^3.0).",
- "mockery/mockery": "Required to use mocking (^1.5.1).",
- "nyholm/psr7": "Required to use PSR-7 bridging features (^1.2).",
- "pda/pheanstalk": "Required to use the beanstalk queue driver (^4.0).",
- "phpunit/phpunit": "Required to use assertions and run tests (^9.5.8|^10.0.7).",
- "predis/predis": "Required to use the predis connector (^2.0.2).",
+ "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).",
+ "league/flysystem-path-prefixing": "Required to use the scoped driver (^3.25.1).",
+ "league/flysystem-read-only": "Required to use read-only disks (^3.25.1)",
+ "league/flysystem-sftp-v3": "Required to use the Flysystem SFTP driver (^3.25.1).",
+ "mockery/mockery": "Required to use mocking (^1.6).",
+ "pda/pheanstalk": "Required to use the beanstalk queue driver (^5.0).",
+ "php-http/discovery": "Required to use PSR-7 bridging features (^1.15).",
+ "phpunit/phpunit": "Required to use assertions and run tests (^10.5.35|^11.5.3|^12.0.1).",
+ "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).",
- "symfony/cache": "Required to PSR-6 cache bridge (^6.2).",
- "symfony/filesystem": "Required to enable support for relative symbolic links (^6.2).",
- "symfony/http-client": "Required to enable support for the Symfony API mail transports (^6.2).",
- "symfony/mailgun-mailer": "Required to enable support for the Mailgun mail transport (^6.2).",
- "symfony/postmark-mailer": "Required to enable support for the Postmark mail transport (^6.2).",
- "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^2.0)."
+ "resend/resend-php": "Required to enable support for the Resend mail transport (^0.10.0|^1.0).",
+ "symfony/cache": "Required to PSR-6 cache bridge (^7.2).",
+ "symfony/filesystem": "Required to enable support for relative symbolic links (^7.2).",
+ "symfony/http-client": "Required to enable support for the Symfony API mail transports (^7.2).",
+ "symfony/mailgun-mailer": "Required to enable support for the Mailgun mail transport (^7.2).",
+ "symfony/postmark-mailer": "Required to enable support for the Postmark mail transport (^7.2).",
+ "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^7.2)."
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "10.x-dev"
+ "dev-master": "12.x-dev"
}
},
"autoload": {
"files": [
+ "src/Illuminate/Collections/functions.php",
"src/Illuminate/Collections/helpers.php",
"src/Illuminate/Events/functions.php",
"src/Illuminate/Filesystem/functions.php",
"src/Illuminate/Foundation/helpers.php",
+ "src/Illuminate/Log/functions.php",
+ "src/Illuminate/Reflection/helpers.php",
+ "src/Illuminate/Support/functions.php",
"src/Illuminate/Support/helpers.php"
],
"psr-4": {
@@ -2652,7 +2653,8 @@
"Illuminate\\Support\\": [
"src/Illuminate/Macroable/",
"src/Illuminate/Collections/",
- "src/Illuminate/Conditionable/"
+ "src/Illuminate/Conditionable/",
+ "src/Illuminate/Reflection/"
]
}
},
@@ -2676,37 +2678,38 @@
"issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework"
},
- "time": "2023-12-27T14:26:28+00:00"
+ "time": "2026-08-25T14:18:36+00:00"
},
{
"name": "laravel/prompts",
- "version": "v0.1.14",
+ "version": "v0.3.24",
"source": {
"type": "git",
"url": "https://github.com/laravel/prompts.git",
- "reference": "2219fa9c4b944add1e825c3bdb8ecae8bc503bc6"
+ "reference": "5d3cdef29e93ca3b62b1871359db3078cd99908b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/prompts/zipball/2219fa9c4b944add1e825c3bdb8ecae8bc503bc6",
- "reference": "2219fa9c4b944add1e825c3bdb8ecae8bc503bc6",
+ "url": "https://api.github.com/repos/laravel/prompts/zipball/5d3cdef29e93ca3b62b1871359db3078cd99908b",
+ "reference": "5d3cdef29e93ca3b62b1871359db3078cd99908b",
"shasum": ""
},
"require": {
+ "composer-runtime-api": "^2.2",
"ext-mbstring": "*",
- "illuminate/collections": "^10.0|^11.0",
"php": "^8.1",
- "symfony/console": "^6.2|^7.0"
+ "symfony/console": "^6.2|^7.0|^8.0"
},
"conflict": {
"illuminate/console": ">=10.17.0 <10.25.0",
"laravel/framework": ">=10.17.0 <10.25.0"
},
"require-dev": {
+ "illuminate/collections": "^10.0|^11.0|^12.0|^13.0",
"mockery/mockery": "^1.5",
- "pestphp/pest": "^2.3",
- "phpstan/phpstan": "^1.11",
- "phpstan/phpstan-mockery": "^1.1"
+ "pestphp/pest": "^2.3|^3.4|^4.0",
+ "phpstan/phpstan": "^1.12.28",
+ "phpstan/phpstan-mockery": "^1.1.3"
},
"suggest": {
"ext-pcntl": "Required for the spinner to be animated."
@@ -2714,7 +2717,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "0.1.x-dev"
+ "dev-main": "0.3.x-dev"
}
},
"autoload": {
@@ -2729,45 +2732,43 @@
"license": [
"MIT"
],
+ "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.1.14"
+ "source": "https://github.com/laravel/prompts/tree/v0.3.24"
},
- "time": "2023-12-27T04:18:09+00:00"
+ "time": "2026-08-20T12:55:36+00:00"
},
{
"name": "laravel/sanctum",
- "version": "v3.3.3",
+ "version": "v4.3.3",
"source": {
"type": "git",
"url": "https://github.com/laravel/sanctum.git",
- "reference": "8c104366459739f3ada0e994bcd3e6fd681ce3d5"
+ "reference": "fee27a573d1a013af3721d86153a65e0b11927e6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/sanctum/zipball/8c104366459739f3ada0e994bcd3e6fd681ce3d5",
- "reference": "8c104366459739f3ada0e994bcd3e6fd681ce3d5",
+ "url": "https://api.github.com/repos/laravel/sanctum/zipball/fee27a573d1a013af3721d86153a65e0b11927e6",
+ "reference": "fee27a573d1a013af3721d86153a65e0b11927e6",
"shasum": ""
},
"require": {
"ext-json": "*",
- "illuminate/console": "^9.21|^10.0",
- "illuminate/contracts": "^9.21|^10.0",
- "illuminate/database": "^9.21|^10.0",
- "illuminate/support": "^9.21|^10.0",
- "php": "^8.0.2"
+ "illuminate/console": "^11.0|^12.0|^13.0",
+ "illuminate/contracts": "^11.0|^12.0|^13.0",
+ "illuminate/database": "^11.0|^12.0|^13.0",
+ "illuminate/support": "^11.0|^12.0|^13.0",
+ "php": "^8.2",
+ "symfony/console": "^7.0|^8.0"
},
"require-dev": {
- "mockery/mockery": "^1.0",
- "orchestra/testbench": "^7.28.2|^8.8.3",
- "phpstan/phpstan": "^1.10",
- "phpunit/phpunit": "^9.6"
+ "mockery/mockery": "^1.6",
+ "orchestra/testbench": "^9.15|^10.8|^11.0",
+ "phpstan/phpstan": "^1.10"
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-master": "3.x-dev"
- },
"laravel": {
"providers": [
"Laravel\\Sanctum\\SanctumServiceProvider"
@@ -2799,35 +2800,36 @@
"issues": "https://github.com/laravel/sanctum/issues",
"source": "https://github.com/laravel/sanctum"
},
- "time": "2023-12-19T18:44:48+00:00"
+ "time": "2026-06-23T18:26:55+00:00"
},
{
"name": "laravel/serializable-closure",
- "version": "v1.3.3",
+ "version": "v2.0.16",
"source": {
"type": "git",
"url": "https://github.com/laravel/serializable-closure.git",
- "reference": "3dbf8a8e914634c48d389c1234552666b3d43754"
+ "reference": "7cfc24e4fa2cca045fb8dd2a797a2b2b13b655ed"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/3dbf8a8e914634c48d389c1234552666b3d43754",
- "reference": "3dbf8a8e914634c48d389c1234552666b3d43754",
+ "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/7cfc24e4fa2cca045fb8dd2a797a2b2b13b655ed",
+ "reference": "7cfc24e4fa2cca045fb8dd2a797a2b2b13b655ed",
"shasum": ""
},
"require": {
- "php": "^7.3|^8.0"
+ "php": "^8.1"
},
"require-dev": {
- "nesbot/carbon": "^2.61",
- "pestphp/pest": "^1.21.3",
- "phpstan/phpstan": "^1.8.2",
- "symfony/var-dumper": "^5.4.11"
+ "illuminate/support": "^10.0|^11.0|^12.0|^13.0",
+ "nesbot/carbon": "^2.67|^3.0",
+ "pestphp/pest": "^2.36|^3.0|^4.0",
+ "phpstan/phpstan": "^2.0",
+ "symfony/var-dumper": "^6.2.0|^7.0.0|^8.0.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.x-dev"
+ "dev-master": "2.x-dev"
}
},
"autoload": {
@@ -2859,43 +2861,40 @@
"issues": "https://github.com/laravel/serializable-closure/issues",
"source": "https://github.com/laravel/serializable-closure"
},
- "time": "2023-11-08T14:08:06+00:00"
+ "time": "2026-08-18T20:28:54+00:00"
},
{
"name": "laravel/tinker",
- "version": "v2.8.2",
+ "version": "v2.11.1",
"source": {
"type": "git",
"url": "https://github.com/laravel/tinker.git",
- "reference": "b936d415b252b499e8c3b1f795cd4fc20f57e1f3"
+ "reference": "c9f80cc835649b5c1842898fb043f8cc098dd741"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/tinker/zipball/b936d415b252b499e8c3b1f795cd4fc20f57e1f3",
- "reference": "b936d415b252b499e8c3b1f795cd4fc20f57e1f3",
+ "url": "https://api.github.com/repos/laravel/tinker/zipball/c9f80cc835649b5c1842898fb043f8cc098dd741",
+ "reference": "c9f80cc835649b5c1842898fb043f8cc098dd741",
"shasum": ""
},
"require": {
- "illuminate/console": "^6.0|^7.0|^8.0|^9.0|^10.0",
- "illuminate/contracts": "^6.0|^7.0|^8.0|^9.0|^10.0",
- "illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0",
+ "illuminate/console": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0",
+ "illuminate/contracts": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0",
+ "illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0",
"php": "^7.2.5|^8.0",
- "psy/psysh": "^0.10.4|^0.11.1",
- "symfony/var-dumper": "^4.3.4|^5.0|^6.0"
+ "psy/psysh": "^0.11.1|^0.12.0",
+ "symfony/var-dumper": "^4.3.4|^5.0|^6.0|^7.0|^8.0"
},
"require-dev": {
"mockery/mockery": "~1.3.3|^1.4.2",
"phpstan/phpstan": "^1.10",
- "phpunit/phpunit": "^8.5.8|^9.3.3"
+ "phpunit/phpunit": "^8.5.8|^9.3.3|^10.0"
},
"suggest": {
- "illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0|^9.0|^10.0)."
+ "illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0)."
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-master": "2.x-dev"
- },
"laravel": {
"providers": [
"Laravel\\Tinker\\TinkerServiceProvider"
@@ -2926,22 +2925,22 @@
],
"support": {
"issues": "https://github.com/laravel/tinker/issues",
- "source": "https://github.com/laravel/tinker/tree/v2.8.2"
+ "source": "https://github.com/laravel/tinker/tree/v2.11.1"
},
- "time": "2023-08-15T14:27:00+00:00"
+ "time": "2026-02-06T14:12:35+00:00"
},
{
"name": "league/commonmark",
- "version": "2.4.1",
+ "version": "2.10.0",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/commonmark.git",
- "reference": "3669d6d5f7a47a93c08ddff335e6d945481a1dd5"
+ "reference": "d2d1aa8b35e072966c89bc0c66cf926e56767dc4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/3669d6d5f7a47a93c08ddff335e6d945481a1dd5",
- "reference": "3669d6d5f7a47a93c08ddff335e6d945481a1dd5",
+ "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/d2d1aa8b35e072966c89bc0c66cf926e56767dc4",
+ "reference": "d2d1aa8b35e072966c89bc0c66cf926e56767dc4",
"shasum": ""
},
"require": {
@@ -2954,8 +2953,8 @@
},
"require-dev": {
"cebe/markdown": "^1.0",
- "commonmark/cmark": "0.30.0",
- "commonmark/commonmark.js": "0.30.0",
+ "commonmark/cmark": "0.31.1",
+ "commonmark/commonmark.js": "0.31.1",
"composer/package-versions-deprecated": "^1.8",
"embed/embed": "^4.4",
"erusev/parsedown": "^1.0",
@@ -2963,13 +2962,14 @@
"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",
+ "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",
- "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0",
+ "symfony/finder": "^5.3 | ^6.0 | ^7.0 || ^8.0",
+ "symfony/process": "^5.4 | ^6.0 | ^7.0 || ^8.0",
+ "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0 | ^7.0 || ^8.0",
"unleashedtech/php-coding-standard": "^3.1.1",
- "vimeo/psalm": "^4.24.0 || ^5.0.0"
+ "vimeo/psalm": "^4.24.0 || ^5.0.0 || ^6.0.0"
},
"suggest": {
"symfony/yaml": "v2.3+ required if using the Front Matter extension"
@@ -2977,7 +2977,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "2.5-dev"
+ "dev-main": "2.11-dev"
}
},
"autoload": {
@@ -3034,7 +3034,7 @@
"type": "tidelift"
}
],
- "time": "2023-08-30T16:55:00+00:00"
+ "time": "2026-08-11T16:06:25+00:00"
},
{
"name": "league/config",
@@ -3120,16 +3120,16 @@
},
{
"name": "league/flysystem",
- "version": "3.23.0",
+ "version": "3.35.3",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/flysystem.git",
- "reference": "d4ad81e2b67396e33dc9d7e54ec74ccf73151dcc"
+ "reference": "5fc8404762179ae514678487b23494fd69b2309c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/d4ad81e2b67396e33dc9d7e54ec74ccf73151dcc",
- "reference": "d4ad81e2b67396e33dc9d7e54ec74ccf73151dcc",
+ "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/5fc8404762179ae514678487b23494fd69b2309c",
+ "reference": "5fc8404762179ae514678487b23494fd69b2309c",
"shasum": ""
},
"require": {
@@ -3149,18 +3149,21 @@
"require-dev": {
"async-aws/s3": "^1.5 || ^2.0",
"async-aws/simple-s3": "^1.1 || ^2.0",
- "aws/aws-sdk-php": "^3.220.0",
+ "aws/aws-sdk-php": "^3.295.10",
"composer/semver": "^3.0",
"ext-fileinfo": "*",
"ext-ftp": "*",
+ "ext-mongodb": "^1.3|^2",
"ext-zip": "*",
"friendsofphp/php-cs-fixer": "^3.5",
"google/cloud-storage": "^1.23",
+ "guzzlehttp/psr7": "^2.6",
"microsoft/azure-storage-blob": "^1.1",
- "phpseclib/phpseclib": "^3.0.34",
+ "mongodb/mongodb": "^1.2|^2",
+ "phpseclib/phpseclib": "^3.0.36",
"phpstan/phpstan": "^1.10",
"phpunit/phpunit": "^9.5.11|^10.0",
- "sabre/dav": "^4.3.1"
+ "sabre/dav": "^4.6.0"
},
"type": "library",
"autoload": {
@@ -3194,19 +3197,9 @@
],
"support": {
"issues": "https://github.com/thephpleague/flysystem/issues",
- "source": "https://github.com/thephpleague/flysystem/tree/3.23.0"
+ "source": "https://github.com/thephpleague/flysystem/tree/3.35.3"
},
- "funding": [
- {
- "url": "https://ecologi.com/frankdejonge",
- "type": "custom"
- },
- {
- "url": "https://github.com/frankdejonge",
- "type": "github"
- }
- ],
- "time": "2023-12-04T10:16:17+00:00"
+ "time": "2026-08-22T12:55:54+00:00"
},
{
"name": "league/flysystem-aws-s3-v3",
@@ -3265,16 +3258,16 @@
},
{
"name": "league/flysystem-local",
- "version": "3.23.0",
+ "version": "3.35.3",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/flysystem-local.git",
- "reference": "5cf046ba5f059460e86a997c504dd781a39a109b"
+ "reference": "a099b24dce160f3b2239043d13d47c4a1a214ea4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/5cf046ba5f059460e86a997c504dd781a39a109b",
- "reference": "5cf046ba5f059460e86a997c504dd781a39a109b",
+ "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/a099b24dce160f3b2239043d13d47c4a1a214ea4",
+ "reference": "a099b24dce160f3b2239043d13d47c4a1a214ea4",
"shasum": ""
},
"require": {
@@ -3308,44 +3301,159 @@
"local"
],
"support": {
- "issues": "https://github.com/thephpleague/flysystem-local/issues",
- "source": "https://github.com/thephpleague/flysystem-local/tree/3.23.0"
+ "source": "https://github.com/thephpleague/flysystem-local/tree/3.35.3"
+ },
+ "time": "2026-08-12T13:29:21+00:00"
+ },
+ {
+ "name": "league/flysystem-webdav",
+ "version": "3.31.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/thephpleague/flysystem-webdav.git",
+ "reference": "1705b5d4aab6d755a78ea850e523dda9c58ad20f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/thephpleague/flysystem-webdav/zipball/1705b5d4aab6d755a78ea850e523dda9c58ad20f",
+ "reference": "1705b5d4aab6d755a78ea850e523dda9c58ad20f",
+ "shasum": ""
+ },
+ "require": {
+ "league/flysystem": "^3.6.0",
+ "php": "^8.0.2",
+ "sabre/dav": "^4.6.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "League\\Flysystem\\WebDAV\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Frank de Jonge",
+ "email": "info@frankdejonge.nl"
+ }
+ ],
+ "description": "WebDAV filesystem adapter for Flysystem.",
+ "keywords": [
+ "Flysystem",
+ "WebDAV",
+ "file",
+ "files",
+ "filesystem"
+ ],
+ "support": {
+ "source": "https://github.com/thephpleague/flysystem-webdav/tree/3.31.0"
+ },
+ "time": "2026-01-23T15:30:45+00:00"
+ },
+ {
+ "name": "league/mime-type-detection",
+ "version": "1.17.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/thephpleague/mime-type-detection.git",
+ "reference": "f5f47eff7c48ed1003069a2ca67f316fb4021c76"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/f5f47eff7c48ed1003069a2ca67f316fb4021c76",
+ "reference": "f5f47eff7c48ed1003069a2ca67f316fb4021c76",
+ "shasum": ""
+ },
+ "require": {
+ "ext-fileinfo": "*",
+ "php": "^7.4 || ^8.0"
+ },
+ "require-dev": {
+ "friendsofphp/php-cs-fixer": "^3.2",
+ "phpstan/phpstan": "^0.12.68",
+ "phpunit/phpunit": "^8.5.8 || ^9.3 || ^10.0 || ^11.0 || ^12.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "League\\MimeTypeDetection\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Frank de Jonge",
+ "email": "info@frankdejonge.nl"
+ }
+ ],
+ "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.17.0"
},
"funding": [
- {
- "url": "https://ecologi.com/frankdejonge",
- "type": "custom"
- },
{
"url": "https://github.com/frankdejonge",
"type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/league/flysystem",
+ "type": "tidelift"
}
],
- "time": "2023-12-04T10:14:46+00:00"
+ "time": "2026-07-09T11:49:27+00:00"
},
{
- "name": "league/flysystem-webdav",
- "version": "3.31.0",
+ "name": "league/uri",
+ "version": "7.8.1",
"source": {
"type": "git",
- "url": "https://github.com/thephpleague/flysystem-webdav.git",
- "reference": "1705b5d4aab6d755a78ea850e523dda9c58ad20f"
+ "url": "https://github.com/thephpleague/uri.git",
+ "reference": "08cf38e3924d4f56238125547b5720496fac8fd4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/flysystem-webdav/zipball/1705b5d4aab6d755a78ea850e523dda9c58ad20f",
- "reference": "1705b5d4aab6d755a78ea850e523dda9c58ad20f",
+ "url": "https://api.github.com/repos/thephpleague/uri/zipball/08cf38e3924d4f56238125547b5720496fac8fd4",
+ "reference": "08cf38e3924d4f56238125547b5720496fac8fd4",
"shasum": ""
},
"require": {
- "league/flysystem": "^3.6.0",
- "php": "^8.0.2",
- "sabre/dav": "^4.6.0"
+ "league/uri-interfaces": "^7.8.1",
+ "php": "^8.1",
+ "psr/http-factory": "^1"
+ },
+ "conflict": {
+ "league/uri-schemes": "^1.0"
+ },
+ "suggest": {
+ "ext-bcmath": "to improve IPV4 host parsing",
+ "ext-dom": "to convert the URI into an HTML anchor tag",
+ "ext-fileinfo": "to create Data URI from file contennts",
+ "ext-gmp": "to improve IPV4 host parsing",
+ "ext-intl": "to handle IDN host with the best performance",
+ "ext-uri": "to use the PHP native URI class",
+ "jeremykendall/php-domain-parser": "to further parse the URI host and resolve its Public Suffix and Top Level Domain",
+ "league/uri-components": "to provide additional tools to manipulate URI objects components",
+ "league/uri-polyfill": "to backport the PHP URI extension for older versions of PHP",
+ "php-64bit": "to improve IPV4 host parsing",
+ "rowbot/url": "to handle URLs using the WHATWG URL Living Standard specification",
+ "symfony/polyfill-intl-idn": "to handle IDN host via the Symfony polyfill if ext-intl is not present"
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "7.x-dev"
+ }
+ },
"autoload": {
"psr-4": {
- "League\\Flysystem\\WebDAV\\": ""
+ "League\\Uri\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -3354,50 +3462,87 @@
],
"authors": [
{
- "name": "Frank de Jonge",
- "email": "info@frankdejonge.nl"
+ "name": "Ignace Nyamagana Butera",
+ "email": "nyamsprod@gmail.com",
+ "homepage": "https://nyamsprod.com"
}
],
- "description": "WebDAV filesystem adapter for Flysystem.",
+ "description": "URI manipulation library",
+ "homepage": "https://uri.thephpleague.com",
"keywords": [
- "Flysystem",
- "WebDAV",
- "file",
- "files",
- "filesystem"
+ "URN",
+ "data-uri",
+ "file-uri",
+ "ftp",
+ "hostname",
+ "http",
+ "https",
+ "middleware",
+ "parse_str",
+ "parse_url",
+ "psr-7",
+ "query-string",
+ "querystring",
+ "rfc2141",
+ "rfc3986",
+ "rfc3987",
+ "rfc6570",
+ "rfc8141",
+ "uri",
+ "uri-template",
+ "url",
+ "ws"
],
"support": {
- "source": "https://github.com/thephpleague/flysystem-webdav/tree/3.31.0"
+ "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"
},
- "time": "2026-01-23T15:30:45+00:00"
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/nyamsprod",
+ "type": "github"
+ }
+ ],
+ "time": "2026-03-15T20:22:25+00:00"
},
{
- "name": "league/mime-type-detection",
- "version": "1.14.0",
+ "name": "league/uri-interfaces",
+ "version": "7.8.1",
"source": {
"type": "git",
- "url": "https://github.com/thephpleague/mime-type-detection.git",
- "reference": "b6a5854368533df0295c5761a0253656a2e52d9e"
+ "url": "https://github.com/thephpleague/uri-interfaces.git",
+ "reference": "85d5c77c5d6d3af6c54db4a78246364908f3c928"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/b6a5854368533df0295c5761a0253656a2e52d9e",
- "reference": "b6a5854368533df0295c5761a0253656a2e52d9e",
+ "url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/85d5c77c5d6d3af6c54db4a78246364908f3c928",
+ "reference": "85d5c77c5d6d3af6c54db4a78246364908f3c928",
"shasum": ""
},
"require": {
- "ext-fileinfo": "*",
- "php": "^7.4 || ^8.0"
+ "ext-filter": "*",
+ "php": "^8.1",
+ "psr/http-message": "^1.1 || ^2.0"
},
- "require-dev": {
- "friendsofphp/php-cs-fixer": "^3.2",
- "phpstan/phpstan": "^0.12.68",
- "phpunit/phpunit": "^8.5.8 || ^9.3 || ^10.0"
+ "suggest": {
+ "ext-bcmath": "to improve IPV4 host parsing",
+ "ext-gmp": "to improve IPV4 host parsing",
+ "ext-intl": "to handle IDN host with the best performance",
+ "php-64bit": "to improve IPV4 host parsing",
+ "rowbot/url": "to handle URLs using the WHATWG URL Living Standard specification",
+ "symfony/polyfill-intl-idn": "to handle IDN host via the Symfony polyfill if ext-intl is not present"
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "7.x-dev"
+ }
+ },
"autoload": {
"psr-4": {
- "League\\MimeTypeDetection\\": "src"
+ "League\\Uri\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -3406,62 +3551,82 @@
],
"authors": [
{
- "name": "Frank de Jonge",
- "email": "info@frankdejonge.nl"
+ "name": "Ignace Nyamagana Butera",
+ "email": "nyamsprod@gmail.com",
+ "homepage": "https://nyamsprod.com"
}
],
- "description": "Mime-type detection for Flysystem",
+ "description": "Common tools for parsing and resolving RFC3987/RFC3986 URI",
+ "homepage": "https://uri.thephpleague.com",
+ "keywords": [
+ "data-uri",
+ "file-uri",
+ "ftp",
+ "hostname",
+ "http",
+ "https",
+ "parse_str",
+ "parse_url",
+ "psr-7",
+ "query-string",
+ "querystring",
+ "rfc3986",
+ "rfc3987",
+ "rfc6570",
+ "uri",
+ "url",
+ "ws"
+ ],
"support": {
- "issues": "https://github.com/thephpleague/mime-type-detection/issues",
- "source": "https://github.com/thephpleague/mime-type-detection/tree/1.14.0"
+ "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"
},
"funding": [
{
- "url": "https://github.com/frankdejonge",
+ "url": "https://github.com/sponsors/nyamsprod",
"type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/league/flysystem",
- "type": "tidelift"
}
],
- "time": "2023-10-17T14:13:20+00:00"
+ "time": "2026-03-08T20:05:35+00:00"
},
{
"name": "maatwebsite/excel",
- "version": "3.1.51",
+ "version": "3.1.70",
"source": {
"type": "git",
"url": "https://github.com/SpartnerNL/Laravel-Excel.git",
- "reference": "6d3c78ce6645abada32e03b40dc7f3c561878bc3"
+ "reference": "b5cafdfcf7ec63924e83303763be8fcae340f70b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/SpartnerNL/Laravel-Excel/zipball/6d3c78ce6645abada32e03b40dc7f3c561878bc3",
- "reference": "6d3c78ce6645abada32e03b40dc7f3c561878bc3",
+ "url": "https://api.github.com/repos/SpartnerNL/Laravel-Excel/zipball/b5cafdfcf7ec63924e83303763be8fcae340f70b",
+ "reference": "b5cafdfcf7ec63924e83303763be8fcae340f70b",
"shasum": ""
},
"require": {
"composer/semver": "^3.3",
"ext-json": "*",
- "illuminate/support": "5.8.*||^6.0||^7.0||^8.0||^9.0||^10.0",
+ "illuminate/support": "5.8.*||^6.0||^7.0||^8.0||^9.0||^10.0||^11.0||^12.0||^13.0",
"php": "^7.0||^8.0",
- "phpoffice/phpspreadsheet": "^1.18",
+ "phpoffice/phpspreadsheet": "^1.30.5",
"psr/simple-cache": "^1.0||^2.0||^3.0"
},
"require-dev": {
- "orchestra/testbench": "^6.0||^7.0||^8.0",
+ "laravel/scout": "^7.0||^8.0||^9.0||^10.0||^11.0",
+ "orchestra/testbench": "^6.0||^7.0||^8.0||^9.0||^10.0||^11.0",
"predis/predis": "^1.1"
},
"type": "library",
"extra": {
"laravel": {
- "providers": [
- "Maatwebsite\\Excel\\ExcelServiceProvider"
- ],
"aliases": {
"Excel": "Maatwebsite\\Excel\\Facades\\Excel"
- }
+ },
+ "providers": [
+ "Maatwebsite\\Excel\\ExcelServiceProvider"
+ ]
}
},
"autoload": {
@@ -3493,7 +3658,7 @@
],
"support": {
"issues": "https://github.com/SpartnerNL/Laravel-Excel/issues",
- "source": "https://github.com/SpartnerNL/Laravel-Excel/tree/3.1.51"
+ "source": "https://github.com/SpartnerNL/Laravel-Excel/tree/3.1.70"
},
"funding": [
{
@@ -3505,35 +3670,36 @@
"type": "github"
}
],
- "time": "2023-12-08T12:44:49+00:00"
+ "time": "2026-08-13T09:11:54+00:00"
},
{
"name": "maennchen/zipstream-php",
- "version": "3.1.0",
+ "version": "3.1.2",
"source": {
"type": "git",
"url": "https://github.com/maennchen/ZipStream-PHP.git",
- "reference": "b8174494eda667f7d13876b4a7bfef0f62a7c0d1"
+ "reference": "aeadcf5c412332eb426c0f9b4485f6accba2a99f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/maennchen/ZipStream-PHP/zipball/b8174494eda667f7d13876b4a7bfef0f62a7c0d1",
- "reference": "b8174494eda667f7d13876b4a7bfef0f62a7c0d1",
+ "url": "https://api.github.com/repos/maennchen/ZipStream-PHP/zipball/aeadcf5c412332eb426c0f9b4485f6accba2a99f",
+ "reference": "aeadcf5c412332eb426c0f9b4485f6accba2a99f",
"shasum": ""
},
"require": {
"ext-mbstring": "*",
"ext-zlib": "*",
- "php-64bit": "^8.1"
+ "php-64bit": "^8.2"
},
"require-dev": {
+ "brianium/paratest": "^7.7",
"ext-zip": "*",
"friendsofphp/php-cs-fixer": "^3.16",
"guzzlehttp/guzzle": "^7.5",
"mikey179/vfsstream": "^1.6",
"php-coveralls/php-coveralls": "^2.5",
- "phpunit/phpunit": "^10.0",
- "vimeo/psalm": "^5.0"
+ "phpunit/phpunit": "^11.0",
+ "vimeo/psalm": "^6.0"
},
"suggest": {
"guzzlehttp/psr7": "^2.4",
@@ -3574,19 +3740,15 @@
],
"support": {
"issues": "https://github.com/maennchen/ZipStream-PHP/issues",
- "source": "https://github.com/maennchen/ZipStream-PHP/tree/3.1.0"
+ "source": "https://github.com/maennchen/ZipStream-PHP/tree/3.1.2"
},
"funding": [
{
"url": "https://github.com/maennchen",
"type": "github"
- },
- {
- "url": "https://opencollective.com/zipstream",
- "type": "open_collective"
}
],
- "time": "2023-06-21T14:59:35+00:00"
+ "time": "2025-01-27T12:07:53+00:00"
},
{
"name": "markbaker/complex",
@@ -3763,24 +3925,24 @@
},
{
"name": "masterminds/html5",
- "version": "2.8.1",
+ "version": "2.11.0",
"source": {
"type": "git",
"url": "https://github.com/Masterminds/html5-php.git",
- "reference": "f47dcf3c70c584de14f21143c55d9939631bc6cf"
+ "reference": "a1e7a2f88ee13635d86fc61cfbdf2306a76ddfc7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/f47dcf3c70c584de14f21143c55d9939631bc6cf",
- "reference": "f47dcf3c70c584de14f21143c55d9939631bc6cf",
+ "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/a1e7a2f88ee13635d86fc61cfbdf2306a76ddfc7",
+ "reference": "a1e7a2f88ee13635d86fc61cfbdf2306a76ddfc7",
"shasum": ""
},
"require": {
"ext-dom": "*",
- "php": ">=5.3.0"
+ "php": ">=7.4"
},
"require-dev": {
- "phpunit/phpunit": "^4.8.35 || ^5.7.21 || ^6 || ^7 || ^8"
+ "phpunit/phpunit": "^6 || ^7 || ^8 || ^9 || ^10"
},
"type": "library",
"extra": {
@@ -3824,22 +3986,22 @@
],
"support": {
"issues": "https://github.com/Masterminds/html5-php/issues",
- "source": "https://github.com/Masterminds/html5-php/tree/2.8.1"
+ "source": "https://github.com/Masterminds/html5-php/tree/2.11.0"
},
- "time": "2023-05-10T11:58:31+00:00"
+ "time": "2026-08-18T06:18:41+00:00"
},
{
"name": "monolog/monolog",
- "version": "3.5.0",
+ "version": "3.10.0",
"source": {
"type": "git",
"url": "https://github.com/Seldaek/monolog.git",
- "reference": "c915e2634718dbc8a4a15c61b0e62e7a44e14448"
+ "reference": "b321dd6749f0bf7189444158a3ce785cc16d69b0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Seldaek/monolog/zipball/c915e2634718dbc8a4a15c61b0e62e7a44e14448",
- "reference": "c915e2634718dbc8a4a15c61b0e62e7a44e14448",
+ "url": "https://api.github.com/repos/Seldaek/monolog/zipball/b321dd6749f0bf7189444158a3ce785cc16d69b0",
+ "reference": "b321dd6749f0bf7189444158a3ce785cc16d69b0",
"shasum": ""
},
"require": {
@@ -3857,14 +4019,16 @@
"graylog2/gelf-php": "^1.4.2 || ^2.0",
"guzzlehttp/guzzle": "^7.4.5",
"guzzlehttp/psr7": "^2.2",
- "mongodb/mongodb": "^1.8",
+ "mongodb/mongodb": "^1.8 || ^2.0",
"php-amqplib/php-amqplib": "~2.4 || ^3",
- "phpstan/phpstan": "^1.9",
- "phpstan/phpstan-deprecation-rules": "^1.0",
- "phpstan/phpstan-strict-rules": "^1.4",
- "phpunit/phpunit": "^10.1",
+ "php-console/php-console": "^3.1.8",
+ "phpstan/phpstan": "^2",
+ "phpstan/phpstan-deprecation-rules": "^2",
+ "phpstan/phpstan-strict-rules": "^2",
+ "phpunit/phpunit": "^10.5.17 || ^11.0.7",
"predis/predis": "^1.1 || ^2",
- "ruflin/elastica": "^7",
+ "rollbar/rollbar": "^4.0",
+ "ruflin/elastica": "^7 || ^8",
"symfony/mailer": "^5.4 || ^6",
"symfony/mime": "^5.4 || ^6"
},
@@ -3915,7 +4079,7 @@
],
"support": {
"issues": "https://github.com/Seldaek/monolog/issues",
- "source": "https://github.com/Seldaek/monolog/tree/3.5.0"
+ "source": "https://github.com/Seldaek/monolog/tree/3.10.0"
},
"funding": [
{
@@ -3927,7 +4091,7 @@
"type": "tidelift"
}
],
- "time": "2023-10-27T15:32:31+00:00"
+ "time": "2026-01-02T08:56:05+00:00"
},
{
"name": "mtdowling/jmespath.php",
@@ -3997,52 +4161,46 @@
},
{
"name": "nesbot/carbon",
- "version": "2.72.1",
+ "version": "3.13.2",
"source": {
"type": "git",
- "url": "https://github.com/briannesbitt/Carbon.git",
- "reference": "2b3b3db0a2d0556a177392ff1a3bf5608fa09f78"
+ "url": "https://github.com/CarbonPHP/carbon.git",
+ "reference": "a1c54919f5fff9800cd03c32bd01defd5a4061cb"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/2b3b3db0a2d0556a177392ff1a3bf5608fa09f78",
- "reference": "2b3b3db0a2d0556a177392ff1a3bf5608fa09f78",
+ "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/a1c54919f5fff9800cd03c32bd01defd5a4061cb",
+ "reference": "a1c54919f5fff9800cd03c32bd01defd5a4061cb",
"shasum": ""
},
"require": {
- "carbonphp/carbon-doctrine-types": "*",
+ "carbonphp/carbon-doctrine-types": "<100.0",
"ext-json": "*",
- "php": "^7.1.8 || ^8.0",
+ "php": "^8.1",
"psr/clock": "^1.0",
+ "symfony/clock": "^6.3.12 || ^7.0 || ^8.0",
"symfony/polyfill-mbstring": "^1.0",
- "symfony/polyfill-php80": "^1.16",
- "symfony/translation": "^3.4 || ^4.0 || ^5.0 || ^6.0"
+ "symfony/translation": "^4.4.18 || ^5.2.1 || ^6.0 || ^7.0 || ^8.0"
},
"provide": {
"psr/clock-implementation": "1.0"
},
"require-dev": {
- "doctrine/dbal": "^2.0 || ^3.1.4 || ^4.0",
- "doctrine/orm": "^2.7 || ^3.0",
- "friendsofphp/php-cs-fixer": "^3.0",
- "kylekatarnls/multi-tester": "^2.0",
- "ondrejmirtes/better-reflection": "*",
- "phpmd/phpmd": "^2.9",
- "phpstan/extension-installer": "^1.0",
- "phpstan/phpstan": "^0.12.99 || ^1.7.14",
- "phpunit/php-file-iterator": "^2.0.5 || ^3.0.6",
- "phpunit/phpunit": "^7.5.20 || ^8.5.26 || ^9.5.20",
- "squizlabs/php_codesniffer": "^3.4"
+ "doctrine/dbal": "^3.6.3 || ^4.0",
+ "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",
+ "phpstan/extension-installer": "^1.4.3",
+ "phpstan/phpstan": "^2.1.22",
+ "phpunit/phpunit": "^10.5.53",
+ "squizlabs/php_codesniffer": "^3.13.4 || ^4.0.0"
},
"bin": [
"bin/carbon"
],
"type": "library",
"extra": {
- "branch-alias": {
- "dev-3.x": "3.x-dev",
- "dev-master": "2.x-dev"
- },
"laravel": {
"providers": [
"Carbon\\Laravel\\ServiceProvider"
@@ -4052,6 +4210,10 @@
"includes": [
"extension.neon"
]
+ },
+ "branch-alias": {
+ "dev-2.x": "2.x-dev",
+ "dev-master": "3.x-dev"
}
},
"autoload": {
@@ -4075,16 +4237,16 @@
}
],
"description": "An API extension for DateTime that supports 281 different languages.",
- "homepage": "https://carbon.nesbot.com",
+ "homepage": "https://carbonphp.github.io/carbon/",
"keywords": [
"date",
"datetime",
"time"
],
"support": {
- "docs": "https://carbon.nesbot.com/docs",
- "issues": "https://github.com/briannesbitt/Carbon/issues",
- "source": "https://github.com/briannesbitt/Carbon"
+ "docs": "https://carbonphp.github.io/carbon/guide/getting-started/introduction.html",
+ "issues": "https://github.com/CarbonPHP/carbon/issues",
+ "source": "https://github.com/CarbonPHP/carbon"
},
"funding": [
{
@@ -4100,38 +4262,43 @@
"type": "tidelift"
}
],
- "time": "2023-12-08T23:47:49+00:00"
+ "time": "2026-08-08T11:40:35+00:00"
},
{
"name": "nette/schema",
- "version": "v1.2.5",
+ "version": "v1.3.6",
"source": {
"type": "git",
"url": "https://github.com/nette/schema.git",
- "reference": "0462f0166e823aad657c9224d0f849ecac1ba10a"
+ "reference": "c54350438cd6914616f790a49cb424605f421562"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nette/schema/zipball/0462f0166e823aad657c9224d0f849ecac1ba10a",
- "reference": "0462f0166e823aad657c9224d0f849ecac1ba10a",
+ "url": "https://api.github.com/repos/nette/schema/zipball/c54350438cd6914616f790a49cb424605f421562",
+ "reference": "c54350438cd6914616f790a49cb424605f421562",
"shasum": ""
},
"require": {
- "nette/utils": "^2.5.7 || ^3.1.5 || ^4.0",
- "php": "7.1 - 8.3"
+ "nette/utils": "^4.0",
+ "php": "8.1 - 8.5"
},
"require-dev": {
- "nette/tester": "^2.3 || ^2.4",
- "phpstan/phpstan-nette": "^1.0",
- "tracy/tracy": "^2.7"
+ "nette/phpstan-rules": "^1.0",
+ "nette/tester": "^2.6",
+ "phpstan/extension-installer": "^1.4@stable",
+ "phpstan/phpstan": "^2.1.39@stable",
+ "tracy/tracy": "^2.8"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.2-dev"
+ "dev-master": "1.3-dev"
}
},
"autoload": {
+ "psr-4": {
+ "Nette\\": "src"
+ },
"classmap": [
"src/"
]
@@ -4160,40 +4327,42 @@
],
"support": {
"issues": "https://github.com/nette/schema/issues",
- "source": "https://github.com/nette/schema/tree/v1.2.5"
+ "source": "https://github.com/nette/schema/tree/v1.3.6"
},
- "time": "2023-10-05T20:37:59+00:00"
+ "time": "2026-08-16T21:58:41+00:00"
},
{
"name": "nette/utils",
- "version": "v4.0.3",
+ "version": "v4.1.5",
"source": {
"type": "git",
"url": "https://github.com/nette/utils.git",
- "reference": "a9d127dd6a203ce6d255b2e2db49759f7506e015"
+ "reference": "b043439dbdf954e6c28b5ea7e34b0100f83165e0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nette/utils/zipball/a9d127dd6a203ce6d255b2e2db49759f7506e015",
- "reference": "a9d127dd6a203ce6d255b2e2db49759f7506e015",
+ "url": "https://api.github.com/repos/nette/utils/zipball/b043439dbdf954e6c28b5ea7e34b0100f83165e0",
+ "reference": "b043439dbdf954e6c28b5ea7e34b0100f83165e0",
"shasum": ""
},
"require": {
- "php": ">=8.0 <8.4"
+ "php": "8.2 - 8.5"
},
"conflict": {
"nette/finder": "<3",
"nette/schema": "<1.2.2"
},
"require-dev": {
- "jetbrains/phpstorm-attributes": "dev-master",
+ "jetbrains/phpstorm-attributes": "^1.2",
+ "nette/phpstan-rules": "^1.0",
"nette/tester": "^2.5",
- "phpstan/phpstan": "^1.0",
+ "phpstan/extension-installer": "^1.4@stable",
+ "phpstan/phpstan": "^2.1@stable",
"tracy/tracy": "^2.9"
},
"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...",
@@ -4202,10 +4371,13 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.0-dev"
+ "dev-master": "4.1-dev"
}
},
"autoload": {
+ "psr-4": {
+ "Nette\\": "src"
+ },
"classmap": [
"src/"
]
@@ -4246,31 +4418,32 @@
],
"support": {
"issues": "https://github.com/nette/utils/issues",
- "source": "https://github.com/nette/utils/tree/v4.0.3"
+ "source": "https://github.com/nette/utils/tree/v4.1.5"
},
- "time": "2023-10-29T21:02:13+00:00"
+ "time": "2026-07-17T23:02:45+00:00"
},
{
"name": "nikic/php-parser",
- "version": "v4.18.0",
+ "version": "v5.8.0",
"source": {
"type": "git",
"url": "https://github.com/nikic/PHP-Parser.git",
- "reference": "1bcbb2179f97633e98bbbc87044ee2611c7d7999"
+ "reference": "044a6a392ff8ad0d61f14370a5fbbd0a0107152f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/1bcbb2179f97633e98bbbc87044ee2611c7d7999",
- "reference": "1bcbb2179f97633e98bbbc87044ee2611c7d7999",
+ "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/044a6a392ff8ad0d61f14370a5fbbd0a0107152f",
+ "reference": "044a6a392ff8ad0d61f14370a5fbbd0a0107152f",
"shasum": ""
},
"require": {
+ "ext-json": "*",
"ext-tokenizer": "*",
- "php": ">=7.0"
+ "php": ">=7.4"
},
"require-dev": {
"ircmaxell/php-yacc": "^0.0.7",
- "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0"
+ "phpunit/phpunit": "^9.0"
},
"bin": [
"bin/php-parse"
@@ -4278,7 +4451,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.9-dev"
+ "dev-master": "5.x-dev"
}
},
"autoload": {
@@ -4302,39 +4475,37 @@
],
"support": {
"issues": "https://github.com/nikic/PHP-Parser/issues",
- "source": "https://github.com/nikic/PHP-Parser/tree/v4.18.0"
+ "source": "https://github.com/nikic/PHP-Parser/tree/v5.8.0"
},
- "time": "2023-12-10T21:03:43+00:00"
+ "time": "2026-07-04T14:30:18+00:00"
},
{
"name": "nunomaduro/termwind",
- "version": "v1.15.1",
+ "version": "v2.4.0",
"source": {
"type": "git",
"url": "https://github.com/nunomaduro/termwind.git",
- "reference": "8ab0b32c8caa4a2e09700ea32925441385e4a5dc"
+ "reference": "712a31b768f5daea284c2169a7d227031001b9a8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/8ab0b32c8caa4a2e09700ea32925441385e4a5dc",
- "reference": "8ab0b32c8caa4a2e09700ea32925441385e4a5dc",
+ "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/712a31b768f5daea284c2169a7d227031001b9a8",
+ "reference": "712a31b768f5daea284c2169a7d227031001b9a8",
"shasum": ""
},
"require": {
"ext-mbstring": "*",
- "php": "^8.0",
- "symfony/console": "^5.3.0|^6.0.0"
- },
- "require-dev": {
- "ergebnis/phpstan-rules": "^1.0.",
- "illuminate/console": "^8.0|^9.0",
- "illuminate/support": "^8.0|^9.0",
- "laravel/pint": "^1.0.0",
- "pestphp/pest": "^1.21.0",
- "pestphp/pest-plugin-mock": "^1.0",
- "phpstan/phpstan": "^1.4.6",
- "phpstan/phpstan-strict-rules": "^1.1.0",
- "symfony/var-dumper": "^5.2.7|^6.0.0",
+ "php": "^8.2",
+ "symfony/console": "^7.4.4 || ^8.0.4"
+ },
+ "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",
+ "phpstan/phpstan-strict-rules": "^1.6.2",
+ "symfony/var-dumper": "^7.3.5 || ^8.0.4",
"thecodingmachine/phpstan-strict-rules": "^1.0.0"
},
"type": "library",
@@ -4343,6 +4514,9 @@
"providers": [
"Termwind\\Laravel\\TermwindServiceProvider"
]
+ },
+ "branch-alias": {
+ "dev-2.x": "2.x-dev"
}
},
"autoload": {
@@ -4363,7 +4537,7 @@
"email": "enunomaduro@gmail.com"
}
],
- "description": "Its like Tailwind CSS, but for the console.",
+ "description": "It's like Tailwind CSS, but for the console.",
"keywords": [
"cli",
"console",
@@ -4374,7 +4548,7 @@
],
"support": {
"issues": "https://github.com/nunomaduro/termwind/issues",
- "source": "https://github.com/nunomaduro/termwind/tree/v1.15.1"
+ "source": "https://github.com/nunomaduro/termwind/tree/v2.4.0"
},
"funding": [
{
@@ -4390,25 +4564,25 @@
"type": "github"
}
],
- "time": "2023-02-08T01:06:31+00:00"
+ "time": "2026-02-16T23:10:27+00:00"
},
{
"name": "opcodesio/log-viewer",
- "version": "v3.1.11",
+ "version": "v3.24.2",
"source": {
"type": "git",
"url": "https://github.com/opcodesio/log-viewer.git",
- "reference": "2d4a741d17fe96d842ba4134663b0958162e72bb"
+ "reference": "bdf931182c40001dd3ebf728fdded0648b121ae0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/opcodesio/log-viewer/zipball/2d4a741d17fe96d842ba4134663b0958162e72bb",
- "reference": "2d4a741d17fe96d842ba4134663b0958162e72bb",
+ "url": "https://api.github.com/repos/opcodesio/log-viewer/zipball/bdf931182c40001dd3ebf728fdded0648b121ae0",
+ "reference": "bdf931182c40001dd3ebf728fdded0648b121ae0",
"shasum": ""
},
"require": {
- "illuminate/contracts": "^8.0|^9.0|^10.0",
- "opcodesio/mail-parser": "^0.1.6",
+ "illuminate/contracts": "^8.0|^9.0|^10.0|^11.0|^12.0|^13.0",
+ "opcodesio/mail-parser": "^0.2.3",
"php": "^8.0"
},
"conflict": {
@@ -4418,10 +4592,10 @@
"guzzlehttp/guzzle": "^7.2",
"itsgoingd/clockwork": "^5.1",
"laravel/pint": "^1.0",
- "nunomaduro/collision": "^7.0",
- "orchestra/testbench": "^7.6|^8.0",
- "pestphp/pest": "^2.0",
- "pestphp/pest-plugin-laravel": "^2.0",
+ "nunomaduro/collision": "^7.0|^8.0",
+ "orchestra/testbench": "^7.6|^8.0|^9.5|^10.0|^11.0",
+ "pestphp/pest": "^2.0|^3.7|^4.4",
+ "pestphp/pest-plugin-laravel": "^2.0|^3.1|^4.1",
"spatie/test-time": "^1.3"
},
"suggest": {
@@ -4430,12 +4604,12 @@
"type": "library",
"extra": {
"laravel": {
- "providers": [
- "Opcodes\\LogViewer\\LogViewerServiceProvider"
- ],
"aliases": {
"LogViewer": "Opcodes\\LogViewer\\Facades\\LogViewer"
- }
+ },
+ "providers": [
+ "Opcodes\\LogViewer\\LogViewerServiceProvider"
+ ]
}
},
"autoload": {
@@ -4466,7 +4640,7 @@
],
"support": {
"issues": "https://github.com/opcodesio/log-viewer/issues",
- "source": "https://github.com/opcodesio/log-viewer/tree/v3.1.11"
+ "source": "https://github.com/opcodesio/log-viewer/tree/v3.24.2"
},
"funding": [
{
@@ -4478,20 +4652,20 @@
"type": "github"
}
],
- "time": "2023-12-30T15:28:03+00:00"
+ "time": "2026-06-11T13:41:17+00:00"
},
{
"name": "opcodesio/mail-parser",
- "version": "v0.1.6",
+ "version": "v0.2.4",
"source": {
"type": "git",
"url": "https://github.com/opcodesio/mail-parser.git",
- "reference": "639ef31cbd146a63416283e75afce152e13233ea"
+ "reference": "7151e4183288e46d911a76803c5545a1c8822226"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/opcodesio/mail-parser/zipball/639ef31cbd146a63416283e75afce152e13233ea",
- "reference": "639ef31cbd146a63416283e75afce152e13233ea",
+ "url": "https://api.github.com/repos/opcodesio/mail-parser/zipball/7151e4183288e46d911a76803c5545a1c8822226",
+ "reference": "7151e4183288e46d911a76803c5545a1c8822226",
"shasum": ""
},
"require": {
@@ -4529,115 +4703,26 @@
],
"support": {
"issues": "https://github.com/opcodesio/mail-parser/issues",
- "source": "https://github.com/opcodesio/mail-parser/tree/v0.1.6"
- },
- "time": "2023-11-19T08:47:43+00:00"
- },
- {
- "name": "phenx/php-font-lib",
- "version": "0.5.5",
- "source": {
- "type": "git",
- "url": "https://github.com/dompdf/php-font-lib.git",
- "reference": "671df0f3516252011aa94f9e8e3b3b66199339f8"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/dompdf/php-font-lib/zipball/671df0f3516252011aa94f9e8e3b3b66199339f8",
- "reference": "671df0f3516252011aa94f9e8e3b3b66199339f8",
- "shasum": ""
- },
- "require": {
- "ext-mbstring": "*"
- },
- "require-dev": {
- "symfony/phpunit-bridge": "^3 || ^4 || ^5 || ^6"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "FontLib\\": "src/FontLib"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "LGPL-2.1-or-later"
- ],
- "authors": [
- {
- "name": "Fabien Ménager",
- "email": "fabien.menager@gmail.com"
- }
- ],
- "description": "A library to read, parse, export and make subsets of different types of font files.",
- "homepage": "https://github.com/PhenX/php-font-lib",
- "support": {
- "issues": "https://github.com/dompdf/php-font-lib/issues",
- "source": "https://github.com/dompdf/php-font-lib/tree/0.5.5"
- },
- "time": "2024-01-07T18:13:29+00:00"
- },
- {
- "name": "phenx/php-svg-lib",
- "version": "0.5.1",
- "source": {
- "type": "git",
- "url": "https://github.com/dompdf/php-svg-lib.git",
- "reference": "8a8a1ebcf6aea861ef30197999f096f7bd4b4456"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/dompdf/php-svg-lib/zipball/8a8a1ebcf6aea861ef30197999f096f7bd4b4456",
- "reference": "8a8a1ebcf6aea861ef30197999f096f7bd4b4456",
- "shasum": ""
+ "source": "https://github.com/opcodesio/mail-parser/tree/v0.2.4"
},
- "require": {
- "ext-mbstring": "*",
- "php": "^7.1 || ^8.0",
- "sabberworm/php-css-parser": "^8.4"
- },
- "require-dev": {
- "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Svg\\": "src/Svg"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "LGPL-3.0"
- ],
- "authors": [
- {
- "name": "Fabien Ménager",
- "email": "fabien.menager@gmail.com"
- }
- ],
- "description": "A library to read, parse and export to PDF SVG files.",
- "homepage": "https://github.com/PhenX/php-svg-lib",
- "support": {
- "issues": "https://github.com/dompdf/php-svg-lib/issues",
- "source": "https://github.com/dompdf/php-svg-lib/tree/0.5.1"
- },
- "time": "2023-12-11T20:56:08+00:00"
+ "time": "2026-06-11T08:50:37+00:00"
},
{
"name": "phpoffice/phpspreadsheet",
- "version": "1.29.0",
+ "version": "1.30.6",
"source": {
"type": "git",
"url": "https://github.com/PHPOffice/PhpSpreadsheet.git",
- "reference": "fde2ccf55eaef7e86021ff1acce26479160a0fa0"
+ "reference": "a416375ffc8bf5b661c1bb4e6c60d8f3fddbe5ce"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/PHPOffice/PhpSpreadsheet/zipball/fde2ccf55eaef7e86021ff1acce26479160a0fa0",
- "reference": "fde2ccf55eaef7e86021ff1acce26479160a0fa0",
+ "url": "https://api.github.com/repos/PHPOffice/PhpSpreadsheet/zipball/a416375ffc8bf5b661c1bb4e6c60d8f3fddbe5ce",
+ "reference": "a416375ffc8bf5b661c1bb4e6c60d8f3fddbe5ce",
"shasum": ""
},
"require": {
+ "composer/pcre": "^1||^2||^3",
"ext-ctype": "*",
"ext-dom": "*",
"ext-fileinfo": "*",
@@ -4655,21 +4740,20 @@
"maennchen/zipstream-php": "^2.1 || ^3.0",
"markbaker/complex": "^3.0",
"markbaker/matrix": "^3.0",
- "php": "^7.4 || ^8.0",
- "psr/http-client": "^1.0",
- "psr/http-factory": "^1.0",
+ "php": ">=7.4.0 <8.5.0",
"psr/simple-cache": "^1.0 || ^2.0 || ^3.0"
},
"require-dev": {
"dealerdirect/phpcodesniffer-composer-installer": "dev-main",
- "dompdf/dompdf": "^1.0 || ^2.0",
+ "doctrine/instantiator": "^1.5",
+ "dompdf/dompdf": "^1.0 || ^2.0 || ^3.0",
"friendsofphp/php-cs-fixer": "^3.2",
"mitoteam/jpgraph": "^10.3",
"mpdf/mpdf": "^8.1.1",
"phpcompatibility/php-compatibility": "^9.3",
"phpstan/phpstan": "^1.1",
"phpstan/phpstan-phpunit": "^1.0",
- "phpunit/phpunit": "^8.5 || ^9.0 || ^10.0",
+ "phpunit/phpunit": "^8.5 || ^9.0",
"squizlabs/php_codesniffer": "^3.7",
"tecnickcom/tcpdf": "^6.5"
},
@@ -4708,6 +4792,9 @@
},
{
"name": "Adrien Crivelli"
+ },
+ {
+ "name": "Owen Leibman"
}
],
"description": "PHPSpreadsheet - Read, Create and Write Spreadsheet documents in PHP - Spreadsheet engine",
@@ -4724,22 +4811,22 @@
],
"support": {
"issues": "https://github.com/PHPOffice/PhpSpreadsheet/issues",
- "source": "https://github.com/PHPOffice/PhpSpreadsheet/tree/1.29.0"
+ "source": "https://github.com/PHPOffice/PhpSpreadsheet/tree/1.30.6"
},
- "time": "2023-06-14T22:48:31+00:00"
+ "time": "2026-07-12T19:59:31+00:00"
},
{
"name": "phpoption/phpoption",
- "version": "1.9.2",
+ "version": "1.10.0",
"source": {
"type": "git",
"url": "https://github.com/schmittjoh/php-option.git",
- "reference": "80735db690fe4fc5c76dfa7f9b770634285fa820"
+ "reference": "67b192b6a42ec03944b972d6e633ddec78ad2c6d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/80735db690fe4fc5c76dfa7f9b770634285fa820",
- "reference": "80735db690fe4fc5c76dfa7f9b770634285fa820",
+ "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/67b192b6a42ec03944b972d6e633ddec78ad2c6d",
+ "reference": "67b192b6a42ec03944b972d6e633ddec78ad2c6d",
"shasum": ""
},
"require": {
@@ -4747,13 +4834,13 @@
},
"require-dev": {
"bamarni/composer-bin-plugin": "^1.8.2",
- "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2"
+ "phpunit/phpunit": "^8.5.54 || ^9.6.36 || ^10.5.64 || ^11.5.56 || ^12.5.33"
},
"type": "library",
"extra": {
"bamarni-bin": {
"bin-links": true,
- "forward-command": true
+ "forward-command": false
},
"branch-alias": {
"dev-master": "1.9-dev"
@@ -4789,7 +4876,7 @@
],
"support": {
"issues": "https://github.com/schmittjoh/php-option/issues",
- "source": "https://github.com/schmittjoh/php-option/tree/1.9.2"
+ "source": "https://github.com/schmittjoh/php-option/tree/1.10.0"
},
"funding": [
{
@@ -4801,40 +4888,40 @@
"type": "tidelift"
}
],
- "time": "2023-11-12T21:59:55+00:00"
+ "time": "2026-08-24T00:54:40+00:00"
},
{
"name": "prologue/alerts",
- "version": "1.1.0",
+ "version": "1.4.0",
"source": {
"type": "git",
"url": "https://github.com/prologuephp/alerts.git",
- "reference": "33e86d1f64dae7a8d6e29e7d6c282abc77a89b97"
+ "reference": "07681a3d0494a8e2b600b3dba43e085e83560334"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/prologuephp/alerts/zipball/33e86d1f64dae7a8d6e29e7d6c282abc77a89b97",
- "reference": "33e86d1f64dae7a8d6e29e7d6c282abc77a89b97",
+ "url": "https://api.github.com/repos/prologuephp/alerts/zipball/07681a3d0494a8e2b600b3dba43e085e83560334",
+ "reference": "07681a3d0494a8e2b600b3dba43e085e83560334",
"shasum": ""
},
"require": {
- "illuminate/config": "~9|^10",
- "illuminate/session": "~9|^10",
- "illuminate/support": "~9|^10"
+ "illuminate/config": "~9|^10|^11.0|^12.0|^13.0",
+ "illuminate/session": "~9|^10|^11.0|^12.0|^13.0",
+ "illuminate/support": "~9|^10|^11.0|^12.0|^13.0"
},
"require-dev": {
"mockery/mockery": "^1.0",
- "phpunit/phpunit": "^9"
+ "phpunit/phpunit": "^9|^10.5"
},
"type": "library",
"extra": {
"laravel": {
- "providers": [
- "Prologue\\Alerts\\AlertsServiceProvider"
- ],
"aliases": {
"Alert": "Prologue\\Alerts\\Facades\\Alert"
- }
+ },
+ "providers": [
+ "Prologue\\Alerts\\AlertsServiceProvider"
+ ]
}
},
"autoload": {
@@ -4868,9 +4955,9 @@
],
"support": {
"issues": "https://github.com/prologuephp/alerts/issues",
- "source": "https://github.com/prologuephp/alerts/tree/1.1.0"
+ "source": "https://github.com/prologuephp/alerts/tree/1.4.0"
},
- "time": "2023-02-01T06:54:14+00:00"
+ "time": "2026-03-20T12:52:20+00:00"
},
{
"name": "psr/cache",
@@ -5126,20 +5213,20 @@
},
{
"name": "psr/http-factory",
- "version": "1.0.2",
+ "version": "1.1.0",
"source": {
"type": "git",
"url": "https://github.com/php-fig/http-factory.git",
- "reference": "e616d01114759c4c489f93b099585439f795fe35"
+ "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/http-factory/zipball/e616d01114759c4c489f93b099585439f795fe35",
- "reference": "e616d01114759c4c489f93b099585439f795fe35",
+ "url": "https://api.github.com/repos/php-fig/http-factory/zipball/2b4765fddfe3b508ac62f829e852b1501d3f6e8a",
+ "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a",
"shasum": ""
},
"require": {
- "php": ">=7.0.0",
+ "php": ">=7.1",
"psr/http-message": "^1.0 || ^2.0"
},
"type": "library",
@@ -5163,7 +5250,7 @@
"homepage": "https://www.php-fig.org/"
}
],
- "description": "Common interfaces for PSR-7 HTTP message factories",
+ "description": "PSR-17: Common interfaces for PSR-7 HTTP message factories",
"keywords": [
"factory",
"http",
@@ -5175,9 +5262,9 @@
"response"
],
"support": {
- "source": "https://github.com/php-fig/http-factory/tree/1.0.2"
+ "source": "https://github.com/php-fig/http-factory"
},
- "time": "2023-04-10T20:10:41+00:00"
+ "time": "2024-04-15T12:06:14+00:00"
},
{
"name": "psr/http-message",
@@ -5234,16 +5321,16 @@
},
{
"name": "psr/log",
- "version": "3.0.0",
+ "version": "3.0.2",
"source": {
"type": "git",
"url": "https://github.com/php-fig/log.git",
- "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001"
+ "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001",
- "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001",
+ "url": "https://api.github.com/repos/php-fig/log/zipball/f16e1d5863e37f8d8c2a01719f5b34baa2b714d3",
+ "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3",
"shasum": ""
},
"require": {
@@ -5278,9 +5365,9 @@
"psr-3"
],
"support": {
- "source": "https://github.com/php-fig/log/tree/3.0.0"
+ "source": "https://github.com/php-fig/log/tree/3.0.2"
},
- "time": "2021-07-14T16:46:02+00:00"
+ "time": "2024-09-11T13:17:53+00:00"
},
{
"name": "psr/simple-cache",
@@ -5335,49 +5422,49 @@
},
{
"name": "psy/psysh",
- "version": "v0.11.22",
+ "version": "v0.12.24",
"source": {
"type": "git",
"url": "https://github.com/bobthecow/psysh.git",
- "reference": "128fa1b608be651999ed9789c95e6e2a31b5802b"
+ "reference": "ca0fdcf8a7617afa3adfdf1b5fef573dffb69ca1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/bobthecow/psysh/zipball/128fa1b608be651999ed9789c95e6e2a31b5802b",
- "reference": "128fa1b608be651999ed9789c95e6e2a31b5802b",
+ "url": "https://api.github.com/repos/bobthecow/psysh/zipball/ca0fdcf8a7617afa3adfdf1b5fef573dffb69ca1",
+ "reference": "ca0fdcf8a7617afa3adfdf1b5fef573dffb69ca1",
"shasum": ""
},
"require": {
"ext-json": "*",
"ext-tokenizer": "*",
- "nikic/php-parser": "^4.0 || ^3.1",
- "php": "^8.0 || ^7.0.8",
- "symfony/console": "^6.0 || ^5.0 || ^4.0 || ^3.4",
- "symfony/var-dumper": "^6.0 || ^5.0 || ^4.0 || ^3.4"
+ "nikic/php-parser": "^5.0 || ^4.0",
+ "php": "^8.0 || ^7.4",
+ "symfony/console": "^8.0 || ^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4",
+ "symfony/var-dumper": "^8.0 || ^7.0 || ^6.0 || ^5.0 || ^4.0 || ^3.4"
},
"conflict": {
"symfony/console": "4.4.37 || 5.3.14 || 5.3.15 || 5.4.3 || 5.4.4 || 6.0.3 || 6.0.4"
},
"require-dev": {
- "bamarni/composer-bin-plugin": "^1.2"
+ "bamarni/composer-bin-plugin": "^1.2",
+ "composer/class-map-generator": "^1.6"
},
"suggest": {
+ "composer/class-map-generator": "Improved tab completion performance with better class discovery.",
"ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)",
- "ext-pdo-sqlite": "The doc command requires SQLite to work.",
- "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well.",
- "ext-readline": "Enables support for arrow-key history navigation, and showing and manipulating command history."
+ "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well."
},
"bin": [
"bin/psysh"
],
"type": "library",
"extra": {
- "branch-alias": {
- "dev-0.11": "0.11.x-dev"
- },
"bamarni-bin": {
"bin-links": false,
"forward-command": false
+ },
+ "branch-alias": {
+ "dev-main": "0.12.x-dev"
}
},
"autoload": {
@@ -5395,12 +5482,11 @@
"authors": [
{
"name": "Justin Hileman",
- "email": "justin@justinhileman.info",
- "homepage": "http://justinhileman.com"
+ "email": "justin@justinhileman.info"
}
],
"description": "An interactive shell for modern PHP.",
- "homepage": "http://psysh.org",
+ "homepage": "https://psysh.org",
"keywords": [
"REPL",
"console",
@@ -5409,9 +5495,9 @@
],
"support": {
"issues": "https://github.com/bobthecow/psysh/issues",
- "source": "https://github.com/bobthecow/psysh/tree/v0.11.22"
+ "source": "https://github.com/bobthecow/psysh/tree/v0.12.24"
},
- "time": "2023-10-14T21:56:36+00:00"
+ "time": "2026-06-29T15:41:09+00:00"
},
{
"name": "ralouphie/getallheaders",
@@ -5459,16 +5545,16 @@
},
{
"name": "ramsey/collection",
- "version": "2.0.0",
+ "version": "2.1.1",
"source": {
"type": "git",
"url": "https://github.com/ramsey/collection.git",
- "reference": "a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5"
+ "reference": "344572933ad0181accbf4ba763e85a0306a8c5e2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/ramsey/collection/zipball/a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5",
- "reference": "a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5",
+ "url": "https://api.github.com/repos/ramsey/collection/zipball/344572933ad0181accbf4ba763e85a0306a8c5e2",
+ "reference": "344572933ad0181accbf4ba763e85a0306a8c5e2",
"shasum": ""
},
"require": {
@@ -5476,25 +5562,22 @@
},
"require-dev": {
"captainhook/plugin-composer": "^5.3",
- "ergebnis/composer-normalize": "^2.28.3",
- "fakerphp/faker": "^1.21",
+ "ergebnis/composer-normalize": "^2.45",
+ "fakerphp/faker": "^1.24",
"hamcrest/hamcrest-php": "^2.0",
- "jangregor/phpstan-prophecy": "^1.0",
- "mockery/mockery": "^1.5",
+ "jangregor/phpstan-prophecy": "^2.1",
+ "mockery/mockery": "^1.6",
"php-parallel-lint/php-console-highlighter": "^1.0",
- "php-parallel-lint/php-parallel-lint": "^1.3",
- "phpcsstandards/phpcsutils": "^1.0.0-rc1",
- "phpspec/prophecy-phpunit": "^2.0",
- "phpstan/extension-installer": "^1.2",
- "phpstan/phpstan": "^1.9",
- "phpstan/phpstan-mockery": "^1.1",
- "phpstan/phpstan-phpunit": "^1.3",
- "phpunit/phpunit": "^9.5",
- "psalm/plugin-mockery": "^1.1",
- "psalm/plugin-phpunit": "^0.18.4",
- "ramsey/coding-standard": "^2.0.3",
- "ramsey/conventional-commits": "^1.3",
- "vimeo/psalm": "^5.4"
+ "php-parallel-lint/php-parallel-lint": "^1.4",
+ "phpspec/prophecy-phpunit": "^2.3",
+ "phpstan/extension-installer": "^1.4",
+ "phpstan/phpstan": "^2.1",
+ "phpstan/phpstan-mockery": "^2.0",
+ "phpstan/phpstan-phpunit": "^2.0",
+ "phpunit/phpunit": "^10.5",
+ "ramsey/coding-standard": "^2.3",
+ "ramsey/conventional-commits": "^1.6",
+ "roave/security-advisories": "dev-latest"
},
"type": "library",
"extra": {
@@ -5532,37 +5615,26 @@
],
"support": {
"issues": "https://github.com/ramsey/collection/issues",
- "source": "https://github.com/ramsey/collection/tree/2.0.0"
+ "source": "https://github.com/ramsey/collection/tree/2.1.1"
},
- "funding": [
- {
- "url": "https://github.com/ramsey",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/ramsey/collection",
- "type": "tidelift"
- }
- ],
- "time": "2022-12-31T21:50:55+00:00"
+ "time": "2025-03-22T05:38:12+00:00"
},
{
"name": "ramsey/uuid",
- "version": "4.7.5",
+ "version": "4.9.3",
"source": {
"type": "git",
"url": "https://github.com/ramsey/uuid.git",
- "reference": "5f0df49ae5ad6efb7afa69e6bfab4e5b1e080d8e"
+ "reference": "1df15849d00943a67d677dc9cfd80795f038c9f8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/ramsey/uuid/zipball/5f0df49ae5ad6efb7afa69e6bfab4e5b1e080d8e",
- "reference": "5f0df49ae5ad6efb7afa69e6bfab4e5b1e080d8e",
+ "url": "https://api.github.com/repos/ramsey/uuid/zipball/1df15849d00943a67d677dc9cfd80795f038c9f8",
+ "reference": "1df15849d00943a67d677dc9cfd80795f038c9f8",
"shasum": ""
},
"require": {
- "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11",
- "ext-json": "*",
+ "brick/math": ">=0.8.16 <=0.18",
"php": "^8.0",
"ramsey/collection": "^1.2 || ^2.0"
},
@@ -5570,26 +5642,23 @@
"rhumsaa/uuid": "self.version"
},
"require-dev": {
- "captainhook/captainhook": "^5.10",
+ "captainhook/captainhook": "^5.25",
"captainhook/plugin-composer": "^5.3",
- "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0",
- "doctrine/annotations": "^1.8",
- "ergebnis/composer-normalize": "^2.15",
- "mockery/mockery": "^1.3",
+ "dealerdirect/phpcodesniffer-composer-installer": "^1.0",
+ "ergebnis/composer-normalize": "^2.47",
+ "mockery/mockery": "^1.6",
"paragonie/random-lib": "^2",
- "php-mock/php-mock": "^2.2",
- "php-mock/php-mock-mockery": "^1.3",
- "php-parallel-lint/php-parallel-lint": "^1.1",
- "phpbench/phpbench": "^1.0",
- "phpstan/extension-installer": "^1.1",
- "phpstan/phpstan": "^1.8",
- "phpstan/phpstan-mockery": "^1.1",
- "phpstan/phpstan-phpunit": "^1.1",
- "phpunit/phpunit": "^8.5 || ^9",
- "ramsey/composer-repl": "^1.4",
- "slevomat/coding-standard": "^8.4",
- "squizlabs/php_codesniffer": "^3.5",
- "vimeo/psalm": "^4.9"
+ "php-mock/php-mock": "^2.6",
+ "php-mock/php-mock-mockery": "^1.5",
+ "php-parallel-lint/php-parallel-lint": "^1.4.0",
+ "phpbench/phpbench": "^1.2.14",
+ "phpstan/extension-installer": "^1.4",
+ "phpstan/phpstan": "^2.1",
+ "phpstan/phpstan-mockery": "^2.0",
+ "phpstan/phpstan-phpunit": "^2.0",
+ "phpunit/phpunit": "^9.6",
+ "slevomat/coding-standard": "^8.18",
+ "squizlabs/php_codesniffer": "^3.13"
},
"suggest": {
"ext-bcmath": "Enables faster math with arbitrary-precision integers using BCMath.",
@@ -5624,47 +5693,56 @@
],
"support": {
"issues": "https://github.com/ramsey/uuid/issues",
- "source": "https://github.com/ramsey/uuid/tree/4.7.5"
+ "source": "https://github.com/ramsey/uuid/tree/4.9.3"
},
- "funding": [
- {
- "url": "https://github.com/ramsey",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/ramsey/uuid",
- "type": "tidelift"
- }
- ],
- "time": "2023-11-08T05:53:05+00:00"
+ "time": "2026-06-18T03:57:49+00:00"
},
{
"name": "sabberworm/php-css-parser",
- "version": "8.4.0",
+ "version": "v9.4.0",
"source": {
"type": "git",
- "url": "https://github.com/sabberworm/PHP-CSS-Parser.git",
- "reference": "e41d2140031d533348b2192a83f02d8dd8a71d30"
+ "url": "https://github.com/MyIntervals/PHP-CSS-Parser.git",
+ "reference": "fd3bf9fb173e0df649bc4e3e0d088a1b2417c08f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sabberworm/PHP-CSS-Parser/zipball/e41d2140031d533348b2192a83f02d8dd8a71d30",
- "reference": "e41d2140031d533348b2192a83f02d8dd8a71d30",
+ "url": "https://api.github.com/repos/MyIntervals/PHP-CSS-Parser/zipball/fd3bf9fb173e0df649bc4e3e0d088a1b2417c08f",
+ "reference": "fd3bf9fb173e0df649bc4e3e0d088a1b2417c08f",
"shasum": ""
},
"require": {
"ext-iconv": "*",
- "php": ">=5.6.20"
- },
- "require-dev": {
- "codacy/coverage": "^1.4",
- "phpunit/phpunit": "^4.8.36"
+ "php": "^7.2.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0",
+ "thecodingmachine/safe": "^1.3 || ^2.5 || ^3.4"
+ },
+ "require-dev": {
+ "php-parallel-lint/php-parallel-lint": "1.4.0",
+ "phpstan/extension-installer": "1.4.3",
+ "phpstan/phpstan": "1.12.33 || 2.2.2",
+ "phpstan/phpstan-phpunit": "1.4.2 || 2.0.16",
+ "phpstan/phpstan-strict-rules": "1.6.2 || 2.0.11",
+ "phpunit/phpunit": "8.5.52",
+ "rawr/phpunit-data-provider": "3.3.1",
+ "rector/rector": "1.2.10 || 2.4.6",
+ "rector/type-perfect": "1.0.0 || 2.1.3",
+ "squizlabs/php_codesniffer": "4.0.1",
+ "thecodingmachine/phpstan-safe-rule": "1.2.0 || 1.4.3"
},
"suggest": {
"ext-mbstring": "for parsing UTF-8 CSS"
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "9.5.x-dev"
+ }
+ },
"autoload": {
+ "files": [
+ "src/Rule/Rule.php",
+ "src/RuleSet/RuleContainer.php"
+ ],
"psr-4": {
"Sabberworm\\CSS\\": "src/"
}
@@ -5676,6 +5754,14 @@
"authors": [
{
"name": "Raphael Schweikert"
+ },
+ {
+ "name": "Oliver Klee",
+ "email": "github@oliverklee.de"
+ },
+ {
+ "name": "Jake Hotson",
+ "email": "jake.github@qzdesign.co.uk"
}
],
"description": "Parser for CSS Files written in PHP",
@@ -5686,10 +5772,10 @@
"stylesheet"
],
"support": {
- "issues": "https://github.com/sabberworm/PHP-CSS-Parser/issues",
- "source": "https://github.com/sabberworm/PHP-CSS-Parser/tree/8.4.0"
+ "issues": "https://github.com/MyIntervals/PHP-CSS-Parser/issues",
+ "source": "https://github.com/MyIntervals/PHP-CSS-Parser/tree/v9.4.0"
},
- "time": "2021-12-11T13:40:54+00:00"
+ "time": "2026-06-18T15:10:53+00:00"
},
{
"name": "sabre/dav",
@@ -6166,12 +6252,12 @@
"type": "library",
"extra": {
"laravel": {
- "providers": [
- "SimpleSoftwareIO\\QrCode\\QrCodeServiceProvider"
- ],
"aliases": {
"QrCode": "SimpleSoftwareIO\\QrCode\\Facades\\QrCode"
- }
+ },
+ "providers": [
+ "SimpleSoftwareIO\\QrCode\\QrCodeServiceProvider"
+ ]
}
},
"autoload": {
@@ -6206,21 +6292,21 @@
},
{
"name": "spatie/db-dumper",
- "version": "3.4.2",
+ "version": "3.8.3",
"source": {
"type": "git",
"url": "https://github.com/spatie/db-dumper.git",
- "reference": "59beef7ad612ca7463dfddb64de6e038eb59e0d7"
+ "reference": "eac3221fbe27fac51f388600d27b67b1b079406e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/spatie/db-dumper/zipball/59beef7ad612ca7463dfddb64de6e038eb59e0d7",
- "reference": "59beef7ad612ca7463dfddb64de6e038eb59e0d7",
+ "url": "https://api.github.com/repos/spatie/db-dumper/zipball/eac3221fbe27fac51f388600d27b67b1b079406e",
+ "reference": "eac3221fbe27fac51f388600d27b67b1b079406e",
"shasum": ""
},
"require": {
"php": "^8.0",
- "symfony/process": "^5.0|^6.0|^7.0"
+ "symfony/process": "^5.0|^6.0|^7.0|^8.0"
},
"require-dev": {
"pestphp/pest": "^1.22"
@@ -6253,7 +6339,7 @@
"spatie"
],
"support": {
- "source": "https://github.com/spatie/db-dumper/tree/3.4.2"
+ "source": "https://github.com/spatie/db-dumper/tree/3.8.3"
},
"funding": [
{
@@ -6265,51 +6351,52 @@
"type": "github"
}
],
- "time": "2023-12-25T11:42:15+00:00"
+ "time": "2026-01-05T16:26:03+00:00"
},
{
"name": "spatie/laravel-backup",
- "version": "8.5.1",
+ "version": "9.3.6",
"source": {
"type": "git",
"url": "https://github.com/spatie/laravel-backup.git",
- "reference": "4e97ff2c8b65835037e746755941bf05430e191d"
+ "reference": "d378a07b580aa8bf440b50decdbab7b5d6f63c46"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/spatie/laravel-backup/zipball/4e97ff2c8b65835037e746755941bf05430e191d",
- "reference": "4e97ff2c8b65835037e746755941bf05430e191d",
+ "url": "https://api.github.com/repos/spatie/laravel-backup/zipball/d378a07b580aa8bf440b50decdbab7b5d6f63c46",
+ "reference": "d378a07b580aa8bf440b50decdbab7b5d6f63c46",
"shasum": ""
},
"require": {
"ext-zip": "^1.14.0",
- "illuminate/console": "^10.10.0",
- "illuminate/contracts": "^10.10.0",
- "illuminate/events": "^10.10.0",
- "illuminate/filesystem": "^10.10.0",
- "illuminate/notifications": "^10.10.0",
- "illuminate/support": "^10.10.0",
+ "illuminate/console": "^10.10.0|^11.0|^12.0",
+ "illuminate/contracts": "^10.10.0|^11.0|^12.0",
+ "illuminate/events": "^10.10.0|^11.0|^12.0",
+ "illuminate/filesystem": "^10.10.0|^11.0|^12.0",
+ "illuminate/notifications": "^10.10.0|^11.0|^12.0",
+ "illuminate/support": "^10.10.0|^11.0|^12.0",
"league/flysystem": "^3.0",
- "php": "^8.1",
- "spatie/db-dumper": "^3.0",
+ "php": "^8.2",
+ "spatie/db-dumper": "^3.8",
"spatie/laravel-package-tools": "^1.6.2",
- "spatie/laravel-signal-aware-command": "^1.2",
+ "spatie/laravel-signal-aware-command": "^1.2|^2.0",
"spatie/temporary-directory": "^2.0",
- "symfony/console": "^6.0",
- "symfony/finder": "^6.0"
+ "symfony/console": "^6.0|^7.0",
+ "symfony/finder": "^6.0|^7.0"
},
"require-dev": {
"composer-runtime-api": "^2.0",
"ext-pcntl": "*",
- "larastan/larastan": "^2.7.0",
- "laravel/slack-notification-channel": "^2.5",
+ "larastan/larastan": "^2.7.0|^3.0",
+ "laravel/slack-notification-channel": "^2.5|^3.0",
"league/flysystem-aws-s3-v3": "^2.0|^3.0",
"mockery/mockery": "^1.4",
- "orchestra/testbench": "^8.0",
- "pestphp/pest": "^1.20",
+ "orchestra/testbench": "^8.0|^9.0|^10.0",
+ "pestphp/pest": "^1.20|^2.0|^3.0|^4.0",
"phpstan/extension-installer": "^1.1",
"phpstan/phpstan-deprecation-rules": "^1.0",
- "phpstan/phpstan-phpunit": "^1.1"
+ "phpstan/phpstan-phpunit": "^1.1",
+ "rector/rector": "^1.1"
},
"suggest": {
"laravel/slack-notification-channel": "Required for sending notifications via Slack"
@@ -6352,7 +6439,7 @@
],
"support": {
"issues": "https://github.com/spatie/laravel-backup/issues",
- "source": "https://github.com/spatie/laravel-backup/tree/8.5.1"
+ "source": "https://github.com/spatie/laravel-backup/tree/9.3.6"
},
"funding": [
{
@@ -6364,32 +6451,33 @@
"type": "other"
}
],
- "time": "2024-01-23T08:57:08+00:00"
+ "time": "2025-11-05T11:25:01+00:00"
},
{
"name": "spatie/laravel-package-tools",
- "version": "1.16.2",
+ "version": "1.93.2",
"source": {
"type": "git",
"url": "https://github.com/spatie/laravel-package-tools.git",
- "reference": "e62eeb1fe8a8a0b2e83227a6c279c8c59f7d3a15"
+ "reference": "e927d5b5b05e9fecae098e559e51918aa608ad02"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/e62eeb1fe8a8a0b2e83227a6c279c8c59f7d3a15",
- "reference": "e62eeb1fe8a8a0b2e83227a6c279c8c59f7d3a15",
+ "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/e927d5b5b05e9fecae098e559e51918aa608ad02",
+ "reference": "e927d5b5b05e9fecae098e559e51918aa608ad02",
"shasum": ""
},
"require": {
- "illuminate/contracts": "^9.28|^10.0|^11.0",
- "php": "^8.0"
+ "illuminate/contracts": "^10.0|^11.0|^12.0|^13.0",
+ "php": "^8.1"
},
"require-dev": {
"mockery/mockery": "^1.5",
- "orchestra/testbench": "^7.7|^8.0",
- "pestphp/pest": "^1.22",
- "phpunit/phpunit": "^9.5.24",
- "spatie/pest-plugin-test-time": "^1.1"
+ "orchestra/testbench": "^8.0|^9.2|^10.0|^11.0",
+ "pestphp/pest": "^2.1|^3.1|^4.0",
+ "phpunit/php-code-coverage": "^10.0|^11.0|^12.0",
+ "phpunit/phpunit": "^10.5|^11.5|^12.5",
+ "spatie/pest-plugin-test-time": "^2.2|^3.0"
},
"type": "library",
"autoload": {
@@ -6416,7 +6504,7 @@
],
"support": {
"issues": "https://github.com/spatie/laravel-package-tools/issues",
- "source": "https://github.com/spatie/laravel-package-tools/tree/1.16.2"
+ "source": "https://github.com/spatie/laravel-package-tools/tree/1.93.2"
},
"funding": [
{
@@ -6424,7 +6512,7 @@
"type": "github"
}
],
- "time": "2024-01-11T08:43:00+00:00"
+ "time": "2026-08-26T09:13:25+00:00"
},
{
"name": "spatie/laravel-permission",
@@ -6512,41 +6600,42 @@
},
{
"name": "spatie/laravel-signal-aware-command",
- "version": "1.3.0",
+ "version": "2.1.2",
"source": {
"type": "git",
"url": "https://github.com/spatie/laravel-signal-aware-command.git",
- "reference": "46cda09a85aef3fd47fb73ddc7081f963e255571"
+ "reference": "54dcc1efd152bfb3eb0faf56a5fc28569b864b5d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/spatie/laravel-signal-aware-command/zipball/46cda09a85aef3fd47fb73ddc7081f963e255571",
- "reference": "46cda09a85aef3fd47fb73ddc7081f963e255571",
+ "url": "https://api.github.com/repos/spatie/laravel-signal-aware-command/zipball/54dcc1efd152bfb3eb0faf56a5fc28569b864b5d",
+ "reference": "54dcc1efd152bfb3eb0faf56a5fc28569b864b5d",
"shasum": ""
},
"require": {
- "illuminate/contracts": "^8.35|^9.0|^10.0",
- "php": "^8.0",
- "spatie/laravel-package-tools": "^1.4.3"
+ "illuminate/contracts": "^11.0|^12.0|^13.0",
+ "php": "^8.2",
+ "spatie/laravel-package-tools": "^1.4.3",
+ "symfony/console": "^7.0|^8.0"
},
"require-dev": {
- "brianium/paratest": "^6.2",
+ "brianium/paratest": "^6.2|^7.0",
"ext-pcntl": "*",
- "nunomaduro/collision": "^5.3|^6.0",
- "orchestra/testbench": "^6.16|^7.0|^8.0",
- "pestphp/pest-plugin-laravel": "^1.3",
- "phpunit/phpunit": "^9.5",
+ "nunomaduro/collision": "^5.3|^6.0|^7.0|^8.0",
+ "orchestra/testbench": "^9.0|^10.0",
+ "pestphp/pest-plugin-laravel": "^1.3|^2.0|^3.0",
+ "phpunit/phpunit": "^9.5|^10|^11",
"spatie/laravel-ray": "^1.17"
},
"type": "library",
"extra": {
"laravel": {
- "providers": [
- "Spatie\\SignalAwareCommand\\SignalAwareCommandServiceProvider"
- ],
"aliases": {
"Signal": "Spatie\\SignalAwareCommand\\Facades\\Signal"
- }
+ },
+ "providers": [
+ "Spatie\\SignalAwareCommand\\SignalAwareCommandServiceProvider"
+ ]
}
},
"autoload": {
@@ -6574,7 +6663,7 @@
],
"support": {
"issues": "https://github.com/spatie/laravel-signal-aware-command/issues",
- "source": "https://github.com/spatie/laravel-signal-aware-command/tree/1.3.0"
+ "source": "https://github.com/spatie/laravel-signal-aware-command/tree/2.1.2"
},
"funding": [
{
@@ -6582,20 +6671,20 @@
"type": "github"
}
],
- "time": "2023-01-14T21:10:59+00:00"
+ "time": "2026-02-22T08:16:31+00:00"
},
{
"name": "spatie/temporary-directory",
- "version": "2.2.1",
+ "version": "2.4.0",
"source": {
"type": "git",
"url": "https://github.com/spatie/temporary-directory.git",
- "reference": "76949fa18f8e1a7f663fd2eaa1d00e0bcea0752a"
+ "reference": "32cbb9645b28839cf4f476708e99a2c70e6802c9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/spatie/temporary-directory/zipball/76949fa18f8e1a7f663fd2eaa1d00e0bcea0752a",
- "reference": "76949fa18f8e1a7f663fd2eaa1d00e0bcea0752a",
+ "url": "https://api.github.com/repos/spatie/temporary-directory/zipball/32cbb9645b28839cf4f476708e99a2c70e6802c9",
+ "reference": "32cbb9645b28839cf4f476708e99a2c70e6802c9",
"shasum": ""
},
"require": {
@@ -6631,7 +6720,7 @@
],
"support": {
"issues": "https://github.com/spatie/temporary-directory/issues",
- "source": "https://github.com/spatie/temporary-directory/tree/2.2.1"
+ "source": "https://github.com/spatie/temporary-directory/tree/2.4.0"
},
"funding": [
{
@@ -6643,51 +6732,129 @@
"type": "github"
}
],
- "time": "2023-12-25T11:46:58+00:00"
+ "time": "2026-06-22T07:55:44+00:00"
+ },
+ {
+ "name": "symfony/clock",
+ "version": "v7.4.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/clock.git",
+ "reference": "674fa3b98e21531dd040e613479f5f6fa8f32111"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/clock/zipball/674fa3b98e21531dd040e613479f5f6fa8f32111",
+ "reference": "674fa3b98e21531dd040e613479f5f6fa8f32111",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.2",
+ "psr/clock": "^1.0",
+ "symfony/polyfill-php83": "^1.28"
+ },
+ "provide": {
+ "psr/clock-implementation": "1.0"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "Resources/now.php"
+ ],
+ "psr-4": {
+ "Symfony\\Component\\Clock\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "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": "Decouples applications from the system clock",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "clock",
+ "psr20",
+ "time"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/clock/tree/v7.4.8"
+ },
+ "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-03-24T13:12:05+00:00"
},
{
"name": "symfony/console",
- "version": "v6.4.2",
+ "version": "v7.4.17",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
- "reference": "0254811a143e6bc6c8deea08b589a7e68a37f625"
+ "reference": "962e18f09ebe68a49039b4c82fc0ea4871824fca"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/0254811a143e6bc6c8deea08b589a7e68a37f625",
- "reference": "0254811a143e6bc6c8deea08b589a7e68a37f625",
+ "url": "https://api.github.com/repos/symfony/console/zipball/962e18f09ebe68a49039b4c82fc0ea4871824fca",
+ "reference": "962e18f09ebe68a49039b4c82fc0ea4871824fca",
"shasum": ""
},
"require": {
- "php": ">=8.1",
+ "php": ">=8.2",
"symfony/deprecation-contracts": "^2.5|^3",
"symfony/polyfill-mbstring": "~1.0",
"symfony/service-contracts": "^2.5|^3",
- "symfony/string": "^5.4|^6.0|^7.0"
+ "symfony/string": "^7.2|^8.0"
},
"conflict": {
- "symfony/dependency-injection": "<5.4",
- "symfony/dotenv": "<5.4",
- "symfony/event-dispatcher": "<5.4",
- "symfony/lock": "<5.4",
- "symfony/process": "<5.4"
+ "symfony/dependency-injection": "<6.4",
+ "symfony/dotenv": "<6.4",
+ "symfony/event-dispatcher": "<6.4",
+ "symfony/lock": "<6.4",
+ "symfony/process": "<6.4"
},
"provide": {
"psr/log-implementation": "1.0|2.0|3.0"
},
"require-dev": {
"psr/log": "^1|^2|^3",
- "symfony/config": "^5.4|^6.0|^7.0",
- "symfony/dependency-injection": "^5.4|^6.0|^7.0",
- "symfony/event-dispatcher": "^5.4|^6.0|^7.0",
- "symfony/http-foundation": "^6.4|^7.0",
- "symfony/http-kernel": "^6.4|^7.0",
- "symfony/lock": "^5.4|^6.0|^7.0",
- "symfony/messenger": "^5.4|^6.0|^7.0",
- "symfony/process": "^5.4|^6.0|^7.0",
- "symfony/stopwatch": "^5.4|^6.0|^7.0",
- "symfony/var-dumper": "^5.4|^6.0|^7.0"
+ "symfony/config": "^6.4|^7.0|^8.0",
+ "symfony/dependency-injection": "^6.4|^7.0|^8.0",
+ "symfony/event-dispatcher": "^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/lock": "^6.4|^7.0|^8.0",
+ "symfony/messenger": "^6.4|^7.0|^8.0",
+ "symfony/process": "^6.4|^7.0|^8.0",
+ "symfony/stopwatch": "^6.4|^7.0|^8.0",
+ "symfony/var-dumper": "^6.4|^7.0|^8.0"
},
"type": "library",
"autoload": {
@@ -6721,7 +6888,7 @@
"terminal"
],
"support": {
- "source": "https://github.com/symfony/console/tree/v6.4.2"
+ "source": "https://github.com/symfony/console/tree/v7.4.17"
},
"funding": [
{
@@ -6732,29 +6899,33 @@
"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": "2023-12-10T16:15:48+00:00"
+ "time": "2026-08-21T12:09:28+00:00"
},
{
"name": "symfony/css-selector",
- "version": "v6.4.0",
+ "version": "v7.4.17",
"source": {
"type": "git",
"url": "https://github.com/symfony/css-selector.git",
- "reference": "d036c6c0d0b09e24a14a35f8292146a658f986e4"
+ "reference": "e3822e1cb7013a0a99b3c578130458927ec4eb89"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/css-selector/zipball/d036c6c0d0b09e24a14a35f8292146a658f986e4",
- "reference": "d036c6c0d0b09e24a14a35f8292146a658f986e4",
+ "url": "https://api.github.com/repos/symfony/css-selector/zipball/e3822e1cb7013a0a99b3c578130458927ec4eb89",
+ "reference": "e3822e1cb7013a0a99b3c578130458927ec4eb89",
"shasum": ""
},
"require": {
- "php": ">=8.1"
+ "php": ">=8.2"
},
"type": "library",
"autoload": {
@@ -6786,7 +6957,7 @@
"description": "Converts CSS selectors to XPath expressions",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/css-selector/tree/v6.4.0"
+ "source": "https://github.com/symfony/css-selector/tree/v7.4.17"
},
"funding": [
{
@@ -6797,25 +6968,29 @@
"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": "2023-10-31T08:40:20+00:00"
+ "time": "2026-08-21T17:40:08+00:00"
},
{
"name": "symfony/deprecation-contracts",
- "version": "v3.4.0",
+ "version": "v3.7.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/deprecation-contracts.git",
- "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf"
+ "reference": "f3202fa1b5097b0af062dc978b32ecf63404e31d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/7c3aff79d10325257a001fcf92d991f24fc967cf",
- "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf",
+ "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/f3202fa1b5097b0af062dc978b32ecf63404e31d",
+ "reference": "f3202fa1b5097b0af062dc978b32ecf63404e31d",
"shasum": ""
},
"require": {
@@ -6823,12 +6998,12 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "3.4-dev"
- },
"thanks": {
- "name": "symfony/contracts",
- "url": "https://github.com/symfony/contracts"
+ "url": "https://github.com/symfony/contracts",
+ "name": "symfony/contracts"
+ },
+ "branch-alias": {
+ "dev-main": "3.7-dev"
}
},
"autoload": {
@@ -6853,7 +7028,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.4.0"
+ "source": "https://github.com/symfony/deprecation-contracts/tree/v3.7.1"
},
"funding": [
{
@@ -6864,40 +7039,47 @@
"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": "2023-05-23T14:45:45+00:00"
+ "time": "2026-06-05T06:23:12+00:00"
},
{
"name": "symfony/error-handler",
- "version": "v6.4.0",
+ "version": "v7.4.17",
"source": {
"type": "git",
"url": "https://github.com/symfony/error-handler.git",
- "reference": "c873490a1c97b3a0a4838afc36ff36c112d02788"
+ "reference": "8373921e231e190a88e2ad526951bbaa791576fa"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/error-handler/zipball/c873490a1c97b3a0a4838afc36ff36c112d02788",
- "reference": "c873490a1c97b3a0a4838afc36ff36c112d02788",
+ "url": "https://api.github.com/repos/symfony/error-handler/zipball/8373921e231e190a88e2ad526951bbaa791576fa",
+ "reference": "8373921e231e190a88e2ad526951bbaa791576fa",
"shasum": ""
},
"require": {
- "php": ">=8.1",
+ "php": ">=8.2",
"psr/log": "^1|^2|^3",
- "symfony/var-dumper": "^5.4|^6.0|^7.0"
+ "symfony/polyfill-php85": "^1.32",
+ "symfony/var-dumper": "^6.4|^7.0|^8.0"
},
"conflict": {
"symfony/deprecation-contracts": "<2.5",
"symfony/http-kernel": "<6.4"
},
"require-dev": {
+ "symfony/console": "^6.4|^7.0|^8.0",
"symfony/deprecation-contracts": "^2.5|^3",
- "symfony/http-kernel": "^6.4|^7.0",
- "symfony/serializer": "^5.4|^6.0|^7.0"
+ "symfony/http-kernel": "^6.4|^7.0|^8.0",
+ "symfony/serializer": "^6.4|^7.0|^8.0",
+ "symfony/webpack-encore-bundle": "^1.0|^2.0"
},
"bin": [
"Resources/bin/patch-type-declarations"
@@ -6928,7 +7110,7 @@
"description": "Provides tools to manage errors and ease debugging PHP code",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/error-handler/tree/v6.4.0"
+ "source": "https://github.com/symfony/error-handler/tree/v7.4.17"
},
"funding": [
{
@@ -6939,33 +7121,37 @@
"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": "2023-10-18T09:43:34+00:00"
+ "time": "2026-08-21T17:40:08+00:00"
},
{
"name": "symfony/event-dispatcher",
- "version": "v6.4.2",
+ "version": "v7.4.17",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher.git",
- "reference": "e95216850555cd55e71b857eb9d6c2674124603a"
+ "reference": "d269974ee93c61d03620ffee358355bfdb471d66"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/e95216850555cd55e71b857eb9d6c2674124603a",
- "reference": "e95216850555cd55e71b857eb9d6c2674124603a",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/d269974ee93c61d03620ffee358355bfdb471d66",
+ "reference": "d269974ee93c61d03620ffee358355bfdb471d66",
"shasum": ""
},
"require": {
- "php": ">=8.1",
+ "php": ">=8.2",
"symfony/event-dispatcher-contracts": "^2.5|^3"
},
"conflict": {
- "symfony/dependency-injection": "<5.4",
+ "symfony/dependency-injection": "<6.4",
"symfony/service-contracts": "<2.5"
},
"provide": {
@@ -6974,13 +7160,14 @@
},
"require-dev": {
"psr/log": "^1|^2|^3",
- "symfony/config": "^5.4|^6.0|^7.0",
- "symfony/dependency-injection": "^5.4|^6.0|^7.0",
- "symfony/error-handler": "^5.4|^6.0|^7.0",
- "symfony/expression-language": "^5.4|^6.0|^7.0",
- "symfony/http-foundation": "^5.4|^6.0|^7.0",
+ "symfony/config": "^6.4|^7.0|^8.0",
+ "symfony/dependency-injection": "^6.4|^7.0|^8.0",
+ "symfony/error-handler": "^6.4|^7.0|^8.0",
+ "symfony/expression-language": "^6.4|^7.0|^8.0",
+ "symfony/framework-bundle": "^6.4|^7.0|^8.0",
+ "symfony/http-foundation": "^6.4|^7.0|^8.0",
"symfony/service-contracts": "^2.5|^3",
- "symfony/stopwatch": "^5.4|^6.0|^7.0"
+ "symfony/stopwatch": "^6.4|^7.0|^8.0"
},
"type": "library",
"autoload": {
@@ -7008,7 +7195,7 @@
"description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/event-dispatcher/tree/v6.4.2"
+ "source": "https://github.com/symfony/event-dispatcher/tree/v7.4.17"
},
"funding": [
{
@@ -7019,25 +7206,29 @@
"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": "2023-12-27T22:16:42+00:00"
+ "time": "2026-08-21T17:40:08+00:00"
},
{
"name": "symfony/event-dispatcher-contracts",
- "version": "v3.4.0",
+ "version": "v3.7.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher-contracts.git",
- "reference": "a76aed96a42d2b521153fb382d418e30d18b59df"
+ "reference": "c7de7a00ffb67842132da02ea92988a39ccd9f4e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/a76aed96a42d2b521153fb382d418e30d18b59df",
- "reference": "a76aed96a42d2b521153fb382d418e30d18b59df",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/c7de7a00ffb67842132da02ea92988a39ccd9f4e",
+ "reference": "c7de7a00ffb67842132da02ea92988a39ccd9f4e",
"shasum": ""
},
"require": {
@@ -7046,12 +7237,12 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "3.4-dev"
- },
"thanks": {
- "name": "symfony/contracts",
- "url": "https://github.com/symfony/contracts"
+ "url": "https://github.com/symfony/contracts",
+ "name": "symfony/contracts"
+ },
+ "branch-alias": {
+ "dev-main": "3.7-dev"
}
},
"autoload": {
@@ -7084,7 +7275,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.4.0"
+ "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.7.1"
},
"funding": [
{
@@ -7095,12 +7286,16 @@
"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": "2023-05-23T14:45:45+00:00"
+ "time": "2026-06-05T06:23:12+00:00"
},
{
"name": "symfony/filesystem",
@@ -7174,23 +7369,23 @@
},
{
"name": "symfony/finder",
- "version": "v6.4.0",
+ "version": "v7.4.17",
"source": {
"type": "git",
"url": "https://github.com/symfony/finder.git",
- "reference": "11d736e97f116ac375a81f96e662911a34cd50ce"
+ "reference": "5ce28827081f6d1f0c32eaf3882750f19cb5bbe6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/finder/zipball/11d736e97f116ac375a81f96e662911a34cd50ce",
- "reference": "11d736e97f116ac375a81f96e662911a34cd50ce",
+ "url": "https://api.github.com/repos/symfony/finder/zipball/5ce28827081f6d1f0c32eaf3882750f19cb5bbe6",
+ "reference": "5ce28827081f6d1f0c32eaf3882750f19cb5bbe6",
"shasum": ""
},
"require": {
- "php": ">=8.1"
+ "php": ">=8.2"
},
"require-dev": {
- "symfony/filesystem": "^6.0|^7.0"
+ "symfony/filesystem": "^6.4|^7.0|^8.0"
},
"type": "library",
"autoload": {
@@ -7218,7 +7413,7 @@
"description": "Finds files and directories via an intuitive fluent interface",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/finder/tree/v6.4.0"
+ "source": "https://github.com/symfony/finder/tree/v7.4.17"
},
"funding": [
{
@@ -7229,45 +7424,50 @@
"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": "2023-10-31T17:30:12+00:00"
+ "time": "2026-08-21T12:09:28+00:00"
},
{
"name": "symfony/http-foundation",
- "version": "v6.4.2",
+ "version": "v7.4.17",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-foundation.git",
- "reference": "172d807f9ef3fc3fbed8377cc57c20d389269271"
+ "reference": "2ebe78c083501dfb9509b31a7aedcae4d60a391f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-foundation/zipball/172d807f9ef3fc3fbed8377cc57c20d389269271",
- "reference": "172d807f9ef3fc3fbed8377cc57c20d389269271",
+ "url": "https://api.github.com/repos/symfony/http-foundation/zipball/2ebe78c083501dfb9509b31a7aedcae4d60a391f",
+ "reference": "2ebe78c083501dfb9509b31a7aedcae4d60a391f",
"shasum": ""
},
"require": {
- "php": ">=8.1",
+ "php": ">=8.2",
"symfony/deprecation-contracts": "^2.5|^3",
- "symfony/polyfill-mbstring": "~1.1",
- "symfony/polyfill-php83": "^1.27"
+ "symfony/polyfill-mbstring": "^1.1"
},
"conflict": {
- "symfony/cache": "<6.3"
+ "doctrine/dbal": "<3.6",
+ "symfony/cache": "<6.4.12|>=7.0,<7.1.5"
},
"require-dev": {
- "doctrine/dbal": "^2.13.1|^3|^4",
+ "doctrine/dbal": "^3.6|^4",
"predis/predis": "^1.1|^2.0",
- "symfony/cache": "^6.3|^7.0",
- "symfony/dependency-injection": "^5.4|^6.0|^7.0",
- "symfony/expression-language": "^5.4|^6.0|^7.0",
- "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4|^7.0",
- "symfony/mime": "^5.4|^6.0|^7.0",
- "symfony/rate-limiter": "^5.4|^6.0|^7.0"
+ "symfony/cache": "^6.4.12|^7.1.5|^8.0",
+ "symfony/clock": "^6.4|^7.0|^8.0",
+ "symfony/dependency-injection": "^6.4|^7.0|^8.0",
+ "symfony/expression-language": "^6.4|^7.0|^8.0",
+ "symfony/http-kernel": "^6.4|^7.0|^8.0",
+ "symfony/mime": "^6.4|^7.0|^8.0",
+ "symfony/rate-limiter": "^6.4|^7.0|^8.0"
},
"type": "library",
"autoload": {
@@ -7295,7 +7495,7 @@
"description": "Defines an object-oriented layer for the HTTP specification",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/http-foundation/tree/v6.4.2"
+ "source": "https://github.com/symfony/http-foundation/tree/v7.4.17"
},
"funding": [
{
@@ -7306,81 +7506,87 @@
"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": "2023-12-27T22:16:42+00:00"
+ "time": "2026-08-20T09:55:18+00:00"
},
{
"name": "symfony/http-kernel",
- "version": "v6.4.2",
+ "version": "v7.4.17",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-kernel.git",
- "reference": "13e8387320b5942d0dc408440c888e2d526efef4"
+ "reference": "aa160388d444210e3d01bbb4c5c53af4cd763df4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-kernel/zipball/13e8387320b5942d0dc408440c888e2d526efef4",
- "reference": "13e8387320b5942d0dc408440c888e2d526efef4",
+ "url": "https://api.github.com/repos/symfony/http-kernel/zipball/aa160388d444210e3d01bbb4c5c53af4cd763df4",
+ "reference": "aa160388d444210e3d01bbb4c5c53af4cd763df4",
"shasum": ""
},
"require": {
- "php": ">=8.1",
+ "php": ">=8.2",
"psr/log": "^1|^2|^3",
"symfony/deprecation-contracts": "^2.5|^3",
- "symfony/error-handler": "^6.4|^7.0",
- "symfony/event-dispatcher": "^5.4|^6.0|^7.0",
- "symfony/http-foundation": "^6.4|^7.0",
+ "symfony/error-handler": "^6.4|^7.0|^8.0",
+ "symfony/event-dispatcher": "^7.3|^8.0",
+ "symfony/http-foundation": "^7.4|^8.0",
"symfony/polyfill-ctype": "^1.8"
},
"conflict": {
- "symfony/browser-kit": "<5.4",
- "symfony/cache": "<5.4",
- "symfony/config": "<6.1",
- "symfony/console": "<5.4",
+ "symfony/browser-kit": "<6.4",
+ "symfony/cache": "<6.4",
+ "symfony/config": "<6.4",
+ "symfony/console": "<6.4",
"symfony/dependency-injection": "<6.4",
- "symfony/doctrine-bridge": "<5.4",
- "symfony/form": "<5.4",
- "symfony/http-client": "<5.4",
+ "symfony/doctrine-bridge": "<6.4",
+ "symfony/flex": "<2.10",
+ "symfony/form": "<6.4",
+ "symfony/http-client": "<6.4",
"symfony/http-client-contracts": "<2.5",
- "symfony/mailer": "<5.4",
- "symfony/messenger": "<5.4",
- "symfony/translation": "<5.4",
+ "symfony/mailer": "<6.4",
+ "symfony/messenger": "<6.4",
+ "symfony/translation": "<6.4",
"symfony/translation-contracts": "<2.5",
- "symfony/twig-bridge": "<5.4",
+ "symfony/twig-bridge": "<6.4",
"symfony/validator": "<6.4",
- "symfony/var-dumper": "<6.3",
- "twig/twig": "<2.13"
+ "symfony/var-dumper": "<6.4",
+ "twig/twig": "<3.12"
},
"provide": {
"psr/log-implementation": "1.0|2.0|3.0"
},
"require-dev": {
"psr/cache": "^1.0|^2.0|^3.0",
- "symfony/browser-kit": "^5.4|^6.0|^7.0",
- "symfony/clock": "^6.2|^7.0",
- "symfony/config": "^6.1|^7.0",
- "symfony/console": "^5.4|^6.0|^7.0",
- "symfony/css-selector": "^5.4|^6.0|^7.0",
- "symfony/dependency-injection": "^6.4|^7.0",
- "symfony/dom-crawler": "^5.4|^6.0|^7.0",
- "symfony/expression-language": "^5.4|^6.0|^7.0",
- "symfony/finder": "^5.4|^6.0|^7.0",
+ "symfony/browser-kit": "^6.4|^7.0|^8.0",
+ "symfony/clock": "^6.4|^7.0|^8.0",
+ "symfony/config": "^6.4|^7.0|^8.0",
+ "symfony/console": "^6.4|^7.0|^8.0",
+ "symfony/css-selector": "^6.4|^7.0|^8.0",
+ "symfony/dependency-injection": "^6.4.1|^7.0.1|^8.0",
+ "symfony/dom-crawler": "^6.4|^7.0|^8.0",
+ "symfony/expression-language": "^6.4|^7.0|^8.0",
+ "symfony/finder": "^6.4|^7.0|^8.0",
"symfony/http-client-contracts": "^2.5|^3",
- "symfony/process": "^5.4|^6.0|^7.0",
- "symfony/property-access": "^5.4.5|^6.0.5|^7.0",
- "symfony/routing": "^5.4|^6.0|^7.0",
- "symfony/serializer": "^6.3|^7.0",
- "symfony/stopwatch": "^5.4|^6.0|^7.0",
- "symfony/translation": "^5.4|^6.0|^7.0",
+ "symfony/process": "^6.4|^7.0|^8.0",
+ "symfony/property-access": "^7.1|^8.0",
+ "symfony/routing": "^6.4|^7.0|^8.0",
+ "symfony/serializer": "^7.1|^8.0",
+ "symfony/stopwatch": "^6.4|^7.0|^8.0",
+ "symfony/translation": "^6.4|^7.0|^8.0",
"symfony/translation-contracts": "^2.5|^3",
- "symfony/uid": "^5.4|^6.0|^7.0",
- "symfony/validator": "^6.4|^7.0",
- "symfony/var-exporter": "^6.2|^7.0",
- "twig/twig": "^2.13|^3.0.4"
+ "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",
+ "twig/twig": "^3.12|^4.0"
},
"type": "library",
"autoload": {
@@ -7408,7 +7614,7 @@
"description": "Provides a structured process for converting a Request into a Response",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/http-kernel/tree/v6.4.2"
+ "source": "https://github.com/symfony/http-kernel/tree/v7.4.17"
},
"funding": [
{
@@ -7419,48 +7625,52 @@
"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": "2023-12-30T15:31:44+00:00"
+ "time": "2026-08-22T13:41:33+00:00"
},
{
"name": "symfony/mailer",
- "version": "v6.4.2",
+ "version": "v7.4.17",
"source": {
"type": "git",
"url": "https://github.com/symfony/mailer.git",
- "reference": "6da89e5c9202f129717a770a03183fb140720168"
+ "reference": "b17c9bf3a551d5f635638a3b6c05f06c4dc87584"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/mailer/zipball/6da89e5c9202f129717a770a03183fb140720168",
- "reference": "6da89e5c9202f129717a770a03183fb140720168",
+ "url": "https://api.github.com/repos/symfony/mailer/zipball/b17c9bf3a551d5f635638a3b6c05f06c4dc87584",
+ "reference": "b17c9bf3a551d5f635638a3b6c05f06c4dc87584",
"shasum": ""
},
"require": {
"egulias/email-validator": "^2.1.10|^3|^4",
- "php": ">=8.1",
+ "php": ">=8.2",
"psr/event-dispatcher": "^1",
"psr/log": "^1|^2|^3",
- "symfony/event-dispatcher": "^5.4|^6.0|^7.0",
- "symfony/mime": "^6.2|^7.0",
+ "symfony/event-dispatcher": "^6.4|^7.0|^8.0",
+ "symfony/mime": "^7.2|^8.0",
"symfony/service-contracts": "^2.5|^3"
},
"conflict": {
"symfony/http-client-contracts": "<2.5",
- "symfony/http-kernel": "<5.4",
- "symfony/messenger": "<6.2",
- "symfony/mime": "<6.2",
- "symfony/twig-bridge": "<6.2.1"
+ "symfony/http-kernel": "<6.4",
+ "symfony/messenger": "<6.4",
+ "symfony/mime": "<6.4",
+ "symfony/twig-bridge": "<6.4"
},
"require-dev": {
- "symfony/console": "^5.4|^6.0|^7.0",
- "symfony/http-client": "^5.4|^6.0|^7.0",
- "symfony/messenger": "^6.2|^7.0",
- "symfony/twig-bridge": "^6.2|^7.0"
+ "symfony/console": "^6.4|^7.0|^8.0",
+ "symfony/http-client": "^6.4|^7.0|^8.0",
+ "symfony/messenger": "^6.4|^7.0|^8.0",
+ "symfony/twig-bridge": "^6.4|^7.0|^8.0"
},
"type": "library",
"autoload": {
@@ -7488,7 +7698,7 @@
"description": "Helps sending emails",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/mailer/tree/v6.4.2"
+ "source": "https://github.com/symfony/mailer/tree/v7.4.17"
},
"funding": [
{
@@ -7499,48 +7709,53 @@
"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": "2023-12-19T09:12:31+00:00"
+ "time": "2026-08-21T17:40:08+00:00"
},
{
"name": "symfony/mime",
- "version": "v6.4.0",
+ "version": "v7.4.17",
"source": {
"type": "git",
"url": "https://github.com/symfony/mime.git",
- "reference": "ca4f58b2ef4baa8f6cecbeca2573f88cd577d205"
+ "reference": "bf328d82105831db3e409195db0540ff57f27c80"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/mime/zipball/ca4f58b2ef4baa8f6cecbeca2573f88cd577d205",
- "reference": "ca4f58b2ef4baa8f6cecbeca2573f88cd577d205",
+ "url": "https://api.github.com/repos/symfony/mime/zipball/bf328d82105831db3e409195db0540ff57f27c80",
+ "reference": "bf328d82105831db3e409195db0540ff57f27c80",
"shasum": ""
},
"require": {
- "php": ">=8.1",
+ "php": ">=8.2",
"symfony/deprecation-contracts": "^2.5|^3",
"symfony/polyfill-intl-idn": "^1.10",
"symfony/polyfill-mbstring": "^1.0"
},
"conflict": {
"egulias/email-validator": "~3.0.0",
- "phpdocumentor/reflection-docblock": "<3.2.2",
- "phpdocumentor/type-resolver": "<1.4.0",
- "symfony/mailer": "<5.4",
- "symfony/serializer": "<6.3.2"
+ "phpdocumentor/reflection-docblock": "<5.2|>=7",
+ "phpdocumentor/type-resolver": "<1.5.1",
+ "symfony/mailer": "<6.4",
+ "symfony/serializer": "<6.4.3|>7.0,<7.0.3"
},
"require-dev": {
"egulias/email-validator": "^2.1.10|^3.1|^4",
"league/html-to-markdown": "^5.0",
- "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0",
- "symfony/dependency-injection": "^5.4|^6.0|^7.0",
- "symfony/property-access": "^5.4|^6.0|^7.0",
- "symfony/property-info": "^5.4|^6.0|^7.0",
- "symfony/serializer": "^6.3.2|^7.0"
+ "phpdocumentor/reflection-docblock": "^5.2|^6.0",
+ "symfony/dependency-injection": "^6.4|^7.0|^8.0",
+ "symfony/process": "^6.4|^7.0|^8.0",
+ "symfony/property-access": "^6.4|^7.0|^8.0",
+ "symfony/property-info": "^6.4|^7.0|^8.0",
+ "symfony/serializer": "^6.4.44|^7.4.17|^8.1.5"
},
"type": "library",
"autoload": {
@@ -7572,7 +7787,7 @@
"mime-type"
],
"support": {
- "source": "https://github.com/symfony/mime/tree/v6.4.0"
+ "source": "https://github.com/symfony/mime/tree/v7.4.17"
},
"funding": [
{
@@ -7583,29 +7798,33 @@
"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": "2023-10-17T11:49:05+00:00"
+ "time": "2026-08-22T09:04:42+00:00"
},
{
"name": "symfony/polyfill-ctype",
- "version": "v1.28.0",
+ "version": "v1.37.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-ctype.git",
- "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb"
+ "reference": "141046a8f9477948ff284fa65be2095baafb94f2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb",
- "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb",
+ "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/141046a8f9477948ff284fa65be2095baafb94f2",
+ "reference": "141046a8f9477948ff284fa65be2095baafb94f2",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.2"
},
"provide": {
"ext-ctype": "*"
@@ -7615,12 +7834,9 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.28-dev"
- },
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -7654,7 +7870,7 @@
"portable"
],
"support": {
- "source": "https://github.com/symfony/polyfill-ctype/tree/v1.28.0"
+ "source": "https://github.com/symfony/polyfill-ctype/tree/v1.37.0"
},
"funding": [
{
@@ -7665,41 +7881,42 @@
"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": "2023-01-26T09:26:14+00:00"
+ "time": "2026-04-10T16:19:22+00:00"
},
{
"name": "symfony/polyfill-intl-grapheme",
- "version": "v1.28.0",
+ "version": "v1.41.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-grapheme.git",
- "reference": "875e90aeea2777b6f135677f618529449334a612"
+ "reference": "bb899c1db0aa8127dc3afe8cda4a67eb24915f8d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/875e90aeea2777b6f135677f618529449334a612",
- "reference": "875e90aeea2777b6f135677f618529449334a612",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/bb899c1db0aa8127dc3afe8cda4a67eb24915f8d",
+ "reference": "bb899c1db0aa8127dc3afe8cda4a67eb24915f8d",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.2"
},
"suggest": {
"ext-intl": "For best performance"
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.28-dev"
- },
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -7735,7 +7952,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.28.0"
+ "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.41.0"
},
"funding": [
{
@@ -7746,43 +7963,43 @@
"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": "2023-01-26T09:26:14+00:00"
+ "time": "2026-07-28T08:25:59+00:00"
},
{
"name": "symfony/polyfill-intl-idn",
- "version": "v1.28.0",
+ "version": "v1.42.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-idn.git",
- "reference": "ecaafce9f77234a6a449d29e49267ba10499116d"
+ "reference": "51b5ff5ba85452b31ec6f55490b08148612339d9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/ecaafce9f77234a6a449d29e49267ba10499116d",
- "reference": "ecaafce9f77234a6a449d29e49267ba10499116d",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/51b5ff5ba85452b31ec6f55490b08148612339d9",
+ "reference": "51b5ff5ba85452b31ec6f55490b08148612339d9",
"shasum": ""
},
"require": {
- "php": ">=7.1",
- "symfony/polyfill-intl-normalizer": "^1.10",
- "symfony/polyfill-php72": "^1.10"
+ "php": ">=7.2",
+ "symfony/polyfill-intl-normalizer": "^1.10"
},
"suggest": {
"ext-intl": "For best performance"
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.28-dev"
- },
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -7822,7 +8039,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.28.0"
+ "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.42.0"
},
"funding": [
{
@@ -7833,41 +8050,42 @@
"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": "2023-01-26T09:30:37+00:00"
+ "time": "2026-08-24T10:51:20+00:00"
},
{
"name": "symfony/polyfill-intl-normalizer",
- "version": "v1.28.0",
+ "version": "v1.42.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
- "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92"
+ "reference": "aa20edea75bd9c48cfecc8360922e5a6e5c44502"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92",
- "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/aa20edea75bd9c48cfecc8360922e5a6e5c44502",
+ "reference": "aa20edea75bd9c48cfecc8360922e5a6e5c44502",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.2"
},
"suggest": {
"ext-intl": "For best performance"
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.28-dev"
- },
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -7895,18 +8113,103 @@
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Symfony polyfill for intl's Normalizer class and related functions",
+ "description": "Symfony polyfill for intl's Normalizer class and related functions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "intl",
+ "normalizer",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.42.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-08-07T06:33:24+00:00"
+ },
+ {
+ "name": "symfony/polyfill-mbstring",
+ "version": "v1.38.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-mbstring.git",
+ "reference": "d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6",
+ "reference": "d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6",
+ "shasum": ""
+ },
+ "require": {
+ "ext-iconv": "*",
+ "php": ">=7.2"
+ },
+ "provide": {
+ "ext-mbstring": "*"
+ },
+ "suggest": {
+ "ext-mbstring": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Mbstring\\": ""
+ }
+ },
+ "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 for the Mbstring extension",
"homepage": "https://symfony.com",
"keywords": [
"compatibility",
- "intl",
- "normalizer",
+ "mbstring",
"polyfill",
"portable",
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.28.0"
+ "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.38.2"
},
"funding": [
{
@@ -7917,44 +8220,39 @@
"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": "2023-01-26T09:26:14+00:00"
+ "time": "2026-05-27T06:59:30+00:00"
},
{
- "name": "symfony/polyfill-mbstring",
- "version": "v1.28.0",
+ "name": "symfony/polyfill-php80",
+ "version": "v1.37.0",
"source": {
"type": "git",
- "url": "https://github.com/symfony/polyfill-mbstring.git",
- "reference": "42292d99c55abe617799667f454222c54c60e229"
+ "url": "https://github.com/symfony/polyfill-php80.git",
+ "reference": "dfb55726c3a76ea3b6459fcfda1ec2d80a682411"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/42292d99c55abe617799667f454222c54c60e229",
- "reference": "42292d99c55abe617799667f454222c54c60e229",
+ "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/dfb55726c3a76ea3b6459fcfda1ec2d80a682411",
+ "reference": "dfb55726c3a76ea3b6459fcfda1ec2d80a682411",
"shasum": ""
},
"require": {
- "php": ">=7.1"
- },
- "provide": {
- "ext-mbstring": "*"
- },
- "suggest": {
- "ext-mbstring": "For best performance"
+ "php": ">=7.2"
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.28-dev"
- },
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -7962,14 +8260,21 @@
"bootstrap.php"
],
"psr-4": {
- "Symfony\\Polyfill\\Mbstring\\": ""
- }
+ "Symfony\\Polyfill\\Php80\\": ""
+ },
+ "classmap": [
+ "Resources/stubs"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
+ {
+ "name": "Ion Bazan",
+ "email": "ion.bazan@gmail.com"
+ },
{
"name": "Nicolas Grekas",
"email": "p@tchwork.com"
@@ -7979,17 +8284,16 @@
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Symfony polyfill for the Mbstring extension",
+ "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
"homepage": "https://symfony.com",
"keywords": [
"compatibility",
- "mbstring",
"polyfill",
"portable",
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.28.0"
+ "source": "https://github.com/symfony/polyfill-php80/tree/v1.37.0"
},
"funding": [
{
@@ -8000,38 +8304,39 @@
"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": "2023-07-28T09:04:16+00:00"
+ "time": "2026-04-10T16:19:22+00:00"
},
{
- "name": "symfony/polyfill-php72",
- "version": "v1.28.0",
+ "name": "symfony/polyfill-php83",
+ "version": "v1.41.0",
"source": {
"type": "git",
- "url": "https://github.com/symfony/polyfill-php72.git",
- "reference": "70f4aebd92afca2f865444d30a4d2151c13c3179"
+ "url": "https://github.com/symfony/polyfill-php83.git",
+ "reference": "5ea99087fb99c273a9b9236ed4c31e78b16103c6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/70f4aebd92afca2f865444d30a4d2151c13c3179",
- "reference": "70f4aebd92afca2f865444d30a4d2151c13c3179",
+ "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/5ea99087fb99c273a9b9236ed4c31e78b16103c6",
+ "reference": "5ea99087fb99c273a9b9236ed4c31e78b16103c6",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.2"
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.28-dev"
- },
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -8039,8 +8344,11 @@
"bootstrap.php"
],
"psr-4": {
- "Symfony\\Polyfill\\Php72\\": ""
- }
+ "Symfony\\Polyfill\\Php83\\": ""
+ },
+ "classmap": [
+ "Resources/stubs"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -8056,7 +8364,7 @@
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions",
+ "description": "Symfony polyfill backporting some PHP 8.3+ features to lower PHP versions",
"homepage": "https://symfony.com",
"keywords": [
"compatibility",
@@ -8065,7 +8373,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php72/tree/v1.28.0"
+ "source": "https://github.com/symfony/polyfill-php83/tree/v1.41.0"
},
"funding": [
{
@@ -8076,38 +8384,39 @@
"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": "2023-01-26T09:26:14+00:00"
+ "time": "2026-07-01T12:47:55+00:00"
},
{
- "name": "symfony/polyfill-php80",
- "version": "v1.28.0",
+ "name": "symfony/polyfill-php84",
+ "version": "v1.38.1",
"source": {
"type": "git",
- "url": "https://github.com/symfony/polyfill-php80.git",
- "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5"
+ "url": "https://github.com/symfony/polyfill-php84.git",
+ "reference": "f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/6caa57379c4aec19c0a12a38b59b26487dcfe4b5",
- "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5",
+ "url": "https://api.github.com/repos/symfony/polyfill-php84/zipball/f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa",
+ "reference": "f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.2"
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.28-dev"
- },
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -8115,7 +8424,7 @@
"bootstrap.php"
],
"psr-4": {
- "Symfony\\Polyfill\\Php80\\": ""
+ "Symfony\\Polyfill\\Php84\\": ""
},
"classmap": [
"Resources/stubs"
@@ -8126,10 +8435,6 @@
"MIT"
],
"authors": [
- {
- "name": "Ion Bazan",
- "email": "ion.bazan@gmail.com"
- },
{
"name": "Nicolas Grekas",
"email": "p@tchwork.com"
@@ -8139,7 +8444,7 @@
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
+ "description": "Symfony polyfill backporting some PHP 8.4+ features to lower PHP versions",
"homepage": "https://symfony.com",
"keywords": [
"compatibility",
@@ -8148,7 +8453,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php80/tree/v1.28.0"
+ "source": "https://github.com/symfony/polyfill-php84/tree/v1.38.1"
},
"funding": [
{
@@ -8159,39 +8464,39 @@
"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": "2023-01-26T09:26:14+00:00"
+ "time": "2026-05-26T12:51:13+00:00"
},
{
- "name": "symfony/polyfill-php83",
- "version": "v1.28.0",
+ "name": "symfony/polyfill-php85",
+ "version": "v1.41.0",
"source": {
"type": "git",
- "url": "https://github.com/symfony/polyfill-php83.git",
- "reference": "b0f46ebbeeeda3e9d2faebdfbf4b4eae9b59fa11"
+ "url": "https://github.com/symfony/polyfill-php85.git",
+ "reference": "255fab485aaa1006ed411040c42aecd7b5302d7a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/b0f46ebbeeeda3e9d2faebdfbf4b4eae9b59fa11",
- "reference": "b0f46ebbeeeda3e9d2faebdfbf4b4eae9b59fa11",
+ "url": "https://api.github.com/repos/symfony/polyfill-php85/zipball/255fab485aaa1006ed411040c42aecd7b5302d7a",
+ "reference": "255fab485aaa1006ed411040c42aecd7b5302d7a",
"shasum": ""
},
"require": {
- "php": ">=7.1",
- "symfony/polyfill-php80": "^1.14"
+ "php": ">=7.2"
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.28-dev"
- },
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -8199,7 +8504,7 @@
"bootstrap.php"
],
"psr-4": {
- "Symfony\\Polyfill\\Php83\\": ""
+ "Symfony\\Polyfill\\Php85\\": ""
},
"classmap": [
"Resources/stubs"
@@ -8219,7 +8524,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.5+ features to lower PHP versions",
"homepage": "https://symfony.com",
"keywords": [
"compatibility",
@@ -8228,7 +8533,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php83/tree/v1.28.0"
+ "source": "https://github.com/symfony/polyfill-php85/tree/v1.41.0"
},
"funding": [
{
@@ -8239,29 +8544,33 @@
"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": "2023-08-16T06:22:46+00:00"
+ "time": "2026-07-01T12:47:55+00:00"
},
{
"name": "symfony/polyfill-uuid",
- "version": "v1.28.0",
+ "version": "v1.37.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-uuid.git",
- "reference": "9c44518a5aff8da565c8a55dbe85d2769e6f630e"
+ "reference": "26dfec253c4cf3e51b541b52ddf7e42cb0908e94"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/9c44518a5aff8da565c8a55dbe85d2769e6f630e",
- "reference": "9c44518a5aff8da565c8a55dbe85d2769e6f630e",
+ "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/26dfec253c4cf3e51b541b52ddf7e42cb0908e94",
+ "reference": "26dfec253c4cf3e51b541b52ddf7e42cb0908e94",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.2"
},
"provide": {
"ext-uuid": "*"
@@ -8271,12 +8580,9 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.28-dev"
- },
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -8310,7 +8616,7 @@
"uuid"
],
"support": {
- "source": "https://github.com/symfony/polyfill-uuid/tree/v1.28.0"
+ "source": "https://github.com/symfony/polyfill-uuid/tree/v1.37.0"
},
"funding": [
{
@@ -8321,29 +8627,33 @@
"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": "2023-01-26T09:26:14+00:00"
+ "time": "2026-04-10T16:19:22+00:00"
},
{
"name": "symfony/process",
- "version": "v6.4.2",
+ "version": "v7.4.17",
"source": {
"type": "git",
"url": "https://github.com/symfony/process.git",
- "reference": "c4b1ef0bc80533d87a2e969806172f1c2a980241"
+ "reference": "058d17fc284cce14efb2385783b55014a461b176"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/process/zipball/c4b1ef0bc80533d87a2e969806172f1c2a980241",
- "reference": "c4b1ef0bc80533d87a2e969806172f1c2a980241",
+ "url": "https://api.github.com/repos/symfony/process/zipball/058d17fc284cce14efb2385783b55014a461b176",
+ "reference": "058d17fc284cce14efb2385783b55014a461b176",
"shasum": ""
},
"require": {
- "php": ">=8.1"
+ "php": ">=8.2"
},
"type": "library",
"autoload": {
@@ -8371,7 +8681,7 @@
"description": "Executes commands in sub-processes",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/process/tree/v6.4.2"
+ "source": "https://github.com/symfony/process/tree/v7.4.17"
},
"funding": [
{
@@ -8382,45 +8692,47 @@
"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": "2023-12-22T16:42:54+00:00"
+ "time": "2026-08-21T17:40:08+00:00"
},
{
"name": "symfony/routing",
- "version": "v6.4.2",
+ "version": "v7.4.17",
"source": {
"type": "git",
"url": "https://github.com/symfony/routing.git",
- "reference": "98eab13a07fddc85766f1756129c69f207ffbc21"
+ "reference": "ddd558991e98f693ae6bf5063cc1b0362c6bbec3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/routing/zipball/98eab13a07fddc85766f1756129c69f207ffbc21",
- "reference": "98eab13a07fddc85766f1756129c69f207ffbc21",
+ "url": "https://api.github.com/repos/symfony/routing/zipball/ddd558991e98f693ae6bf5063cc1b0362c6bbec3",
+ "reference": "ddd558991e98f693ae6bf5063cc1b0362c6bbec3",
"shasum": ""
},
"require": {
- "php": ">=8.1",
+ "php": ">=8.2",
"symfony/deprecation-contracts": "^2.5|^3"
},
"conflict": {
- "doctrine/annotations": "<1.12",
- "symfony/config": "<6.2",
- "symfony/dependency-injection": "<5.4",
- "symfony/yaml": "<5.4"
+ "symfony/config": "<6.4",
+ "symfony/dependency-injection": "<6.4",
+ "symfony/yaml": "<6.4"
},
"require-dev": {
- "doctrine/annotations": "^1.12|^2",
"psr/log": "^1|^2|^3",
- "symfony/config": "^6.2|^7.0",
- "symfony/dependency-injection": "^5.4|^6.0|^7.0",
- "symfony/expression-language": "^5.4|^6.0|^7.0",
- "symfony/http-foundation": "^5.4|^6.0|^7.0",
- "symfony/yaml": "^5.4|^6.0|^7.0"
+ "symfony/config": "^6.4|^7.0|^8.0",
+ "symfony/dependency-injection": "^6.4|^7.0|^8.0",
+ "symfony/expression-language": "^6.4|^7.0|^8.0",
+ "symfony/http-foundation": "^6.4|^7.0|^8.0",
+ "symfony/yaml": "^6.4|^7.0|^8.0"
},
"type": "library",
"autoload": {
@@ -8454,7 +8766,7 @@
"url"
],
"support": {
- "source": "https://github.com/symfony/routing/tree/v6.4.2"
+ "source": "https://github.com/symfony/routing/tree/v7.4.17"
},
"funding": [
{
@@ -8465,42 +8777,47 @@
"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": "2023-12-29T15:34:34+00:00"
+ "time": "2026-08-17T13:12:36+00:00"
},
{
"name": "symfony/service-contracts",
- "version": "v3.4.1",
+ "version": "v3.7.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/service-contracts.git",
- "reference": "fe07cbc8d837f60caf7018068e350cc5163681a0"
+ "reference": "c0a284bab1ed8aa0417e3d69250ab437739563a0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/service-contracts/zipball/fe07cbc8d837f60caf7018068e350cc5163681a0",
- "reference": "fe07cbc8d837f60caf7018068e350cc5163681a0",
+ "url": "https://api.github.com/repos/symfony/service-contracts/zipball/c0a284bab1ed8aa0417e3d69250ab437739563a0",
+ "reference": "c0a284bab1ed8aa0417e3d69250ab437739563a0",
"shasum": ""
},
"require": {
"php": ">=8.1",
- "psr/container": "^1.1|^2.0"
+ "psr/container": "^1.1|^2.0",
+ "symfony/deprecation-contracts": "^2.5|^3"
},
"conflict": {
"ext-psr": "<1.1|>=2"
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "3.4-dev"
- },
"thanks": {
- "name": "symfony/contracts",
- "url": "https://github.com/symfony/contracts"
+ "url": "https://github.com/symfony/contracts",
+ "name": "symfony/contracts"
+ },
+ "branch-alias": {
+ "dev-main": "3.7-dev"
}
},
"autoload": {
@@ -8536,7 +8853,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/service-contracts/tree/v3.4.1"
+ "source": "https://github.com/symfony/service-contracts/tree/v3.7.1"
},
"funding": [
{
@@ -8547,31 +8864,36 @@
"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": "2023-12-26T14:02:43+00:00"
+ "time": "2026-06-16T09:55:08+00:00"
},
{
"name": "symfony/string",
- "version": "v6.4.2",
+ "version": "v7.4.15",
"source": {
"type": "git",
"url": "https://github.com/symfony/string.git",
- "reference": "7cb80bc10bfcdf6b5492741c0b9357dac66940bc"
+ "reference": "e394af32256bf9e7bf80849d95e589167c10097b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/string/zipball/7cb80bc10bfcdf6b5492741c0b9357dac66940bc",
- "reference": "7cb80bc10bfcdf6b5492741c0b9357dac66940bc",
+ "url": "https://api.github.com/repos/symfony/string/zipball/e394af32256bf9e7bf80849d95e589167c10097b",
+ "reference": "e394af32256bf9e7bf80849d95e589167c10097b",
"shasum": ""
},
"require": {
- "php": ">=8.1",
+ "php": ">=8.2",
+ "symfony/deprecation-contracts": "^2.5|^3.0",
"symfony/polyfill-ctype": "~1.8",
- "symfony/polyfill-intl-grapheme": "~1.0",
+ "symfony/polyfill-intl-grapheme": "~1.33",
"symfony/polyfill-intl-normalizer": "~1.0",
"symfony/polyfill-mbstring": "~1.0"
},
@@ -8579,11 +8901,11 @@
"symfony/translation-contracts": "<2.5"
},
"require-dev": {
- "symfony/error-handler": "^5.4|^6.0|^7.0",
- "symfony/http-client": "^5.4|^6.0|^7.0",
- "symfony/intl": "^6.2|^7.0",
+ "symfony/emoji": "^7.1|^8.0",
+ "symfony/http-client": "^6.4|^7.0|^8.0",
+ "symfony/intl": "^6.4|^7.0|^8.0",
"symfony/translation-contracts": "^2.5|^3.0",
- "symfony/var-exporter": "^5.4|^6.0|^7.0"
+ "symfony/var-exporter": "^6.4|^7.0|^8.0"
},
"type": "library",
"autoload": {
@@ -8622,7 +8944,7 @@
"utf8"
],
"support": {
- "source": "https://github.com/symfony/string/tree/v6.4.2"
+ "source": "https://github.com/symfony/string/tree/v7.4.15"
},
"funding": [
{
@@ -8633,60 +8955,65 @@
"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": "2023-12-10T16:15:48+00:00"
+ "time": "2026-07-28T07:33:02+00:00"
},
{
"name": "symfony/translation",
- "version": "v6.4.2",
+ "version": "v7.4.17",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation.git",
- "reference": "a2ab2ec1a462e53016de8e8d5e8912bfd62ea681"
+ "reference": "2ee1e4a3b32a528a642babe041ff7c440b213b4b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/translation/zipball/a2ab2ec1a462e53016de8e8d5e8912bfd62ea681",
- "reference": "a2ab2ec1a462e53016de8e8d5e8912bfd62ea681",
+ "url": "https://api.github.com/repos/symfony/translation/zipball/2ee1e4a3b32a528a642babe041ff7c440b213b4b",
+ "reference": "2ee1e4a3b32a528a642babe041ff7c440b213b4b",
"shasum": ""
},
"require": {
- "php": ">=8.1",
+ "php": ">=8.2",
"symfony/deprecation-contracts": "^2.5|^3",
"symfony/polyfill-mbstring": "~1.0",
- "symfony/translation-contracts": "^2.5|^3.0"
+ "symfony/translation-contracts": "^2.5.3|^3.3"
},
"conflict": {
- "symfony/config": "<5.4",
- "symfony/console": "<5.4",
- "symfony/dependency-injection": "<5.4",
+ "nikic/php-parser": "<5.0",
+ "symfony/config": "<6.4",
+ "symfony/console": "<6.4",
+ "symfony/dependency-injection": "<6.4",
"symfony/http-client-contracts": "<2.5",
- "symfony/http-kernel": "<5.4",
+ "symfony/http-kernel": "<6.4",
"symfony/service-contracts": "<2.5",
- "symfony/twig-bundle": "<5.4",
- "symfony/yaml": "<5.4"
+ "symfony/twig-bundle": "<6.4",
+ "symfony/yaml": "<6.4"
},
"provide": {
"symfony/translation-implementation": "2.3|3.0"
},
"require-dev": {
- "nikic/php-parser": "^4.13",
+ "nikic/php-parser": "^5.0",
"psr/log": "^1|^2|^3",
- "symfony/config": "^5.4|^6.0|^7.0",
- "symfony/console": "^5.4|^6.0|^7.0",
- "symfony/dependency-injection": "^5.4|^6.0|^7.0",
- "symfony/finder": "^5.4|^6.0|^7.0",
+ "symfony/config": "^6.4|^7.0|^8.0",
+ "symfony/console": "^6.4|^7.0|^8.0",
+ "symfony/dependency-injection": "^6.4|^7.0|^8.0",
+ "symfony/finder": "^6.4|^7.0|^8.0",
"symfony/http-client-contracts": "^2.5|^3.0",
- "symfony/http-kernel": "^5.4|^6.0|^7.0",
- "symfony/intl": "^5.4|^6.0|^7.0",
+ "symfony/http-kernel": "^6.4|^7.0|^8.0",
+ "symfony/intl": "^6.4|^7.0|^8.0",
"symfony/polyfill-intl-icu": "^1.21",
- "symfony/routing": "^5.4|^6.0|^7.0",
+ "symfony/routing": "^6.4|^7.0|^8.0",
"symfony/service-contracts": "^2.5|^3",
- "symfony/yaml": "^5.4|^6.0|^7.0"
+ "symfony/yaml": "^6.4|^7.0|^8.0"
},
"type": "library",
"autoload": {
@@ -8717,7 +9044,7 @@
"description": "Provides tools to internationalize your application",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/translation/tree/v6.4.2"
+ "source": "https://github.com/symfony/translation/tree/v7.4.17"
},
"funding": [
{
@@ -8728,25 +9055,29 @@
"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": "2023-12-18T09:25:29+00:00"
+ "time": "2026-08-21T17:40:08+00:00"
},
{
"name": "symfony/translation-contracts",
- "version": "v3.4.1",
+ "version": "v3.7.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation-contracts.git",
- "reference": "06450585bf65e978026bda220cdebca3f867fde7"
+ "reference": "ccb206b98faccc511ebae8e5fad50f2dc0b30621"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/06450585bf65e978026bda220cdebca3f867fde7",
- "reference": "06450585bf65e978026bda220cdebca3f867fde7",
+ "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/ccb206b98faccc511ebae8e5fad50f2dc0b30621",
+ "reference": "ccb206b98faccc511ebae8e5fad50f2dc0b30621",
"shasum": ""
},
"require": {
@@ -8754,12 +9085,12 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "3.4-dev"
- },
"thanks": {
- "name": "symfony/contracts",
- "url": "https://github.com/symfony/contracts"
+ "url": "https://github.com/symfony/contracts",
+ "name": "symfony/contracts"
+ },
+ "branch-alias": {
+ "dev-main": "3.7-dev"
}
},
"autoload": {
@@ -8795,7 +9126,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/translation-contracts/tree/v3.4.1"
+ "source": "https://github.com/symfony/translation-contracts/tree/v3.7.1"
},
"funding": [
{
@@ -8806,33 +9137,37 @@
"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": "2023-12-26T14:02:43+00:00"
+ "time": "2026-06-05T06:23:12+00:00"
},
{
"name": "symfony/uid",
- "version": "v6.4.0",
+ "version": "v7.4.17",
"source": {
"type": "git",
"url": "https://github.com/symfony/uid.git",
- "reference": "8092dd1b1a41372110d06374f99ee62f7f0b9a92"
+ "reference": "69d732355a139c6f8881337d28515aa01f12b8be"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/uid/zipball/8092dd1b1a41372110d06374f99ee62f7f0b9a92",
- "reference": "8092dd1b1a41372110d06374f99ee62f7f0b9a92",
+ "url": "https://api.github.com/repos/symfony/uid/zipball/69d732355a139c6f8881337d28515aa01f12b8be",
+ "reference": "69d732355a139c6f8881337d28515aa01f12b8be",
"shasum": ""
},
"require": {
- "php": ">=8.1",
+ "php": ">=8.2",
"symfony/polyfill-uuid": "^1.15"
},
"require-dev": {
- "symfony/console": "^5.4|^6.0|^7.0"
+ "symfony/console": "^6.4|^7.0|^8.0"
},
"type": "library",
"autoload": {
@@ -8869,7 +9204,7 @@
"uuid"
],
"support": {
- "source": "https://github.com/symfony/uid/tree/v6.4.0"
+ "source": "https://github.com/symfony/uid/tree/v7.4.17"
},
"funding": [
{
@@ -8880,43 +9215,45 @@
"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": "2023-10-31T08:18:17+00:00"
+ "time": "2026-08-11T07:38:58+00:00"
},
{
"name": "symfony/var-dumper",
- "version": "v6.4.2",
+ "version": "v7.4.17",
"source": {
"type": "git",
"url": "https://github.com/symfony/var-dumper.git",
- "reference": "68d6573ec98715ddcae5a0a85bee3c1c27a4c33f"
+ "reference": "53712df8727da1744490202eeb9cb50d4b95419d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/var-dumper/zipball/68d6573ec98715ddcae5a0a85bee3c1c27a4c33f",
- "reference": "68d6573ec98715ddcae5a0a85bee3c1c27a4c33f",
+ "url": "https://api.github.com/repos/symfony/var-dumper/zipball/53712df8727da1744490202eeb9cb50d4b95419d",
+ "reference": "53712df8727da1744490202eeb9cb50d4b95419d",
"shasum": ""
},
"require": {
- "php": ">=8.1",
+ "php": ">=8.2",
"symfony/deprecation-contracts": "^2.5|^3",
"symfony/polyfill-mbstring": "~1.0"
},
"conflict": {
- "symfony/console": "<5.4"
+ "symfony/console": "<6.4"
},
"require-dev": {
- "ext-iconv": "*",
- "symfony/console": "^5.4|^6.0|^7.0",
- "symfony/error-handler": "^6.3|^7.0",
- "symfony/http-kernel": "^5.4|^6.0|^7.0",
- "symfony/process": "^5.4|^6.0|^7.0",
- "symfony/uid": "^5.4|^6.0|^7.0",
- "twig/twig": "^2.13|^3.0.4"
+ "symfony/console": "^6.4|^7.0|^8.0",
+ "symfony/http-kernel": "^6.4|^7.0|^8.0",
+ "symfony/process": "^6.4|^7.0|^8.0",
+ "symfony/uid": "^6.4|^7.0|^8.0",
+ "twig/twig": "^3.12|^4.0"
},
"bin": [
"Resources/bin/var-dump-server"
@@ -8954,7 +9291,7 @@
"dump"
],
"support": {
- "source": "https://github.com/symfony/var-dumper/tree/v6.4.2"
+ "source": "https://github.com/symfony/var-dumper/tree/v7.4.17"
},
"funding": [
{
@@ -8965,40 +9302,189 @@
"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": "2023-12-28T19:16:56+00:00"
+ "time": "2026-08-21T12:09:28+00:00"
+ },
+ {
+ "name": "thecodingmachine/safe",
+ "version": "v3.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/thecodingmachine/safe.git",
+ "reference": "705683a25bacf0d4860c7dea4d7947bfd09eea19"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/thecodingmachine/safe/zipball/705683a25bacf0d4860c7dea4d7947bfd09eea19",
+ "reference": "705683a25bacf0d4860c7dea4d7947bfd09eea19",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.1"
+ },
+ "require-dev": {
+ "php-parallel-lint/php-parallel-lint": "^1.4",
+ "phpstan/phpstan": "^2",
+ "phpunit/phpunit": "^10",
+ "squizlabs/php_codesniffer": "^3.2"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "lib/special_cases.php",
+ "generated/apache.php",
+ "generated/apcu.php",
+ "generated/array.php",
+ "generated/bzip2.php",
+ "generated/calendar.php",
+ "generated/classobj.php",
+ "generated/com.php",
+ "generated/cubrid.php",
+ "generated/curl.php",
+ "generated/datetime.php",
+ "generated/dir.php",
+ "generated/eio.php",
+ "generated/errorfunc.php",
+ "generated/exec.php",
+ "generated/fileinfo.php",
+ "generated/filesystem.php",
+ "generated/filter.php",
+ "generated/fpm.php",
+ "generated/ftp.php",
+ "generated/funchand.php",
+ "generated/gettext.php",
+ "generated/gmp.php",
+ "generated/gnupg.php",
+ "generated/hash.php",
+ "generated/ibase.php",
+ "generated/ibmDb2.php",
+ "generated/iconv.php",
+ "generated/image.php",
+ "generated/imap.php",
+ "generated/info.php",
+ "generated/inotify.php",
+ "generated/json.php",
+ "generated/ldap.php",
+ "generated/libxml.php",
+ "generated/lzf.php",
+ "generated/mailparse.php",
+ "generated/mbstring.php",
+ "generated/misc.php",
+ "generated/mysql.php",
+ "generated/mysqli.php",
+ "generated/network.php",
+ "generated/oci8.php",
+ "generated/opcache.php",
+ "generated/openssl.php",
+ "generated/outcontrol.php",
+ "generated/pcntl.php",
+ "generated/pcre.php",
+ "generated/pgsql.php",
+ "generated/posix.php",
+ "generated/ps.php",
+ "generated/pspell.php",
+ "generated/readline.php",
+ "generated/rnp.php",
+ "generated/rpminfo.php",
+ "generated/rrd.php",
+ "generated/sem.php",
+ "generated/session.php",
+ "generated/shmop.php",
+ "generated/sockets.php",
+ "generated/sodium.php",
+ "generated/solr.php",
+ "generated/spl.php",
+ "generated/sqlsrv.php",
+ "generated/ssdeep.php",
+ "generated/ssh2.php",
+ "generated/stream.php",
+ "generated/strings.php",
+ "generated/swoole.php",
+ "generated/uodbc.php",
+ "generated/uopz.php",
+ "generated/url.php",
+ "generated/var.php",
+ "generated/xdiff.php",
+ "generated/xml.php",
+ "generated/xmlrpc.php",
+ "generated/yaml.php",
+ "generated/yaz.php",
+ "generated/zip.php",
+ "generated/zlib.php"
+ ],
+ "classmap": [
+ "lib/DateTime.php",
+ "lib/DateTimeImmutable.php",
+ "lib/Exceptions/",
+ "generated/Exceptions/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "PHP core functions that throw exceptions instead of returning FALSE on error",
+ "support": {
+ "issues": "https://github.com/thecodingmachine/safe/issues",
+ "source": "https://github.com/thecodingmachine/safe/tree/v3.4.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/OskarStark",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/shish",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/silasjoisten",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/staabm",
+ "type": "github"
+ }
+ ],
+ "time": "2026-02-04T18:08:13+00:00"
},
{
"name": "tijsverkoyen/css-to-inline-styles",
- "version": "v2.2.7",
+ "version": "v2.4.0",
"source": {
"type": "git",
"url": "https://github.com/tijsverkoyen/CssToInlineStyles.git",
- "reference": "83ee6f38df0a63106a9e4536e3060458b74ccedb"
+ "reference": "f0292ccf0ec75843d65027214426b6b163b48b41"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/83ee6f38df0a63106a9e4536e3060458b74ccedb",
- "reference": "83ee6f38df0a63106a9e4536e3060458b74ccedb",
+ "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/f0292ccf0ec75843d65027214426b6b163b48b41",
+ "reference": "f0292ccf0ec75843d65027214426b6b163b48b41",
"shasum": ""
},
"require": {
"ext-dom": "*",
"ext-libxml": "*",
- "php": "^5.5 || ^7.0 || ^8.0",
- "symfony/css-selector": "^2.7 || ^3.0 || ^4.0 || ^5.0 || ^6.0 || ^7.0"
+ "php": "^7.4 || ^8.0",
+ "symfony/css-selector": "^5.4 || ^6.0 || ^7.0 || ^8.0"
},
"require-dev": {
- "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^7.5 || ^8.5.21 || ^9.5.10"
+ "phpstan/phpstan": "^2.0",
+ "phpstan/phpstan-phpunit": "^2.0",
+ "phpunit/phpunit": "^8.5.21 || ^9.5.10"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.2.x-dev"
+ "dev-master": "2.x-dev"
}
},
"autoload": {
@@ -9021,32 +9507,32 @@
"homepage": "https://github.com/tijsverkoyen/CssToInlineStyles",
"support": {
"issues": "https://github.com/tijsverkoyen/CssToInlineStyles/issues",
- "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/v2.2.7"
+ "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/v2.4.0"
},
- "time": "2023-12-08T13:03:43+00:00"
+ "time": "2025-12-02T11:56:42+00:00"
},
{
"name": "vlucas/phpdotenv",
- "version": "v5.6.0",
+ "version": "v5.7.0",
"source": {
"type": "git",
"url": "https://github.com/vlucas/phpdotenv.git",
- "reference": "2cf9fb6054c2bb1d59d1f3817706ecdb9d2934c4"
+ "reference": "301c07936b16d88628b126b01d082ba153cf4c40"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/2cf9fb6054c2bb1d59d1f3817706ecdb9d2934c4",
- "reference": "2cf9fb6054c2bb1d59d1f3817706ecdb9d2934c4",
+ "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/301c07936b16d88628b126b01d082ba153cf4c40",
+ "reference": "301c07936b16d88628b126b01d082ba153cf4c40",
"shasum": ""
},
"require": {
"ext-pcre": "*",
- "graham-campbell/result-type": "^1.1.2",
+ "graham-campbell/result-type": "^1.2",
"php": "^7.2.5 || ^8.0",
- "phpoption/phpoption": "^1.9.2",
- "symfony/polyfill-ctype": "^1.24",
- "symfony/polyfill-mbstring": "^1.24",
- "symfony/polyfill-php80": "^1.24"
+ "phpoption/phpoption": "^1.10",
+ "symfony/polyfill-ctype": "^1.26",
+ "symfony/polyfill-mbstring": "^1.26",
+ "symfony/polyfill-php80": "^1.26"
},
"require-dev": {
"bamarni/composer-bin-plugin": "^1.8.2",
@@ -9060,7 +9546,7 @@
"extra": {
"bamarni-bin": {
"bin-links": true,
- "forward-command": true
+ "forward-command": false
},
"branch-alias": {
"dev-master": "5.6-dev"
@@ -9087,7 +9573,7 @@
"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",
@@ -9095,7 +9581,7 @@
],
"support": {
"issues": "https://github.com/vlucas/phpdotenv/issues",
- "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.0"
+ "source": "https://github.com/vlucas/phpdotenv/tree/v5.7.0"
},
"funding": [
{
@@ -9107,27 +9593,27 @@
"type": "tidelift"
}
],
- "time": "2023-11-12T22:43:29+00:00"
+ "time": "2026-08-24T18:07:49+00:00"
},
{
"name": "voku/portable-ascii",
- "version": "2.0.1",
+ "version": "2.1.1",
"source": {
"type": "git",
"url": "https://github.com/voku/portable-ascii.git",
- "reference": "b56450eed252f6801410d810c8e1727224ae0743"
+ "reference": "8e1051fe39379367aecf014f41744ce7539a856f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/voku/portable-ascii/zipball/b56450eed252f6801410d810c8e1727224ae0743",
- "reference": "b56450eed252f6801410d810c8e1727224ae0743",
+ "url": "https://api.github.com/repos/voku/portable-ascii/zipball/8e1051fe39379367aecf014f41744ce7539a856f",
+ "reference": "8e1051fe39379367aecf014f41744ce7539a856f",
"shasum": ""
},
"require": {
- "php": ">=7.0.0"
+ "php": ">=7.1.0"
},
"require-dev": {
- "phpunit/phpunit": "~6.0 || ~7.0 || ~9.0"
+ "phpunit/phpunit": "~8.5 || ~9.6 || ~10.5 || ~11.5"
},
"suggest": {
"ext-intl": "Use Intl for transliterator_transliterate() support"
@@ -9145,7 +9631,7 @@
"authors": [
{
"name": "Lars Moelleken",
- "homepage": "http://www.moelleken.org/"
+ "homepage": "https://www.moelleken.org/"
}
],
"description": "Portable ASCII library - performance optimized (ascii) string functions for php.",
@@ -9157,7 +9643,7 @@
],
"support": {
"issues": "https://github.com/voku/portable-ascii/issues",
- "source": "https://github.com/voku/portable-ascii/tree/2.0.1"
+ "source": "https://github.com/voku/portable-ascii/tree/2.1.1"
},
"funding": [
{
@@ -9181,98 +9667,36 @@
"type": "tidelift"
}
],
- "time": "2022-03-08T17:03:00+00:00"
- },
- {
- "name": "webmozart/assert",
- "version": "1.11.0",
- "source": {
- "type": "git",
- "url": "https://github.com/webmozarts/assert.git",
- "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991",
- "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991",
- "shasum": ""
- },
- "require": {
- "ext-ctype": "*",
- "php": "^7.2 || ^8.0"
- },
- "conflict": {
- "phpstan/phpstan": "<0.12.20",
- "vimeo/psalm": "<4.6.1 || 4.6.2"
- },
- "require-dev": {
- "phpunit/phpunit": "^8.5.13"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.10-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Webmozart\\Assert\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Bernhard Schussek",
- "email": "bschussek@gmail.com"
- }
- ],
- "description": "Assertions to validate method input/output with nice error messages.",
- "keywords": [
- "assert",
- "check",
- "validate"
- ],
- "support": {
- "issues": "https://github.com/webmozarts/assert/issues",
- "source": "https://github.com/webmozarts/assert/tree/1.11.0"
- },
- "time": "2022-06-03T18:03:27+00:00"
+ "time": "2026-04-26T05:33:54+00:00"
}
],
"packages-dev": [
{
"name": "backpack/generators",
- "version": "v4.0.2",
+ "version": "v4.0.7",
"source": {
"type": "git",
"url": "https://github.com/Laravel-Backpack/Generators.git",
- "reference": "e5314899f3b449c3f23dff06f2569371b0de35df"
+ "reference": "cd193adfe75573ff59033e473bbb2e2574a05f61"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Laravel-Backpack/Generators/zipball/e5314899f3b449c3f23dff06f2569371b0de35df",
- "reference": "e5314899f3b449c3f23dff06f2569371b0de35df",
+ "url": "https://api.github.com/repos/Laravel-Backpack/Generators/zipball/cd193adfe75573ff59033e473bbb2e2574a05f61",
+ "reference": "cd193adfe75573ff59033e473bbb2e2574a05f61",
"shasum": ""
},
"require": {
"backpack/crud": "^6.0"
},
- "require-dev": {
- "phpunit/phpunit": "^9.0||^7.0",
- "scrutinizer/ocular": "~1.1"
- },
"type": "library",
"extra": {
- "branch-alias": {
- "dev-master": "1.0-dev"
- },
"laravel": {
"providers": [
"Backpack\\Generators\\GeneratorsServiceProvider"
]
+ },
+ "branch-alias": {
+ "dev-master": "1.0-dev"
}
},
"autoload": {
@@ -9309,22 +9733,22 @@
],
"support": {
"issues": "https://github.com/Laravel-Backpack/Generators/issues",
- "source": "https://github.com/Laravel-Backpack/Generators/tree/v4.0.2"
+ "source": "https://github.com/Laravel-Backpack/Generators/tree/v4.0.7"
},
- "time": "2023-07-24T10:35:15+00:00"
+ "time": "2024-10-15T10:41:40+00:00"
},
{
"name": "fakerphp/faker",
- "version": "v1.23.1",
+ "version": "v1.24.1",
"source": {
"type": "git",
"url": "https://github.com/FakerPHP/Faker.git",
- "reference": "bfb4fe148adbf78eff521199619b93a52ae3554b"
+ "reference": "e0ee18eb1e6dc3cda3ce9fd97e5a0689a88a64b5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/bfb4fe148adbf78eff521199619b93a52ae3554b",
- "reference": "bfb4fe148adbf78eff521199619b93a52ae3554b",
+ "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/e0ee18eb1e6dc3cda3ce9fd97e5a0689a88a64b5",
+ "reference": "e0ee18eb1e6dc3cda3ce9fd97e5a0689a88a64b5",
"shasum": ""
},
"require": {
@@ -9372,32 +9796,32 @@
],
"support": {
"issues": "https://github.com/FakerPHP/Faker/issues",
- "source": "https://github.com/FakerPHP/Faker/tree/v1.23.1"
+ "source": "https://github.com/FakerPHP/Faker/tree/v1.24.1"
},
- "time": "2024-01-02T13:46:09+00:00"
+ "time": "2024-11-21T13:46:39+00:00"
},
{
"name": "filp/whoops",
- "version": "2.15.4",
+ "version": "2.18.4",
"source": {
"type": "git",
"url": "https://github.com/filp/whoops.git",
- "reference": "a139776fa3f5985a50b509f2a02ff0f709d2a546"
+ "reference": "d2102955e48b9fd9ab24280a7ad12ed552752c4d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/filp/whoops/zipball/a139776fa3f5985a50b509f2a02ff0f709d2a546",
- "reference": "a139776fa3f5985a50b509f2a02ff0f709d2a546",
+ "url": "https://api.github.com/repos/filp/whoops/zipball/d2102955e48b9fd9ab24280a7ad12ed552752c4d",
+ "reference": "d2102955e48b9fd9ab24280a7ad12ed552752c4d",
"shasum": ""
},
"require": {
- "php": "^5.5.9 || ^7.0 || ^8.0",
+ "php": "^7.1 || ^8.0",
"psr/log": "^1.0.1 || ^2.0 || ^3.0"
},
"require-dev": {
- "mockery/mockery": "^0.9 || ^1.0",
- "phpunit/phpunit": "^4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.3",
- "symfony/var-dumper": "^2.6 || ^3.0 || ^4.0 || ^5.0"
+ "mockery/mockery": "^1.0",
+ "phpunit/phpunit": "^7.5.20 || ^8.5.8 || ^9.3.3",
+ "symfony/var-dumper": "^4.0 || ^5.0"
},
"suggest": {
"symfony/var-dumper": "Pretty print complex values better with var-dumper available",
@@ -9437,7 +9861,7 @@
],
"support": {
"issues": "https://github.com/filp/whoops/issues",
- "source": "https://github.com/filp/whoops/tree/2.15.4"
+ "source": "https://github.com/filp/whoops/tree/2.18.4"
},
"funding": [
{
@@ -9445,24 +9869,26 @@
"type": "github"
}
],
- "time": "2023-11-03T12:00:00+00:00"
+ "time": "2025-08-08T12:00:00+00:00"
},
{
"name": "hamcrest/hamcrest-php",
- "version": "v2.0.1",
+ "version": "v3.0.0",
"source": {
"type": "git",
"url": "https://github.com/hamcrest/hamcrest-php.git",
- "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3"
+ "reference": "b61cd040da1a4925bc90a51c074f5297e7c0fa52"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/8c3d0a3f6af734494ad8f6fbbee0ba92422859f3",
- "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3",
+ "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/b61cd040da1a4925bc90a51c074f5297e7c0fa52",
+ "reference": "b61cd040da1a4925bc90a51c074f5297e7c0fa52",
"shasum": ""
},
"require": {
- "php": "^5.3|^7.0|^8.0"
+ "ext-ctype": "*",
+ "ext-dom": "*",
+ "php": "^7.4|^8.0"
},
"replace": {
"cordoval/hamcrest-php": "*",
@@ -9470,13 +9896,15 @@
"kodova/hamcrest-php": "*"
},
"require-dev": {
- "phpunit/php-file-iterator": "^1.4 || ^2.0",
- "phpunit/phpunit": "^4.8.36 || ^5.7 || ^6.5 || ^7.0"
+ "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": "2.1-dev"
+ "dev-master": "3.0-dev"
}
},
"autoload": {
@@ -9494,22 +9922,22 @@
],
"support": {
"issues": "https://github.com/hamcrest/hamcrest-php/issues",
- "source": "https://github.com/hamcrest/hamcrest-php/tree/v2.0.1"
+ "source": "https://github.com/hamcrest/hamcrest-php/tree/v3.0.0"
},
- "time": "2020-07-09T08:09:16+00:00"
+ "time": "2026-03-17T11:56:53+00:00"
},
{
"name": "laravel/pint",
- "version": "v1.13.7",
+ "version": "v1.30.4",
"source": {
"type": "git",
"url": "https://github.com/laravel/pint.git",
- "reference": "4157768980dbd977f1c4b4cc94997416d8b30ece"
+ "reference": "a96cb6eee2961905d2fce7207aefb80945bf6b28"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/pint/zipball/4157768980dbd977f1c4b4cc94997416d8b30ece",
- "reference": "4157768980dbd977f1c4b4cc94997416d8b30ece",
+ "url": "https://api.github.com/repos/laravel/pint/zipball/a96cb6eee2961905d2fce7207aefb80945bf6b28",
+ "reference": "a96cb6eee2961905d2fce7207aefb80945bf6b28",
"shasum": ""
},
"require": {
@@ -9517,16 +9945,19 @@
"ext-mbstring": "*",
"ext-tokenizer": "*",
"ext-xml": "*",
- "php": "^8.1.0"
+ "php": "^8.2.0"
},
"require-dev": {
- "friendsofphp/php-cs-fixer": "^3.38.0",
- "illuminate/view": "^10.30.1",
- "laravel-zero/framework": "^10.3.0",
- "mockery/mockery": "^1.6.6",
- "nunomaduro/larastan": "^2.6.4",
- "nunomaduro/termwind": "^1.15.1",
- "pestphp/pest": "^2.24.2"
+ "composer/semver": "^3.4.4",
+ "friendsofphp/php-cs-fixer": "^3.95.18",
+ "illuminate/view": "^12.65.0",
+ "larastan/larastan": "^3.10.0",
+ "laravel-zero/framework": "^12.1.0",
+ "laravel/agent-detector": "^2.0.2",
+ "laravel/prompts": "^0.3.22",
+ "mockery/mockery": "^1.6.12",
+ "nunomaduro/termwind": "^2.4.0",
+ "pestphp/pest": "^3.8.7"
},
"bin": [
"builds/pint"
@@ -9552,6 +9983,7 @@
"description": "An opinionated code formatter for PHP.",
"homepage": "https://laravel.com",
"keywords": [
+ "dev",
"format",
"formatter",
"lint",
@@ -9562,41 +9994,39 @@
"issues": "https://github.com/laravel/pint/issues",
"source": "https://github.com/laravel/pint"
},
- "time": "2023-12-05T19:43:12+00:00"
+ "time": "2026-08-05T16:47:22+00:00"
},
{
"name": "laravel/sail",
- "version": "v1.26.3",
+ "version": "v1.67.0",
"source": {
"type": "git",
"url": "https://github.com/laravel/sail.git",
- "reference": "fa1ad5fbb03686dfc752bfd1861d86091cc1c32d"
+ "reference": "639e03ac12cf23def171770bcab05758045b2642"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/sail/zipball/fa1ad5fbb03686dfc752bfd1861d86091cc1c32d",
- "reference": "fa1ad5fbb03686dfc752bfd1861d86091cc1c32d",
+ "url": "https://api.github.com/repos/laravel/sail/zipball/639e03ac12cf23def171770bcab05758045b2642",
+ "reference": "639e03ac12cf23def171770bcab05758045b2642",
"shasum": ""
},
"require": {
- "illuminate/console": "^9.0|^10.0|^11.0",
- "illuminate/contracts": "^9.0|^10.0|^11.0",
- "illuminate/support": "^9.0|^10.0|^11.0",
+ "illuminate/console": "^9.52.16|^10.0|^11.0|^12.0|^13.0",
+ "illuminate/contracts": "^9.52.16|^10.0|^11.0|^12.0|^13.0",
+ "illuminate/support": "^9.52.16|^10.0|^11.0|^12.0|^13.0",
"php": "^8.0",
- "symfony/yaml": "^6.0|^7.0"
+ "symfony/console": "^6.0|^7.0|^8.0",
+ "symfony/yaml": "^6.0|^7.0|^8.0"
},
"require-dev": {
- "orchestra/testbench": "^7.0|^8.0|^9.0",
- "phpstan/phpstan": "^1.10"
+ "orchestra/testbench": "^7.0|^8.0|^9.0|^10.0|^11.0",
+ "phpstan/phpstan": "^2.0"
},
"bin": [
"bin/sail"
],
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.x-dev"
- },
+ "extra": {
"laravel": {
"providers": [
"Laravel\\Sail\\SailServiceProvider"
@@ -9627,33 +10057,32 @@
"issues": "https://github.com/laravel/sail/issues",
"source": "https://github.com/laravel/sail"
},
- "time": "2023-12-02T18:26:39+00:00"
+ "time": "2026-08-12T13:55:56+00:00"
},
{
"name": "mockery/mockery",
- "version": "1.6.7",
+ "version": "1.6.15",
"source": {
"type": "git",
"url": "https://github.com/mockery/mockery.git",
- "reference": "0cc058854b3195ba21dc6b1f7b1f60f4ef3a9c06"
+ "reference": "967a801bd188989a5669bd280f252d51c0fdc9ee"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/mockery/mockery/zipball/0cc058854b3195ba21dc6b1f7b1f60f4ef3a9c06",
- "reference": "0cc058854b3195ba21dc6b1f7b1f60f4ef3a9c06",
+ "url": "https://api.github.com/repos/mockery/mockery/zipball/967a801bd188989a5669bd280f252d51c0fdc9ee",
+ "reference": "967a801bd188989a5669bd280f252d51c0fdc9ee",
"shasum": ""
},
"require": {
- "hamcrest/hamcrest-php": "^2.0.1",
- "lib-pcre": ">=7.0",
+ "hamcrest/hamcrest-php": "^2.0 || ^3.0",
"php": ">=7.3"
},
"conflict": {
"phpunit/phpunit": "<8.0"
},
"require-dev": {
- "phpunit/phpunit": "^8.5 || ^9.6.10",
- "symplify/easy-coding-standard": "^12.0.8"
+ "phpunit/phpunit": "^9.6.36",
+ "symplify/easy-coding-standard": "^13.2.17"
},
"type": "library",
"autoload": {
@@ -9710,32 +10139,33 @@
"security": "https://github.com/mockery/mockery/security/advisories",
"source": "https://github.com/mockery/mockery"
},
- "time": "2023-12-10T02:24:34+00:00"
+ "time": "2026-08-19T19:37:52+00:00"
},
{
"name": "myclabs/deep-copy",
- "version": "1.11.1",
+ "version": "1.14.0",
"source": {
"type": "git",
"url": "https://github.com/myclabs/DeepCopy.git",
- "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c"
+ "reference": "8680aa248f8e07bc8fb43f56f0f5fc77a0c96aae"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c",
- "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c",
+ "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",
- "doctrine/common": "<2.13.3 || >=3,<3.2.2"
+ "doctrine/common": "<2.13.3 || >=3 <3.2.2"
},
"require-dev": {
"doctrine/collections": "^1.6.8",
"doctrine/common": "^2.13.3 || ^3.2.2",
+ "phpspec/prophecy": "^1.10",
"phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13"
},
"type": "library",
@@ -9761,52 +10191,48 @@
],
"support": {
"issues": "https://github.com/myclabs/DeepCopy/issues",
- "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1"
+ "source": "https://github.com/myclabs/DeepCopy/tree/1.14.0"
},
"funding": [
{
- "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy",
- "type": "tidelift"
+ "url": "https://github.com/mnapoli",
+ "type": "github"
}
],
- "time": "2023-03-08T13:26:56+00:00"
+ "time": "2026-08-11T10:17:44+00:00"
},
{
"name": "nunomaduro/collision",
- "version": "v7.10.0",
+ "version": "v8.9.5",
"source": {
"type": "git",
"url": "https://github.com/nunomaduro/collision.git",
- "reference": "49ec67fa7b002712da8526678abd651c09f375b2"
+ "reference": "fb53eacd509a1d303858e2d20cfebf2d630254ec"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nunomaduro/collision/zipball/49ec67fa7b002712da8526678abd651c09f375b2",
- "reference": "49ec67fa7b002712da8526678abd651c09f375b2",
+ "url": "https://api.github.com/repos/nunomaduro/collision/zipball/fb53eacd509a1d303858e2d20cfebf2d630254ec",
+ "reference": "fb53eacd509a1d303858e2d20cfebf2d630254ec",
"shasum": ""
},
"require": {
- "filp/whoops": "^2.15.3",
- "nunomaduro/termwind": "^1.15.1",
- "php": "^8.1.0",
- "symfony/console": "^6.3.4"
+ "filp/whoops": "^2.18.4",
+ "nunomaduro/termwind": "^2.4.0",
+ "php": "^8.2.0",
+ "symfony/console": "^7.4.14 || ^8.1.1"
},
"conflict": {
- "laravel/framework": ">=11.0.0"
+ "laravel/framework": "<11.48.0 || >=14.0.0",
+ "phpunit/phpunit": "<11.5.50 || >=14.0.0"
},
"require-dev": {
- "brianium/paratest": "^7.3.0",
- "laravel/framework": "^10.28.0",
- "laravel/pint": "^1.13.3",
- "laravel/sail": "^1.25.0",
- "laravel/sanctum": "^3.3.1",
- "laravel/tinker": "^2.8.2",
- "nunomaduro/larastan": "^2.6.4",
- "orchestra/testbench-core": "^8.13.0",
- "pestphp/pest": "^2.23.2",
- "phpunit/phpunit": "^10.4.1",
- "sebastian/environment": "^6.0.1",
- "spatie/laravel-ignition": "^2.3.1"
+ "brianium/paratest": "^7.8.5",
+ "larastan/larastan": "^3.10.0",
+ "laravel/framework": "^11.48.0 || ^12.56.0 || ^13.20.0",
+ "laravel/pint": "^1.29.3",
+ "orchestra/testbench-core": "^9.12.0 || ^10.12.1 || ^11.3.5",
+ "pestphp/pest": "^3.8.5 || ^4.7.5 || ^5.0.0",
+ "sebastian/environment": "^7.2.1 || ^8.1.2 || ^9.3.2"
},
"type": "library",
"extra": {
@@ -9814,6 +10240,9 @@
"providers": [
"NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider"
]
+ },
+ "branch-alias": {
+ "dev-8.x": "8.x-dev"
}
},
"autoload": {
@@ -9840,6 +10269,7 @@
"cli",
"command-line",
"console",
+ "dev",
"error",
"handling",
"laravel",
@@ -9865,24 +10295,25 @@
"type": "patreon"
}
],
- "time": "2023-10-11T15:45:01+00:00"
+ "time": "2026-07-15T19:09:14+00:00"
},
{
"name": "phar-io/manifest",
- "version": "2.0.3",
+ "version": "2.0.4",
"source": {
"type": "git",
"url": "https://github.com/phar-io/manifest.git",
- "reference": "97803eca37d319dfa7826cc2437fc020857acb53"
+ "reference": "54750ef60c58e43759730615a392c31c80e23176"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53",
- "reference": "97803eca37d319dfa7826cc2437fc020857acb53",
+ "url": "https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176",
+ "reference": "54750ef60c58e43759730615a392c31c80e23176",
"shasum": ""
},
"require": {
"ext-dom": "*",
+ "ext-libxml": "*",
"ext-phar": "*",
"ext-xmlwriter": "*",
"phar-io/version": "^3.0.1",
@@ -9923,9 +10354,15 @@
"description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
"support": {
"issues": "https://github.com/phar-io/manifest/issues",
- "source": "https://github.com/phar-io/manifest/tree/2.0.3"
+ "source": "https://github.com/phar-io/manifest/tree/2.0.4"
},
- "time": "2021-07-20T11:28:43+00:00"
+ "funding": [
+ {
+ "url": "https://github.com/theseer",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-03T12:33:53+00:00"
},
{
"name": "phar-io/version",
@@ -9980,35 +10417,35 @@
},
{
"name": "phpunit/php-code-coverage",
- "version": "10.1.11",
+ "version": "11.0.12",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
- "reference": "78c3b7625965c2513ee96569a4dbb62601784145"
+ "reference": "2c1ed04922802c15e1de5d7447b4856de949cf56"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/78c3b7625965c2513ee96569a4dbb62601784145",
- "reference": "78c3b7625965c2513ee96569a4dbb62601784145",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/2c1ed04922802c15e1de5d7447b4856de949cf56",
+ "reference": "2c1ed04922802c15e1de5d7447b4856de949cf56",
"shasum": ""
},
"require": {
"ext-dom": "*",
"ext-libxml": "*",
"ext-xmlwriter": "*",
- "nikic/php-parser": "^4.18 || ^5.0",
- "php": ">=8.1",
- "phpunit/php-file-iterator": "^4.0",
- "phpunit/php-text-template": "^3.0",
- "sebastian/code-unit-reverse-lookup": "^3.0",
- "sebastian/complexity": "^3.0",
- "sebastian/environment": "^6.0",
- "sebastian/lines-of-code": "^2.0",
- "sebastian/version": "^4.0",
- "theseer/tokenizer": "^1.2.0"
+ "nikic/php-parser": "^5.7.0",
+ "php": ">=8.2",
+ "phpunit/php-file-iterator": "^5.1.0",
+ "phpunit/php-text-template": "^4.0.1",
+ "sebastian/code-unit-reverse-lookup": "^4.0.1",
+ "sebastian/complexity": "^4.0.1",
+ "sebastian/environment": "^7.2.1",
+ "sebastian/lines-of-code": "^3.0.1",
+ "sebastian/version": "^5.0.2",
+ "theseer/tokenizer": "^1.3.1"
},
"require-dev": {
- "phpunit/phpunit": "^10.1"
+ "phpunit/phpunit": "^11.5.46"
},
"suggest": {
"ext-pcov": "PHP extension that provides line coverage",
@@ -10017,7 +10454,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "10.1-dev"
+ "dev-main": "11.0.x-dev"
}
},
"autoload": {
@@ -10046,40 +10483,52 @@
"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/10.1.11"
+ "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/11.0.12"
},
"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-code-coverage",
+ "type": "tidelift"
}
],
- "time": "2023-12-21T15:38:30+00:00"
+ "time": "2025-12-24T07:01:01+00:00"
},
{
"name": "phpunit/php-file-iterator",
- "version": "4.1.0",
+ "version": "5.1.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-file-iterator.git",
- "reference": "a95037b6d9e608ba092da1b23931e537cadc3c3c"
+ "reference": "2f3a64888c814fc235386b7387dd5b5ed92ad903"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/a95037b6d9e608ba092da1b23931e537cadc3c3c",
- "reference": "a95037b6d9e608ba092da1b23931e537cadc3c3c",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/2f3a64888c814fc235386b7387dd5b5ed92ad903",
+ "reference": "2f3a64888c814fc235386b7387dd5b5ed92ad903",
"shasum": ""
},
"require": {
- "php": ">=8.1"
+ "php": ">=8.2"
},
"require-dev": {
- "phpunit/phpunit": "^10.0"
+ "phpunit/phpunit": "^11.3"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "4.0-dev"
+ "dev-main": "5.1-dev"
}
},
"autoload": {
@@ -10107,36 +10556,48 @@
"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/4.1.0"
+ "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/5.1.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-file-iterator",
+ "type": "tidelift"
}
],
- "time": "2023-08-31T06:24:48+00:00"
+ "time": "2026-02-02T13:52:54+00:00"
},
{
"name": "phpunit/php-invoker",
- "version": "4.0.0",
+ "version": "5.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-invoker.git",
- "reference": "f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7"
+ "reference": "c1ca3814734c07492b3d4c5f794f4b0995333da2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7",
- "reference": "f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/c1ca3814734c07492b3d4c5f794f4b0995333da2",
+ "reference": "c1ca3814734c07492b3d4c5f794f4b0995333da2",
"shasum": ""
},
"require": {
- "php": ">=8.1"
+ "php": ">=8.2"
},
"require-dev": {
"ext-pcntl": "*",
- "phpunit/phpunit": "^10.0"
+ "phpunit/phpunit": "^11.0"
},
"suggest": {
"ext-pcntl": "*"
@@ -10144,7 +10605,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "4.0-dev"
+ "dev-main": "5.0-dev"
}
},
"autoload": {
@@ -10170,7 +10631,8 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/php-invoker/issues",
- "source": "https://github.com/sebastianbergmann/php-invoker/tree/4.0.0"
+ "security": "https://github.com/sebastianbergmann/php-invoker/security/policy",
+ "source": "https://github.com/sebastianbergmann/php-invoker/tree/5.0.1"
},
"funding": [
{
@@ -10178,32 +10640,32 @@
"type": "github"
}
],
- "time": "2023-02-03T06:56:09+00:00"
+ "time": "2024-07-03T05:07:44+00:00"
},
{
"name": "phpunit/php-text-template",
- "version": "3.0.1",
+ "version": "4.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-text-template.git",
- "reference": "0c7b06ff49e3d5072f057eb1fa59258bf287a748"
+ "reference": "3e0404dc6b300e6bf56415467ebcb3fe4f33e964"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/0c7b06ff49e3d5072f057eb1fa59258bf287a748",
- "reference": "0c7b06ff49e3d5072f057eb1fa59258bf287a748",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/3e0404dc6b300e6bf56415467ebcb3fe4f33e964",
+ "reference": "3e0404dc6b300e6bf56415467ebcb3fe4f33e964",
"shasum": ""
},
"require": {
- "php": ">=8.1"
+ "php": ">=8.2"
},
"require-dev": {
- "phpunit/phpunit": "^10.0"
+ "phpunit/phpunit": "^11.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "3.0-dev"
+ "dev-main": "4.0-dev"
}
},
"autoload": {
@@ -10230,7 +10692,7 @@
"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/3.0.1"
+ "source": "https://github.com/sebastianbergmann/php-text-template/tree/4.0.1"
},
"funding": [
{
@@ -10238,32 +10700,32 @@
"type": "github"
}
],
- "time": "2023-08-31T14:07:24+00:00"
+ "time": "2024-07-03T05:08:43+00:00"
},
{
"name": "phpunit/php-timer",
- "version": "6.0.0",
+ "version": "7.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-timer.git",
- "reference": "e2a2d67966e740530f4a3343fe2e030ffdc1161d"
+ "reference": "3b415def83fbcb41f991d9ebf16ae4ad8b7837b3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/e2a2d67966e740530f4a3343fe2e030ffdc1161d",
- "reference": "e2a2d67966e740530f4a3343fe2e030ffdc1161d",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3b415def83fbcb41f991d9ebf16ae4ad8b7837b3",
+ "reference": "3b415def83fbcb41f991d9ebf16ae4ad8b7837b3",
"shasum": ""
},
"require": {
- "php": ">=8.1"
+ "php": ">=8.2"
},
"require-dev": {
- "phpunit/phpunit": "^10.0"
+ "phpunit/phpunit": "^11.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "6.0-dev"
+ "dev-main": "7.0-dev"
}
},
"autoload": {
@@ -10289,7 +10751,8 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/php-timer/issues",
- "source": "https://github.com/sebastianbergmann/php-timer/tree/6.0.0"
+ "security": "https://github.com/sebastianbergmann/php-timer/security/policy",
+ "source": "https://github.com/sebastianbergmann/php-timer/tree/7.0.1"
},
"funding": [
{
@@ -10297,49 +10760,50 @@
"type": "github"
}
],
- "time": "2023-02-03T06:57:52+00:00"
+ "time": "2024-07-03T05:09:35+00:00"
},
{
"name": "phpunit/phpunit",
- "version": "10.5.5",
+ "version": "11.5.56",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "ed21115d505b4b4f7dc7b5651464e19a2c7f7856"
+ "reference": "5f83edffa6967c3db468d48a695ec7bcb02e9256"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/ed21115d505b4b4f7dc7b5651464e19a2c7f7856",
- "reference": "ed21115d505b4b4f7dc7b5651464e19a2c7f7856",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/5f83edffa6967c3db468d48a695ec7bcb02e9256",
+ "reference": "5f83edffa6967c3db468d48a695ec7bcb02e9256",
"shasum": ""
},
"require": {
"ext-dom": "*",
+ "ext-filter": "*",
"ext-json": "*",
"ext-libxml": "*",
"ext-mbstring": "*",
- "ext-xml": "*",
"ext-xmlwriter": "*",
- "myclabs/deep-copy": "^1.10.1",
- "phar-io/manifest": "^2.0.3",
- "phar-io/version": "^3.0.2",
- "php": ">=8.1",
- "phpunit/php-code-coverage": "^10.1.5",
- "phpunit/php-file-iterator": "^4.0",
- "phpunit/php-invoker": "^4.0",
- "phpunit/php-text-template": "^3.0",
- "phpunit/php-timer": "^6.0",
- "sebastian/cli-parser": "^2.0",
- "sebastian/code-unit": "^2.0",
- "sebastian/comparator": "^5.0",
- "sebastian/diff": "^5.0",
- "sebastian/environment": "^6.0",
- "sebastian/exporter": "^5.1",
- "sebastian/global-state": "^6.0.1",
- "sebastian/object-enumerator": "^5.0",
- "sebastian/recursion-context": "^5.0",
- "sebastian/type": "^4.0",
- "sebastian/version": "^4.0"
+ "myclabs/deep-copy": "^1.13.4",
+ "phar-io/manifest": "^2.0.4",
+ "phar-io/version": "^3.2.1",
+ "php": ">=8.2",
+ "phpunit/php-code-coverage": "^11.0.12",
+ "phpunit/php-file-iterator": "^5.1.1",
+ "phpunit/php-invoker": "^5.0.1",
+ "phpunit/php-text-template": "^4.0.1",
+ "phpunit/php-timer": "^7.0.1",
+ "sebastian/cli-parser": "^3.0.2",
+ "sebastian/code-unit": "^3.0.3",
+ "sebastian/comparator": "^6.3.3",
+ "sebastian/diff": "^6.0.2",
+ "sebastian/environment": "^7.2.1",
+ "sebastian/exporter": "^6.3.2",
+ "sebastian/global-state": "^7.0.2",
+ "sebastian/object-enumerator": "^6.0.1",
+ "sebastian/recursion-context": "^6.0.3",
+ "sebastian/type": "^5.1.3",
+ "sebastian/version": "^5.0.2",
+ "staabm/side-effects-detector": "^1.0.5"
},
"suggest": {
"ext-soap": "To be able to generate mocks based on WSDL files"
@@ -10350,7 +10814,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "10.5-dev"
+ "dev-main": "11.5-dev"
}
},
"autoload": {
@@ -10382,48 +10846,40 @@
"support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
"security": "https://github.com/sebastianbergmann/phpunit/security/policy",
- "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.5"
+ "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.56"
},
"funding": [
{
- "url": "https://phpunit.de/sponsors.html",
- "type": "custom"
- },
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit",
- "type": "tidelift"
+ "url": "https://phpunit.de/sponsoring.html",
+ "type": "other"
}
],
- "time": "2023-12-27T15:13:52+00:00"
+ "time": "2026-07-06T14:52:39+00:00"
},
{
"name": "sebastian/cli-parser",
- "version": "2.0.0",
+ "version": "3.0.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/cli-parser.git",
- "reference": "efdc130dbbbb8ef0b545a994fd811725c5282cae"
+ "reference": "15c5dd40dc4f38794d383bb95465193f5e0ae180"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/efdc130dbbbb8ef0b545a994fd811725c5282cae",
- "reference": "efdc130dbbbb8ef0b545a994fd811725c5282cae",
+ "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/15c5dd40dc4f38794d383bb95465193f5e0ae180",
+ "reference": "15c5dd40dc4f38794d383bb95465193f5e0ae180",
"shasum": ""
},
"require": {
- "php": ">=8.1"
+ "php": ">=8.2"
},
"require-dev": {
- "phpunit/phpunit": "^10.0"
+ "phpunit/phpunit": "^11.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "2.0-dev"
+ "dev-main": "3.0-dev"
}
},
"autoload": {
@@ -10446,7 +10902,8 @@
"homepage": "https://github.com/sebastianbergmann/cli-parser",
"support": {
"issues": "https://github.com/sebastianbergmann/cli-parser/issues",
- "source": "https://github.com/sebastianbergmann/cli-parser/tree/2.0.0"
+ "security": "https://github.com/sebastianbergmann/cli-parser/security/policy",
+ "source": "https://github.com/sebastianbergmann/cli-parser/tree/3.0.2"
},
"funding": [
{
@@ -10454,32 +10911,32 @@
"type": "github"
}
],
- "time": "2023-02-03T06:58:15+00:00"
+ "time": "2024-07-03T04:41:36+00:00"
},
{
"name": "sebastian/code-unit",
- "version": "2.0.0",
+ "version": "3.0.3",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/code-unit.git",
- "reference": "a81fee9eef0b7a76af11d121767abc44c104e503"
+ "reference": "54391c61e4af8078e5b276ab082b6d3c54c9ad64"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/a81fee9eef0b7a76af11d121767abc44c104e503",
- "reference": "a81fee9eef0b7a76af11d121767abc44c104e503",
+ "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/54391c61e4af8078e5b276ab082b6d3c54c9ad64",
+ "reference": "54391c61e4af8078e5b276ab082b6d3c54c9ad64",
"shasum": ""
},
"require": {
- "php": ">=8.1"
+ "php": ">=8.2"
},
"require-dev": {
- "phpunit/phpunit": "^10.0"
+ "phpunit/phpunit": "^11.5"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "2.0-dev"
+ "dev-main": "3.0-dev"
}
},
"autoload": {
@@ -10502,7 +10959,8 @@
"homepage": "https://github.com/sebastianbergmann/code-unit",
"support": {
"issues": "https://github.com/sebastianbergmann/code-unit/issues",
- "source": "https://github.com/sebastianbergmann/code-unit/tree/2.0.0"
+ "security": "https://github.com/sebastianbergmann/code-unit/security/policy",
+ "source": "https://github.com/sebastianbergmann/code-unit/tree/3.0.3"
},
"funding": [
{
@@ -10510,32 +10968,32 @@
"type": "github"
}
],
- "time": "2023-02-03T06:58:43+00:00"
+ "time": "2025-03-19T07:56:08+00:00"
},
{
"name": "sebastian/code-unit-reverse-lookup",
- "version": "3.0.0",
+ "version": "4.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
- "reference": "5e3a687f7d8ae33fb362c5c0743794bbb2420a1d"
+ "reference": "183a9b2632194febd219bb9246eee421dad8d45e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/5e3a687f7d8ae33fb362c5c0743794bbb2420a1d",
- "reference": "5e3a687f7d8ae33fb362c5c0743794bbb2420a1d",
+ "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/183a9b2632194febd219bb9246eee421dad8d45e",
+ "reference": "183a9b2632194febd219bb9246eee421dad8d45e",
"shasum": ""
},
"require": {
- "php": ">=8.1"
+ "php": ">=8.2"
},
"require-dev": {
- "phpunit/phpunit": "^10.0"
+ "phpunit/phpunit": "^11.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "3.0-dev"
+ "dev-main": "4.0-dev"
}
},
"autoload": {
@@ -10557,7 +11015,8 @@
"homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
"support": {
"issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues",
- "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/3.0.0"
+ "security": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/security/policy",
+ "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/4.0.1"
},
"funding": [
{
@@ -10565,36 +11024,39 @@
"type": "github"
}
],
- "time": "2023-02-03T06:59:15+00:00"
+ "time": "2024-07-03T04:45:54+00:00"
},
{
"name": "sebastian/comparator",
- "version": "5.0.1",
+ "version": "6.3.3",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/comparator.git",
- "reference": "2db5010a484d53ebf536087a70b4a5423c102372"
+ "reference": "2c95e1e86cb8dd41beb8d502057d1081ccc8eca9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2db5010a484d53ebf536087a70b4a5423c102372",
- "reference": "2db5010a484d53ebf536087a70b4a5423c102372",
+ "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2c95e1e86cb8dd41beb8d502057d1081ccc8eca9",
+ "reference": "2c95e1e86cb8dd41beb8d502057d1081ccc8eca9",
"shasum": ""
},
"require": {
"ext-dom": "*",
"ext-mbstring": "*",
- "php": ">=8.1",
- "sebastian/diff": "^5.0",
- "sebastian/exporter": "^5.0"
+ "php": ">=8.2",
+ "sebastian/diff": "^6.0",
+ "sebastian/exporter": "^6.0"
},
"require-dev": {
- "phpunit/phpunit": "^10.3"
+ "phpunit/phpunit": "^11.4"
+ },
+ "suggest": {
+ "ext-bcmath": "For comparing BcMath\\Number objects"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "5.0-dev"
+ "dev-main": "6.3-dev"
}
},
"autoload": {
@@ -10634,41 +11096,53 @@
"support": {
"issues": "https://github.com/sebastianbergmann/comparator/issues",
"security": "https://github.com/sebastianbergmann/comparator/security/policy",
- "source": "https://github.com/sebastianbergmann/comparator/tree/5.0.1"
+ "source": "https://github.com/sebastianbergmann/comparator/tree/6.3.3"
},
"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/comparator",
+ "type": "tidelift"
}
],
- "time": "2023-08-14T13:18:12+00:00"
+ "time": "2026-01-24T09:26:40+00:00"
},
{
"name": "sebastian/complexity",
- "version": "3.2.0",
+ "version": "4.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/complexity.git",
- "reference": "68ff824baeae169ec9f2137158ee529584553799"
+ "reference": "ee41d384ab1906c68852636b6de493846e13e5a0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/68ff824baeae169ec9f2137158ee529584553799",
- "reference": "68ff824baeae169ec9f2137158ee529584553799",
+ "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/ee41d384ab1906c68852636b6de493846e13e5a0",
+ "reference": "ee41d384ab1906c68852636b6de493846e13e5a0",
"shasum": ""
},
"require": {
- "nikic/php-parser": "^4.18 || ^5.0",
- "php": ">=8.1"
+ "nikic/php-parser": "^5.0",
+ "php": ">=8.2"
},
"require-dev": {
- "phpunit/phpunit": "^10.0"
+ "phpunit/phpunit": "^11.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "3.2-dev"
+ "dev-main": "4.0-dev"
}
},
"autoload": {
@@ -10692,7 +11166,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/complexity/issues",
"security": "https://github.com/sebastianbergmann/complexity/security/policy",
- "source": "https://github.com/sebastianbergmann/complexity/tree/3.2.0"
+ "source": "https://github.com/sebastianbergmann/complexity/tree/4.0.1"
},
"funding": [
{
@@ -10700,33 +11174,33 @@
"type": "github"
}
],
- "time": "2023-12-21T08:37:17+00:00"
+ "time": "2024-07-03T04:49:50+00:00"
},
{
"name": "sebastian/diff",
- "version": "5.1.0",
+ "version": "6.0.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/diff.git",
- "reference": "fbf413a49e54f6b9b17e12d900ac7f6101591b7f"
+ "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/fbf413a49e54f6b9b17e12d900ac7f6101591b7f",
- "reference": "fbf413a49e54f6b9b17e12d900ac7f6101591b7f",
+ "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/b4ccd857127db5d41a5b676f24b51371d76d8544",
+ "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544",
"shasum": ""
},
"require": {
- "php": ">=8.1"
+ "php": ">=8.2"
},
"require-dev": {
- "phpunit/phpunit": "^10.0",
+ "phpunit/phpunit": "^11.0",
"symfony/process": "^4.2 || ^5"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "5.1-dev"
+ "dev-main": "6.0-dev"
}
},
"autoload": {
@@ -10759,7 +11233,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/diff/issues",
"security": "https://github.com/sebastianbergmann/diff/security/policy",
- "source": "https://github.com/sebastianbergmann/diff/tree/5.1.0"
+ "source": "https://github.com/sebastianbergmann/diff/tree/6.0.2"
},
"funding": [
{
@@ -10767,27 +11241,27 @@
"type": "github"
}
],
- "time": "2023-12-22T10:55:06+00:00"
+ "time": "2024-07-03T04:53:05+00:00"
},
{
"name": "sebastian/environment",
- "version": "6.0.1",
+ "version": "7.2.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/environment.git",
- "reference": "43c751b41d74f96cbbd4e07b7aec9675651e2951"
+ "reference": "a5c75038693ad2e8d4b6c15ba2403532647830c4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/43c751b41d74f96cbbd4e07b7aec9675651e2951",
- "reference": "43c751b41d74f96cbbd4e07b7aec9675651e2951",
+ "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/a5c75038693ad2e8d4b6c15ba2403532647830c4",
+ "reference": "a5c75038693ad2e8d4b6c15ba2403532647830c4",
"shasum": ""
},
"require": {
- "php": ">=8.1"
+ "php": ">=8.2"
},
"require-dev": {
- "phpunit/phpunit": "^10.0"
+ "phpunit/phpunit": "^11.3"
},
"suggest": {
"ext-posix": "*"
@@ -10795,7 +11269,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "6.0-dev"
+ "dev-main": "7.2-dev"
}
},
"autoload": {
@@ -10823,42 +11297,54 @@
"support": {
"issues": "https://github.com/sebastianbergmann/environment/issues",
"security": "https://github.com/sebastianbergmann/environment/security/policy",
- "source": "https://github.com/sebastianbergmann/environment/tree/6.0.1"
+ "source": "https://github.com/sebastianbergmann/environment/tree/7.2.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/environment",
+ "type": "tidelift"
}
],
- "time": "2023-04-11T05:39:26+00:00"
+ "time": "2025-05-21T11:55:47+00:00"
},
{
"name": "sebastian/exporter",
- "version": "5.1.1",
+ "version": "6.3.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/exporter.git",
- "reference": "64f51654862e0f5e318db7e9dcc2292c63cdbddc"
+ "reference": "70a298763b40b213ec087c51c739efcaa90bcd74"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/64f51654862e0f5e318db7e9dcc2292c63cdbddc",
- "reference": "64f51654862e0f5e318db7e9dcc2292c63cdbddc",
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/70a298763b40b213ec087c51c739efcaa90bcd74",
+ "reference": "70a298763b40b213ec087c51c739efcaa90bcd74",
"shasum": ""
},
"require": {
"ext-mbstring": "*",
- "php": ">=8.1",
- "sebastian/recursion-context": "^5.0"
+ "php": ">=8.2",
+ "sebastian/recursion-context": "^6.0"
},
"require-dev": {
- "phpunit/phpunit": "^10.0"
+ "phpunit/phpunit": "^11.3"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "5.1-dev"
+ "dev-main": "6.3-dev"
}
},
"autoload": {
@@ -10901,43 +11387,55 @@
"support": {
"issues": "https://github.com/sebastianbergmann/exporter/issues",
"security": "https://github.com/sebastianbergmann/exporter/security/policy",
- "source": "https://github.com/sebastianbergmann/exporter/tree/5.1.1"
+ "source": "https://github.com/sebastianbergmann/exporter/tree/6.3.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/exporter",
+ "type": "tidelift"
}
],
- "time": "2023-09-24T13:22:09+00:00"
+ "time": "2025-09-24T06:12:51+00:00"
},
{
"name": "sebastian/global-state",
- "version": "6.0.1",
+ "version": "7.0.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/global-state.git",
- "reference": "7ea9ead78f6d380d2a667864c132c2f7b83055e4"
+ "reference": "3be331570a721f9a4b5917f4209773de17f747d7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/7ea9ead78f6d380d2a667864c132c2f7b83055e4",
- "reference": "7ea9ead78f6d380d2a667864c132c2f7b83055e4",
+ "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/3be331570a721f9a4b5917f4209773de17f747d7",
+ "reference": "3be331570a721f9a4b5917f4209773de17f747d7",
"shasum": ""
},
"require": {
- "php": ">=8.1",
- "sebastian/object-reflector": "^3.0",
- "sebastian/recursion-context": "^5.0"
+ "php": ">=8.2",
+ "sebastian/object-reflector": "^4.0",
+ "sebastian/recursion-context": "^6.0"
},
"require-dev": {
"ext-dom": "*",
- "phpunit/phpunit": "^10.0"
+ "phpunit/phpunit": "^11.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "6.0-dev"
+ "dev-main": "7.0-dev"
}
},
"autoload": {
@@ -10956,14 +11454,14 @@
}
],
"description": "Snapshotting of global state",
- "homepage": "http://www.github.com/sebastianbergmann/global-state",
+ "homepage": "https://www.github.com/sebastianbergmann/global-state",
"keywords": [
"global state"
],
"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/6.0.1"
+ "source": "https://github.com/sebastianbergmann/global-state/tree/7.0.2"
},
"funding": [
{
@@ -10971,33 +11469,33 @@
"type": "github"
}
],
- "time": "2023-07-19T07:19:23+00:00"
+ "time": "2024-07-03T04:57:36+00:00"
},
{
"name": "sebastian/lines-of-code",
- "version": "2.0.2",
+ "version": "3.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/lines-of-code.git",
- "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0"
+ "reference": "d36ad0d782e5756913e42ad87cb2890f4ffe467a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/856e7f6a75a84e339195d48c556f23be2ebf75d0",
- "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0",
+ "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/d36ad0d782e5756913e42ad87cb2890f4ffe467a",
+ "reference": "d36ad0d782e5756913e42ad87cb2890f4ffe467a",
"shasum": ""
},
"require": {
- "nikic/php-parser": "^4.18 || ^5.0",
- "php": ">=8.1"
+ "nikic/php-parser": "^5.0",
+ "php": ">=8.2"
},
"require-dev": {
- "phpunit/phpunit": "^10.0"
+ "phpunit/phpunit": "^11.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "2.0-dev"
+ "dev-main": "3.0-dev"
}
},
"autoload": {
@@ -11021,7 +11519,7 @@
"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/2.0.2"
+ "source": "https://github.com/sebastianbergmann/lines-of-code/tree/3.0.1"
},
"funding": [
{
@@ -11029,34 +11527,34 @@
"type": "github"
}
],
- "time": "2023-12-21T08:38:20+00:00"
+ "time": "2024-07-03T04:58:38+00:00"
},
{
"name": "sebastian/object-enumerator",
- "version": "5.0.0",
+ "version": "6.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/object-enumerator.git",
- "reference": "202d0e344a580d7f7d04b3fafce6933e59dae906"
+ "reference": "f5b498e631a74204185071eb41f33f38d64608aa"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/202d0e344a580d7f7d04b3fafce6933e59dae906",
- "reference": "202d0e344a580d7f7d04b3fafce6933e59dae906",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/f5b498e631a74204185071eb41f33f38d64608aa",
+ "reference": "f5b498e631a74204185071eb41f33f38d64608aa",
"shasum": ""
},
"require": {
- "php": ">=8.1",
- "sebastian/object-reflector": "^3.0",
- "sebastian/recursion-context": "^5.0"
+ "php": ">=8.2",
+ "sebastian/object-reflector": "^4.0",
+ "sebastian/recursion-context": "^6.0"
},
"require-dev": {
- "phpunit/phpunit": "^10.0"
+ "phpunit/phpunit": "^11.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "5.0-dev"
+ "dev-main": "6.0-dev"
}
},
"autoload": {
@@ -11078,7 +11576,8 @@
"homepage": "https://github.com/sebastianbergmann/object-enumerator/",
"support": {
"issues": "https://github.com/sebastianbergmann/object-enumerator/issues",
- "source": "https://github.com/sebastianbergmann/object-enumerator/tree/5.0.0"
+ "security": "https://github.com/sebastianbergmann/object-enumerator/security/policy",
+ "source": "https://github.com/sebastianbergmann/object-enumerator/tree/6.0.1"
},
"funding": [
{
@@ -11086,32 +11585,32 @@
"type": "github"
}
],
- "time": "2023-02-03T07:08:32+00:00"
+ "time": "2024-07-03T05:00:13+00:00"
},
{
"name": "sebastian/object-reflector",
- "version": "3.0.0",
+ "version": "4.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/object-reflector.git",
- "reference": "24ed13d98130f0e7122df55d06c5c4942a577957"
+ "reference": "6e1a43b411b2ad34146dee7524cb13a068bb35f9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/24ed13d98130f0e7122df55d06c5c4942a577957",
- "reference": "24ed13d98130f0e7122df55d06c5c4942a577957",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/6e1a43b411b2ad34146dee7524cb13a068bb35f9",
+ "reference": "6e1a43b411b2ad34146dee7524cb13a068bb35f9",
"shasum": ""
},
"require": {
- "php": ">=8.1"
+ "php": ">=8.2"
},
"require-dev": {
- "phpunit/phpunit": "^10.0"
+ "phpunit/phpunit": "^11.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "3.0-dev"
+ "dev-main": "4.0-dev"
}
},
"autoload": {
@@ -11133,7 +11632,8 @@
"homepage": "https://github.com/sebastianbergmann/object-reflector/",
"support": {
"issues": "https://github.com/sebastianbergmann/object-reflector/issues",
- "source": "https://github.com/sebastianbergmann/object-reflector/tree/3.0.0"
+ "security": "https://github.com/sebastianbergmann/object-reflector/security/policy",
+ "source": "https://github.com/sebastianbergmann/object-reflector/tree/4.0.1"
},
"funding": [
{
@@ -11141,32 +11641,32 @@
"type": "github"
}
],
- "time": "2023-02-03T07:06:18+00:00"
+ "time": "2024-07-03T05:01:32+00:00"
},
{
"name": "sebastian/recursion-context",
- "version": "5.0.0",
+ "version": "6.0.3",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/recursion-context.git",
- "reference": "05909fb5bc7df4c52992396d0116aed689f93712"
+ "reference": "f6458abbf32a6c8174f8f26261475dc133b3d9dc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/05909fb5bc7df4c52992396d0116aed689f93712",
- "reference": "05909fb5bc7df4c52992396d0116aed689f93712",
+ "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/f6458abbf32a6c8174f8f26261475dc133b3d9dc",
+ "reference": "f6458abbf32a6c8174f8f26261475dc133b3d9dc",
"shasum": ""
},
"require": {
- "php": ">=8.1"
+ "php": ">=8.2"
},
"require-dev": {
- "phpunit/phpunit": "^10.0"
+ "phpunit/phpunit": "^11.3"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "5.0-dev"
+ "dev-main": "6.0-dev"
}
},
"autoload": {
@@ -11196,40 +11696,53 @@
"homepage": "https://github.com/sebastianbergmann/recursion-context",
"support": {
"issues": "https://github.com/sebastianbergmann/recursion-context/issues",
- "source": "https://github.com/sebastianbergmann/recursion-context/tree/5.0.0"
+ "security": "https://github.com/sebastianbergmann/recursion-context/security/policy",
+ "source": "https://github.com/sebastianbergmann/recursion-context/tree/6.0.3"
},
"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/recursion-context",
+ "type": "tidelift"
}
],
- "time": "2023-02-03T07:05:40+00:00"
+ "time": "2025-08-13T04:42:22+00:00"
},
{
"name": "sebastian/type",
- "version": "4.0.0",
+ "version": "5.1.3",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/type.git",
- "reference": "462699a16464c3944eefc02ebdd77882bd3925bf"
+ "reference": "f77d2d4e78738c98d9a68d2596fe5e8fa380f449"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/462699a16464c3944eefc02ebdd77882bd3925bf",
- "reference": "462699a16464c3944eefc02ebdd77882bd3925bf",
+ "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/f77d2d4e78738c98d9a68d2596fe5e8fa380f449",
+ "reference": "f77d2d4e78738c98d9a68d2596fe5e8fa380f449",
"shasum": ""
},
"require": {
- "php": ">=8.1"
+ "php": ">=8.2"
},
"require-dev": {
- "phpunit/phpunit": "^10.0"
+ "phpunit/phpunit": "^11.3"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "4.0-dev"
+ "dev-main": "5.1-dev"
}
},
"autoload": {
@@ -11252,37 +11765,50 @@
"homepage": "https://github.com/sebastianbergmann/type",
"support": {
"issues": "https://github.com/sebastianbergmann/type/issues",
- "source": "https://github.com/sebastianbergmann/type/tree/4.0.0"
+ "security": "https://github.com/sebastianbergmann/type/security/policy",
+ "source": "https://github.com/sebastianbergmann/type/tree/5.1.3"
},
"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/type",
+ "type": "tidelift"
}
],
- "time": "2023-02-03T07:10:45+00:00"
+ "time": "2025-08-09T06:55:48+00:00"
},
{
"name": "sebastian/version",
- "version": "4.0.1",
+ "version": "5.0.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/version.git",
- "reference": "c51fa83a5d8f43f1402e3f32a005e6262244ef17"
+ "reference": "c687e3387b99f5b03b6caa64c74b63e2936ff874"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c51fa83a5d8f43f1402e3f32a005e6262244ef17",
- "reference": "c51fa83a5d8f43f1402e3f32a005e6262244ef17",
+ "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c687e3387b99f5b03b6caa64c74b63e2936ff874",
+ "reference": "c687e3387b99f5b03b6caa64c74b63e2936ff874",
"shasum": ""
},
"require": {
- "php": ">=8.1"
+ "php": ">=8.2"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "4.0-dev"
+ "dev-main": "5.0-dev"
}
},
"autoload": {
@@ -11305,7 +11831,8 @@
"homepage": "https://github.com/sebastianbergmann/version",
"support": {
"issues": "https://github.com/sebastianbergmann/version/issues",
- "source": "https://github.com/sebastianbergmann/version/tree/4.0.1"
+ "security": "https://github.com/sebastianbergmann/version/security/policy",
+ "source": "https://github.com/sebastianbergmann/version/tree/5.0.2"
},
"funding": [
{
@@ -11313,30 +11840,31 @@
"type": "github"
}
],
- "time": "2023-02-07T11:34:05+00:00"
+ "time": "2024-10-09T05:16:32+00:00"
},
{
"name": "spatie/backtrace",
- "version": "1.5.3",
+ "version": "1.8.2",
"source": {
"type": "git",
"url": "https://github.com/spatie/backtrace.git",
- "reference": "483f76a82964a0431aa836b6ed0edde0c248e3ab"
+ "reference": "8ffe78be5ed355b5009e3dd989d183433e9a5adc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/spatie/backtrace/zipball/483f76a82964a0431aa836b6ed0edde0c248e3ab",
- "reference": "483f76a82964a0431aa836b6ed0edde0c248e3ab",
+ "url": "https://api.github.com/repos/spatie/backtrace/zipball/8ffe78be5ed355b5009e3dd989d183433e9a5adc",
+ "reference": "8ffe78be5ed355b5009e3dd989d183433e9a5adc",
"shasum": ""
},
"require": {
- "php": "^7.3|^8.0"
+ "php": "^7.3 || ^8.0"
},
"require-dev": {
"ext-json": "*",
- "phpunit/phpunit": "^9.3",
- "spatie/phpunit-snapshot-assertions": "^4.2",
- "symfony/var-dumper": "^5.1"
+ "laravel/serializable-closure": "^1.3 || ^2.0",
+ "phpunit/phpunit": "^9.3 || ^11.4.3",
+ "spatie/phpunit-snapshot-assertions": "^4.2 || ^5.1.6",
+ "symfony/var-dumper": "^5.1|^6.0|^7.0|^8.0"
},
"type": "library",
"autoload": {
@@ -11363,7 +11891,8 @@
"spatie"
],
"support": {
- "source": "https://github.com/spatie/backtrace/tree/1.5.3"
+ "issues": "https://github.com/spatie/backtrace/issues",
+ "source": "https://github.com/spatie/backtrace/tree/1.8.2"
},
"funding": [
{
@@ -11375,31 +11904,104 @@
"type": "other"
}
],
- "time": "2023-06-28T12:59:17+00:00"
+ "time": "2026-03-11T13:48:28+00:00"
+ },
+ {
+ "name": "spatie/error-solutions",
+ "version": "1.1.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/spatie/error-solutions.git",
+ "reference": "e495d7178ca524f2dd0fe6a1d99a1e608e1c9936"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/spatie/error-solutions/zipball/e495d7178ca524f2dd0fe6a1d99a1e608e1c9936",
+ "reference": "e495d7178ca524f2dd0fe6a1d99a1e608e1c9936",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0"
+ },
+ "require-dev": {
+ "illuminate/broadcasting": "^10.0|^11.0|^12.0",
+ "illuminate/cache": "^10.0|^11.0|^12.0",
+ "illuminate/support": "^10.0|^11.0|^12.0",
+ "livewire/livewire": "^2.11|^3.5.20",
+ "openai-php/client": "^0.10.1",
+ "orchestra/testbench": "8.22.3|^9.0|^10.0",
+ "pestphp/pest": "^2.20|^3.0",
+ "phpstan/phpstan": "^2.1",
+ "psr/simple-cache": "^3.0",
+ "psr/simple-cache-implementation": "^3.0",
+ "spatie/ray": "^1.28",
+ "symfony/cache": "^5.4|^6.0|^7.0",
+ "symfony/process": "^5.4|^6.0|^7.0",
+ "vlucas/phpdotenv": "^5.5"
+ },
+ "suggest": {
+ "openai-php/client": "Require get solutions from OpenAI",
+ "simple-cache-implementation": "To cache solutions from OpenAI"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Spatie\\Ignition\\": "legacy/ignition",
+ "Spatie\\ErrorSolutions\\": "src",
+ "Spatie\\LaravelIgnition\\": "legacy/laravel-ignition"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Ruben Van Assche",
+ "email": "ruben@spatie.be",
+ "role": "Developer"
+ }
+ ],
+ "description": "This is my package error-solutions",
+ "homepage": "https://github.com/spatie/error-solutions",
+ "keywords": [
+ "error-solutions",
+ "spatie"
+ ],
+ "support": {
+ "issues": "https://github.com/spatie/error-solutions/issues",
+ "source": "https://github.com/spatie/error-solutions/tree/1.1.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/Spatie",
+ "type": "github"
+ }
+ ],
+ "time": "2025-02-14T12:29:50+00:00"
},
{
"name": "spatie/flare-client-php",
- "version": "1.4.3",
+ "version": "1.11.1",
"source": {
"type": "git",
"url": "https://github.com/spatie/flare-client-php.git",
- "reference": "5db2fdd743c3ede33f2a5367d89ec1a7c9c1d1ec"
+ "reference": "53f41b08a27cc039e1a8ed2be9a202e924f31bad"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/spatie/flare-client-php/zipball/5db2fdd743c3ede33f2a5367d89ec1a7c9c1d1ec",
- "reference": "5db2fdd743c3ede33f2a5367d89ec1a7c9c1d1ec",
+ "url": "https://api.github.com/repos/spatie/flare-client-php/zipball/53f41b08a27cc039e1a8ed2be9a202e924f31bad",
+ "reference": "53f41b08a27cc039e1a8ed2be9a202e924f31bad",
"shasum": ""
},
"require": {
- "illuminate/pipeline": "^8.0|^9.0|^10.0|^11.0",
- "nesbot/carbon": "^2.62.1",
+ "illuminate/pipeline": "^8.0|^9.0|^10.0|^11.0|^12.0|^13.0",
"php": "^8.0",
- "spatie/backtrace": "^1.5.2",
- "symfony/http-foundation": "^5.2|^6.0|^7.0",
- "symfony/mime": "^5.2|^6.0|^7.0",
- "symfony/process": "^5.2|^6.0|^7.0",
- "symfony/var-dumper": "^5.2|^6.0|^7.0"
+ "spatie/backtrace": "^1.6.1",
+ "symfony/http-foundation": "^5.2|^6.0|^7.0|^8.0",
+ "symfony/mime": "^5.2|^6.0|^7.0|^8.0",
+ "symfony/process": "^5.2|^6.0|^7.0|^8.0",
+ "symfony/var-dumper": "^5.2|^6.0|^7.0|^8.0"
},
"require-dev": {
"dms/phpunit-arraysubset-asserts": "^0.5.0",
@@ -11407,7 +12009,7 @@
"phpstan/extension-installer": "^1.1",
"phpstan/phpstan-deprecation-rules": "^1.0",
"phpstan/phpstan-phpunit": "^1.0",
- "spatie/phpunit-snapshot-assertions": "^4.0|^5.0"
+ "spatie/pest-plugin-snapshots": "^1.0|^2.0"
},
"type": "library",
"extra": {
@@ -11437,7 +12039,7 @@
],
"support": {
"issues": "https://github.com/spatie/flare-client-php/issues",
- "source": "https://github.com/spatie/flare-client-php/tree/1.4.3"
+ "source": "https://github.com/spatie/flare-client-php/tree/1.11.1"
},
"funding": [
{
@@ -11445,41 +12047,44 @@
"type": "github"
}
],
- "time": "2023-10-17T15:54:07+00:00"
+ "time": "2026-05-15T09:31:32+00:00"
},
{
"name": "spatie/ignition",
- "version": "1.12.0",
+ "version": "1.16.0",
"source": {
"type": "git",
"url": "https://github.com/spatie/ignition.git",
- "reference": "5b6f801c605a593106b623e45ca41496a6e7d56d"
+ "reference": "b59385bb7aa24dae81bcc15850ebecfda7b40838"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/spatie/ignition/zipball/5b6f801c605a593106b623e45ca41496a6e7d56d",
- "reference": "5b6f801c605a593106b623e45ca41496a6e7d56d",
+ "url": "https://api.github.com/repos/spatie/ignition/zipball/b59385bb7aa24dae81bcc15850ebecfda7b40838",
+ "reference": "b59385bb7aa24dae81bcc15850ebecfda7b40838",
"shasum": ""
},
"require": {
"ext-json": "*",
"ext-mbstring": "*",
"php": "^8.0",
- "spatie/backtrace": "^1.5.3",
- "spatie/flare-client-php": "^1.4.0",
- "symfony/console": "^5.4|^6.0|^7.0",
- "symfony/var-dumper": "^5.4|^6.0|^7.0"
+ "spatie/backtrace": "^1.7.1",
+ "spatie/error-solutions": "^1.1.2",
+ "spatie/flare-client-php": "^1.9",
+ "symfony/console": "^5.4.42|^6.0|^7.0|^8.0",
+ "symfony/http-foundation": "^5.4.42|^6.0|^7.0|^8.0",
+ "symfony/mime": "^5.4.42|^6.0|^7.0|^8.0",
+ "symfony/var-dumper": "^5.4.42|^6.0|^7.0|^8.0"
},
"require-dev": {
- "illuminate/cache": "^9.52|^10.0|^11.0",
+ "illuminate/cache": "^9.52|^10.0|^11.0|^12.0|^13.0",
"mockery/mockery": "^1.4",
- "pestphp/pest": "^1.20|^2.0",
+ "pestphp/pest": "^1.20|^2.0|^3.0",
"phpstan/extension-installer": "^1.1",
"phpstan/phpstan-deprecation-rules": "^1.0",
"phpstan/phpstan-phpunit": "^1.0",
"psr/simple-cache-implementation": "*",
- "symfony/cache": "^5.4|^6.0|^7.0",
- "symfony/process": "^5.4|^6.0|^7.0",
+ "symfony/cache": "^5.4.38|^6.0|^7.0|^8.0",
+ "symfony/process": "^5.4.35|^6.0|^7.0|^8.0",
"vlucas/phpdotenv": "^5.5"
},
"suggest": {
@@ -11528,43 +12133,43 @@
"type": "github"
}
],
- "time": "2024-01-03T15:49:39+00:00"
+ "time": "2026-03-17T10:51:08+00:00"
},
{
"name": "spatie/laravel-ignition",
- "version": "2.4.0",
+ "version": "2.12.0",
"source": {
"type": "git",
"url": "https://github.com/spatie/laravel-ignition.git",
- "reference": "b9395ba48d3f30d42092cf6ceff75ed7256cd604"
+ "reference": "45b3b6e1e73fc161cba2149972698644b99594ee"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/b9395ba48d3f30d42092cf6ceff75ed7256cd604",
- "reference": "b9395ba48d3f30d42092cf6ceff75ed7256cd604",
+ "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/45b3b6e1e73fc161cba2149972698644b99594ee",
+ "reference": "45b3b6e1e73fc161cba2149972698644b99594ee",
"shasum": ""
},
"require": {
"ext-curl": "*",
"ext-json": "*",
"ext-mbstring": "*",
- "illuminate/support": "^10.0|^11.0",
- "php": "^8.1",
- "spatie/flare-client-php": "^1.3.5",
- "spatie/ignition": "^1.9",
- "symfony/console": "^6.2.3|^7.0",
- "symfony/var-dumper": "^6.2.3|^7.0"
- },
- "require-dev": {
- "livewire/livewire": "^2.11|^3.3.5",
- "mockery/mockery": "^1.5.1",
- "openai-php/client": "^0.8.1",
- "orchestra/testbench": "^8.0|^9.0",
- "pestphp/pest": "^2.30",
- "phpstan/extension-installer": "^1.2",
- "phpstan/phpstan-deprecation-rules": "^1.1.1",
- "phpstan/phpstan-phpunit": "^1.3.3",
- "vlucas/phpdotenv": "^5.5"
+ "illuminate/support": "^11.0|^12.0|^13.0",
+ "nesbot/carbon": "^2.72|^3.0",
+ "php": "^8.2",
+ "spatie/ignition": "^1.16",
+ "symfony/console": "^7.4|^8.0",
+ "symfony/var-dumper": "^7.4|^8.0"
+ },
+ "require-dev": {
+ "livewire/livewire": "^3.7.0|^4.0|dev-josh/v3-laravel-13-support",
+ "mockery/mockery": "^1.6.12",
+ "openai-php/client": "^0.10.3|^0.19",
+ "orchestra/testbench": "^v9.16.0|^10.6|^11.0",
+ "pestphp/pest": "^3.7|^4.0",
+ "phpstan/extension-installer": "^1.4.3",
+ "phpstan/phpstan-deprecation-rules": "^2.0.3",
+ "phpstan/phpstan-phpunit": "^2.0.8",
+ "vlucas/phpdotenv": "^5.6.2"
},
"suggest": {
"openai-php/client": "Require get solutions from OpenAI",
@@ -11573,12 +12178,12 @@
"type": "library",
"extra": {
"laravel": {
- "providers": [
- "Spatie\\LaravelIgnition\\IgnitionServiceProvider"
- ],
"aliases": {
"Flare": "Spatie\\LaravelIgnition\\Facades\\Flare"
- }
+ },
+ "providers": [
+ "Spatie\\LaravelIgnition\\IgnitionServiceProvider"
+ ]
}
},
"autoload": {
@@ -11620,32 +12225,84 @@
"type": "github"
}
],
- "time": "2024-01-04T14:51:24+00:00"
+ "time": "2026-03-17T12:20:04+00:00"
+ },
+ {
+ "name": "staabm/side-effects-detector",
+ "version": "1.0.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/staabm/side-effects-detector.git",
+ "reference": "d8334211a140ce329c13726d4a715adbddd0a163"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/staabm/side-effects-detector/zipball/d8334211a140ce329c13726d4a715adbddd0a163",
+ "reference": "d8334211a140ce329c13726d4a715adbddd0a163",
+ "shasum": ""
+ },
+ "require": {
+ "ext-tokenizer": "*",
+ "php": "^7.4 || ^8.0"
+ },
+ "require-dev": {
+ "phpstan/extension-installer": "^1.4.3",
+ "phpstan/phpstan": "^1.12.6",
+ "phpunit/phpunit": "^9.6.21",
+ "symfony/var-dumper": "^5.4.43",
+ "tomasvotruba/type-coverage": "1.0.0",
+ "tomasvotruba/unused-public": "1.0.0"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "lib/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "A static analysis tool to detect side effects in PHP code",
+ "keywords": [
+ "static analysis"
+ ],
+ "support": {
+ "issues": "https://github.com/staabm/side-effects-detector/issues",
+ "source": "https://github.com/staabm/side-effects-detector/tree/1.0.5"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/staabm",
+ "type": "github"
+ }
+ ],
+ "time": "2024-10-20T05:08:20+00:00"
},
{
"name": "symfony/yaml",
- "version": "v6.4.0",
+ "version": "v7.4.17",
"source": {
"type": "git",
"url": "https://github.com/symfony/yaml.git",
- "reference": "4f9237a1bb42455d609e6687d2613dde5b41a587"
+ "reference": "0b040d7b66ceb10b7bb24c8e6656257932693a12"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/yaml/zipball/4f9237a1bb42455d609e6687d2613dde5b41a587",
- "reference": "4f9237a1bb42455d609e6687d2613dde5b41a587",
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/0b040d7b66ceb10b7bb24c8e6656257932693a12",
+ "reference": "0b040d7b66ceb10b7bb24c8e6656257932693a12",
"shasum": ""
},
"require": {
- "php": ">=8.1",
+ "php": ">=8.2",
"symfony/deprecation-contracts": "^2.5|^3",
"symfony/polyfill-ctype": "^1.8"
},
"conflict": {
- "symfony/console": "<5.4"
+ "symfony/console": "<6.4"
},
"require-dev": {
- "symfony/console": "^5.4|^6.0|^7.0"
+ "symfony/console": "^6.4|^7.0|^8.0"
},
"bin": [
"Resources/bin/yaml-lint"
@@ -11676,7 +12333,7 @@
"description": "Loads and dumps YAML files",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/yaml/tree/v6.4.0"
+ "source": "https://github.com/symfony/yaml/tree/v7.4.17"
},
"funding": [
{
@@ -11687,25 +12344,29 @@
"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": "2023-11-06T11:00:25+00:00"
+ "time": "2026-08-21T12:09:28+00:00"
},
{
"name": "theseer/tokenizer",
- "version": "1.2.2",
+ "version": "1.3.1",
"source": {
"type": "git",
"url": "https://github.com/theseer/tokenizer.git",
- "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96"
+ "reference": "b7489ce515e168639d17feec34b8847c326b0b3c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b2ad5003ca10d4ee50a12da31de12a5774ba6b96",
- "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96",
+ "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b7489ce515e168639d17feec34b8847c326b0b3c",
+ "reference": "b7489ce515e168639d17feec34b8847c326b0b3c",
"shasum": ""
},
"require": {
@@ -11734,7 +12395,7 @@
"description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
"support": {
"issues": "https://github.com/theseer/tokenizer/issues",
- "source": "https://github.com/theseer/tokenizer/tree/1.2.2"
+ "source": "https://github.com/theseer/tokenizer/tree/1.3.1"
},
"funding": [
{
@@ -11742,7 +12403,7 @@
"type": "github"
}
],
- "time": "2023-11-20T00:12:19+00:00"
+ "time": "2025-11-17T20:03:58+00:00"
}
],
"aliases": [],
@@ -11751,7 +12412,7 @@
"prefer-stable": true,
"prefer-lowest": false,
"platform": {
- "php": "^8.1"
+ "php": "^8.2"
},
"platform-dev": {},
"plugin-api-version": "2.6.0"
diff --git a/docs/IMPROVEMENT_PLAN.md b/docs/IMPROVEMENT_PLAN.md
deleted file mode 100644
index ff7ae5d..0000000
--- a/docs/IMPROVEMENT_PLAN.md
+++ /dev/null
@@ -1,182 +0,0 @@
-# Absensi — Code Improvement Plan
-
-> Generated: 2026-08-06
-> Stack: Laravel + Backpack CRUD, Vite, DomPDF, Maatwebsite Excel, Firefly III (ACC)
-
----
-
-## Phase 1 — Critical Fixes (Breaking Bugs) ✅ DONE
-
-### 1.1 `removeLoanPayment()` Null Crash
-**File:** `app/Services/SalaryService.php` (line 221–228)
-**Problem:** `SalaryRecapObserver::deleted()` calls `removeLoanPayment()`, which queries `LoanPayment` but never checks for `null`. Deleting a `SalaryRecap` with no loan payment throws a fatal error.
-**Fix:**
-```php
-public function removeLoanPayment(SalaryRecap $salaryRecap)
-{
- $loan = LoanPayment::where('salary_recap_id', $salaryRecap->id)->first();
- if (!$loan) {
- return;
- }
- $this->transactionService->deleteRecordPayLoanAcc($loan);
- $loan->delete();
-}
-```
-
-### 1.2 `User::presense()` — Swapped Keys + Typo
-**File:** `app/Models/User.php` (line 55–57)
-**Problem:** Foreign/local keys are reversed AND the method name is a typo. Returns wrong data.
-```php
-// BROKEN
-public function presense(){
- return $this->hasMany(Presence::class, 'id', 'user_id');
-}
-```
-**Fix:**
-```php
-public function presence(){
- return $this->hasMany(Presence::class, 'user_id', 'id');
-}
-```
-> Search codebase for `presense` and rename all references to `presence`.
-
-### 1.3 Export Shows Wrong Payment Status
-**File:** `app/Exports/SalaryRecapExport.php` (line 86)
-**Problem:** `$row->status` doesn't exist on the model. The field is `paid`. Column always shows "Tidak".
-**Fix:**
-```php
-$row->paid ? 'Ya' : 'Tidak',
-```
-
-### 1.4 `$fillable` + `$guarded = []` Conflict
-**File:** `app/Models/Presence.php` (line 13 & 26)
-**Problem:** `$guarded = []` overrides `$fillable`, allowing mass assignment on ALL fields. Calculated fields like `is_late`, `is_overtime`, `outside` can be overwritten via request input.
-**Fix:** Remove `protected $guarded = [];` — let `$fillable` control mass assignment.
-
----
-
-## Phase 2 — Logic & Data Integrity Bugs ✅ DONE
-
-### 2.1 Double ACC Transaction on Payment
-**File:** `app/Http/Controllers/Admin/Operations/SetPaymentOperation.php`
-**Problem:** `setPayment()` calls `$recap->save()` (triggers observer → `updateRecordSalaryToACC`), then explicitly calls `updateRecordSalaryToACC()` again on line 81. Double update to external accounting.
-**Fix:** Either use `saveQuietly()` in `setPayment()`, or remove the explicit `updateRecordSalaryToACC()` call.
-
-### 2.2 Inconsistent Abstain Count (Missing National Holiday Subtraction)
-**File:** `app/Services/SalaryService.php`
-**Problem:** `unpaidLeaveDeduction()` subtracts national holidays from workdays before calculating deduction, but `getAbstain()` does NOT subtract national holidays. Abstain count and abstain deduction use different bases.
-**Fix:**
-```php
-public function getAbstain(SalaryRecap $salaryRecap, Salary $salary)
-{
- $workDayInMonth = $this->workdayInAMonth($salaryRecap);
- $workDayInMonth -= $this->countOfNationalHoliday($salaryRecap);
- return max(0, $workDayInMonth - $salaryRecap->work_day);
-}
-```
-
-### 2.3 Mass Assignment via `$request->all()`
-**File:** `app/Http/Controllers/Admin/SalaryRecapCrudController.php` (lines 231, 240)
-**Problem:** `store()` and `update()` pass `$request->all()` — anyone can inject `paid`, `received`, `acc_id`.
-**Fix:** Use `$request->validated()` instead.
-
-### 2.4 `env()` at Runtime
-**File:** `app/Services/PresenceService.php` (lines 166–167)
-**Problem:** `env('LAT')` / `env('LNG')` return `null` when config is cached.
-**Fix:**
-1. Add to `config/app.php`:
- ```php
- 'office_lat' => env('LAT'),
- 'office_lng' => env('LNG'),
- ```
-2. Replace with `config('app.office_lat')` / `config('app.office_lng')`.
-
----
-
-## Phase 3 — Relationship & Query Optimization ✅ DONE
-
-### 3.1 Fix `hasOne` → `belongsTo` Relationships
-**Files:** `app/Models/Presence.php`, `app/Models/SalaryRecap.php`
-**Problem:** Both use `hasOne(User::class, 'id', 'user_id')` — semantically wrong. Works by accident but breaks `associate()` / `dissociate()` and causes confusing eager-load behavior.
-**Fix:**
-```php
-public function user()
-{
- return $this->belongsTo(User::class);
-}
-```
-
-### 3.2 N+1 Queries in Salary Calculation
-**File:** `app/Services/SalaryService.php`
-**Problem:** `calculateSalaryRecap()` queries user 4 separate times:
-- Line 77: `User::find($salaryRecap->user_id)`
-- Line 76: `Salary::where('user_id', ...)->first()`
-- `deductSalaryByLate()`: `User::with('salary')->find(...)`
-- `calculateExtraTimeAmount()`: `User::with('salary')->find(...)`
-
-**Fix:** Load once at the top, pass down:
-```php
-public function calculateSalaryRecap(SalaryRecap $salaryRecap)
-{
- $user = User::with(['salary', 'schedule'])->find($salaryRecap->user_id);
- if (!$user || !$user->salary) {
- return $salaryRecap;
- }
- // ... pass $user and $user->salary to sub-methods
-}
-```
-
-### 3.3 Shared `AccTransaction` Instance Mutation
-**File:** `app/Services/TransactionService.php`
-**Problem:** The same `$this->accTransaction` object is reused and mutated across method calls. If `recordSalaryToACC()` and `recordPayLoanACC()` run in the same request, stale fields leak between them.
-**Fix:** Create a new `AccTransaction` per operation, or use a factory/clone.
-
----
-
-## Phase 4 — Architecture & Code Quality ✅ DONE
-
-### 4.1 Introduce Dependency Injection
-**Problem:** `new SalaryService()`, `new PresenceService()`, `new Acc()` are instantiated manually everywhere — in observers, controllers, commands.
-**Fix:** Register in `AppServiceProvider` and inject via constructor or method injection.
-
-### 4.2 Make `RecalculateSalary` Command Generic
-**File:** `app/Console/Commands/RecalculateSalary.php`
-**Problem:** Hardcoded user IDs `['14', '12', '10', '8', '5']` and month `'04-2025'`.
-**Fix:**
-```php
-protected $signature = 'salary:recalculate
- {--month= : Recap month in mm-YYYY format (default: current)}
- {--user=* : Specific user IDs (default: all)}';
-```
-
-### 4.3 Wrap Salary + ACC Operations in DB Transactions
-**Problem:** Salary calculation, ACC sync, and loan payment creation are not atomic. If ACC API fails mid-way, local data is partially updated.
-**Fix:** Wrap in `DB::transaction()` and handle ACC API errors with rollback.
-
-### 4.4 Remove Dead Code
-- `testSalaryRecap()` in `SalaryService` (line 127)
-- `use function Symfony\Component\Translation\t;` in `SalaryRecapCrudController`
-- Hardcoded `CompanyProfile::find(1)` — should be configurable
-
----
-
-## Phase 5 — Minor Cleanup ✅ DONE
-
-| Item | File | Fix |
-|------|------|-----|
-| `checkIfOffDay()` return type | `PresenceService:63` | Return `bool` instead of `int` from comparison |
-| `CompanyProfile::find(1)` | `SalaryRecapCrudController::print()` | Make company_id configurable or use `first()` |
-| `$salary` unused param in `getAbstain()` | `SalaryService:122` | Remove or use for validation |
-| Inconsistent coding style | Multiple | PSR-12: spaces after commas, before braces |
-
----
-
-## Priority Order
-
-```
-Phase 1 → immediate (deploy blockers / data corruption)
-Phase 2 → this sprint (money calculation bugs)
-Phase 3 → next sprint (performance + correctness)
-Phase 4 → backlog (maintainability)
-Phase 5 → whenever touched (boy-scout rule)
-```
diff --git a/docs/MODULE_PLANS.md b/docs/MODULE_PLANS.md
deleted file mode 100644
index 575235a..0000000
--- a/docs/MODULE_PLANS.md
+++ /dev/null
@@ -1,1086 +0,0 @@
-# Absensi → HRIS Evolution — Module Plans
-
-> **Created:** 2026-08-06
-> **Current State:** Attendance + Payroll + Loan + ACC Sync
-> **Target:** Modular HRIS with self-service capabilities
-
----
-
-## Dependency Graph
-
-```
- ┌─────────────────────┐
- │ M0: Foundation │
- │ (Roles, Approval, │
- │ Audit Trail) │
- └──────────┬──────────┘
- │
- ┌────────────────────┼────────────────────┐
- │ │ │
- ▼ ▼ ▼
-┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
-│ M1: Org │ │ M2: Leave │ │ M3: Notifikasi │
-│ Structure │ │ Management │ │ │
-└────────┬────────┘ └────────┬────────┘ └────────┬────────┘
- │ │ │
- ▼ ▼ │
-┌─────────────────┐ ┌─────────────────┐ │
-│ M4: Employee │ │ M5: Tax & │ │
-│ Self-Service │ │ Compliance │ │
-└────────┬────────┘ └────────┬────────┘ │
- │ │ │
- ▼ ▼ ▼
-┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
-│ M6: Employee │ │ M7: Multi- │ │ M8: Reporting │
-│ Documents │ │ Branch │ │ & Dashboard │
-└─────────────────┘ └─────────────────┘ └─────────────────┘
- │
- ▼
-┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
-│ M9: Recruitment │ │ M10: Performance│ │ M11: Training │
-│ (optional) │ │ (optional) │ │ (optional) │
-└─────────────────┘ └─────────────────┘ └─────────────────┘
-```
-
-**Build Order:**
-```
-Sprint 1: M0 (Foundation) — wajib duluan, semua module depend ini
-Sprint 2: M1 (Org) + M3 (Notif) — paralel
-Sprint 3: M2 (Leave) — butuh M0 approval engine
-Sprint 4: M4 (Self-Service) — butuh M1 + M2
-Sprint 5: M5 (Tax) — butuh salary data
-Sprint 6: M6 (Documents) — butuh M4 portal
-Sprint 7: M7 (Multi-Branch) — bisa kapan saja tapi invasive
-Sprint 8: M8 (Reporting) — setelah data cukup kaya
-Sprint 9+: M9/M10/M11 — optional, sesuai kebutuhan bisnis
-```
-
----
-
-## M0: Foundation (Roles, Approval Engine, Audit Trail)
-
-### Kenapa Duluan
-Semua module butuh: siapa yang boleh approve, siapa yang bisa akses apa, dan siapa ubah apa kapan. Tanpa ini, setiap module buat approval logic sendiri-sendiri → chaos.
-
-### M0.1: Roles & Permissions
-
-**Database:**
-```sql
--- roles
-CREATE TABLE roles (
- id BIGINT PRIMARY KEY AUTO_INCREMENT,
- name VARCHAR(50) NOT NULL UNIQUE, -- 'super_admin', 'hr_admin', 'manager', 'employee'
- display_name VARCHAR(100),
- description TEXT NULL,
- created_at TIMESTAMP,
- updated_at TIMESTAMP
-);
-
--- permissions
-CREATE TABLE permissions (
- id BIGINT PRIMARY KEY AUTO_INCREMENT,
- name VARCHAR(100) NOT NULL UNIQUE, -- 'presence.view', 'salary.edit', 'leave.approve'
- module VARCHAR(50), -- 'presence', 'salary', 'leave', etc
- display_name VARCHAR(100),
- created_at TIMESTAMP,
- updated_at TIMESTAMP
-);
-
--- role_permission (pivot)
-CREATE TABLE role_permission (
- role_id BIGINT,
- permission_id BIGINT,
- PRIMARY KEY (role_id, permission_id)
-);
-
--- user_role (pivot) — user bisa punya >1 role
-CREATE TABLE user_role (
- user_id BIGINT,
- role_id BIGINT,
- PRIMARY KEY (user_id, role_id)
-);
-```
-
-**Existing `users` table changes:**
-```sql
-ALTER TABLE users ADD COLUMN manager_id BIGINT NULL REFERENCES users(id);
-```
-
-**Implementation:**
-- Package: `spatie/laravel-permission` (atau manual, Backpack punya built-in PermissionManager)
-- Backpack sudah support `backpack/permissionmanager` — install & configure
-- Middleware: `role:hr_admin`, `permission:leave.approve`
-- Default roles: `super_admin`, `hr_admin`, `manager`, `employee`
-
-**Routes (Admin):**
-```
-CRUD /admin/role — RoleCrudController
-CRUD /admin/permission — PermissionCrudController
- /admin/user — tambah field role assignment
-```
-
-**Key Permissions per Module:**
-```
-presence.* — view, create, edit, delete, scan
-salary.* — view, edit, recalculate, pay
-leave.* — request, approve, reject, view_all, view_own
-loan.* — create, approve, view, delete
-report.* — view_dashboard, export
-user.* — create, edit, delete, assign_role
-```
-
----
-
-### M0.2: Approval Engine
-
-**Database:**
-```sql
-CREATE TABLE approval_flows (
- id BIGINT PRIMARY KEY AUTO_INCREMENT,
- name VARCHAR(100) NOT NULL, -- 'Leave Request', 'Loan Request', 'Overtime Request'
- module VARCHAR(50) NOT NULL, -- 'leave', 'loan', 'overtime'
- steps INT DEFAULT 1, -- jumlah level approval
- is_active BOOLEAN DEFAULT TRUE,
- created_at TIMESTAMP,
- updated_at TIMESTAMP
-);
-
-CREATE TABLE approval_flow_steps (
- id BIGINT PRIMARY KEY AUTO_INCREMENT,
- approval_flow_id BIGINT NOT NULL,
- step_order INT NOT NULL, -- 1, 2, 3...
- approver_type ENUM('role', 'manager', 'specific_user') NOT NULL,
- approver_role_id BIGINT NULL, -- if type = 'role'
- approver_user_id BIGINT NULL, -- if type = 'specific_user'
- -- type = 'manager' → auto-resolve dari user.manager_id
- created_at TIMESTAMP,
- updated_at TIMESTAMP
-);
-
--- Generic approval records (polymorphic)
-CREATE TABLE approvals (
- id BIGINT PRIMARY KEY AUTO_INCREMENT,
- approvable_type VARCHAR(100) NOT NULL, -- 'App\Models\LeaveRequest', 'App\Models\Loan'
- approvable_id BIGINT NOT NULL,
- approval_flow_id BIGINT NOT NULL,
- current_step INT DEFAULT 1,
- status ENUM('pending', 'approved', 'rejected', 'cancelled') DEFAULT 'pending',
- requested_by BIGINT NOT NULL, -- user_id
- created_at TIMESTAMP,
- updated_at TIMESTAMP,
- INDEX (approvable_type, approvable_id),
- INDEX (status)
-);
-
-CREATE TABLE approval_actions (
- id BIGINT PRIMARY KEY AUTO_INCREMENT,
- approval_id BIGINT NOT NULL,
- step_order INT NOT NULL,
- action ENUM('approve', 'reject') NOT NULL,
- acted_by BIGINT NOT NULL, -- user_id
- notes TEXT NULL,
- acted_at TIMESTAMP NOT NULL,
- created_at TIMESTAMP
-);
-```
-
-**Service: `ApprovalService`**
-```
-- submitForApproval(Model $approvable, User $requester): Approval
-- approve(Approval $approval, User $approver, ?string $notes): void
-- reject(Approval $approval, User $approver, string $reason): void
-- cancel(Approval $approval, User $requester): void
-- getNextApprover(Approval $approval): ?User
-- getPendingForUser(User $user): Collection
-```
-
-**Trait: `HasApproval`** (attach ke model yang butuh approval)
-```php
-trait HasApproval {
- public function approval() { return $this->morphOne(Approval::class, 'approvable'); }
- public function submitForApproval(): Approval { ... }
- public function isApproved(): bool { ... }
- public function isPending(): bool { ... }
-}
-```
-
----
-
-### M0.3: Audit Trail
-
-**Database:**
-```sql
-CREATE TABLE audit_logs (
- id BIGINT PRIMARY KEY AUTO_INCREMENT,
- user_id BIGINT NULL,
- action ENUM('create', 'update', 'delete', 'login', 'logout', 'approve', 'reject', 'export') NOT NULL,
- auditable_type VARCHAR(100) NOT NULL, -- 'App\Models\SalaryRecap'
- auditable_id BIGINT NOT NULL,
- old_values JSON NULL,
- new_values JSON NULL,
- ip_address VARCHAR(45) NULL,
- user_agent TEXT NULL,
- created_at TIMESTAMP NOT NULL,
- INDEX (auditable_type, auditable_id),
- INDEX (user_id),
- INDEX (created_at)
-);
-```
-
-**Implementation:**
-- Package: `owen-it/laravel-auditing` atau manual trait
-- Trait `Auditable` di-attach ke semua model yang perlu tracking
-- Log viewer di admin panel: filter by user, model, date range
-- Retention: keep 90 days, archive older to file
-
-**Routes:**
-```
-GET /admin/audit-log — list with filters
-GET /admin/audit-log/{id} — detail view (old vs new values)
-```
-
-**Effort:** ~3-4 hari (roles + approval + audit)
-
----
-
-## M1: Organization Structure
-
-### Problem
-User sekarang flat — tidak ada departemen, jabatan, atau hierarki. Tidak bisa filter laporan per departemen, tidak bisa assign manager untuk approval.
-
-### Database
-
-```sql
-CREATE TABLE departments (
- id BIGINT PRIMARY KEY AUTO_INCREMENT,
- name VARCHAR(100) NOT NULL,
- code VARCHAR(20) NULL UNIQUE, -- 'IT', 'HR', 'FIN', 'OPS'
- parent_id BIGINT NULL, -- for sub-departments
- head_user_id BIGINT NULL, -- kepala departemen
- created_at TIMESTAMP,
- updated_at TIMESTAMP,
- FOREIGN KEY (parent_id) REFERENCES departments(id) ON DELETE SET NULL,
- FOREIGN KEY (head_user_id) REFERENCES users(id) ON DELETE SET NULL
-);
-
-CREATE TABLE positions (
- id BIGINT PRIMARY KEY AUTO_INCREMENT,
- name VARCHAR(100) NOT NULL, -- 'Staff', 'Supervisor', 'Manager', 'Director'
- level INT DEFAULT 0, -- for hierarchy ordering
- department_id BIGINT NULL,
- created_at TIMESTAMP,
- updated_at TIMESTAMP,
- FOREIGN KEY (department_id) REFERENCES departments(id) ON DELETE SET NULL
-);
-
--- Extend users table
-ALTER TABLE users ADD COLUMN department_id BIGINT NULL REFERENCES departments(id);
-ALTER TABLE users ADD COLUMN position_id BIGINT NULL REFERENCES positions(id);
-ALTER TABLE users ADD COLUMN employee_id VARCHAR(20) NULL UNIQUE; -- NIK / NIP
-ALTER TABLE users ADD COLUMN join_date DATE NULL;
-ALTER TABLE users ADD COLUMN employment_status ENUM('active', 'probation', 'resigned', 'terminated') DEFAULT 'active';
-ALTER TABLE users ADD COLUMN phone VARCHAR(20) NULL;
-ALTER TABLE users ADD COLUMN address TEXT NULL;
-```
-
-### Use Cases
-
-| UC | Aktor | Aksi |
-|----|-------|------|
-| M1-1 | Admin | CRUD departemen (support nested/sub-department) |
-| M1-2 | Admin | CRUD jabatan, assign ke departemen |
-| M1-3 | Admin | Assign user ke departemen + jabatan |
-| M1-4 | Admin | Set kepala departemen (auto jadi approver) |
-| M1-5 | Admin | Lihat org chart (tree view) |
-| M1-6 | Admin | Filter semua laporan by departemen |
-
-### Routes
-```
-CRUD /admin/department — DepartmentCrudController
-CRUD /admin/position — PositionCrudController
-GET /admin/org-chart — tree visualization
-```
-
-### Impact ke Module Lain
-- **Salary recap** → bisa filter export per departemen
-- **Approval** → kepala departemen jadi default approver
-- **Reporting** → breakdown per departemen
-- **Leave** → saldo cuti bisa beda per jabatan level
-
-### Effort: ~2-3 hari
-
----
-
-## M2: Leave Management
-
-### Problem
-Sekarang karyawan tidak hadir = langsung dianggap **absen** dan **kena potong gaji**. Padahal bisa jadi cuti, izin, atau sakit. Ini bug bisnis paling kritis.
-
-### Database
-
-```sql
--- Jenis cuti
-CREATE TABLE leave_types (
- id BIGINT PRIMARY KEY AUTO_INCREMENT,
- name VARCHAR(100) NOT NULL, -- 'Cuti Tahunan', 'Sakit', 'Izin', 'Cuti Melahirkan'
- code VARCHAR(20) NOT NULL UNIQUE, -- 'annual', 'sick', 'permission', 'maternity'
- is_paid BOOLEAN DEFAULT TRUE, -- cuti berbayar atau tidak
- default_quota INT NULL, -- default saldo per tahun (null = unlimited, e.g. sakit)
- max_consecutive_days INT NULL, -- max hari berturut-turut
- requires_attachment BOOLEAN DEFAULT FALSE, -- e.g. surat dokter untuk sakit >1 hari
- is_active BOOLEAN DEFAULT TRUE,
- color VARCHAR(7) DEFAULT '#3498db', -- untuk calendar view
- created_at TIMESTAMP,
- updated_at TIMESTAMP
-);
-
--- Saldo cuti per karyawan per tahun
-CREATE TABLE leave_balances (
- id BIGINT PRIMARY KEY AUTO_INCREMENT,
- user_id BIGINT NOT NULL,
- leave_type_id BIGINT NOT NULL,
- year INT NOT NULL, -- 2026
- quota INT NOT NULL, -- total jatah
- used INT DEFAULT 0,
- remaining INT GENERATED ALWAYS AS (quota - used) STORED,
- carry_over INT DEFAULT 0, -- sisa tahun lalu yang dibawa
- created_at TIMESTAMP,
- updated_at TIMESTAMP,
- UNIQUE (user_id, leave_type_id, year)
-);
-
--- Pengajuan cuti
-CREATE TABLE leave_requests (
- id BIGINT PRIMARY KEY AUTO_INCREMENT,
- user_id BIGINT NOT NULL,
- leave_type_id BIGINT NOT NULL,
- start_date DATE NOT NULL,
- end_date DATE NOT NULL,
- total_days INT NOT NULL, -- calculated, exclude weekends/holidays
- reason TEXT NULL,
- attachment VARCHAR(255) NULL, -- file path (surat dokter, etc)
- status ENUM('draft', 'pending', 'approved', 'rejected', 'cancelled') DEFAULT 'draft',
- approved_by BIGINT NULL,
- approved_at TIMESTAMP NULL,
- rejection_reason TEXT NULL,
- created_at TIMESTAMP,
- updated_at TIMESTAMP,
- INDEX (user_id, status),
- INDEX (start_date, end_date)
-);
-
--- Detail per hari (untuk half-day support & calendar view)
-CREATE TABLE leave_request_dates (
- id BIGINT PRIMARY KEY AUTO_INCREMENT,
- leave_request_id BIGINT NOT NULL,
- date DATE NOT NULL,
- day_value DECIMAL(2,1) DEFAULT 1.0, -- 1.0 = full day, 0.5 = half day
- UNIQUE (leave_request_id, date)
-);
-```
-
-### Use Cases
-
-| UC | Aktor | Aksi |
-|----|-------|------|
-| M2-1 | Admin | CRUD jenis cuti (leave_types) |
-| M2-2 | Admin | Set saldo cuti per karyawan per tahun |
-| M2-3 | Admin | Bulk generate saldo cuti awal tahun (all employees) |
-| M2-4 | Employee/Admin | Ajukan cuti: pilih jenis, tanggal mulai-selesai, alasan |
-| M2-5 | System | Auto-hitung total hari (skip weekends + holidays + off days) |
-| M2-6 | Manager/Admin | Approve / reject pengajuan cuti |
-| M2-7 | System | Setelah approved: kurangi saldo, update leave_balance.used |
-| M2-8 | System | **Integrasi salary**: hari cuti TIDAK dihitung sebagai absen |
-| M2-9 | Admin | Calendar view: lihat siapa cuti kapan |
-| M2-10 | System | Carry-over saldo cuti ke tahun berikutnya (configurable) |
-| M2-11 | Admin | Laporan: rekap cuti per karyawan, per departemen, per jenis |
-
-### Critical Integration: Salary Calculation
-
-**Current problem in `SalaryService.getAbstain()`:**
-```php
-// SEKARANG: semua hari tidak hadir = absen
-abstain_count = workdays_in_month - work_day
-
-// SEHARUSNYA:
-abstain_count = workdays_in_month - work_day - approved_leave_days
-```
-
-**Fix required:**
-```php
-public function getAbstain(SalaryRecap $salaryRecap){
- $workDayInMonth = $this->workdayInAMonth($salaryRecap);
- $workDayInMonth -= $this->countOfNationalHoliday($salaryRecap);
-
- // NEW: subtract approved leave days
- $approvedLeaveDays = $this->getApprovedLeaveDays($salaryRecap);
-
- return max(0, $workDayInMonth - $salaryRecap->work_day - $approvedLeaveDays);
-}
-
-public function unpaidLeaveDeduction(SalaryRecap $salaryRecap, Salary $salary){
- $workDayInMonth = $this->workdayInAMonth($salaryRecap);
- $workDayInMonth -= $this->countOfNationalHoliday($salaryRecap);
-
- // NEW: only count UNPAID leave as deduction
- $paidLeaveDays = $this->getPaidLeaveDays($salaryRecap);
- $unpaidLeaveDays = $this->getUnpaidLeaveDays($salaryRecap);
-
- $actualAbsent = $workDayInMonth - $salaryRecap->work_day - $paidLeaveDays - $unpaidLeaveDays;
- $deductibleDays = max(0, $actualAbsent) + $unpaidLeaveDays;
-
- return $deductibleDays * $salary->unpaid_leave_deduction;
-}
-```
-
-### Service: `LeaveService`
-```
-- requestLeave(User, LeaveType, startDate, endDate, ?reason, ?attachment): LeaveRequest
-- calculateLeaveDays(startDate, endDate, User): int // skip off-days + holidays
-- approve(LeaveRequest, User approver): void
-- reject(LeaveRequest, User approver, string reason): void
-- cancel(LeaveRequest, User): void
-- getBalance(User, LeaveType, year): LeaveBalance
-- generateYearlyBalances(int year): void // bulk generate for all employees
-- carryOver(int fromYear, int toYear, ?int maxCarry): void
-- getApprovedLeaveDaysInMonth(User, string recapMonth): int
-```
-
-### Routes
-```
-CRUD /admin/leave-type — LeaveTypeCrudController
-CRUD /admin/leave-balance — LeaveBalanceCrudController
-CRUD /admin/leave-request — LeaveRequestCrudController (admin view all)
-POST /admin/leave-request/{id}/approve
-POST /admin/leave-request/{id}/reject
-GET /admin/leave-calendar — calendar view
-GET /admin/leave-report — rekap per departemen
-
-# Employee self-service (M4):
-GET /my/leave — list my leave requests
-POST /my/leave — submit leave request
-GET /my/leave/balance — my leave balances
-DELETE /my/leave/{id} — cancel pending request
-```
-
-### Effort: ~5-7 hari
-
----
-
-## M3: Notification System
-
-### Problem
-Tidak ada notifikasi. Admin tidak tahu siapa yang telat hari ini. Karyawan tidak tahu gajinya sudah dibayar. Manager tidak tahu ada approval pending.
-
-### Database
-
-```sql
-CREATE TABLE notifications (
- id BIGINT PRIMARY KEY AUTO_INCREMENT,
- user_id BIGINT NOT NULL, -- recipient
- type VARCHAR(100) NOT NULL, -- 'leave_approved', 'salary_paid', 'late_alert'
- title VARCHAR(255) NOT NULL,
- body TEXT NOT NULL,
- data JSON NULL, -- extra payload: { leave_request_id: 5 }
- channel ENUM('database', 'whatsapp', 'email', 'push') DEFAULT 'database',
- read_at TIMESTAMP NULL,
- sent_at TIMESTAMP NULL,
- created_at TIMESTAMP,
- updated_at TIMESTAMP,
- INDEX (user_id, read_at),
- INDEX (type)
-);
-
-CREATE TABLE notification_preferences (
- id BIGINT PRIMARY KEY AUTO_INCREMENT,
- user_id BIGINT NOT NULL,
- type VARCHAR(100) NOT NULL, -- 'leave_approved', 'salary_paid'
- channel_database BOOLEAN DEFAULT TRUE,
- channel_email BOOLEAN DEFAULT FALSE,
- channel_whatsapp BOOLEAN DEFAULT FALSE,
- UNIQUE (user_id, type)
-);
-```
-
-### Notification Types
-
-| Event | Recipient | Channel |
-|-------|-----------|---------|
-| Karyawan telat hari ini | Admin/HR | Database, WA |
-| Karyawan scan di luar radius | Admin/HR | Database |
-| Leave request submitted | Manager/Approver | Database, WA |
-| Leave request approved/rejected | Employee | Database, WA |
-| Salary recap paid | Employee | Database |
-| Loan created | Employee | Database |
-| Pending approvals reminder | Manager | Database, Email (daily digest) |
-| Leave balance low (<3 days) | Employee | Database |
-
-### Implementation
-- Use Laravel's built-in `Notification` system
-- Channels: `database` (always), `mail` (optional), custom `WhatsAppChannel`
-- WhatsApp: via Fonnte API / WA Gateway (banyak provider lokal ID)
-- Bell icon di admin panel header: unread count + dropdown
-
-### Service: `NotificationService`
-```
-- notify(User $recipient, string $type, array $data): void
-- notifyRole(string $role, string $type, array $data): void
-- markAsRead(Notification $notification): void
-- markAllRead(User $user): void
-- getUnread(User $user): Collection
-- sendDailyDigest(): void // scheduled command
-```
-
-### Routes
-```
-GET /admin/notifications — list
-POST /admin/notifications/mark-read — mark all read
-GET /api/notifications/unread-count — for AJAX polling / badge
-```
-
-### Scheduled
-```
-daily 08:15 → kirim alert "X orang belum absen hari ini"
-daily 17:00 → kirim alert "X orang belum clock-out"
-weekly Mon → digest pending approvals ke semua manager
-```
-
-### Effort: ~3-4 hari
-
----
-
-## M4: Employee Self-Service Portal
-
-### Problem
-Karyawan sekarang cuma bisa scan QR. Tidak bisa lihat slip gaji, saldo cuti, riwayat kehadiran, atau ajukan cuti/izin sendiri.
-
-### Architecture
-
-```
-┌──────────────────────────────────────────────┐
-│ ADMIN PANEL (existing) │
-│ /admin/* — Backpack CRUD │
-│ Role: super_admin, hr_admin │
-└──────────────────────────────────────────────┘
-
-┌──────────────────────────────────────────────┐
-│ EMPLOYEE PORTAL (new) │
-│ /my/* — Custom Laravel controllers │
-│ Role: employee, manager │
-│ Auth: separate guard or same guard │
-└──────────────────────────────────────────────┘
-```
-
-### Features
-
-| Feature | Route | Description |
-|---------|-------|-------------|
-| Dashboard | `GET /my` | Summary: kehadiran bulan ini, saldo cuti, gaji terakhir |
-| Attendance History | `GET /my/attendance` | List kehadiran + filter bulan. Status: tepat/telat/lembur |
-| Salary Slips | `GET /my/salary` | List rekap gaji per bulan, download PDF slip |
-| Salary Detail | `GET /my/salary/{id}` | Detail 1 slip: breakdown gaji, potongan, net |
-| Leave Balance | `GET /my/leave/balance` | Saldo per jenis cuti |
-| Leave Request | `POST /my/leave` | Form ajukan cuti |
-| Leave History | `GET /my/leave` | Status pengajuan: pending/approved/rejected |
-| Loan History | `GET /my/loan` | Riwayat kasbon + pembayaran + sisa |
-| Profile | `GET /my/profile` | Lihat & edit data pribadi (nama, foto, phone, alamat) |
-| Change Password | `POST /my/password` | Ganti password sendiri |
-| Notifications | `GET /my/notifications` | List notifikasi + mark read |
-
-### Auth
-- Same `users` table, same guard
-- Middleware `role:employee` untuk `/my/*`
-- Login page: `/login` (single login, redirect based on role)
- - `super_admin` / `hr_admin` → `/admin/dashboard`
- - `employee` / `manager` → `/my`
-
-### UI
-- Opsi 1: **Blade + Tailwind** — simple, server-rendered, mobile-friendly
-- Opsi 2: **Inertia + Vue/React** — SPA feel, tapi masih monolith
-- Rekomendasi: **Blade + Tailwind** karena scope kecil dan tidak perlu complexity SPA
-
-### Key Controller: `EmployeePortalController`
-```
-- dashboard(): View — summary cards
-- attendance(Request): View — paginated attendance with month filter
-- salaryIndex(): View — list salary recaps for auth user
-- salaryShow(SalaryRecap): View — detail + download PDF
-- leaveIndex(): View — my leave requests
-- leaveCreate(): View — form
-- leaveStore(Request): RedirectResponse — validate & submit
-- leaveCancel(LeaveRequest): RedirectResponse
-- loanIndex(): View — my loans + payments
-- profile(): View — my profile
-- profileUpdate(Request): RedirectResponse
-- changePassword(Request): RedirectResponse
-```
-
-### Effort: ~5-7 hari
-
----
-
-## M5: Tax & Compliance (PPh 21, BPJS)
-
-### Problem
-Admin hitung pajak manual di luar sistem. BPJS tidak tercatat. THR tidak ada.
-
-### Database
-
-```sql
--- Konfigurasi pajak karyawan
-CREATE TABLE employee_tax_profiles (
- id BIGINT PRIMARY KEY AUTO_INCREMENT,
- user_id BIGINT NOT NULL UNIQUE,
- npwp VARCHAR(30) NULL,
- tax_status ENUM('TK/0','TK/1','TK/2','TK/3','K/0','K/1','K/2','K/3','K/I/0','K/I/1','K/I/2','K/I/3') NOT NULL,
- -- TK = Tidak Kawin, K = Kawin, I = Istri bekerja
- -- /0 /1 /2 /3 = jumlah tanggungan
- tax_method ENUM('gross', 'gross_up', 'nett') DEFAULT 'gross',
- bpjs_kesehatan BOOLEAN DEFAULT TRUE,
- bpjs_ketenagakerjaan BOOLEAN DEFAULT TRUE,
- bpjs_tk_jht BOOLEAN DEFAULT TRUE, -- Jaminan Hari Tua
- bpjs_tk_jp BOOLEAN DEFAULT TRUE, -- Jaminan Pensiun
- bpjs_tk_jkk BOOLEAN DEFAULT TRUE, -- Jaminan Kecelakaan Kerja
- bpjs_tk_jkm BOOLEAN DEFAULT TRUE, -- Jaminan Kematian
- created_at TIMESTAMP,
- updated_at TIMESTAMP
-);
-
--- PTKP table (updated yearly by government)
-CREATE TABLE ptkp_rates (
- id BIGINT PRIMARY KEY AUTO_INCREMENT,
- year INT NOT NULL,
- status VARCHAR(10) NOT NULL, -- 'TK/0', 'K/1', etc
- amount BIGINT NOT NULL, -- e.g. 54000000 for TK/0
- UNIQUE (year, status)
-);
-
--- PPh 21 bracket rates (progressive tax)
-CREATE TABLE pph21_brackets (
- id BIGINT PRIMARY KEY AUTO_INCREMENT,
- year INT NOT NULL,
- lower_bound BIGINT NOT NULL,
- upper_bound BIGINT NULL, -- NULL for last bracket
- rate DECIMAL(5,2) NOT NULL, -- 5.00, 15.00, 25.00, 30.00, 35.00
- UNIQUE (year, lower_bound)
-);
-
--- BPJS rates (configurable, changes periodically)
-CREATE TABLE bpjs_rates (
- id BIGINT PRIMARY KEY AUTO_INCREMENT,
- year INT NOT NULL,
- type VARCHAR(30) NOT NULL, -- 'kesehatan', 'jht', 'jp', 'jkk', 'jkm'
- employer_rate DECIMAL(5,2) NOT NULL, -- % ditanggung perusahaan
- employee_rate DECIMAL(5,2) NOT NULL, -- % dipotong dari gaji
- max_salary BIGINT NULL, -- batas atas perhitungan (e.g. JP max 10.042.300)
- UNIQUE (year, type)
-);
-
--- Extend salary_recaps: add tax & benefit columns
-ALTER TABLE salary_recaps ADD COLUMN pph21 BIGINT DEFAULT 0;
-ALTER TABLE salary_recaps ADD COLUMN bpjs_kes_employee BIGINT DEFAULT 0;
-ALTER TABLE salary_recaps ADD COLUMN bpjs_kes_employer BIGINT DEFAULT 0;
-ALTER TABLE salary_recaps ADD COLUMN bpjs_jht_employee BIGINT DEFAULT 0;
-ALTER TABLE salary_recaps ADD COLUMN bpjs_jht_employer BIGINT DEFAULT 0;
-ALTER TABLE salary_recaps ADD COLUMN bpjs_jp_employee BIGINT DEFAULT 0;
-ALTER TABLE salary_recaps ADD COLUMN bpjs_jp_employer BIGINT DEFAULT 0;
-ALTER TABLE salary_recaps ADD COLUMN bpjs_jkk BIGINT DEFAULT 0;
-ALTER TABLE salary_recaps ADD COLUMN bpjs_jkm BIGINT DEFAULT 0;
-ALTER TABLE salary_recaps ADD COLUMN thr BIGINT DEFAULT 0;
-ALTER TABLE salary_recaps ADD COLUMN bonus BIGINT DEFAULT 0;
-ALTER TABLE salary_recaps ADD COLUMN gross_income BIGINT DEFAULT 0;
-ALTER TABLE salary_recaps ADD COLUMN net_income BIGINT DEFAULT 0;
-```
-
-### Salary Calculation Flow (Updated)
-
-```
-┌─────────────────────────────────────────────────────────────┐
-│ GROSS INCOME │
-│ = salary_amount + overtime + extra_time_amount │
-│ + thr + bonus │
-│ │
-│ DEDUCTIONS (employee share) │
-│ = loan_cut + late_cut + abstain_cut │
-│ + bpjs_kes_employee (1%) │
-│ + bpjs_jht_employee (2%) │
-│ + bpjs_jp_employee (1%) │
-│ + pph21 (progressive tax on taxable income) │
-│ │
-│ COMPANY COST (tidak dipotong dari gaji, tapi dicatat) │
-│ = bpjs_kes_employer (4%) │
-│ + bpjs_jht_employer (3.7%) │
-│ + bpjs_jp_employer (2%) │
-│ + bpjs_jkk (0.24%-1.74% based on risk) │
-│ + bpjs_jkm (0.3%) │
-│ │
-│ NET INCOME (take-home pay) │
-│ = gross_income - all_employee_deductions │
-└─────────────────────────────────────────────────────────────┘
-
-PPh 21 Calculation (monthly, TER method since 2024):
-1. Gross monthly income (include tunjangan, exclude reimbursement)
-2. Annual projection = monthly × 12
-3. Subtract biaya jabatan (5%, max 6jt/tahun)
-4. Subtract BPJS JHT + JP employee share
-5. Subtract PTKP based on tax_status
-6. Taxable income = step 4 result
-7. Apply progressive rate: 5% / 15% / 25% / 30% / 35%
-8. Monthly PPh 21 = annual tax ÷ 12
-```
-
-### Service: `TaxService`
-```
-- calculatePPh21(User, int grossMonthly, int month, int year): int
-- calculateBPJS(User, int baseSalary): array // returns all components
-- calculateTHR(User, Carbon joinDate): int // prorated if <12 months
-- getApplicablePTKP(User, int year): int
-- generateAnnualTaxReport(int year): Collection // for SPT reporting
-```
-
-### Routes
-```
-CRUD /admin/tax-profile — per employee tax config
-CRUD /admin/ptkp-rate — PTKP rates management
-CRUD /admin/pph21-bracket — tax bracket management
-CRUD /admin/bpjs-rate — BPJS rate management
-GET /admin/tax-report/{year} — annual tax summary
-GET /admin/bpjs-report/{month} — monthly BPJS summary for submission
-```
-
-### Effort: ~7-10 hari (complex calculation, need thorough testing)
-
----
-
-## M6: Employee Documents
-
-### Problem
-Tidak ada penyimpanan dokumen karyawan: kontrak, KTP, NPWP, BPJS card, surat peringatan, dll.
-
-### Database
-
-```sql
-CREATE TABLE document_types (
- id BIGINT PRIMARY KEY AUTO_INCREMENT,
- name VARCHAR(100) NOT NULL, -- 'KTP', 'NPWP', 'Kontrak Kerja', 'BPJS', 'Ijazah'
- code VARCHAR(20) NOT NULL UNIQUE,
- has_expiry BOOLEAN DEFAULT FALSE, -- true for KTP, kontrak
- is_required BOOLEAN DEFAULT FALSE, -- required for onboarding
- max_file_size_mb INT DEFAULT 5,
- allowed_extensions VARCHAR(100) DEFAULT 'pdf,jpg,png',
- created_at TIMESTAMP,
- updated_at TIMESTAMP
-);
-
-CREATE TABLE employee_documents (
- id BIGINT PRIMARY KEY AUTO_INCREMENT,
- user_id BIGINT NOT NULL,
- document_type_id BIGINT NOT NULL,
- file_path VARCHAR(255) NOT NULL, -- storage path
- file_name VARCHAR(255) NOT NULL, -- original filename
- file_size INT NOT NULL, -- bytes
- document_number VARCHAR(100) NULL, -- nomor KTP, nomor kontrak, etc
- issued_date DATE NULL,
- expiry_date DATE NULL,
- notes TEXT NULL,
- uploaded_by BIGINT NOT NULL, -- user_id
- created_at TIMESTAMP,
- updated_at TIMESTAMP,
- INDEX (user_id),
- INDEX (expiry_date)
-);
-```
-
-### Use Cases
-
-| UC | Aktor | Aksi |
-|----|-------|------|
-| M6-1 | Admin | CRUD document types |
-| M6-2 | Admin/Employee | Upload dokumen karyawan |
-| M6-3 | Admin | Lihat semua dokumen karyawan |
-| M6-4 | System | Alert dokumen yang akan expired (30 hari sebelum) |
-| M6-5 | Admin | Checklist kelengkapan dokumen per karyawan |
-| M6-6 | Employee | Lihat & download dokumen sendiri di portal |
-
-### Effort: ~2-3 hari
-
----
-
-## M7: Multi-Branch
-
-### Problem
-`CompanyProfile::first()` — hardcoded single company. Tidak bisa handle multi cabang.
-
-### Database
-
-```sql
-CREATE TABLE branches (
- id BIGINT PRIMARY KEY AUTO_INCREMENT,
- company_profile_id BIGINT NOT NULL,
- name VARCHAR(100) NOT NULL,
- code VARCHAR(20) NULL UNIQUE,
- address TEXT NULL,
- phone VARCHAR(20) NULL,
- lat DECIMAL(10,7) NULL, -- for geofencing per branch
- lng DECIMAL(10,7) NULL,
- radius_meters INT DEFAULT 100, -- geofence radius per branch
- is_active BOOLEAN DEFAULT TRUE,
- created_at TIMESTAMP,
- updated_at TIMESTAMP
-);
-
--- Extend users
-ALTER TABLE users ADD COLUMN branch_id BIGINT NULL REFERENCES branches(id);
-
--- Extend presences (track which branch they scanned at)
-ALTER TABLE presences ADD COLUMN branch_id BIGINT NULL REFERENCES branches(id);
-```
-
-### Impact
-- **Geofencing**: sekarang pakai `config('app.office_lat')` global. Setelah ini, per-branch coordinates
-- **Reports**: filter per cabang
-- **Salary**: bisa beda salary structure per cabang
-- **Schedule**: bisa beda schedule per cabang
-- **Admin access**: admin bisa di-scope ke cabang tertentu
-
-### Invasiveness: HIGH
-Ini affect hampir semua query yang sekarang global. Butuh:
-1. Global scope `BranchScope` yang auto-filter by user's branch
-2. Admin yang bisa lihat cross-branch vs single-branch
-3. Migration semua existing data ke default branch
-
-### Effort: ~5-7 hari (karena refactor existing code)
-
----
-
-## M8: Reporting & Dashboard
-
-### Problem
-Tidak ada dashboard. Tidak ada analytics. Semua data ada tapi tidak di-visualize.
-
-### Dashboard Cards (Admin)
-
-```
-┌──────────────────────────────────────────────────────────────┐
-│ TODAY │ THIS MONTH │
-│ ┌─────────┐ ┌─────────┐ │ ┌─────────┐ ┌─────────┐ │
-│ │ Hadir │ │ Belum │ │ │Total │ │ Total │ │
-│ │ 12 │ │ Absen 3 │ │ │Gaji │ │ Lembur │ │
-│ └─────────┘ └─────────┘ │ │45.2 jt │ │ 3.1 jt │ │
-│ ┌─────────┐ ┌─────────┐ │ └─────────┘ └─────────┘ │
-│ │ Telat │ │ Di luar │ │ ┌─────────┐ ┌─────────┐ │
-│ │ 2 │ │ radius 1│ │ │ Kasbon │ │ Potongan│ │
-│ └─────────┘ └─────────┘ │ │ 8.5 jt │ │ 1.2 jt │ │
-│ │ └─────────┘ └─────────┘ │
-├─────────────────────────────────┴────────────────────────────┤
-│ ATTENDANCE TREND (12 months) │
-│ ┌──────────────────────────────────────────────────────┐ │
-│ │ ████████████████████████████████████████████████ │ │
-│ │ Chart: avg attendance rate per month │ │
-│ └──────────────────────────────────────────────────────┘ │
-├──────────────────────────────────────────────────────────────┤
-│ TOP LATECOMERS │ LEAVE CALENDAR (this week) │
-│ 1. Farhan - 8x │ Mon: Ahmad (Cuti) │
-│ 2. Agung - 5x │ Tue: - │
-│ 3. Risma - 3x │ Wed: Exka (Sakit) │
-└──────────────────────────┴───────────────────────────────────┘
-```
-
-### Reports
-
-| Report | Grouping | Export |
-|--------|----------|--------|
-| Attendance Summary | per employee, per month, per department | Excel, PDF |
-| Late Report | per employee, trend | Excel |
-| Overtime Report | per employee, per month | Excel |
-| Salary Report | per month, per department | Excel, PDF |
-| Loan Outstanding | per employee | Excel, PDF |
-| Leave Usage | per employee, per type, per department | Excel |
-| Tax Summary (PPh 21) | per year, per employee | Excel (for SPT) |
-| BPJS Summary | per month | Excel (for BPJS submission) |
-| Headcount | active vs resigned, per department | Excel |
-
-### Implementation
-- Dashboard: Blade + Chart.js (atau ApexCharts)
-- Reports: dedicated controller, reuse existing export infrastructure (Maatwebsite Excel)
-- Cache dashboard stats per hari (invalidate on data change)
-
-### Routes
-```
-GET /admin/dashboard — override default Backpack dashboard
-GET /admin/report/attendance — filter: month, department, employee
-GET /admin/report/salary — filter: month, department
-GET /admin/report/leave — filter: year, department, type
-GET /admin/report/loan — filter: status, employee
-GET /admin/report/tax — filter: year
-GET /admin/report/bpjs — filter: month
-```
-
-### Effort: ~5-7 hari
-
----
-
-## M9: Recruitment (Optional)
-
-### Scope
-Basic recruitment pipeline: job posting → applicant → interview → hire → auto-create user.
-
-### Database
-```sql
-CREATE TABLE job_postings (
- id, title, department_id, position_id, description,
- requirements, salary_range_min, salary_range_max,
- status ENUM('draft','open','closed'), open_date, close_date
-);
-
-CREATE TABLE applicants (
- id, job_posting_id, name, email, phone,
- resume_path, cover_letter, source,
- status ENUM('applied','screening','interview','offered','hired','rejected'),
- notes, applied_at
-);
-
-CREATE TABLE interviews (
- id, applicant_id, interviewer_id (user),
- scheduled_at, type ENUM('phone','onsite','video'),
- result ENUM('pass','fail','pending'), notes
-);
-```
-
-### Effort: ~5-7 hari
-### Priority: LOW — biasanya recruitment pakai tools terpisah (LinkedIn, JobStreet, dll)
-
----
-
-## M10: Performance Management (Optional)
-
-### Scope
-KPI setting → periodic review → rating.
-
-### Database
-```sql
-CREATE TABLE review_periods (
- id, name, start_date, end_date,
- status ENUM('setup','active','review','closed')
-);
-
-CREATE TABLE kpis (
- id, user_id, review_period_id, title, description,
- target_value, actual_value, weight DECIMAL(5,2),
- score DECIMAL(5,2) NULL, status
-);
-
-CREATE TABLE performance_reviews (
- id, user_id, review_period_id, reviewer_id,
- self_rating, manager_rating, final_rating,
- strengths TEXT, improvements TEXT, status
-);
-```
-
-### Effort: ~7-10 hari
-### Priority: LOW — biasanya perusahaan kecil belum butuh formal KPI system
-
----
-
-## M11: Training & Development (Optional)
-
-### Scope
-Track training history, certifications, skills.
-
-### Database
-```sql
-CREATE TABLE trainings (
- id, name, provider, description,
- start_date, end_date, cost, max_participants
-);
-
-CREATE TABLE training_participants (
- id, training_id, user_id, status ENUM('registered','attended','completed','absent'),
- certificate_path, score
-);
-
-CREATE TABLE certifications (
- id, user_id, name, issuer, issued_date, expiry_date, credential_id, file_path
-);
-```
-
-### Effort: ~3-5 hari
-### Priority: LOW
-
----
-
-## Summary: Effort & Priority Matrix
-
-```
- HIGH IMPACT
- │
- M2: Leave ●─────────┼──────────● M5: Tax
- (5-7 days) │ (7-10 days)
- │
- M4: Self-Service ●──┼──────● M8: Reporting
- (5-7 days) │ (5-7 days)
- │
- ───────────────────────┼─────────────────────── EFFORT
- │
- M0: Foundation ●────┼────● M7: Multi-Branch
- (3-4 days) │ (5-7 days)
- │
- M1: Org ●───────────┼──● M3: Notifikasi
- (2-3 days) │ (3-4 days)
- │
- M6: Documents ●─────┼
- (2-3 days) │
- │
- LOW IMPACT
-```
-
-| Module | Effort | Priority | Depends On |
-|--------|--------|----------|------------|
-| **M0: Foundation** | 3-4 hari | 🔴 CRITICAL | - |
-| **M1: Org Structure** | 2-3 hari | 🟠 HIGH | M0 |
-| **M2: Leave Management** | 5-7 hari | 🔴 CRITICAL | M0 |
-| **M3: Notification** | 3-4 hari | 🟠 HIGH | M0 |
-| **M4: Self-Service** | 5-7 hari | 🟠 HIGH | M0, M1, M2 |
-| **M5: Tax & BPJS** | 7-10 hari | 🟡 MEDIUM | M0 |
-| **M6: Documents** | 2-3 hari | 🟡 MEDIUM | M4 |
-| **M7: Multi-Branch** | 5-7 hari | 🟡 MEDIUM | M0, M1 |
-| **M8: Reporting** | 5-7 hari | 🟡 MEDIUM | M0-M5 |
-| **M9: Recruitment** | 5-7 hari | ⚪ LOW | M0, M1 |
-| **M10: Performance** | 7-10 hari | ⚪ LOW | M0, M1 |
-| **M11: Training** | 3-5 hari | ⚪ LOW | M0 |
-
-**Total estimated: ~55-75 hari kerja** untuk full HRIS
-**MVP (M0+M1+M2+M3+M4): ~20-25 hari kerja** untuk usable employee self-service with leave management
-
----
-
-## Recommended Phased Rollout
-
-### Phase A — Foundation + Quick Wins (Week 1-2)
-```
-M0: Roles & Permissions + Approval Engine + Audit Trail
-M1: Org Structure (Department, Position)
-M3: Basic Notifications (database channel)
-```
-Deliverable: Admin bisa assign role, departemen terstruktur, audit trail aktif.
-
-### Phase B — Leave + Self-Service (Week 3-5)
-```
-M2: Leave Management (full)
-M4: Employee Self-Service Portal
-```
-Deliverable: Karyawan bisa login, lihat gaji, ajukan cuti, cuti tidak dihitung absen.
-
-### Phase C — Compliance (Week 6-8)
-```
-M5: PPh 21 + BPJS calculation
-M6: Employee Documents
-M8: Reporting & Dashboard
-```
-Deliverable: Payroll lengkap dengan pajak, dokumen tersimpan, dashboard analytics.
-
-### Phase D — Scale (Week 9+)
-```
-M7: Multi-Branch (if needed)
-M9-M11: Recruitment, Performance, Training (as needed)
-```
diff --git a/docs/MODULE_STATUS_AND_NEXT_TASKS.md b/docs/MODULE_STATUS_AND_NEXT_TASKS.md
deleted file mode 100644
index 16f9d30..0000000
--- a/docs/MODULE_STATUS_AND_NEXT_TASKS.md
+++ /dev/null
@@ -1,204 +0,0 @@
-# Absensi → HRIS — Module Status & Next Tasks
-
-> **Audit date:** 2026-08-24
-> **Method:** Verifikasi langsung ke kode (models, migrations, services, controllers,
-> routes, observers, scheduler, tests) — bukan sekadar baca label di `MODULE_PLANS.md`.
-> **Legend:** ✅ Done & wired · ⚠️ Ada tapi ada gap · ❌ Belum ada (next task)
-
----
-
-## Lensa Analisis: "Bisa Dipakai End-to-End?" (bukan cuma "kode ada?")
-
-Pertanyaan Capt yang benar: modul yang punya model+controller+route belum tentu
-BISA DIPAKAI. Yang menentukan usable/tidak adalah **apakah proses bisnisnya bisa
-diselesaikan lewat UI dari awal sampai akhir**: ada jalur input data, data ngalir
-ke tempat konsumsinya, dan entry point-nya keliatan di menu.
-
-Tiga lubang yang dicek untuk tiap modul:
-1. **Config ter-seed?** — kalau tabel referensi kosong, fitur mati diam-diam.
-2. **Ada entry point operasional di menu sidebar?** — bukan cuma route telanjang.
-3. **Data ngalir ke konsumennya?** — input → proses → output kepakai.
-
-### ⚠️ Soal "Akuntansi cuma ada pengaturannya" — ini BY DESIGN, bukan bug
-
-Absensi **bukan** aplikasi akuntansi. Menu "Konfigurasi Akuntansi" (ACC) cuma
-memetakan kode transaksi (`GAJIAN`, `KASBON`, `BAYARKASBON`) ke akun sumber/tujuan
-di sistem akuntansi **eksternal (Firefly III)** via API (`/api/v1/transactions`).
-
-**Cara data akuntansi masuk:** OTOMATIS. Saat gaji dibayar (`setPayment`) atau
-kasbon dibuat/dibayar, `TransactionService` push transaksi ke Firefly III. Jadi
-wajar UI-nya cuma setting — transaksinya dilihat DI FIREFLY, bukan di absensi.
-
-**Syarat aktif:** `env('ACC_ACTIVE')=true` + `ACC_HOST` + `ACC_KEY` terisi. Kalau
-tidak, `TransactionService` diam-diam no-op (semua method `if(!$this->active) return`).
-> **Catatan usability:** karena no-op-nya SILENT, admin bisa ngira gaji "tercatat
-> ke akuntansi" padahal ACC nonaktif. Tidak ada indikator status di UI. Minor, tapi
-> membingungkan — persis yang Capt rasakan.
-
-### ⚠️ Onboarding gap: `DatabaseSeeder` KOSONG
-
-`database/seeders/DatabaseSeeder.php::run()` kosong. Semua data referensi HRIS
-(role, permission, approval flow, jenis cuti, jenis dokumen, tarif pajak/BPJS)
-ada di `HrisSeeder` tapi **tidak dipanggil otomatis**. Fresh install harus jalan
-manual: `php artisan db:seed --class=HrisSeeder`. Kalau lupa → tidak ada role sama
-sekali → tidak ada yang bisa login sebagai admin → semua menu (yang di-gate `@can`)
-hilang. Ini bikin sistem "kelihatan kosong" padahal kodenya lengkap.
-
----
-
-## Ringkasan Cepat
-
-| Modul | Status | Catatan |
-|-------|--------|---------|
-| M0 Foundation | ✅ | Roles, Approval engine, Audit trail — semua wired |
-| M1 Org Structure | ✅ | Department, Position, org-chart |
-| M2 Leave Management | ✅ | Terintegrasi ke perhitungan gaji |
-| M3 Notification | ✅ | DB + WhatsApp gateway + scheduler |
-| M4 Self-Service Portal | ✅ | Route `/my/*` lengkap |
-| M5 Tax & BPJS | ⚠️ | Service lengkap, TAPI tidak auto-jalan saat rekap gaji dihitung |
-| M6 Employee Documents | ✅ | Upload, expiry alert, completeness |
-| M7 Multi-Branch | ✅ | Geofencing per-branch |
-| M8 Reporting & Dashboard | ✅ | Dashboard + report attendance/salary/loan/headcount |
-| M9 Recruitment | ❌ | Belum ada (optional, LOW) |
-| M10 Performance | ❌ | Belum ada (optional, LOW) |
-| M11 Training | ❌ | Belum ada (optional, LOW) |
-
----
-
-## Verdict MVP Proses-Bisnis per Modul (bisa dipakai end-to-end?)
-
-| Modul | Config seed | Entry point menu | Data ngalir | MVP usable? |
-|-------|:-----------:|:----------------:|:-----------:|:-----------:|
-| M1 Org | — (manual isi) | ✅ Organisasi | ✅ dipakai approval & report | ✅ YA |
-| M2 Leave | ✅ LeaveTypeSeeder | ✅ Cuti & Izin | ✅ approve→saldo→gaji | ✅ YA |
-| M3 Notif | — | ✅ bell + portal | ✅ di-trigger event nyata* | ✅ YA |
-| M4 Portal | — | ✅ `/my/*` navbar | ✅ baca data karyawan | ✅ YA |
-| M5 Tax | ✅ TaxRateSeeder | ✅ Pajak & BPJS | ⚠️ **manual recalc** | ⚠️ SEBAGIAN |
-| M6 Docs | ✅ DocTypeSeeder | ✅ Dokumen | ✅ upload→simpan→download | ✅ YA |
-| M7 Branch | — (manual isi) | ✅ Organisasi>Cabang | ✅ user+scan+dashboard | ✅ YA |
-| M8 Report | — | ✅ Dashboard+report | ✅ agregasi data nyata | ✅ YA |
-
-\* Notifikasi ter-trigger dari: leave approve/reject (`LeaveService::notifyOutcome`),
-approval step (`ApprovalService`), dokumen mau expired (`DocumentService`), scheduler
-absensi & digest. Bukan service nganggur.
-
-### Kesimpulan usability
-- **7 dari 8 modul wajib SUDAH usable end-to-end** lewat UI. Ada tabel input,
- data ngalir ke konsumen, menu keliatan.
-- **Cuma M5 (Pajak) yang setengah jalan**: semua UI & service ada, tapi angka pajak
- baru nempel ke slip kalau admin klik "Rekap Pajak → hitung ulang" manual. Recap
- gaji biasa TIDAK otomatis punya PPh21/BPJS/net. Ini gap MVP nyata (lihat M5-1).
-- **Akuntansi (ACC)**: kekhawatiran "cuma pengaturan" itu wajar — memang integrasi
- ke Firefly III eksternal, datanya masuk otomatis saat gajian/kasbon. Bukan modul
- yang perlu UI input transaksi sendiri. Satu-satunya perbaikan: kasih indikator
- status ACC aktif/nonaktif biar admin nggak bingung (lihat ACC-1).
-- **Blocker onboarding**: `DatabaseSeeder` kosong → fresh install kelihatan "mati"
- kalau lupa seed manual (lihat SETUP-1).
-
-
-
-### ✅ M1 — Organization Structure — DONE
-- Models: `Department`, `Position` + migration `..._create_departments_and_positions_tables`
-- Controllers: `DepartmentCrudController`, `PositionCrudController`
-- Routes: `admin/department`, `admin/position`, `admin/org-chart` (guard `permission:org.view`)
-- Users extended: `department_id`, `position_id`, `employee_id`, `join_date`, `employment_status`, `phone`, `address`
-- `head_user_id` di departments → dipakai approval engine
-- **Tidak ada task tersisa.**
-
-### ✅ M2 — Leave Management — DONE
-- Models: `LeaveType`, `LeaveBalance`, `LeaveRequest`, `LeaveRequestDate` + migration
-- Service: `LeaveService` (request, approve, reject, cancel, balance, carry-over, generateYearly)
-- Integrasi gaji: `SalaryService::getAbstain()` & `deductibleAbsenceDays()` sudah kurangi approved leave; paid vs unpaid dibedakan
-- Command: `leave:generate-balances` (scheduled `yearlyOn(1,1)`)
-- Routes admin lengkap (leave-type, leave-balance + generate/carry-over, leave-request + approve/reject/cancel, leave-calendar, leave-report) + portal `/my/leave`
-- **Tidak ada task tersisa.**
-
-### ✅ M3 — Notification — DONE
-- Models: `Notification`, `NotificationPreference`
-- Service: `NotificationService` + gateway `FonnteWhatsAppGateway` / `LogWhatsAppGateway` (auto-pilih by token)
-- Commands + scheduler: `notify:attendance` (checkin 08:15 / late 09:30 / checkout 17:00), `notify:approval-digest` (Senin 08:00)
-- Routes: bell icon `admin/notification/*` + portal `/my/notifications`
-- **Tidak ada task tersisa.**
-
-### ✅ M4 — Employee Self-Service Portal — DONE
-- Controller: `Portal\PortalController` + middleware `EnsurePortalAccess`
-- Routes `/my/*`: dashboard, attendance, salary (index+show), leave (index/create/store/cancel), loan, profile (+update), password, notifications
-- **Tidak ada task tersisa.**
-
-### ⚠️ M5 — Tax & BPJS — DONE tapi ADA GAP
-- Models: `EmployeeTaxProfile`, `PtkpRate`, `Pph21Bracket`, `BpjsRate` + kolom pajak di `salary_recaps`
-- Service: `TaxService` lengkap (PPh21 TER, BPJS 5 komponen, THR prorata, PTKP, brackets, report tahunan & BPJS)
-- Controllers/routes: `tax-profile`, `ptkp-rate`, `pph21-bracket`, `bpjs-rate`, `tax-report/annual|bpjs|recalculate`
-- **GAP:** `TaxService::applyToRecap()` (yang isi `pph21`, `bpjs_*`, `net_income`) TIDAK dipanggil dari `SalaryService::calculateSalaryRecap()` maupun `SalaryRecapObserver`. Hanya dipanggil manual via tombol `tax-report/recalculate`, seeder, dan test.
-- **Efek:** kolom pajak & net_income sebuah recap baru terisi hanya setelah admin klik "hitung ulang pajak". Recap baru/di-update TIDAK otomatis punya pajak.
-
-> **⏭️ NEXT TASK M5-1 — Wire-in pajak ke flow gaji otomatis**
-> Panggil `TaxService::applyToRecap($recap)` setelah `calculateSalaryRecap()` selesai (di dalam `SalaryService` atau di `SalaryRecapObserver::updated/created`), pakai `saveQuietly` supaya tidak recurse.
-> - Keputusan desain dulu: pajak dihitung otomatis tiap recap, ATAU tetap manual (pisah dari gaji kotor)?
-> - Kalau otomatis: hati-hati loop observer + urutan (pajak butuh gaji final dulu).
-> - Tambah test: recap baru → cek `net_income` & `pph21` terisi tanpa klik manual.
-
-### ✅ M6 — Employee Documents — DONE
-- Models: `DocumentType`, `EmployeeDocument` + migration
-- Service: `DocumentService`; Controller: `EmployeeDocumentController`, `DocumentTypeCrudController`
-- Routes: document-type CRUD + employee-document (index/create/store/completeness/download/destroy), guard `permission:document.view`
-- Command + scheduler: `documents:notify-expiring --days=30` (Senin 07:30)
-- **Tidak ada task tersisa.**
-
-### ✅ M7 — Multi-Branch — DONE
-- Model: `Branch` + migration; `branch_id` di `users` & `presences`
-- Geofencing per-branch: `PresenceService` pakai `branch->radius_meters` + koordinat branch, fallback ke `config('app.office_lat/lng')`
-- Route: `admin/branch` (guard `permission:branch.view`)
-- **Catatan:** cek apakah `BranchScope` global auto-filter sudah diterapkan sesuai plan (invasiveness HIGH). Kalau reporting/list belum ter-scope per cabang, ini kandidat polish — tapi core sudah ada.
-- **Tidak ada task kritis tersisa.**
-
-### ✅ M8 — Reporting & Dashboard — DONE
-- Controller: `DashboardController` + `DashboardService`; override dashboard Backpack
-- Routes report: `attendance`, `salary`, `loan`, `headcount` + `TaxReportController` (annual/bpjs)
-- **Catatan (minor):** plan sebut report `leave`, `tax`, `bpjs` di bawah `/admin/report/*`. Report leave ada di `leave-report` (bukan di grup report), tax/bpjs di `tax-report`. Fungsional ada, cuma beda lokasi route. Bukan blocker.
-- **Tidak ada task kritis tersisa.**
-
----
-
-## Modul Belum Diimplementasi (Next Tasks — semua OPTIONAL / LOW priority)
-
-### ❌ M9 — Recruitment — NEXT TASK (opsional)
-Belum ada `JobPosting`, `Applicant`, `Interview` (model/migration/controller nihil).
-> **⏭️ M9-1:** Bikin pipeline dasar: job posting → applicant → interview → hire → auto-create user.
-> Prioritas LOW — biasanya pakai tools terpisah (LinkedIn/JobStreet). Kerjakan hanya kalau ada kebutuhan bisnis.
-
-### ❌ M10 — Performance Management — NEXT TASK (opsional)
-Belum ada `ReviewPeriod`, `Kpi`, `PerformanceReview`.
-> **⏭️ M10-1:** KPI setting → periodic review → rating.
-> Prioritas LOW.
-
-### ❌ M11 — Training & Development — NEXT TASK (opsional)
-Belum ada `Training`, `TrainingParticipant`, `Certification`.
-> **⏭️ M11-1:** Track training history, sertifikasi, skills.
-> Prioritas LOW.
-
----
-
-## Urutan Kerja yang Disarankan
-
-```
-PRIORITAS 1 (gap MVP / usability nyata di modul yang sudah "done"):
- M5-1 Wire-in TaxService::applyToRecap() ke flow gaji otomatis ← paling penting
- SETUP-1 Panggil HrisSeeder dari DatabaseSeeder (fresh install auto punya role/data)
- ACC-1 Indikator status ACC aktif/nonaktif di UI (hindari "silent no-op")
-
-PRIORITAS 2 (polish, kalau sempat):
- M7 Verifikasi BranchScope global auto-filter per cabang
- M8 Rapikan lokasi route report (leave/tax/bpjs) ke /admin/report/*
-
-PRIORITAS 3 (fitur baru, optional, sesuai kebutuhan bisnis):
- M9 Recruitment
- M10 Performance
- M11 Training
-```
-
-**Kesimpulan:** Semua modul WAJIB (M0–M8) sudah terimplementasi & wired, dan 7 dari 8
-sudah **usable end-to-end** lewat UI. Gap MVP nyata cuma di **M5 (pajak tidak
-auto-hitung)**. Dua isu setup/usability (`DatabaseSeeder` kosong + status ACC silent)
-mudah diberesin dan bikin sistem terasa jauh lebih "hidup" untuk fresh install.
-Sisanya (M9–M11) memang optional dan sengaja belum digarap.
diff --git a/docs/RENCANA-CSS.md b/docs/RENCANA-CSS.md
deleted file mode 100644
index d2ff772..0000000
--- a/docs/RENCANA-CSS.md
+++ /dev/null
@@ -1,361 +0,0 @@
-# Rencana Perubahan CSS
-
-Analisa keadaan CSS proyek ini dan rencana menjadikannya terlihat seperti
-aplikasi enterprise. Seluruh angka di dokumen ini hasil pemeriksaan langsung,
-bukan perkiraan.
-
----
-
-## 1. Keadaan sekarang
-
-### Dari mana style datang
-
-| Permukaan | Sumber style | Ukuran |
-|---|---|---|
-| **Admin** (`/admin/*`) | 9 stylesheet: Tabler core `1.0.0-beta19`, `style.css` tema Backpack, `animate.compat.css`, `noty.css`, `line-awesome`, `common.css` CRUD, `color-adjustments.css`, `colors.css`, dan `app.css` proyek | Tabler saja 529 KB |
-| **Portal karyawan** (`/my/*`) | Bootstrap 5.3.3 + line-awesome dari jsdelivr, ditambah 6 baris `
-
-
-
-
-
-