diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml
index 95e5da17a..d46ffa822 100644
--- a/.github/workflows/deploy.yml
+++ b/.github/workflows/deploy.yml
@@ -21,15 +21,14 @@ name: Build and Deploy
on:
push:
branches:
- - main # Calculates version, deploys to production, then creates release
- - development # Development environment
+ - main
+ - development
permissions:
id-token: write
contents: read
jobs:
- # Calculate the next version number — deployment and release creation happen in subsequent jobs
calculate-version:
runs-on: ubuntu-latest
if: "github.ref == 'refs/heads/main' && !contains(github.event.head_commit.message, '[skip deploy]') && !contains(github.event.head_commit.message, '[no deploy]')"
@@ -39,7 +38,7 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
- fetch-depth: 0 # Fetch all history for proper versioning
+ fetch-depth: 0
- name: Determine version bump
id: version_bump
@@ -80,7 +79,7 @@ jobs:
run: |
CURRENT="${{ steps.version_bump.outputs.current_version }}"
BUMP_TYPE="${{ steps.version_bump.outputs.bump_type }}"
-
+
# Parse current version
if [[ $CURRENT =~ ^([0-9]+)\.([0-9]+)\.([0-9]+) ]]; then
MAJOR=${BASH_REMATCH[1]}
@@ -91,7 +90,7 @@ jobs:
MINOR=0
PATCH=0
fi
-
+
# Increment based on bump type
case $BUMP_TYPE in
"major")
@@ -107,12 +106,11 @@ jobs:
PATCH=$((PATCH + 1))
;;
esac
-
+
NEW_VERSION="$MAJOR.$MINOR.$PATCH"
echo "New version: $NEW_VERSION"
- echo "new_version=$NEW_VERSION" >> $GITHUB_OUTPUT
+ echo "new_version=$NEW_VERSION" >> "$GITHUB_OUTPUT"
- # Production deployment (runs after version is calculated)
build-and-deploy-production:
needs: calculate-version
runs-on: ubuntu-latest
@@ -120,14 +118,17 @@ jobs:
if: "github.ref == 'refs/heads/main' && !contains(github.event.head_commit.message, '[skip deploy]') && !contains(github.event.head_commit.message, '[no deploy]')"
steps:
- uses: actions/checkout@v6
+
- name: Get Runner IP
id: ip
- uses: haythem/public-ip@v1.3
+ run: echo "ipv4=$(curl -s https://checkip.amazonaws.com)" >> "$GITHUB_OUTPUT"
+
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v6
with:
role-to-assume: arn:aws:iam::147899039648:role/GitHubActionsDeployRole
aws-region: ${{ secrets.AWS_REGION }}
+
- name: Whitelist Runner IP in AWS Security Group
run: |
aws ec2 authorize-security-group-ingress \
@@ -135,11 +136,13 @@ jobs:
--protocol tcp \
--port 22 \
--cidr ${{ steps.ip.outputs.ipv4 }}/32
+
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
- php-version: '8.3'
+ php-version: '8.5'
extensions: mbstring, xml, bcmath, ctype, json, tokenizer, pdo, pdo_mysql
+
- name: Cache Composer packages
id: composer-cache
uses: actions/cache@v5
@@ -148,15 +151,19 @@ jobs:
key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }}
restore-keys: |
${{ runner.os }}-php-
- - name: Install Composer dependencies
- run: composer install --prefer-dist --no-progress --no-suggest --no-dev --optimize-autoloader --no-scripts
+
+ - name: Install Composer dependencies for deployment runner
+ run: composer install --prefer-dist --no-progress --no-suggest --optimize-autoloader --no-scripts
+
- name: Setup Node.js
uses: actions/setup-node@v6
with:
- node-version: '20'
+ node-version: '24'
cache: 'yarn'
+
- name: Install Yarn dependencies
run: yarn install --frozen-lockfile --ignore-engines
+
- name: Build assets for Production
run: npm run production
env:
@@ -164,14 +171,15 @@ jobs:
MIX_REVERB_HOST: ${{ vars.PROD_REVERB_HOST }}
MIX_REVERB_PORT: ${{ vars.PROD_REVERB_PORT }}
MIX_REVERB_SCHEME: ${{ vars.PROD_REVERB_SCHEME }}
+
- name: Create deployment package
run: |
# Clean any prior
rm -rf deployment-package || true
-
+
# Create isolated temp dir
TEMP_DIR=$(mktemp -d)
-
+
# Sync repo files to temp (exclusions prevent bloat/self-ref)
rsync -av \
--exclude=node_modules \
@@ -181,28 +189,45 @@ jobs:
--exclude=storage/logs \
--exclude=vendor \
. "$TEMP_DIR/"
-
+
# Copy assets into temp/public/ (these are already built via npm run production)
cp -r public/css public/js public/fonts public/images public/svg public/mix-manifest.json "$TEMP_DIR/public/" || true
-
+
# Rename to package name
mv "$TEMP_DIR" deployment-package
+
- name: Upload deployment artifact
uses: actions/upload-artifact@v7
with:
name: biospex-${{ github.sha }}
path: deployment-package/
retention-days: 30
- - name: Deploy with Deployer
- uses: deployphp/action@v1
+
+ - name: Setup SSH key
+ uses: webfactory/ssh-agent@v0.10.0
with:
- private-key: ${{ secrets.DEPLOY_PRIVATE_KEY }}
- dep: deploy production
+ ssh-private-key: ${{ secrets.DEPLOY_PRIVATE_KEY }}
+
+ - name: Configure SSH host key checking
+ run: |
+ mkdir -p ~/.ssh
+ cat > ~/.ssh/config <<'EOF'
+ Host *
+ StrictHostKeyChecking no
+ UserKnownHostsFile=/dev/null
+ EOF
+ chmod 700 ~/.ssh
+ chmod 600 ~/.ssh/config
+
+ - name: Deploy with Deployer
+ run: vendor/bin/dep deploy production
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_SHA: ${{ github.sha }}
GITHUB_REPO: ${{ github.repository }}
+ API_TOKEN: ${{ secrets.API_TOKEN }}
OPCACHE_WEBHOOK_TOKEN: ${{ secrets.OPCACHE_WEBHOOK_TOKEN }}
+
- name: Revoke Runner IP from AWS Security Group
if: always()
run: |
@@ -212,7 +237,6 @@ jobs:
--port 22 \
--cidr ${{ steps.ip.outputs.ipv4 }}/32
- # Create release only after a successful production deployment
create-release:
needs: [calculate-version, build-and-deploy-production]
runs-on: ubuntu-latest
@@ -254,18 +278,20 @@ jobs:
build-and-deploy-development:
runs-on: ubuntu-latest
environment: development
- # Skip deployment if commit message contains [skip deploy] or [no deploy]
if: "github.ref == 'refs/heads/development' && !contains(github.event.head_commit.message, '[skip deploy]') && !contains(github.event.head_commit.message, '[no deploy]')"
steps:
- uses: actions/checkout@v6
+
- name: Get Runner IP
id: ip
- uses: haythem/public-ip@v1.3
+ run: echo "ipv4=$(curl -s https://checkip.amazonaws.com)" >> "$GITHUB_OUTPUT"
+
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v6
with:
role-to-assume: arn:aws:iam::147899039648:role/GitHubActionsDeployRole
aws-region: ${{ secrets.AWS_REGION }}
+
- name: Whitelist Runner IP in AWS Security Group
run: |
aws ec2 authorize-security-group-ingress \
@@ -273,11 +299,13 @@ jobs:
--protocol tcp \
--port 22 \
--cidr ${{ steps.ip.outputs.ipv4 }}/32
+
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
- php-version: '8.3'
+ php-version: '8.5'
extensions: mbstring, xml, bcmath, ctype, json, tokenizer, pdo, pdo_mysql
+
- name: Cache Composer packages
id: composer-cache
uses: actions/cache@v5
@@ -286,15 +314,19 @@ jobs:
key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }}
restore-keys: |
${{ runner.os }}-php-
- - name: Install Composer dependencies
- run: composer install --prefer-dist --no-progress --no-suggest --no-dev --optimize-autoloader --no-scripts
+
+ - name: Install Composer dependencies for deployment runner
+ run: composer install --prefer-dist --no-progress --no-suggest --optimize-autoloader --no-scripts
+
- name: Setup Node.js
uses: actions/setup-node@v6
with:
- node-version: '20'
+ node-version: '24'
cache: 'yarn'
+
- name: Install Yarn dependencies
run: yarn install --frozen-lockfile --ignore-engines
+
- name: Build assets for Development
run: npm run production
env:
@@ -302,14 +334,15 @@ jobs:
MIX_REVERB_HOST: ${{ vars.DEV_REVERB_HOST }}
MIX_REVERB_PORT: ${{ vars.DEV_REVERB_PORT }}
MIX_REVERB_SCHEME: ${{ vars.DEV_REVERB_SCHEME }}
+
- name: Create deployment package
run: |
# Clean any prior
rm -rf deployment-package || true
-
+
# Create isolated temp dir
TEMP_DIR=$(mktemp -d)
-
+
# Sync repo files to temp (exclusions prevent bloat/self-ref)
rsync -av \
--exclude=node_modules \
@@ -319,28 +352,45 @@ jobs:
--exclude=storage/logs \
--exclude=vendor \
. "$TEMP_DIR/"
-
+
# Copy assets into temp/public/ (these are already built via npm run production)
cp -r public/css public/js public/fonts public/images public/svg public/mix-manifest.json "$TEMP_DIR/public/" || true
-
+
# Rename to package name
mv "$TEMP_DIR" deployment-package
+
- name: Upload deployment artifact
uses: actions/upload-artifact@v7
with:
name: biospex-${{ github.sha }}
path: deployment-package/
retention-days: 30
- - name: Deploy with Deployer
- uses: deployphp/action@v1
+
+ - name: Setup SSH key
+ uses: webfactory/ssh-agent@v0.10.0
with:
- private-key: ${{ secrets.DEPLOY_PRIVATE_KEY }}
- dep: deploy development
+ ssh-private-key: ${{ secrets.DEPLOY_PRIVATE_KEY }}
+
+ - name: Configure SSH host key checking
+ run: |
+ mkdir -p ~/.ssh
+ cat > ~/.ssh/config <<'EOF'
+ Host *
+ StrictHostKeyChecking no
+ UserKnownHostsFile=/dev/null
+ EOF
+ chmod 700 ~/.ssh
+ chmod 600 ~/.ssh/config
+
+ - name: Deploy with Deployer
+ run: vendor/bin/dep deploy development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_SHA: ${{ github.sha }}
GITHUB_REPO: ${{ github.repository }}
+ API_TOKEN: ${{ secrets.API_TOKEN }}
OPCACHE_WEBHOOK_TOKEN: ${{ secrets.OPCACHE_WEBHOOK_TOKEN }}
+
- name: Revoke Runner IP from AWS Security Group
if: always()
run: |
diff --git a/AGENTS.md b/AGENTS.md
index 63b58c76e..cbf300237 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -59,13 +59,13 @@ The Laravel Boost guidelines are specifically curated by Laravel maintainers for
This application is a Laravel application and its main Laravel ecosystems package & versions are below. You are an expert with them all. Ensure you abide by these specific packages & versions.
-- php - 8.3.30
-- filament/filament (FILAMENT) - v4
-- laravel/framework (LARAVEL) - v12
+- php - 8.5
+- filament/filament (FILAMENT) - v5
+- laravel/framework (LARAVEL) - v13
- laravel/prompts (PROMPTS) - v0
- laravel/reverb (REVERB) - v1
- laravel/sanctum (SANCTUM) - v4
-- livewire/livewire (LIVEWIRE) - v3
+- livewire/livewire (LIVEWIRE) - v4
- laravel/boost (BOOST) - v2
- laravel/breeze (BREEZE) - v2
- laravel/mcp (MCP) - v0
@@ -79,11 +79,7 @@ This application is a Laravel application and its main Laravel ecosystems packag
## Skills Activation
-This project has domain-specific skills available. You MUST activate the relevant skill whenever you work in that domain—don't wait until you're stuck.
-
-- `livewire-development` — Develops reactive Livewire 3 components. Activates when creating, updating, or modifying Livewire components; working with wire:model, wire:click, wire:loading, or any wire: directives; adding real-time updates, loading states, or reactivity; debugging component behavior; writing Livewire tests; or when the user mentions Livewire, component, counter, or reactive UI.
-- `pest-testing` — Tests applications using the Pest 4 PHP framework. Activates when writing tests, creating unit or feature tests, adding assertions, testing Livewire components, browser testing, debugging test failures, working with datasets or mocking; or when the user mentions test, spec, TDD, expects, assertion, coverage, or needs to verify functionality works.
-- `tailwindcss-development` — Styles applications using Tailwind CSS v3 utilities. Activates when adding styles, restyling components, working with gradients, spacing, layout, flex, grid, responsive design, dark mode, colors, typography, or borders; or when the user mentions CSS, styling, classes, Tailwind, restyle, hero section, cards, buttons, or any visual/UI changes.
+This project has domain-specific skills available in `**/skills/**`. You MUST activate the relevant skill whenever you work in that domain—don't wait until you're stuck.
## Conventions
@@ -116,77 +112,56 @@ This project has domain-specific skills available. You MUST activate the relevan
# Laravel Boost
-- Laravel Boost is an MCP server that comes with powerful tools designed specifically for this application. Use them.
-
-## Artisan Commands
+## Tools
-- Run Artisan commands directly via the command line (e.g., `php artisan route:list`, `php artisan tinker --execute "..."`).
-- Use `php artisan list` to discover available commands and `php artisan [command] --help` to check parameters.
+- Laravel Boost is an MCP server with tools designed specifically for this application. Prefer Boost tools over manual alternatives like shell commands or file reads.
+- Use `database-query` to run read-only queries against the database instead of writing raw SQL in tinker.
+- Use `database-schema` to inspect table structure before writing migrations or models.
+- Use `get-absolute-url` to resolve the correct scheme, domain, and port for project URLs. Always use this before sharing a URL with the user.
-## URLs
+## Searching Documentation (IMPORTANT)
-- Whenever you share a project URL with the user, you should use the `get-absolute-url` tool to ensure you're using the correct scheme, domain/IP, and port.
+- Always use `search-docs` before making code changes. Do not skip this step. It returns version-specific docs based on installed packages automatically.
+- Pass a `packages` array to scope results when you know which packages are relevant.
+- Use multiple broad, topic-based queries: `['rate limiting', 'routing rate limiting', 'routing']`. Expect the most relevant results first.
+- Do not add package names to queries because package info is already shared. Use `test resource table`, not `filament 4 test resource table`.
-## Debugging
+### Search Syntax
-- Use the `database-query` tool when you only need to read from the database.
-- Use the `database-schema` tool to inspect table structure before writing migrations or models.
-- To execute PHP code for debugging, run `php artisan tinker --execute "your code here"` directly.
-- To read configuration values, read the config files directly or run `php artisan config:show [key]`.
-- To inspect routes, run `php artisan route:list` directly.
-- To check environment variables, read the `.env` file directly.
+1. Use words for auto-stemmed AND logic: `rate limit` matches both "rate" AND "limit".
+2. Use `"quoted phrases"` for exact position matching: `"infinite scroll"` requires adjacent words in order.
+3. Combine words and phrases for mixed queries: `middleware "rate limit"`.
+4. Use multiple queries for OR logic: `queries=["authentication", "middleware"]`.
-## Searching Documentation (Critically Important)
+## Artisan
-- Boost comes with a powerful `search-docs` tool you should use before trying other approaches when working with Laravel or Laravel ecosystem packages. This tool automatically passes a list of installed packages and their versions to the remote Boost API, so it returns only version-specific documentation for the user's circumstance. You should pass an array of packages to filter on if you know you need docs for particular packages.
-- Search the documentation before making code changes to ensure we are taking the correct approach.
-- Use multiple, broad, simple, topic-based queries at once. For example: `['rate limiting', 'routing rate limiting', 'routing']`. The most relevant results will be returned first.
-- Do not add package names to queries; package information is already shared. For example, use `test resource table`, not `filament 4 test resource table`.
+- Run Artisan commands directly via the command line (e.g., `php artisan route:list`). Use `php artisan list` to discover available commands and `php artisan [command] --help` to check parameters.
+- Inspect routes with `php artisan route:list`. Filter with: `--method=GET`, `--name=users`, `--path=api`, `--except-vendor`, `--only-vendor`.
+- Read configuration values using dot notation: `php artisan config:show app.name`, `php artisan config:show database.default`. Or read config files directly from the `config/` directory.
+- To check environment variables, read the `.env` file directly.
-### Available Search Syntax
+## Tinker
-1. Simple Word Searches with auto-stemming - query=authentication - finds 'authenticate' and 'auth'.
-2. Multiple Words (AND Logic) - query=rate limit - finds knowledge containing both "rate" AND "limit".
-3. Quoted Phrases (Exact Position) - query="infinite scroll" - words must be adjacent and in that order.
-4. Mixed Queries - query=middleware "rate limit" - "middleware" AND exact phrase "rate limit".
-5. Multiple Queries - queries=["authentication", "middleware"] - ANY of these terms.
+- Execute PHP in app context for debugging and testing code. Do not create models without user approval, prefer tests with factories instead. Prefer existing Artisan commands over custom tinker code.
+- Always use single quotes to prevent shell expansion: `php artisan tinker --execute 'Your::code();'`
+ - Double quotes for PHP strings inside: `php artisan tinker --execute 'User::where("active", true)->count();'`
=== php rules ===
# PHP
- Always use curly braces for control structures, even for single-line bodies.
+- Use PHP 8 constructor property promotion: `public function __construct(public GitHub $github) { }`. Do not leave empty zero-parameter `__construct()` methods unless the constructor is private.
+- Use explicit return type declarations and type hints for all method parameters: `function isAccessible(User $user, ?string $path = null): bool`
+- Use TitleCase for Enum keys: `FavoritePerson`, `BestLake`, `Monthly`.
+- Prefer PHPDoc blocks over inline comments. Only add inline comments for exceptionally complex logic.
+- Use array shape type definitions in PHPDoc blocks.
-## Constructors
-
-- Use PHP 8 constructor property promotion in `__construct()`.
- - `public function __construct(public GitHub $github) { }`
-- Do not allow empty `__construct()` methods with zero parameters unless the constructor is private.
-
-## Type Declarations
-
-- Always use explicit return type declarations for methods and functions.
-- Use appropriate PHP type hints for method parameters.
-
-
-```php
-protected function isAccessible(User $user, ?string $path = null): bool
-{
- ...
-}
-```
-
-## Enums
-
-- Typically, keys in an Enum should be TitleCase. For example: `FavoritePerson`, `BestLake`, `Monthly`.
-
-## Comments
+=== deployments rules ===
-- Prefer PHPDoc blocks over inline comments. Never use comments within the code itself unless the logic is exceptionally complex.
+# Deployment
-## PHPDoc Blocks
-
-- Add useful array shape type definitions when appropriate.
+- Laravel can be deployed using [Laravel Cloud](https://cloud.laravel.com/), which is the fastest way to deploy and scale production Laravel applications.
=== tests rules ===
@@ -203,43 +178,18 @@ protected function isAccessible(User $user, ?string $path = null): bool
- If you're creating a generic PHP class, use `php artisan make:class`.
- Pass `--no-interaction` to all Artisan commands to ensure they work without user input. You should also pass the correct `--options` to ensure correct behavior.
-## Database
-
-- Always use proper Eloquent relationship methods with return type hints. Prefer relationship methods over raw queries or manual joins.
-- Use Eloquent models and relationships before suggesting raw database queries.
-- Avoid `DB::`; prefer `Model::query()`. Generate code that leverages Laravel's ORM capabilities rather than bypassing them.
-- Generate code that prevents N+1 query problems by using eager loading.
-- Use Laravel's query builder for very complex database operations.
-
### Model Creation
- When creating new models, create useful factories and seeders for them too. Ask the user if they need any other things, using `php artisan make:model --help` to check the available options.
-### APIs & Eloquent Resources
+## APIs & Eloquent Resources
- For APIs, default to using Eloquent API Resources and API versioning unless existing API routes do not, then you should follow existing application convention.
-## Controllers & Validation
-
-- Always create Form Request classes for validation rather than inline validation in controllers. Include both validation rules and custom error messages.
-- Check sibling Form Requests to see if the application uses array or string based validation rules.
-
-## Authentication & Authorization
-
-- Use Laravel's built-in authentication and authorization features (gates, policies, Sanctum, etc.).
-
## URL Generation
- When generating links to other pages, prefer named routes and the `route()` function.
-## Queues
-
-- Use queued jobs for time-consuming operations with the `ShouldQueue` interface.
-
-## Configuration
-
-- Use environment variables only in configuration files - never use the `env()` function directly outside of config files. Always use `config('app.name')`, not `env('APP_NAME')`.
-
## Testing
- When creating models for tests, use the factories for the models. Check if the factory has custom states that can be used before manually setting up the model.
@@ -250,39 +200,13 @@ protected function isAccessible(User $user, ?string $path = null): bool
- If you receive an "Illuminate\Foundation\ViteException: Unable to locate file in Vite manifest" error, you can run `yarn run build` or ask the user to run `yarn run dev` or `composer run dev`.
-=== laravel/v12 rules ===
-
-# Laravel 12
-
-- CRITICAL: ALWAYS use `search-docs` tool for version-specific Laravel documentation and updated code examples.
-- Since Laravel 11, Laravel has a new streamlined file structure which this project uses.
-
-## Laravel 12 Structure
-
-- In Laravel 12, middleware are no longer registered in `app/Http/Kernel.php`.
-- Middleware are configured declaratively in `bootstrap/app.php` using `Application::configure()->withMiddleware()`.
-- `bootstrap/app.php` is the file to register middleware, exceptions, and routing files.
-- `bootstrap/providers.php` contains application specific service providers.
-- The `app\Console\Kernel.php` file no longer exists; use `bootstrap/app.php` or `routes/console.php` for console configuration.
-- Console commands in `app/Console/Commands/` are automatically available and do not require manual registration.
-
-## Database
-
-- When modifying a column, the migration must include all of the attributes that were previously defined on the column. Otherwise, they will be dropped and lost.
-- Laravel 12 allows limiting eagerly loaded records natively, without external packages: `$query->latest()->limit(10);`.
-
-### Models
-
-- Casts can and likely should be set in a `casts()` method on a model rather than the `$casts` property. Follow existing conventions from other models.
-
=== livewire/core rules ===
# Livewire
-- Livewire allows you to build dynamic, reactive interfaces using only PHP — no JavaScript required.
-- Instead of writing frontend code in JavaScript frameworks, you use Alpine.js to build the UI when client-side interactions are required.
-- State lives on the server; the UI reflects it. Validate and authorize in actions (they're like HTTP requests).
-- IMPORTANT: Activate `livewire-development` every time you're working with Livewire-related tasks.
+- Livewire allow to build dynamic, reactive interfaces in PHP without writing JavaScript.
+- You can use Alpine.js for client-side interactions instead of JavaScript frameworks.
+- Keep state server-side so the UI reflects it. Validate and authorize in actions as you would in HTTP requests.
=== pint/core rules ===
@@ -296,31 +220,21 @@ protected function isAccessible(User $user, ?string $path = null): bool
## Pest
- This project uses Pest for testing. Create tests: `php artisan make:test --pest {name}`.
+- The `{name}` argument should not include the test suite directory. Use `php artisan make:test --pest SomeFeatureTest` instead of `php artisan make:test --pest Feature/SomeFeatureTest`.
- Run tests: `php artisan test --compact` or filter: `php artisan test --compact --filter=testName`.
- Do NOT delete tests without approval.
-- CRITICAL: ALWAYS use `search-docs` tool for version-specific Pest documentation and updated code examples.
-- IMPORTANT: Activate `pest-testing` every time you're working with a Pest or testing-related task.
-
-=== tailwindcss/core rules ===
-
-# Tailwind CSS
-
-- Always use existing Tailwind conventions; check project patterns before adding new ones.
-- IMPORTANT: Always use `search-docs` tool for version-specific Tailwind CSS documentation and updated code examples. Never rely on training data.
-- IMPORTANT: Activate `tailwindcss-development` every time you're working with a Tailwind CSS or styling-related task.
=== filament/filament rules ===
## Filament
-- Filament is used by this application. Follow the existing conventions for how and where it is implemented.
-- Filament is a Server-Driven UI (SDUI) framework for Laravel that lets you define user interfaces in PHP using structured configuration objects. Built on Livewire, Alpine.js, and Tailwind CSS.
+- Filament is a Laravel UI framework built on Livewire, Alpine.js, and Tailwind CSS. UIs are defined in PHP via fluent, chainable components. Follow existing conventions in this app.
- Use the `search-docs` tool for official documentation on Artisan commands, code examples, testing, relationships, and idiomatic practices. If `search-docs` is unavailable, refer to https://filamentphp.com/docs.
### Artisan
- Always use Filament-specific Artisan commands to create files. Find available commands with the `list-artisan-commands` tool, or run `php artisan --help`.
-- Always inspect required options before running a command, and always pass `--no-interaction`.
+- Inspect required options before running, and always pass `--no-interaction`.
### Patterns
@@ -344,6 +258,62 @@ TextInput::make('company_name')
+Use `Set $set` inside `->afterStateUpdated()` on a `->live()` field to mutate another field reactively. Prefer `->live(onBlur: true)` on text inputs to avoid per-keystroke updates:
+
+
+use Filament\Schemas\Components\Utilities\Set;
+use Illuminate\Support\Str;
+
+TextInput::make('title')
+ ->required()
+ ->live(onBlur: true)
+ ->afterStateUpdated(fn (Set $set, ?string $state) => $set(
+ 'slug',
+ Str::slug($state ?? ''),
+ )),
+
+TextInput::make('slug')
+ ->required(),
+
+
+
+Compose layout by nesting `Section` and `Grid`. Children need explicit `->columnSpan()` or `->columnSpanFull()`:
+
+
+use Filament\Schemas\Components\Grid;
+use Filament\Schemas\Components\Section;
+
+Section::make('Details')
+ ->schema([
+ Grid::make(2)->schema([
+ TextInput::make('first_name')
+ ->columnSpan(1),
+ TextInput::make('last_name')
+ ->columnSpan(1),
+ TextInput::make('bio')
+ ->columnSpanFull(),
+ ]),
+ ]),
+
+
+
+Use `Repeater` for inline `HasMany` management. `->relationship()` with no args binds to the relationship matching the field name:
+
+
+use Filament\Forms\Components\Repeater;
+
+Repeater::make('qualifications')
+ ->relationship()
+ ->schema([
+ TextInput::make('institution')
+ ->required(),
+ TextInput::make('qualification')
+ ->required(),
+ ])
+ ->columns(2),
+
+
+
Use `state()` with a `Closure` to compute derived column values:
@@ -354,11 +324,28 @@ TextColumn::make('full_name')
-Actions encapsulate a button with an optional modal form and logic:
+Use `SelectFilter` for enum or relationship filters, and `Filter` with a `->query()` closure for custom logic:
+
+
+use Filament\Tables\Filters\Filter;
+use Filament\Tables\Filters\SelectFilter;
+use Illuminate\Database\Eloquent\Builder;
+
+SelectFilter::make('status')
+ ->options(UserStatus::class),
+
+SelectFilter::make('author')
+ ->relationship('author', 'name'),
+
+Filter::make('verified')
+ ->query(fn (Builder $query) => $query->whereNotNull('email_verified_at')),
+
+
+
+Actions are buttons that encapsulate optional modal forms and behavior:
use Filament\Actions\Action;
-use Filament\Forms\Components\TextInput;
Action::make('updateEmail')
->schema([
@@ -366,13 +353,16 @@ Action::make('updateEmail')
->email()
->required(),
])
- ->action(fn (array $data, User $record) => $record->update($data))
+ ->action(fn (array $data, User $record) => $record->update($data)),
### Testing
-Always authenticate before testing panel functionality. Filament uses Livewire, so use `Livewire::test()` or `livewire()` (available when `pestphp/pest-plugin-livewire` is in `composer.json`):
+Testing setup (requires `pestphp/pest-plugin-livewire` in `composer.json`):
+
+- Always call `$this->actingAs(User::factory()->create())` before testing panel functionality.
+- For edit pages, pass `['record' => $user->id]`, use `->call('save')` (not `->call('create')`), and do not assert `->assertRedirect()` (edit pages do not redirect after save).
use function Pest\Livewire\livewire;
@@ -387,7 +377,6 @@ livewire(ListUsers::class)
use function Pest\Laravel\assertDatabaseHas;
-use function Pest\Livewire\livewire;
livewire(CreateUser::class)
->fillForm([
@@ -396,6 +385,7 @@ livewire(CreateUser::class)
])
->call('create')
->assertNotified()
+ ->assertHasNoFormErrors()
->assertRedirect();
assertDatabaseHas(User::class, [
@@ -405,9 +395,21 @@ assertDatabaseHas(User::class, [
-
-use function Pest\Livewire\livewire;
+
+livewire(EditUser::class, ['record' => $user->id])
+ ->fillForm(['name' => 'Updated'])
+ ->call('save')
+ ->assertNotified()
+ ->assertHasNoFormErrors();
+assertDatabaseHas(User::class, [
+ 'id' => $user->id,
+ 'name' => 'Updated',
+]);
+
+
+
+
livewire(CreateUser::class)
->fillForm([
'name' => null,
@@ -422,20 +424,10 @@ livewire(CreateUser::class)
-
-use Filament\Actions\DeleteAction;
-use function Pest\Livewire\livewire;
-
-livewire(EditUser::class, ['record' => $user->id])
- ->callAction(DeleteAction::class)
- ->assertNotified()
- ->assertRedirect();
-
-
+Use `->callAction(DeleteAction::class)` for page actions, or `->callAction(TestAction::make('name')->table($record))` for table actions:
-
+
use Filament\Actions\Testing\TestAction;
-use function Pest\Livewire\livewire;
livewire(ListUsers::class)
->callAction(TestAction::make('promote')->table($user), [
@@ -447,16 +439,25 @@ livewire(ListUsers::class)
### Correct Namespaces
-- Form fields (`TextInput`, `Select`, etc.): `Filament\Forms\Components\`
+- Form fields (`TextInput`, `Select`, `Repeater`, etc.): `Filament\Forms\Components\`
- Infolist entries (`TextEntry`, `IconEntry`, etc.): `Filament\Infolists\Components\`
- Layout components (`Grid`, `Section`, `Fieldset`, `Tabs`, `Wizard`, etc.): `Filament\Schemas\Components\`
- Schema utilities (`Get`, `Set`, etc.): `Filament\Schemas\Components\Utilities\`
+- Table columns (`TextColumn`, `IconColumn`, etc.): `Filament\Tables\Columns\`
+- Table filters (`SelectFilter`, `Filter`, etc.): `Filament\Tables\Filters\`
- Actions (`DeleteAction`, `CreateAction`, etc.): `Filament\Actions\`. Never use `Filament\Tables\Actions\`, `Filament\Forms\Actions\`, or any other sub-namespace for actions.
- Icons: `Filament\Support\Icons\Heroicon` enum (e.g., `Heroicon::PencilSquare`)
### Common Mistakes
- **Never assume public file visibility.** File visibility is `private` by default. Always use `->visibility('public')` when public access is needed.
-- **Never assume full-width layout.** `Grid`, `Section`, and `Fieldset` do not span all columns by default. Explicitly set column spans when needed.
+- **Never assume full-width layout.** `Grid`, `Section`, `Fieldset`, and `Repeater` do not span all columns by default.
+- **Use `Select::make('author_id')->relationship('author', 'name')` for BelongsTo fields.** `BelongsToSelect` does not exist in v4.
+- **`Repeater` uses `->schema()`, not `->fields()`.**
+- **Never add `->dehydrated(false)` to fields that need to be saved.** It strips the value from form state before `->action()` or the save handler runs. Only use it for helper/UI-only fields.
+- **Use correct property types when overriding `Page`, `Resource`, and `Widget` properties.** These properties have union types or changed modifiers that must be preserved:
+ - `$navigationIcon`: `protected static string | BackedEnum | null` (not `?string`)
+ - `$navigationGroup`: `protected static string | UnitEnum | null` (not `?string`)
+ - `$view`: `protected string` (not `protected static string`) on `Page` and `Widget` classes
diff --git a/CLAUDE.md b/CLAUDE.md
index 63b58c76e..cbf300237 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -59,13 +59,13 @@ The Laravel Boost guidelines are specifically curated by Laravel maintainers for
This application is a Laravel application and its main Laravel ecosystems package & versions are below. You are an expert with them all. Ensure you abide by these specific packages & versions.
-- php - 8.3.30
-- filament/filament (FILAMENT) - v4
-- laravel/framework (LARAVEL) - v12
+- php - 8.5
+- filament/filament (FILAMENT) - v5
+- laravel/framework (LARAVEL) - v13
- laravel/prompts (PROMPTS) - v0
- laravel/reverb (REVERB) - v1
- laravel/sanctum (SANCTUM) - v4
-- livewire/livewire (LIVEWIRE) - v3
+- livewire/livewire (LIVEWIRE) - v4
- laravel/boost (BOOST) - v2
- laravel/breeze (BREEZE) - v2
- laravel/mcp (MCP) - v0
@@ -79,11 +79,7 @@ This application is a Laravel application and its main Laravel ecosystems packag
## Skills Activation
-This project has domain-specific skills available. You MUST activate the relevant skill whenever you work in that domain—don't wait until you're stuck.
-
-- `livewire-development` — Develops reactive Livewire 3 components. Activates when creating, updating, or modifying Livewire components; working with wire:model, wire:click, wire:loading, or any wire: directives; adding real-time updates, loading states, or reactivity; debugging component behavior; writing Livewire tests; or when the user mentions Livewire, component, counter, or reactive UI.
-- `pest-testing` — Tests applications using the Pest 4 PHP framework. Activates when writing tests, creating unit or feature tests, adding assertions, testing Livewire components, browser testing, debugging test failures, working with datasets or mocking; or when the user mentions test, spec, TDD, expects, assertion, coverage, or needs to verify functionality works.
-- `tailwindcss-development` — Styles applications using Tailwind CSS v3 utilities. Activates when adding styles, restyling components, working with gradients, spacing, layout, flex, grid, responsive design, dark mode, colors, typography, or borders; or when the user mentions CSS, styling, classes, Tailwind, restyle, hero section, cards, buttons, or any visual/UI changes.
+This project has domain-specific skills available in `**/skills/**`. You MUST activate the relevant skill whenever you work in that domain—don't wait until you're stuck.
## Conventions
@@ -116,77 +112,56 @@ This project has domain-specific skills available. You MUST activate the relevan
# Laravel Boost
-- Laravel Boost is an MCP server that comes with powerful tools designed specifically for this application. Use them.
-
-## Artisan Commands
+## Tools
-- Run Artisan commands directly via the command line (e.g., `php artisan route:list`, `php artisan tinker --execute "..."`).
-- Use `php artisan list` to discover available commands and `php artisan [command] --help` to check parameters.
+- Laravel Boost is an MCP server with tools designed specifically for this application. Prefer Boost tools over manual alternatives like shell commands or file reads.
+- Use `database-query` to run read-only queries against the database instead of writing raw SQL in tinker.
+- Use `database-schema` to inspect table structure before writing migrations or models.
+- Use `get-absolute-url` to resolve the correct scheme, domain, and port for project URLs. Always use this before sharing a URL with the user.
-## URLs
+## Searching Documentation (IMPORTANT)
-- Whenever you share a project URL with the user, you should use the `get-absolute-url` tool to ensure you're using the correct scheme, domain/IP, and port.
+- Always use `search-docs` before making code changes. Do not skip this step. It returns version-specific docs based on installed packages automatically.
+- Pass a `packages` array to scope results when you know which packages are relevant.
+- Use multiple broad, topic-based queries: `['rate limiting', 'routing rate limiting', 'routing']`. Expect the most relevant results first.
+- Do not add package names to queries because package info is already shared. Use `test resource table`, not `filament 4 test resource table`.
-## Debugging
+### Search Syntax
-- Use the `database-query` tool when you only need to read from the database.
-- Use the `database-schema` tool to inspect table structure before writing migrations or models.
-- To execute PHP code for debugging, run `php artisan tinker --execute "your code here"` directly.
-- To read configuration values, read the config files directly or run `php artisan config:show [key]`.
-- To inspect routes, run `php artisan route:list` directly.
-- To check environment variables, read the `.env` file directly.
+1. Use words for auto-stemmed AND logic: `rate limit` matches both "rate" AND "limit".
+2. Use `"quoted phrases"` for exact position matching: `"infinite scroll"` requires adjacent words in order.
+3. Combine words and phrases for mixed queries: `middleware "rate limit"`.
+4. Use multiple queries for OR logic: `queries=["authentication", "middleware"]`.
-## Searching Documentation (Critically Important)
+## Artisan
-- Boost comes with a powerful `search-docs` tool you should use before trying other approaches when working with Laravel or Laravel ecosystem packages. This tool automatically passes a list of installed packages and their versions to the remote Boost API, so it returns only version-specific documentation for the user's circumstance. You should pass an array of packages to filter on if you know you need docs for particular packages.
-- Search the documentation before making code changes to ensure we are taking the correct approach.
-- Use multiple, broad, simple, topic-based queries at once. For example: `['rate limiting', 'routing rate limiting', 'routing']`. The most relevant results will be returned first.
-- Do not add package names to queries; package information is already shared. For example, use `test resource table`, not `filament 4 test resource table`.
+- Run Artisan commands directly via the command line (e.g., `php artisan route:list`). Use `php artisan list` to discover available commands and `php artisan [command] --help` to check parameters.
+- Inspect routes with `php artisan route:list`. Filter with: `--method=GET`, `--name=users`, `--path=api`, `--except-vendor`, `--only-vendor`.
+- Read configuration values using dot notation: `php artisan config:show app.name`, `php artisan config:show database.default`. Or read config files directly from the `config/` directory.
+- To check environment variables, read the `.env` file directly.
-### Available Search Syntax
+## Tinker
-1. Simple Word Searches with auto-stemming - query=authentication - finds 'authenticate' and 'auth'.
-2. Multiple Words (AND Logic) - query=rate limit - finds knowledge containing both "rate" AND "limit".
-3. Quoted Phrases (Exact Position) - query="infinite scroll" - words must be adjacent and in that order.
-4. Mixed Queries - query=middleware "rate limit" - "middleware" AND exact phrase "rate limit".
-5. Multiple Queries - queries=["authentication", "middleware"] - ANY of these terms.
+- Execute PHP in app context for debugging and testing code. Do not create models without user approval, prefer tests with factories instead. Prefer existing Artisan commands over custom tinker code.
+- Always use single quotes to prevent shell expansion: `php artisan tinker --execute 'Your::code();'`
+ - Double quotes for PHP strings inside: `php artisan tinker --execute 'User::where("active", true)->count();'`
=== php rules ===
# PHP
- Always use curly braces for control structures, even for single-line bodies.
+- Use PHP 8 constructor property promotion: `public function __construct(public GitHub $github) { }`. Do not leave empty zero-parameter `__construct()` methods unless the constructor is private.
+- Use explicit return type declarations and type hints for all method parameters: `function isAccessible(User $user, ?string $path = null): bool`
+- Use TitleCase for Enum keys: `FavoritePerson`, `BestLake`, `Monthly`.
+- Prefer PHPDoc blocks over inline comments. Only add inline comments for exceptionally complex logic.
+- Use array shape type definitions in PHPDoc blocks.
-## Constructors
-
-- Use PHP 8 constructor property promotion in `__construct()`.
- - `public function __construct(public GitHub $github) { }`
-- Do not allow empty `__construct()` methods with zero parameters unless the constructor is private.
-
-## Type Declarations
-
-- Always use explicit return type declarations for methods and functions.
-- Use appropriate PHP type hints for method parameters.
-
-
-```php
-protected function isAccessible(User $user, ?string $path = null): bool
-{
- ...
-}
-```
-
-## Enums
-
-- Typically, keys in an Enum should be TitleCase. For example: `FavoritePerson`, `BestLake`, `Monthly`.
-
-## Comments
+=== deployments rules ===
-- Prefer PHPDoc blocks over inline comments. Never use comments within the code itself unless the logic is exceptionally complex.
+# Deployment
-## PHPDoc Blocks
-
-- Add useful array shape type definitions when appropriate.
+- Laravel can be deployed using [Laravel Cloud](https://cloud.laravel.com/), which is the fastest way to deploy and scale production Laravel applications.
=== tests rules ===
@@ -203,43 +178,18 @@ protected function isAccessible(User $user, ?string $path = null): bool
- If you're creating a generic PHP class, use `php artisan make:class`.
- Pass `--no-interaction` to all Artisan commands to ensure they work without user input. You should also pass the correct `--options` to ensure correct behavior.
-## Database
-
-- Always use proper Eloquent relationship methods with return type hints. Prefer relationship methods over raw queries or manual joins.
-- Use Eloquent models and relationships before suggesting raw database queries.
-- Avoid `DB::`; prefer `Model::query()`. Generate code that leverages Laravel's ORM capabilities rather than bypassing them.
-- Generate code that prevents N+1 query problems by using eager loading.
-- Use Laravel's query builder for very complex database operations.
-
### Model Creation
- When creating new models, create useful factories and seeders for them too. Ask the user if they need any other things, using `php artisan make:model --help` to check the available options.
-### APIs & Eloquent Resources
+## APIs & Eloquent Resources
- For APIs, default to using Eloquent API Resources and API versioning unless existing API routes do not, then you should follow existing application convention.
-## Controllers & Validation
-
-- Always create Form Request classes for validation rather than inline validation in controllers. Include both validation rules and custom error messages.
-- Check sibling Form Requests to see if the application uses array or string based validation rules.
-
-## Authentication & Authorization
-
-- Use Laravel's built-in authentication and authorization features (gates, policies, Sanctum, etc.).
-
## URL Generation
- When generating links to other pages, prefer named routes and the `route()` function.
-## Queues
-
-- Use queued jobs for time-consuming operations with the `ShouldQueue` interface.
-
-## Configuration
-
-- Use environment variables only in configuration files - never use the `env()` function directly outside of config files. Always use `config('app.name')`, not `env('APP_NAME')`.
-
## Testing
- When creating models for tests, use the factories for the models. Check if the factory has custom states that can be used before manually setting up the model.
@@ -250,39 +200,13 @@ protected function isAccessible(User $user, ?string $path = null): bool
- If you receive an "Illuminate\Foundation\ViteException: Unable to locate file in Vite manifest" error, you can run `yarn run build` or ask the user to run `yarn run dev` or `composer run dev`.
-=== laravel/v12 rules ===
-
-# Laravel 12
-
-- CRITICAL: ALWAYS use `search-docs` tool for version-specific Laravel documentation and updated code examples.
-- Since Laravel 11, Laravel has a new streamlined file structure which this project uses.
-
-## Laravel 12 Structure
-
-- In Laravel 12, middleware are no longer registered in `app/Http/Kernel.php`.
-- Middleware are configured declaratively in `bootstrap/app.php` using `Application::configure()->withMiddleware()`.
-- `bootstrap/app.php` is the file to register middleware, exceptions, and routing files.
-- `bootstrap/providers.php` contains application specific service providers.
-- The `app\Console\Kernel.php` file no longer exists; use `bootstrap/app.php` or `routes/console.php` for console configuration.
-- Console commands in `app/Console/Commands/` are automatically available and do not require manual registration.
-
-## Database
-
-- When modifying a column, the migration must include all of the attributes that were previously defined on the column. Otherwise, they will be dropped and lost.
-- Laravel 12 allows limiting eagerly loaded records natively, without external packages: `$query->latest()->limit(10);`.
-
-### Models
-
-- Casts can and likely should be set in a `casts()` method on a model rather than the `$casts` property. Follow existing conventions from other models.
-
=== livewire/core rules ===
# Livewire
-- Livewire allows you to build dynamic, reactive interfaces using only PHP — no JavaScript required.
-- Instead of writing frontend code in JavaScript frameworks, you use Alpine.js to build the UI when client-side interactions are required.
-- State lives on the server; the UI reflects it. Validate and authorize in actions (they're like HTTP requests).
-- IMPORTANT: Activate `livewire-development` every time you're working with Livewire-related tasks.
+- Livewire allow to build dynamic, reactive interfaces in PHP without writing JavaScript.
+- You can use Alpine.js for client-side interactions instead of JavaScript frameworks.
+- Keep state server-side so the UI reflects it. Validate and authorize in actions as you would in HTTP requests.
=== pint/core rules ===
@@ -296,31 +220,21 @@ protected function isAccessible(User $user, ?string $path = null): bool
## Pest
- This project uses Pest for testing. Create tests: `php artisan make:test --pest {name}`.
+- The `{name}` argument should not include the test suite directory. Use `php artisan make:test --pest SomeFeatureTest` instead of `php artisan make:test --pest Feature/SomeFeatureTest`.
- Run tests: `php artisan test --compact` or filter: `php artisan test --compact --filter=testName`.
- Do NOT delete tests without approval.
-- CRITICAL: ALWAYS use `search-docs` tool for version-specific Pest documentation and updated code examples.
-- IMPORTANT: Activate `pest-testing` every time you're working with a Pest or testing-related task.
-
-=== tailwindcss/core rules ===
-
-# Tailwind CSS
-
-- Always use existing Tailwind conventions; check project patterns before adding new ones.
-- IMPORTANT: Always use `search-docs` tool for version-specific Tailwind CSS documentation and updated code examples. Never rely on training data.
-- IMPORTANT: Activate `tailwindcss-development` every time you're working with a Tailwind CSS or styling-related task.
=== filament/filament rules ===
## Filament
-- Filament is used by this application. Follow the existing conventions for how and where it is implemented.
-- Filament is a Server-Driven UI (SDUI) framework for Laravel that lets you define user interfaces in PHP using structured configuration objects. Built on Livewire, Alpine.js, and Tailwind CSS.
+- Filament is a Laravel UI framework built on Livewire, Alpine.js, and Tailwind CSS. UIs are defined in PHP via fluent, chainable components. Follow existing conventions in this app.
- Use the `search-docs` tool for official documentation on Artisan commands, code examples, testing, relationships, and idiomatic practices. If `search-docs` is unavailable, refer to https://filamentphp.com/docs.
### Artisan
- Always use Filament-specific Artisan commands to create files. Find available commands with the `list-artisan-commands` tool, or run `php artisan --help`.
-- Always inspect required options before running a command, and always pass `--no-interaction`.
+- Inspect required options before running, and always pass `--no-interaction`.
### Patterns
@@ -344,6 +258,62 @@ TextInput::make('company_name')
+Use `Set $set` inside `->afterStateUpdated()` on a `->live()` field to mutate another field reactively. Prefer `->live(onBlur: true)` on text inputs to avoid per-keystroke updates:
+
+
+use Filament\Schemas\Components\Utilities\Set;
+use Illuminate\Support\Str;
+
+TextInput::make('title')
+ ->required()
+ ->live(onBlur: true)
+ ->afterStateUpdated(fn (Set $set, ?string $state) => $set(
+ 'slug',
+ Str::slug($state ?? ''),
+ )),
+
+TextInput::make('slug')
+ ->required(),
+
+
+
+Compose layout by nesting `Section` and `Grid`. Children need explicit `->columnSpan()` or `->columnSpanFull()`:
+
+
+use Filament\Schemas\Components\Grid;
+use Filament\Schemas\Components\Section;
+
+Section::make('Details')
+ ->schema([
+ Grid::make(2)->schema([
+ TextInput::make('first_name')
+ ->columnSpan(1),
+ TextInput::make('last_name')
+ ->columnSpan(1),
+ TextInput::make('bio')
+ ->columnSpanFull(),
+ ]),
+ ]),
+
+
+
+Use `Repeater` for inline `HasMany` management. `->relationship()` with no args binds to the relationship matching the field name:
+
+
+use Filament\Forms\Components\Repeater;
+
+Repeater::make('qualifications')
+ ->relationship()
+ ->schema([
+ TextInput::make('institution')
+ ->required(),
+ TextInput::make('qualification')
+ ->required(),
+ ])
+ ->columns(2),
+
+
+
Use `state()` with a `Closure` to compute derived column values:
@@ -354,11 +324,28 @@ TextColumn::make('full_name')
-Actions encapsulate a button with an optional modal form and logic:
+Use `SelectFilter` for enum or relationship filters, and `Filter` with a `->query()` closure for custom logic:
+
+
+use Filament\Tables\Filters\Filter;
+use Filament\Tables\Filters\SelectFilter;
+use Illuminate\Database\Eloquent\Builder;
+
+SelectFilter::make('status')
+ ->options(UserStatus::class),
+
+SelectFilter::make('author')
+ ->relationship('author', 'name'),
+
+Filter::make('verified')
+ ->query(fn (Builder $query) => $query->whereNotNull('email_verified_at')),
+
+
+
+Actions are buttons that encapsulate optional modal forms and behavior:
use Filament\Actions\Action;
-use Filament\Forms\Components\TextInput;
Action::make('updateEmail')
->schema([
@@ -366,13 +353,16 @@ Action::make('updateEmail')
->email()
->required(),
])
- ->action(fn (array $data, User $record) => $record->update($data))
+ ->action(fn (array $data, User $record) => $record->update($data)),
### Testing
-Always authenticate before testing panel functionality. Filament uses Livewire, so use `Livewire::test()` or `livewire()` (available when `pestphp/pest-plugin-livewire` is in `composer.json`):
+Testing setup (requires `pestphp/pest-plugin-livewire` in `composer.json`):
+
+- Always call `$this->actingAs(User::factory()->create())` before testing panel functionality.
+- For edit pages, pass `['record' => $user->id]`, use `->call('save')` (not `->call('create')`), and do not assert `->assertRedirect()` (edit pages do not redirect after save).
use function Pest\Livewire\livewire;
@@ -387,7 +377,6 @@ livewire(ListUsers::class)
use function Pest\Laravel\assertDatabaseHas;
-use function Pest\Livewire\livewire;
livewire(CreateUser::class)
->fillForm([
@@ -396,6 +385,7 @@ livewire(CreateUser::class)
])
->call('create')
->assertNotified()
+ ->assertHasNoFormErrors()
->assertRedirect();
assertDatabaseHas(User::class, [
@@ -405,9 +395,21 @@ assertDatabaseHas(User::class, [
-
-use function Pest\Livewire\livewire;
+
+livewire(EditUser::class, ['record' => $user->id])
+ ->fillForm(['name' => 'Updated'])
+ ->call('save')
+ ->assertNotified()
+ ->assertHasNoFormErrors();
+assertDatabaseHas(User::class, [
+ 'id' => $user->id,
+ 'name' => 'Updated',
+]);
+
+
+
+
livewire(CreateUser::class)
->fillForm([
'name' => null,
@@ -422,20 +424,10 @@ livewire(CreateUser::class)
-
-use Filament\Actions\DeleteAction;
-use function Pest\Livewire\livewire;
-
-livewire(EditUser::class, ['record' => $user->id])
- ->callAction(DeleteAction::class)
- ->assertNotified()
- ->assertRedirect();
-
-
+Use `->callAction(DeleteAction::class)` for page actions, or `->callAction(TestAction::make('name')->table($record))` for table actions:
-
+
use Filament\Actions\Testing\TestAction;
-use function Pest\Livewire\livewire;
livewire(ListUsers::class)
->callAction(TestAction::make('promote')->table($user), [
@@ -447,16 +439,25 @@ livewire(ListUsers::class)
### Correct Namespaces
-- Form fields (`TextInput`, `Select`, etc.): `Filament\Forms\Components\`
+- Form fields (`TextInput`, `Select`, `Repeater`, etc.): `Filament\Forms\Components\`
- Infolist entries (`TextEntry`, `IconEntry`, etc.): `Filament\Infolists\Components\`
- Layout components (`Grid`, `Section`, `Fieldset`, `Tabs`, `Wizard`, etc.): `Filament\Schemas\Components\`
- Schema utilities (`Get`, `Set`, etc.): `Filament\Schemas\Components\Utilities\`
+- Table columns (`TextColumn`, `IconColumn`, etc.): `Filament\Tables\Columns\`
+- Table filters (`SelectFilter`, `Filter`, etc.): `Filament\Tables\Filters\`
- Actions (`DeleteAction`, `CreateAction`, etc.): `Filament\Actions\`. Never use `Filament\Tables\Actions\`, `Filament\Forms\Actions\`, or any other sub-namespace for actions.
- Icons: `Filament\Support\Icons\Heroicon` enum (e.g., `Heroicon::PencilSquare`)
### Common Mistakes
- **Never assume public file visibility.** File visibility is `private` by default. Always use `->visibility('public')` when public access is needed.
-- **Never assume full-width layout.** `Grid`, `Section`, and `Fieldset` do not span all columns by default. Explicitly set column spans when needed.
+- **Never assume full-width layout.** `Grid`, `Section`, `Fieldset`, and `Repeater` do not span all columns by default.
+- **Use `Select::make('author_id')->relationship('author', 'name')` for BelongsTo fields.** `BelongsToSelect` does not exist in v4.
+- **`Repeater` uses `->schema()`, not `->fields()`.**
+- **Never add `->dehydrated(false)` to fields that need to be saved.** It strips the value from form state before `->action()` or the save handler runs. Only use it for helper/UI-only fields.
+- **Use correct property types when overriding `Page`, `Resource`, and `Widget` properties.** These properties have union types or changed modifiers that must be preserved:
+ - `$navigationIcon`: `protected static string | BackedEnum | null` (not `?string`)
+ - `$navigationGroup`: `protected static string | UnitEnum | null` (not `?string`)
+ - `$view`: `protected string` (not `protected static string`) on `Page` and `Widget` classes
diff --git a/app/Filament/Components/JsonEditor.php b/app/Filament/Components/JsonEditor.php
new file mode 100644
index 000000000..58ca5302d
--- /dev/null
+++ b/app/Filament/Components/JsonEditor.php
@@ -0,0 +1,73 @@
+.
+ */
+
+namespace App\Filament\Components;
+
+use Filament\Forms\Components\CodeEditor;
+use Filament\Forms\Components\CodeEditor\Enums\Language;
+
+class JsonEditor extends CodeEditor
+{
+ protected function setUp(): void
+ {
+ parent::setUp();
+
+ $this->language(Language::Json);
+ $this->columnSpanFull();
+
+ // Validate that the input is valid JSON
+ $this->rule(function () {
+ return function (string $attribute, mixed $value, \Closure $fail) {
+ if (is_string($value) && ! blank($value)) {
+ json_decode($value);
+ if (json_last_error() !== JSON_ERROR_NONE) {
+ $fail("The {$this->getLabel()} must be a valid JSON string.");
+ }
+ }
+ };
+ });
+
+ // Format array data from database for the UI
+ $this->formatStateUsing(function ($state) {
+ if (is_string($state)) {
+ $decoded = json_decode($state, associative: true);
+
+ return json_last_error() === JSON_ERROR_NONE ? json_encode($decoded, JSON_PRETTY_PRINT) : $state;
+ }
+
+ return is_array($state) ? json_encode($state, JSON_PRETTY_PRINT) : $state;
+ });
+
+ // Handle saving back as an array
+ $this->dehydrateStateUsing(function (?string $state) {
+ if (blank($state)) {
+ return null;
+ }
+ $decoded = json_decode($state, associative: true);
+
+ return json_last_error() === JSON_ERROR_NONE ? $decoded : $state;
+ });
+
+ // Keep Livewire state in sync
+ $this->afterStateUpdated(function (?string $state, $set, $component) {
+ $set($component->getStatePath(), $state ? json_decode($state, associative: true) : null);
+ });
+ }
+}
diff --git a/app/Filament/Resources/AmCharts/Schemas/AmChartForm.php b/app/Filament/Resources/AmCharts/Schemas/AmChartForm.php
index ec967aa29..0a7326965 100644
--- a/app/Filament/Resources/AmCharts/Schemas/AmChartForm.php
+++ b/app/Filament/Resources/AmCharts/Schemas/AmChartForm.php
@@ -1,11 +1,29 @@
.
+ */
+
namespace App\Filament\Resources\AmCharts\Schemas;
+use App\Filament\Components\JsonEditor;
use Filament\Forms\Components\Select;
use Filament\Forms\Components\TextInput;
use Filament\Schemas\Schema;
-use ValentinMorice\FilamentJsonColumn\JsonColumn;
class AmChartForm
{
@@ -20,8 +38,8 @@ public static function configure(Schema $schema): Schema
->required()
->numeric()
->default(0),
- JsonColumn::make('series'),
- JsonColumn::make('data'),
+ JsonEditor::make('series'),
+ JsonEditor::make('data'),
]);
}
}
diff --git a/app/Filament/Resources/GeoLocateCommunities/Schemas/GeoLocateCommunityForm.php b/app/Filament/Resources/GeoLocateCommunities/Schemas/GeoLocateCommunityForm.php
index b3bea4099..053659a3c 100644
--- a/app/Filament/Resources/GeoLocateCommunities/Schemas/GeoLocateCommunityForm.php
+++ b/app/Filament/Resources/GeoLocateCommunities/Schemas/GeoLocateCommunityForm.php
@@ -1,11 +1,29 @@
.
+ */
+
namespace App\Filament\Resources\GeoLocateCommunities\Schemas;
+use App\Filament\Components\JsonEditor;
use Filament\Forms\Components\Select;
use Filament\Forms\Components\TextInput;
use Filament\Schemas\Schema;
-use ValentinMorice\FilamentJsonColumn\JsonColumn;
class GeoLocateCommunityForm
{
@@ -18,7 +36,7 @@ public static function configure(Schema $schema): Schema
->required(),
TextInput::make('name')
->required(),
- JsonColumn::make('data')
+ JsonEditor::make('data')
->required(),
]);
}
diff --git a/app/Filament/Resources/GeoLocateDataSources/Schemas/GeoLocateDataSourceForm.php b/app/Filament/Resources/GeoLocateDataSources/Schemas/GeoLocateDataSourceForm.php
index a4b620712..ffcf3759d 100644
--- a/app/Filament/Resources/GeoLocateDataSources/Schemas/GeoLocateDataSourceForm.php
+++ b/app/Filament/Resources/GeoLocateDataSources/Schemas/GeoLocateDataSourceForm.php
@@ -1,11 +1,29 @@
.
+ */
+
namespace App\Filament\Resources\GeoLocateDataSources\Schemas;
+use App\Filament\Components\JsonEditor;
use Filament\Forms\Components\Select;
use Filament\Forms\Components\TextInput;
use Filament\Schemas\Schema;
-use ValentinMorice\FilamentJsonColumn\JsonColumn;
class GeoLocateDataSourceForm
{
@@ -26,7 +44,7 @@ public static function configure(Schema $schema): Schema
->relationship('geoLocateCommunity', 'name'),
Select::make('download_id')
->relationship('download', 'file'),
- JsonColumn::make('data_source'),
+ JsonEditor::make('data_source'),
TextInput::make('data'),
]);
}
diff --git a/app/Filament/Resources/GeoLocateForms/Schemas/GeoLocateFormForm.php b/app/Filament/Resources/GeoLocateForms/Schemas/GeoLocateFormForm.php
index cbae1d0b2..a844a886a 100644
--- a/app/Filament/Resources/GeoLocateForms/Schemas/GeoLocateFormForm.php
+++ b/app/Filament/Resources/GeoLocateForms/Schemas/GeoLocateFormForm.php
@@ -1,11 +1,29 @@
.
+ */
+
namespace App\Filament\Resources\GeoLocateForms\Schemas;
+use App\Filament\Components\JsonEditor;
use Filament\Forms\Components\Select;
use Filament\Forms\Components\TextInput;
use Filament\Schemas\Schema;
-use ValentinMorice\FilamentJsonColumn\JsonColumn;
class GeoLocateFormForm
{
@@ -18,7 +36,7 @@ public static function configure(Schema $schema): Schema
->required(),
TextInput::make('name')
->required(),
- JsonColumn::make('fields')
+ JsonEditor::make('fields')
->required(),
]);
}
diff --git a/app/Filament/Resources/Headers/Schemas/HeaderForm.php b/app/Filament/Resources/Headers/Schemas/HeaderForm.php
index 1f1cfb89d..adefa9e47 100644
--- a/app/Filament/Resources/Headers/Schemas/HeaderForm.php
+++ b/app/Filament/Resources/Headers/Schemas/HeaderForm.php
@@ -1,10 +1,28 @@
.
+ */
+
namespace App\Filament\Resources\Headers\Schemas;
+use App\Filament\Components\JsonEditor;
use Filament\Forms\Components\TextInput;
use Filament\Schemas\Schema;
-use ValentinMorice\FilamentJsonColumn\JsonColumn;
class HeaderForm
{
@@ -15,7 +33,7 @@ public static function configure(Schema $schema): Schema
TextInput::make('project_id')
->required()
->numeric(),
- JsonColumn::make('header')
+ JsonEditor::make('header')
->columnSpanFull(),
]);
}
diff --git a/app/Http/Controllers/Api/IndexController.php b/app/Http/Controllers/Api/IndexController.php
index 74e8650a8..156a6aa0f 100644
--- a/app/Http/Controllers/Api/IndexController.php
+++ b/app/Http/Controllers/Api/IndexController.php
@@ -20,33 +20,24 @@
namespace App\Http\Controllers\Api;
+use Illuminate\Http\Request;
+use Illuminate\Http\Response;
+
/**
* Class IndexController
*/
class IndexController extends ApiController
{
- /**
- * @return string
- */
- public function index()
+ public function index(): string
{
return \View::make('front.api-index');
}
/**
* Reset OpCache
- *
- * @return \Illuminate\Http\Response
*/
- public function resetOpcache(\Illuminate\Http\Request $request)
+ public function resetOpcache(Request $request): Response
{
- $token = $request->input('token');
- $validToken = config('app.opcache_webhook_token', null);
-
- if (empty($validToken) || $token !== $validToken) {
- return $this->errorUnauthorized('Invalid reset token.');
- }
-
if (function_exists('opcache_reset')) {
if (opcache_reset()) {
return $this->respondWithArray(['message' => 'OpCache reset successful']);
diff --git a/app/Http/Middleware/VerifyCsrfToken.php b/app/Http/Middleware/VerifyCsrfToken.php
deleted file mode 100644
index a1886c8b2..000000000
--- a/app/Http/Middleware/VerifyCsrfToken.php
+++ /dev/null
@@ -1,36 +0,0 @@
-.
- */
-
-namespace App\Http\Middleware;
-
-use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware;
-
-class VerifyCsrfToken extends Middleware
-{
- /**
- * The URIs that should be excluded from CSRF verification.
- *
- * @var array
- */
- protected $except = [
- //
- 'aws-sns-webhook/',
- ];
-}
diff --git a/app/Jobs/LabelReconciliationJob.php b/app/Jobs/LabelReconciliationJob.php
index 094f5199b..9c689e5ca 100644
--- a/app/Jobs/LabelReconciliationJob.php
+++ b/app/Jobs/LabelReconciliationJob.php
@@ -68,9 +68,9 @@ public function handle(
public function failed(Throwable $throwable): void
{
$attributes = [
- 'subject' => t('SnsLabelReconciliationJob Failed'),
+ 'subject' => t('LabelReconciliationJob Failed'),
'html' => [
- t('SnsLabelReconciliationJob failed'),
+ t('LabelReconciliationJob failed'),
t('Error: %s', $throwable->getMessage()),
t('File: %s', $throwable->getFile()),
t('Line: %s', $throwable->getLine()),
diff --git a/app/Listeners/GroupEventSubscriber.php b/app/Listeners/GroupEventSubscriber.php
index 6ec597484..a08b7bf4b 100644
--- a/app/Listeners/GroupEventSubscriber.php
+++ b/app/Listeners/GroupEventSubscriber.php
@@ -68,7 +68,6 @@ public function subscribe($events)
*/
public function onUserLogin($event)
{
- \Log::info('User logged in: '.Auth::id());
$this->setUserGroupSession();
}
@@ -77,7 +76,6 @@ public function onUserLogin($event)
*/
public function onUserLogout($event)
{
- \Log::info('User logged out: '.Auth::id());
Session::flush();
}
diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php
index 597d17e43..50e62b990 100644
--- a/app/Providers/AppServiceProvider.php
+++ b/app/Providers/AppServiceProvider.php
@@ -69,10 +69,5 @@ public function boot(): void
* Registers IDE helper service provider in non-production environments
* to provide enhanced IDE support and autocompletion.
*/
- public function register(): void
- {
- if ($this->app->environment() !== 'production') {
- $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
- }
- }
+ public function register(): void {}
}
diff --git a/app/Providers/Filament/AdminPanelProvider.php b/app/Providers/Filament/AdminPanelProvider.php
index b7ce43db1..261c4a04f 100644
--- a/app/Providers/Filament/AdminPanelProvider.php
+++ b/app/Providers/Filament/AdminPanelProvider.php
@@ -13,7 +13,7 @@
use Filament\PanelProvider;
use Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse;
use Illuminate\Cookie\Middleware\EncryptCookies;
-use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken;
+use Illuminate\Foundation\Http\Middleware\PreventRequestForgery;
use Illuminate\Routing\Middleware\SubstituteBindings;
use Illuminate\Session\Middleware\StartSession;
use Illuminate\View\Middleware\ShareErrorsFromSession;
@@ -78,7 +78,7 @@ public function panel(Panel $panel): Panel
StartSession::class,
AuthenticateSession::class,
ShareErrorsFromSession::class,
- VerifyCsrfToken::class,
+ PreventRequestForgery::class,
SubstituteBindings::class,
DisableBladeIconComponents::class,
DispatchServingFilamentEvent::class,
diff --git a/app/Services/Asset/ImageUploadService.php b/app/Services/Asset/ImageUploadService.php
index 1a47b7d46..a22a098e0 100644
--- a/app/Services/Asset/ImageUploadService.php
+++ b/app/Services/Asset/ImageUploadService.php
@@ -103,7 +103,7 @@ protected function createVariants($file, string $filename, string $baseStoragePa
$variantPath = $baseStoragePath.'/'.$variant.'/'.$filename;
// Encode image and store
- $imageData = $image->encode();
+ $imageData = (string) $image->encode();
Storage::disk($disk)->put($variantPath, $imageData);
} catch (\Exception $e) {
diff --git a/bootstrap/app.php b/bootstrap/app.php
index 5565a50b4..fd3a42a20 100644
--- a/bootstrap/app.php
+++ b/bootstrap/app.php
@@ -1,11 +1,27 @@
withRouting(
@@ -48,44 +64,43 @@
)
->withMiddleware(function (Middleware $middleware) {
$middleware->web(append: [
- \Spatie\Honeypot\ProtectAgainstSpam::class,
+ ProtectAgainstSpam::class,
]);
// Global middleware stack (runs on every request)
$middleware->use([
- \Illuminate\Foundation\Http\Middleware\InvokeDeferredCallbacks::class,
- \App\Http\Middleware\TrustProxies::class,
- \Illuminate\Http\Middleware\HandleCors::class,
- \App\Http\Middleware\PreventRequestsDuringMaintenance::class,
- \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
- \App\Http\Middleware\TrimStrings::class,
- \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
+ InvokeDeferredCallbacks::class,
+ TrustProxies::class,
+ HandleCors::class,
+ PreventRequestsDuringMaintenance::class,
+ ValidatePostSize::class,
+ TrimStrings::class,
+ ConvertEmptyStringsToNull::class,
]);
// Web middleware group (applied to routes/web.php)
$middleware->web(
append: [
- \App\Http\Middleware\FlashHelperMessage::class,
- \Spatie\ResponseCache\Middlewares\CacheResponse::class,
+ FlashHelperMessage::class,
+ CacheResponse::class,
], replace: [
- \Illuminate\Cookie\Middleware\EncryptCookies::class => \App\Http\Middleware\EncryptCookies::class,
- \Illuminate\Foundation\Http\Middleware\ValidateCsrfToken::class => \App\Http\Middleware\VerifyCsrfToken::class,
+ EncryptCookies::class => App\Http\Middleware\EncryptCookies::class,
]
);
// API middleware group (applied to routes/api.php)
$middleware->api(
append: [
- \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
+ EnsureFrontendRequestsAreStateful::class,
], remove: ['throttle:api']
);
// Middleware aliases (for use in route definitions)
$middleware->alias([
- 'auth' => \App\Http\Middleware\Authenticate::class,
- 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
- 'ability' => \Laravel\Sanctum\Http\Middleware\CheckForAnyAbility::class,
- 'doNotCacheResponse' => \Spatie\ResponseCache\Middlewares\DoNotCacheResponse::class,
+ 'auth' => Authenticate::class,
+ 'guest' => RedirectIfAuthenticated::class,
+ 'ability' => CheckForAnyAbility::class,
+ 'doNotCacheResponse' => DoNotCacheResponse::class,
]);
})
->withExceptions(function (Exceptions $exceptions) {
diff --git a/composer.json b/composer.json
index 98603d828..1d0073084 100644
--- a/composer.json
+++ b/composer.json
@@ -8,55 +8,52 @@
],
"license": "MIT",
"require": {
- "php": "^8.2",
+ "php": "^8.5",
"ext-curl": "*",
"ext-dom": "*",
"ext-fileinfo": "*",
"ext-memcached": "*",
"ext-mongodb": "*",
"ext-redis": "*",
- "aws/aws-php-sns-message-validator": "^1.0",
- "aws/aws-sdk-php": "~3.0",
- "filament/filament": "^4.0",
- "graham-campbell/markdown": "^v16.0.0.0",
- "intervention/image-laravel": "^1.5",
+ "aws/aws-sdk-php": "^3.0",
+ "filament/filament": "^5.0",
+ "graham-campbell/markdown": "^16.0",
+ "intervention/image-laravel": "^4.0",
"laracasts/utilities": "^3.2",
- "laravel/framework": "^v12.0.0",
+ "laravel/framework": "^13.0",
"laravel/reverb": "^1.0",
- "laravel/sanctum": "^v4.0.0",
- "laravel/tinker": "^2.5",
+ "laravel/sanctum": "^4.0",
+ "laravel/tinker": "^3.0",
"laravel/ui": "^4.0",
- "league/csv": "^9.6",
+ "league/csv": "^9.0",
"league/flysystem-aws-s3-v3": "^3.0",
- "league/oauth2-client": "^2.6",
- "livewire/livewire": "^3.6",
- "lstrojny/fxmlrpc": "^0.22.0",
+ "league/oauth2-client": "^2.0",
+ "livewire/livewire": "^4.0",
+ "lstrojny/fxmlrpc": "^0.22",
"mongodb/laravel-mongodb": "^5.0",
- "pda/pheanstalk": "^v8.0.0",
+ "pda/pheanstalk": "^8.0",
"pusher/pusher-php-server": "^7.0",
- "ratchet/pawl": "^0.4.3",
- "react/event-loop": "^1.5",
- "react/socket": "^1.16",
- "spatie/laravel-honeypot": "^4.6",
- "spatie/laravel-responsecache": "^7.7",
- "supervisorphp/supervisor": "^5.1",
- "tio/laravel": "^1.10",
- "valentin-morice/filament-json-column": "dev-dev"
+ "ratchet/pawl": "^0.4",
+ "react/event-loop": "^1.0",
+ "react/socket": "^1.0",
+ "spatie/laravel-honeypot": "^4.0",
+ "spatie/laravel-responsecache": "^8.0",
+ "supervisorphp/supervisor": "^5.0",
+ "tio/laravel": "^1.0"
},
"require-dev": {
- "barryvdh/laravel-debugbar": "^3.5",
- "barryvdh/laravel-ide-helper": "^v3.0.0",
- "deployer/deployer": "^7.5",
- "fakerphp/faker": "^1.23",
- "kitloong/laravel-migrations-generator": "^v7.0.1",
- "laradumps/laradumps": "^4.0",
- "laravel/boost": "^v2.0.0",
- "laravel/breeze": "^2.3",
- "laravel/pail": "^1.2.2",
- "laravel/pint": "^1.24",
- "mockery/mockery": "^1.6",
- "nunomaduro/collision": "^8.6",
- "pestphp/pest": "^4.3",
+ "deployer/deployer": "^8.0",
+ "fakerphp/faker": "^1.0",
+ "fruitcake/laravel-debugbar": "^4.0",
+ "kitloong/laravel-migrations-generator": "^7.0",
+ "laradumps/laradumps": "^5.0",
+ "laravel/boost": "^2.0",
+ "laravel/breeze": "^2.0",
+ "laravel/pail": "^1.0",
+ "laravel/pint": "^1.0",
+ "mockery/mockery": "^1.0",
+ "nunomaduro/collision": "^8.9",
+ "pestphp/pest": "^4.0",
"pestphp/pest-plugin-laravel": "^4.0",
"spatie/laravel-ignition": "^2.0"
},
diff --git a/composer.lock b/composer.lock
index b338c7544..9c41f830d 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,74 +4,8 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "5b192631153357c32e46574d4b41b71a",
+ "content-hash": "625d580257ba816cc4971c579b7db6e8",
"packages": [
- {
- "name": "anourvalar/eloquent-serialize",
- "version": "1.3.5",
- "source": {
- "type": "git",
- "url": "https://github.com/AnourValar/eloquent-serialize.git",
- "reference": "1a7dead8d532657e5358f8f27c0349373517681e"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/AnourValar/eloquent-serialize/zipball/1a7dead8d532657e5358f8f27c0349373517681e",
- "reference": "1a7dead8d532657e5358f8f27c0349373517681e",
- "shasum": ""
- },
- "require": {
- "laravel/framework": "^8.0|^9.0|^10.0|^11.0|^12.0",
- "php": "^7.4|^8.0"
- },
- "require-dev": {
- "friendsofphp/php-cs-fixer": "^3.26",
- "laravel/legacy-factories": "^1.1",
- "orchestra/testbench": "^6.0|^7.0|^8.0|^9.0|^10.0",
- "phpstan/phpstan": "^2.0",
- "phpunit/phpunit": "^9.5|^10.5|^11.0",
- "psalm/plugin-laravel": "^2.8|^3.0",
- "squizlabs/php_codesniffer": "^3.7"
- },
- "type": "library",
- "extra": {
- "laravel": {
- "aliases": {
- "EloquentSerialize": "AnourValar\\EloquentSerialize\\Facades\\EloquentSerializeFacade"
- }
- }
- },
- "autoload": {
- "psr-4": {
- "AnourValar\\EloquentSerialize\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "description": "Laravel Query Builder (Eloquent) serialization",
- "homepage": "https://github.com/AnourValar/eloquent-serialize",
- "keywords": [
- "anourvalar",
- "builder",
- "copy",
- "eloquent",
- "job",
- "laravel",
- "query",
- "querybuilder",
- "queue",
- "serializable",
- "serialization",
- "serialize"
- ],
- "support": {
- "issues": "https://github.com/AnourValar/eloquent-serialize/issues",
- "source": "https://github.com/AnourValar/eloquent-serialize/tree/1.3.5"
- },
- "time": "2025-12-04T13:38:21+00:00"
- },
{
"name": "aws/aws-crt-php",
"version": "v1.2.7",
@@ -126,77 +60,18 @@
},
"time": "2024-10-18T22:15:13+00:00"
},
- {
- "name": "aws/aws-php-sns-message-validator",
- "version": "1.10.0",
- "source": {
- "type": "git",
- "url": "https://github.com/aws/aws-php-sns-message-validator.git",
- "reference": "d92d199179cbbf4d99601d4f23f61b9b8cc5da28"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/aws/aws-php-sns-message-validator/zipball/d92d199179cbbf4d99601d4f23f61b9b8cc5da28",
- "reference": "d92d199179cbbf4d99601d4f23f61b9b8cc5da28",
- "shasum": ""
- },
- "require": {
- "ext-openssl": "*",
- "php": ">=8.1",
- "psr/http-message": "^2.0"
- },
- "require-dev": {
- "guzzlehttp/psr7": "^2.4.5",
- "phpunit/phpunit": "^5.6.3 || ^8.5 || ^9.5",
- "squizlabs/php_codesniffer": "^2.3",
- "yoast/phpunit-polyfills": "^1.0"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Aws\\Sns\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "Apache-2.0"
- ],
- "authors": [
- {
- "name": "Amazon Web Services",
- "homepage": "http://aws.amazon.com"
- }
- ],
- "description": "Amazon SNS message validation for PHP",
- "homepage": "http://aws.amazon.com/sdkforphp",
- "keywords": [
- "SNS",
- "amazon",
- "aws",
- "cloud",
- "message",
- "sdk",
- "webhooks"
- ],
- "support": {
- "forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80",
- "issues": "https://github.com/aws/aws-sns-message-validator/issues",
- "source": "https://github.com/aws/aws-php-sns-message-validator/tree/1.10.0"
- },
- "time": "2025-03-05T22:22:58+00:00"
- },
{
"name": "aws/aws-sdk-php",
- "version": "3.373.1",
+ "version": "3.381.2",
"source": {
"type": "git",
"url": "https://github.com/aws/aws-sdk-php.git",
- "reference": "f4c615488707167871699401cf153f23b75ad3f4"
+ "reference": "ffa8a93faafea878155853ae2caf61871363869d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/f4c615488707167871699401cf153f23b75ad3f4",
- "reference": "f4c615488707167871699401cf153f23b75ad3f4",
+ "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/ffa8a93faafea878155853ae2caf61871363869d",
+ "reference": "ffa8a93faafea878155853ae2caf61871363869d",
"shasum": ""
},
"require": {
@@ -278,32 +153,32 @@
"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.373.1"
+ "source": "https://github.com/aws/aws-sdk-php/tree/3.381.2"
},
- "time": "2026-03-12T18:21:41+00:00"
+ "time": "2026-05-15T18:08:57+00:00"
},
{
"name": "blade-ui-kit/blade-heroicons",
- "version": "2.6.0",
+ "version": "2.7.0",
"source": {
"type": "git",
"url": "https://github.com/driesvints/blade-heroicons.git",
- "reference": "4553b2a1f6c76f0ac7f3bc0de4c0cfa06a097d19"
+ "reference": "66fa8ba09dba12e0cdb410b8cb94f3b890eca440"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/driesvints/blade-heroicons/zipball/4553b2a1f6c76f0ac7f3bc0de4c0cfa06a097d19",
- "reference": "4553b2a1f6c76f0ac7f3bc0de4c0cfa06a097d19",
+ "url": "https://api.github.com/repos/driesvints/blade-heroicons/zipball/66fa8ba09dba12e0cdb410b8cb94f3b890eca440",
+ "reference": "66fa8ba09dba12e0cdb410b8cb94f3b890eca440",
"shasum": ""
},
"require": {
"blade-ui-kit/blade-icons": "^1.6",
- "illuminate/support": "^9.0|^10.0|^11.0|^12.0",
+ "illuminate/support": "^9.0|^10.0|^11.0|^12.0|^13.0",
"php": "^8.0"
},
"require-dev": {
- "orchestra/testbench": "^7.0|^8.0|^9.0|^10.0",
- "phpunit/phpunit": "^9.0|^10.5|^11.0"
+ "orchestra/testbench": "^7.0|^8.0|^9.0|^10.0|^11.0",
+ "phpunit/phpunit": "^9.0|^10.5|^11.0|^12.0"
},
"type": "library",
"extra": {
@@ -329,7 +204,7 @@
}
],
"description": "A package to easily make use of Heroicons in your Laravel Blade views.",
- "homepage": "https://github.com/blade-ui-kit/blade-heroicons",
+ "homepage": "https://github.com/driesvints/blade-heroicons",
"keywords": [
"Heroicons",
"blade",
@@ -337,7 +212,7 @@
],
"support": {
"issues": "https://github.com/driesvints/blade-heroicons/issues",
- "source": "https://github.com/driesvints/blade-heroicons/tree/2.6.0"
+ "source": "https://github.com/driesvints/blade-heroicons/tree/2.7.0"
},
"funding": [
{
@@ -349,20 +224,20 @@
"type": "paypal"
}
],
- "time": "2025-02-13T20:53:33+00:00"
+ "time": "2026-03-16T13:00:23+00:00"
},
{
"name": "blade-ui-kit/blade-icons",
- "version": "1.9.0",
+ "version": "1.10.0",
"source": {
"type": "git",
"url": "https://github.com/driesvints/blade-icons.git",
- "reference": "caa92fde675d7a651c38bf73ca582ddada56f318"
+ "reference": "74189a80bbaa4966aebaee54fec3a3c2ef0a5f3a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/driesvints/blade-icons/zipball/caa92fde675d7a651c38bf73ca582ddada56f318",
- "reference": "caa92fde675d7a651c38bf73ca582ddada56f318",
+ "url": "https://api.github.com/repos/driesvints/blade-icons/zipball/74189a80bbaa4966aebaee54fec3a3c2ef0a5f3a",
+ "reference": "74189a80bbaa4966aebaee54fec3a3c2ef0a5f3a",
"shasum": ""
},
"require": {
@@ -430,7 +305,7 @@
"type": "paypal"
}
],
- "time": "2026-02-23T10:42:23+00:00"
+ "time": "2026-04-23T19:03:45+00:00"
},
{
"name": "brick/math",
@@ -656,16 +531,16 @@
},
{
"name": "chillerlan/php-settings-container",
- "version": "3.2.1",
+ "version": "3.3.0",
"source": {
"type": "git",
"url": "https://github.com/chillerlan/php-settings-container.git",
- "reference": "95ed3e9676a1d47cab2e3174d19b43f5dbf52681"
+ "reference": "a0a487cbf5344f721eb504bf0f59bada40c381b7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/chillerlan/php-settings-container/zipball/95ed3e9676a1d47cab2e3174d19b43f5dbf52681",
- "reference": "95ed3e9676a1d47cab2e3174d19b43f5dbf52681",
+ "url": "https://api.github.com/repos/chillerlan/php-settings-container/zipball/a0a487cbf5344f721eb504bf0f59bada40c381b7",
+ "reference": "a0a487cbf5344f721eb504bf0f59bada40c381b7",
"shasum": ""
},
"require": {
@@ -673,11 +548,13 @@
"php": "^8.1"
},
"require-dev": {
+ "phan/phan": "^5.5.2",
"phpmd/phpmd": "^2.15",
- "phpstan/phpstan": "^1.11",
- "phpstan/phpstan-deprecation-rules": "^1.2",
+ "phpstan/phpstan": "^2.1.31",
+ "phpstan/phpstan-deprecation-rules": "^2.0.3",
"phpunit/phpunit": "^10.5",
- "squizlabs/php_codesniffer": "^3.10"
+ "slevomat/coding-standard": "^8.22",
+ "squizlabs/php_codesniffer": "^4.0"
},
"type": "library",
"autoload": {
@@ -702,7 +579,8 @@
"Settings",
"configuration",
"container",
- "helper"
+ "helper",
+ "property hook"
],
"support": {
"issues": "https://github.com/chillerlan/php-settings-container/issues",
@@ -718,7 +596,7 @@
"type": "ko_fi"
}
],
- "time": "2024-07-16T11:13:48+00:00"
+ "time": "2026-03-20T21:10:52+00:00"
},
{
"name": "clue/redis-protocol",
@@ -903,27 +781,27 @@
},
{
"name": "danharrin/livewire-rate-limiting",
- "version": "v2.1.0",
+ "version": "v2.2.0",
"source": {
"type": "git",
"url": "https://github.com/danharrin/livewire-rate-limiting.git",
- "reference": "14dde653a9ae8f38af07a0ba4921dc046235e1a0"
+ "reference": "c03e649220089f6e5a52d422e24e3f98c73e456d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/danharrin/livewire-rate-limiting/zipball/14dde653a9ae8f38af07a0ba4921dc046235e1a0",
- "reference": "14dde653a9ae8f38af07a0ba4921dc046235e1a0",
+ "url": "https://api.github.com/repos/danharrin/livewire-rate-limiting/zipball/c03e649220089f6e5a52d422e24e3f98c73e456d",
+ "reference": "c03e649220089f6e5a52d422e24e3f98c73e456d",
"shasum": ""
},
"require": {
- "illuminate/support": "^9.0|^10.0|^11.0|^12.0",
+ "illuminate/support": "^9.0|^10.0|^11.0|^12.0|^13.0",
"php": "^8.0"
},
"require-dev": {
"livewire/livewire": "^3.0",
"livewire/volt": "^1.3",
- "orchestra/testbench": "^7.0|^8.0|^9.0|^10.0",
- "phpunit/phpunit": "^9.0|^10.0|^11.5.3"
+ "orchestra/testbench": "^7.0|^8.0|^9.0|^10.0|^11.0",
+ "phpunit/phpunit": "^9.0|^10.0|^11.5.3|^12.5.12"
},
"type": "library",
"autoload": {
@@ -953,7 +831,7 @@
"type": "github"
}
],
- "time": "2025-02-21T08:52:11+00:00"
+ "time": "2026-03-16T11:29:23+00:00"
},
{
"name": "dflydev/dot-access-data",
@@ -1377,20 +1255,19 @@
},
{
"name": "filament/actions",
- "version": "v4.8.4",
+ "version": "v5.6.3",
"source": {
"type": "git",
"url": "https://github.com/filamentphp/actions.git",
- "reference": "eb98736211f2209dc7df47eac254e32c5cfb2d15"
+ "reference": "38acd89eb7fa90ef97001b1be46742160554b05a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/filamentphp/actions/zipball/eb98736211f2209dc7df47eac254e32c5cfb2d15",
- "reference": "eb98736211f2209dc7df47eac254e32c5cfb2d15",
+ "url": "https://api.github.com/repos/filamentphp/actions/zipball/38acd89eb7fa90ef97001b1be46742160554b05a",
+ "reference": "38acd89eb7fa90ef97001b1be46742160554b05a",
"shasum": ""
},
"require": {
- "anourvalar/eloquent-serialize": "^1.2",
"filament/forms": "self.version",
"filament/infolists": "self.version",
"filament/notifications": "self.version",
@@ -1422,20 +1299,20 @@
"issues": "https://github.com/filamentphp/filament/issues",
"source": "https://github.com/filamentphp/filament"
},
- "time": "2026-03-12T11:46:23+00:00"
+ "time": "2026-05-11T09:59:40+00:00"
},
{
"name": "filament/filament",
- "version": "v4.8.4",
+ "version": "v5.6.3",
"source": {
"type": "git",
"url": "https://github.com/filamentphp/panels.git",
- "reference": "6bc3bfb932130b486614090438a68ac3a43c8fbe"
+ "reference": "01e18f82af33576291ea08d0880553a00e42f131"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/filamentphp/panels/zipball/6bc3bfb932130b486614090438a68ac3a43c8fbe",
- "reference": "6bc3bfb932130b486614090438a68ac3a43c8fbe",
+ "url": "https://api.github.com/repos/filamentphp/panels/zipball/01e18f82af33576291ea08d0880553a00e42f131",
+ "reference": "01e18f82af33576291ea08d0880553a00e42f131",
"shasum": ""
},
"require": {
@@ -1479,20 +1356,20 @@
"issues": "https://github.com/filamentphp/filament/issues",
"source": "https://github.com/filamentphp/filament"
},
- "time": "2026-03-12T11:46:29+00:00"
+ "time": "2026-05-11T09:58:09+00:00"
},
{
"name": "filament/forms",
- "version": "v4.8.4",
+ "version": "v5.6.3",
"source": {
"type": "git",
"url": "https://github.com/filamentphp/forms.git",
- "reference": "848ad8209d9470d88632464ac00abeae5dbde747"
+ "reference": "b140ab0f249d6ea9678fef896910af93d74b50c8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/filamentphp/forms/zipball/848ad8209d9470d88632464ac00abeae5dbde747",
- "reference": "848ad8209d9470d88632464ac00abeae5dbde747",
+ "url": "https://api.github.com/repos/filamentphp/forms/zipball/b140ab0f249d6ea9678fef896910af93d74b50c8",
+ "reference": "b140ab0f249d6ea9678fef896910af93d74b50c8",
"shasum": ""
},
"require": {
@@ -1529,20 +1406,20 @@
"issues": "https://github.com/filamentphp/filament/issues",
"source": "https://github.com/filamentphp/filament"
},
- "time": "2026-03-12T14:21:07+00:00"
+ "time": "2026-05-11T09:57:47+00:00"
},
{
"name": "filament/infolists",
- "version": "v4.8.4",
+ "version": "v5.6.3",
"source": {
"type": "git",
"url": "https://github.com/filamentphp/infolists.git",
- "reference": "9488c65ce965b248948bf6c69d7e782891944ca9"
+ "reference": "f7fbfe6d705e930f0a5f2e01286e4ec76b12cb7a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/filamentphp/infolists/zipball/9488c65ce965b248948bf6c69d7e782891944ca9",
- "reference": "9488c65ce965b248948bf6c69d7e782891944ca9",
+ "url": "https://api.github.com/repos/filamentphp/infolists/zipball/f7fbfe6d705e930f0a5f2e01286e4ec76b12cb7a",
+ "reference": "f7fbfe6d705e930f0a5f2e01286e4ec76b12cb7a",
"shasum": ""
},
"require": {
@@ -1574,20 +1451,20 @@
"issues": "https://github.com/filamentphp/filament/issues",
"source": "https://github.com/filamentphp/filament"
},
- "time": "2026-03-12T11:52:13+00:00"
+ "time": "2026-05-11T09:57:44+00:00"
},
{
"name": "filament/notifications",
- "version": "v4.8.4",
+ "version": "v5.6.3",
"source": {
"type": "git",
"url": "https://github.com/filamentphp/notifications.git",
- "reference": "7ac27f7702794a25a91cd8d305ddfb2f2a8d1088"
+ "reference": "970765bd93b6d5aee2e110e67586f28e3199c0c0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/filamentphp/notifications/zipball/7ac27f7702794a25a91cd8d305ddfb2f2a8d1088",
- "reference": "7ac27f7702794a25a91cd8d305ddfb2f2a8d1088",
+ "url": "https://api.github.com/repos/filamentphp/notifications/zipball/970765bd93b6d5aee2e110e67586f28e3199c0c0",
+ "reference": "970765bd93b6d5aee2e110e67586f28e3199c0c0",
"shasum": ""
},
"require": {
@@ -1621,20 +1498,20 @@
"issues": "https://github.com/filamentphp/filament/issues",
"source": "https://github.com/filamentphp/filament"
},
- "time": "2026-03-12T11:47:14+00:00"
+ "time": "2026-04-24T08:57:15+00:00"
},
{
"name": "filament/query-builder",
- "version": "v4.8.4",
+ "version": "v5.6.3",
"source": {
"type": "git",
"url": "https://github.com/filamentphp/query-builder.git",
- "reference": "35bc37dadb1e8294dbabf47b3b25ce52acc70f11"
+ "reference": "870972a57682c32dae18c9708241eb2c0f92a626"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/filamentphp/query-builder/zipball/35bc37dadb1e8294dbabf47b3b25ce52acc70f11",
- "reference": "35bc37dadb1e8294dbabf47b3b25ce52acc70f11",
+ "url": "https://api.github.com/repos/filamentphp/query-builder/zipball/870972a57682c32dae18c9708241eb2c0f92a626",
+ "reference": "870972a57682c32dae18c9708241eb2c0f92a626",
"shasum": ""
},
"require": {
@@ -1667,20 +1544,20 @@
"issues": "https://github.com/filamentphp/filament/issues",
"source": "https://github.com/filamentphp/filament"
},
- "time": "2026-03-12T11:46:41+00:00"
+ "time": "2026-05-11T09:58:01+00:00"
},
{
"name": "filament/schemas",
- "version": "v4.8.4",
+ "version": "v5.6.3",
"source": {
"type": "git",
"url": "https://github.com/filamentphp/schemas.git",
- "reference": "d32cb88b05abe6221ebe5f317e73e354d4067b6b"
+ "reference": "d2f79fe2dc22b0fa41dc24a35a8fdeb09a8a6765"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/filamentphp/schemas/zipball/d32cb88b05abe6221ebe5f317e73e354d4067b6b",
- "reference": "d32cb88b05abe6221ebe5f317e73e354d4067b6b",
+ "url": "https://api.github.com/repos/filamentphp/schemas/zipball/d2f79fe2dc22b0fa41dc24a35a8fdeb09a8a6765",
+ "reference": "d2f79fe2dc22b0fa41dc24a35a8fdeb09a8a6765",
"shasum": ""
},
"require": {
@@ -1712,36 +1589,36 @@
"issues": "https://github.com/filamentphp/filament/issues",
"source": "https://github.com/filamentphp/filament"
},
- "time": "2026-03-12T11:51:18+00:00"
+ "time": "2026-05-11T09:57:37+00:00"
},
{
"name": "filament/support",
- "version": "v4.8.4",
+ "version": "v5.6.3",
"source": {
"type": "git",
"url": "https://github.com/filamentphp/support.git",
- "reference": "18b3730decc6670e7824314002f39cba742a796e"
+ "reference": "c407ad2841d80866cc029bbad7eda0aa931c792c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/filamentphp/support/zipball/18b3730decc6670e7824314002f39cba742a796e",
- "reference": "18b3730decc6670e7824314002f39cba742a796e",
+ "url": "https://api.github.com/repos/filamentphp/support/zipball/c407ad2841d80866cc029bbad7eda0aa931c792c",
+ "reference": "c407ad2841d80866cc029bbad7eda0aa931c792c",
"shasum": ""
},
"require": {
"blade-ui-kit/blade-heroicons": "^2.5",
"danharrin/livewire-rate-limiting": "^2.0",
"ext-intl": "*",
- "illuminate/contracts": "^11.28|^12.0",
+ "illuminate/contracts": "^11.28|^12.0|^13.0",
"kirschbaum-development/eloquent-power-joins": "^4.0",
"league/uri-components": "^7.0",
- "livewire/livewire": "^3.5",
+ "livewire/livewire": "^4.1",
"nette/php-generator": "^4.0",
"php": "^8.2",
"ryangjchandler/blade-capture-directive": "^1.0",
"spatie/invade": "^2.0",
"spatie/laravel-package-tools": "^1.9",
- "symfony/console": "^7.0",
+ "symfony/console": "^7.0|^8.0",
"symfony/html-sanitizer": "^7.0|^8.0"
},
"type": "library",
@@ -1770,20 +1647,20 @@
"issues": "https://github.com/filamentphp/filament/issues",
"source": "https://github.com/filamentphp/filament"
},
- "time": "2026-03-12T11:48:52+00:00"
+ "time": "2026-05-11T09:58:44+00:00"
},
{
"name": "filament/tables",
- "version": "v4.8.4",
+ "version": "v5.6.3",
"source": {
"type": "git",
"url": "https://github.com/filamentphp/tables.git",
- "reference": "da6f3e4813ea21bf7017bd4de8aa70c6668db1a7"
+ "reference": "ca6356a486f608c5b5d2a64575388dde0d1b6023"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/filamentphp/tables/zipball/da6f3e4813ea21bf7017bd4de8aa70c6668db1a7",
- "reference": "da6f3e4813ea21bf7017bd4de8aa70c6668db1a7",
+ "url": "https://api.github.com/repos/filamentphp/tables/zipball/ca6356a486f608c5b5d2a64575388dde0d1b6023",
+ "reference": "ca6356a486f608c5b5d2a64575388dde0d1b6023",
"shasum": ""
},
"require": {
@@ -1816,20 +1693,20 @@
"issues": "https://github.com/filamentphp/filament/issues",
"source": "https://github.com/filamentphp/filament"
},
- "time": "2026-03-12T11:48:26+00:00"
+ "time": "2026-05-11T09:57:57+00:00"
},
{
"name": "filament/widgets",
- "version": "v4.8.4",
+ "version": "v5.6.3",
"source": {
"type": "git",
"url": "https://github.com/filamentphp/widgets.git",
- "reference": "b4f124324a607fc43665a6947384a6664aaa7976"
+ "reference": "d395af226cdd63aeae7848ab52619201ee582bfd"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/filamentphp/widgets/zipball/b4f124324a607fc43665a6947384a6664aaa7976",
- "reference": "b4f124324a607fc43665a6947384a6664aaa7976",
+ "url": "https://api.github.com/repos/filamentphp/widgets/zipball/d395af226cdd63aeae7848ab52619201ee582bfd",
+ "reference": "d395af226cdd63aeae7848ab52619201ee582bfd",
"shasum": ""
},
"require": {
@@ -1860,7 +1737,7 @@
"issues": "https://github.com/filamentphp/filament/issues",
"source": "https://github.com/filamentphp/filament"
},
- "time": "2026-03-12T11:50:53+00:00"
+ "time": "2026-05-11T09:59:57+00:00"
},
{
"name": "fruitcake/php-cors",
@@ -2081,31 +1958,31 @@
},
{
"name": "graham-campbell/markdown",
- "version": "v16.0.0",
+ "version": "v16.1.0",
"source": {
"type": "git",
"url": "https://github.com/GrahamCampbell/Laravel-Markdown.git",
- "reference": "040221ff01f167fbe53a047b0e9ac15cbb3b6d79"
+ "reference": "2f951f7cba4f2ab6af75b4b2821e93a81f6a70c0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/GrahamCampbell/Laravel-Markdown/zipball/040221ff01f167fbe53a047b0e9ac15cbb3b6d79",
- "reference": "040221ff01f167fbe53a047b0e9ac15cbb3b6d79",
+ "url": "https://api.github.com/repos/GrahamCampbell/Laravel-Markdown/zipball/2f951f7cba4f2ab6af75b4b2821e93a81f6a70c0",
+ "reference": "2f951f7cba4f2ab6af75b4b2821e93a81f6a70c0",
"shasum": ""
},
"require": {
- "illuminate/contracts": "^10.44 || ^11.0 || ^12.0",
- "illuminate/filesystem": "^10.44 || ^11.0 || ^12.0",
- "illuminate/support": "^10.44 || ^11.0 || ^12.0",
- "illuminate/view": "^10.44 || ^11.0 || ^12.0",
- "league/commonmark": "^2.6.1",
+ "illuminate/contracts": "^10.44 || ^11.0 || ^12.0 || ^13.0",
+ "illuminate/filesystem": "^10.44 || ^11.0 || ^12.0 || ^13.0",
+ "illuminate/support": "^10.44 || ^11.0 || ^12.0 || ^13.0",
+ "illuminate/view": "^10.44 || ^11.0 || ^12.0 || ^13.0",
+ "league/commonmark": "^2.8.2",
"php": "^8.1"
},
"require-dev": {
- "graham-campbell/analyzer": "^5.0",
+ "graham-campbell/analyzer": "^5.1",
"graham-campbell/testbench": "^6.2",
- "mockery/mockery": "^1.6.6",
- "phpunit/phpunit": "^10.5.45 || ^11.5.10"
+ "mockery/mockery": "^1.6.12",
+ "phpunit/phpunit": "^10.5.63 || ^11.5.55 || ^12.5.14"
},
"type": "library",
"extra": {
@@ -2145,7 +2022,7 @@
],
"support": {
"issues": "https://github.com/GrahamCampbell/Laravel-Markdown/issues",
- "source": "https://github.com/GrahamCampbell/Laravel-Markdown/tree/v16.0.0"
+ "source": "https://github.com/GrahamCampbell/Laravel-Markdown/tree/v16.1.0"
},
"funding": [
{
@@ -2157,7 +2034,7 @@
"type": "tidelift"
}
],
- "time": "2025-03-02T23:41:30+00:00"
+ "time": "2026-03-19T20:52:58+00:00"
},
{
"name": "graham-campbell/result-type",
@@ -2635,26 +2512,26 @@
},
{
"name": "intervention/gif",
- "version": "4.2.4",
+ "version": "5.0.1",
"source": {
"type": "git",
"url": "https://github.com/Intervention/gif.git",
- "reference": "c3598a16ebe7690cd55640c44144a9df383ea73c"
+ "reference": "bb395af960deffe64d70c976b4df9283f68e762d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Intervention/gif/zipball/c3598a16ebe7690cd55640c44144a9df383ea73c",
- "reference": "c3598a16ebe7690cd55640c44144a9df383ea73c",
+ "url": "https://api.github.com/repos/Intervention/gif/zipball/bb395af960deffe64d70c976b4df9283f68e762d",
+ "reference": "bb395af960deffe64d70c976b4df9283f68e762d",
"shasum": ""
},
"require": {
- "php": "^8.1"
+ "php": "^8.3"
},
"require-dev": {
"phpstan/phpstan": "^2.1",
- "phpunit/phpunit": "^10.0 || ^11.0 || ^12.0",
+ "phpunit/phpunit": "^12.0",
"slevomat/coding-standard": "~8.0",
- "squizlabs/php_codesniffer": "^3.8"
+ "squizlabs/php_codesniffer": "^4"
},
"type": "library",
"autoload": {
@@ -2673,7 +2550,7 @@
"homepage": "https://intervention.io/"
}
],
- "description": "Native PHP GIF Encoder/Decoder",
+ "description": "PHP GIF Encoder/Decoder",
"homepage": "https://github.com/intervention/gif",
"keywords": [
"animation",
@@ -2683,7 +2560,7 @@
],
"support": {
"issues": "https://github.com/Intervention/gif/issues",
- "source": "https://github.com/Intervention/gif/tree/4.2.4"
+ "source": "https://github.com/Intervention/gif/tree/5.0.1"
},
"funding": [
{
@@ -2699,33 +2576,33 @@
"type": "ko_fi"
}
],
- "time": "2026-01-04T09:27:23+00:00"
+ "time": "2026-05-03T06:04:47+00:00"
},
{
"name": "intervention/image",
- "version": "3.11.7",
+ "version": "4.1.0",
"source": {
"type": "git",
"url": "https://github.com/Intervention/image.git",
- "reference": "2159bcccff18f09d2a392679b81a82c5a003f9bb"
+ "reference": "fb795553f76afbe55c80d32b6bfe2090a6b1a0af"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Intervention/image/zipball/2159bcccff18f09d2a392679b81a82c5a003f9bb",
- "reference": "2159bcccff18f09d2a392679b81a82c5a003f9bb",
+ "url": "https://api.github.com/repos/Intervention/image/zipball/fb795553f76afbe55c80d32b6bfe2090a6b1a0af",
+ "reference": "fb795553f76afbe55c80d32b6bfe2090a6b1a0af",
"shasum": ""
},
"require": {
"ext-mbstring": "*",
- "intervention/gif": "^4.2",
- "php": "^8.1"
+ "intervention/gif": "^5",
+ "php": "^8.3"
},
"require-dev": {
"mockery/mockery": "^1.6",
"phpstan/phpstan": "^2.1",
- "phpunit/phpunit": "^10.0 || ^11.0 || ^12.0",
+ "phpunit/phpunit": "^12.0",
"slevomat/coding-standard": "~8.0",
- "squizlabs/php_codesniffer": "^3.8"
+ "squizlabs/php_codesniffer": "^4"
},
"suggest": {
"ext-exif": "Recommended to be able to read EXIF data properly."
@@ -2759,7 +2636,7 @@
],
"support": {
"issues": "https://github.com/Intervention/image/issues",
- "source": "https://github.com/Intervention/image/tree/3.11.7"
+ "source": "https://github.com/Intervention/image/tree/4.1.0"
},
"funding": [
{
@@ -2775,28 +2652,28 @@
"type": "ko_fi"
}
],
- "time": "2026-02-19T13:11:17+00:00"
+ "time": "2026-05-15T06:52:36+00:00"
},
{
"name": "intervention/image-laravel",
- "version": "1.5.7",
+ "version": "4.0.0",
"source": {
"type": "git",
"url": "https://github.com/Intervention/image-laravel.git",
- "reference": "86a53a154024e8b2f52cbdeac13f6bdb1aaedfaa"
+ "reference": "03660a35e1007389db35f54fb44f4ae8fbfe0b2b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Intervention/image-laravel/zipball/86a53a154024e8b2f52cbdeac13f6bdb1aaedfaa",
- "reference": "86a53a154024e8b2f52cbdeac13f6bdb1aaedfaa",
+ "url": "https://api.github.com/repos/Intervention/image-laravel/zipball/03660a35e1007389db35f54fb44f4ae8fbfe0b2b",
+ "reference": "03660a35e1007389db35f54fb44f4ae8fbfe0b2b",
"shasum": ""
},
"require": {
"illuminate/http": "^8|^9|^10|^11|^12|^13",
"illuminate/routing": "^8|^9|^10|^11|^12|^13",
"illuminate/support": "^8|^9|^10|^11|^12|^13",
- "intervention/image": "^3.11",
- "php": "^8.1"
+ "intervention/image": "^4.0",
+ "php": "^8.3"
},
"require-dev": {
"ext-fileinfo": "*",
@@ -2843,7 +2720,7 @@
],
"support": {
"issues": "https://github.com/Intervention/image-laravel/issues",
- "source": "https://github.com/Intervention/image-laravel/tree/1.5.7"
+ "source": "https://github.com/Intervention/image-laravel/tree/4.0.0"
},
"funding": [
{
@@ -2859,32 +2736,32 @@
"type": "ko_fi"
}
],
- "time": "2026-02-28T06:49:50+00:00"
+ "time": "2026-03-28T07:12:58+00:00"
},
{
"name": "kirschbaum-development/eloquent-power-joins",
- "version": "4.2.11",
+ "version": "4.3.1",
"source": {
"type": "git",
"url": "https://github.com/kirschbaum-development/eloquent-power-joins.git",
- "reference": "0e3e3372992e4bf82391b3c7b84b435c3db73588"
+ "reference": "3f77b096c1e8b5aa1fc40d7080e55e795f3430ae"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/kirschbaum-development/eloquent-power-joins/zipball/0e3e3372992e4bf82391b3c7b84b435c3db73588",
- "reference": "0e3e3372992e4bf82391b3c7b84b435c3db73588",
+ "url": "https://api.github.com/repos/kirschbaum-development/eloquent-power-joins/zipball/3f77b096c1e8b5aa1fc40d7080e55e795f3430ae",
+ "reference": "3f77b096c1e8b5aa1fc40d7080e55e795f3430ae",
"shasum": ""
},
"require": {
- "illuminate/database": "^11.42|^12.0",
- "illuminate/support": "^11.42|^12.0",
+ "illuminate/database": "^11.42|^12.0|^13.0",
+ "illuminate/support": "^11.42|^12.0|^13.0",
"php": "^8.2"
},
"require-dev": {
"friendsofphp/php-cs-fixer": "dev-master",
- "laravel/legacy-factories": "^1.0@dev",
- "orchestra/testbench": "^9.0|^10.0",
- "phpunit/phpunit": "^10.0|^11.0"
+ "laravel/legacy-factories": "^1.0@dev|dev-master",
+ "orchestra/testbench": "^9.0|^10.0|^11.0",
+ "phpunit/phpunit": "^10.0|^11.0|^12.0"
},
"type": "library",
"extra": {
@@ -2920,9 +2797,9 @@
],
"support": {
"issues": "https://github.com/kirschbaum-development/eloquent-power-joins/issues",
- "source": "https://github.com/kirschbaum-development/eloquent-power-joins/tree/4.2.11"
+ "source": "https://github.com/kirschbaum-development/eloquent-power-joins/tree/4.3.1"
},
- "time": "2025-12-17T00:37:48+00:00"
+ "time": "2026-03-29T12:05:03+00:00"
},
{
"name": "laracasts/utilities",
@@ -2987,24 +2864,24 @@
},
{
"name": "laravel/framework",
- "version": "v12.54.1",
+ "version": "v13.9.0",
"source": {
"type": "git",
"url": "https://github.com/laravel/framework.git",
- "reference": "325497463e7599cd14224c422c6e5dd2fe832868"
+ "reference": "a0c6ad03b380287015287d8d5a0fa2459e2332fd"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/framework/zipball/325497463e7599cd14224c422c6e5dd2fe832868",
- "reference": "325497463e7599cd14224c422c6e5dd2fe832868",
+ "url": "https://api.github.com/repos/laravel/framework/zipball/a0c6ad03b380287015287d8d5a0fa2459e2332fd",
+ "reference": "a0c6ad03b380287015287d8d5a0fa2459e2332fd",
"shasum": ""
},
"require": {
- "brick/math": "^0.11|^0.12|^0.13|^0.14",
+ "brick/math": "^0.14.2 || ^0.15 || ^0.16 || ^0.17",
"composer-runtime-api": "^2.2",
"doctrine/inflector": "^2.0.5",
"dragonmantank/cron-expression": "^3.4",
- "egulias/email-validator": "^3.2.1|^4.0",
+ "egulias/email-validator": "^4.0",
"ext-ctype": "*",
"ext-filter": "*",
"ext-hash": "*",
@@ -3014,9 +2891,10 @@
"ext-tokenizer": "*",
"fruitcake/php-cors": "^1.3",
"guzzlehttp/guzzle": "^7.8.2",
+ "guzzlehttp/promises": "^2.0.3",
"guzzlehttp/uri-template": "^1.0",
"laravel/prompts": "^0.3.0",
- "laravel/serializable-closure": "^1.3|^2.0",
+ "laravel/serializable-closure": "^2.0.10",
"league/commonmark": "^2.8.1",
"league/flysystem": "^3.25.1",
"league/flysystem-local": "^3.25.1",
@@ -3024,25 +2902,25 @@
"monolog/monolog": "^3.0",
"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",
+ "php": "^8.3",
+ "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": "^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.33",
- "symfony/polyfill-php85": "^1.33",
- "symfony/process": "^7.2.0",
- "symfony/routing": "^7.2.0",
- "symfony/uid": "^7.2.0",
- "symfony/var-dumper": "^7.2.0",
+ "symfony/console": "^7.4.0 || ^8.0.0",
+ "symfony/error-handler": "^7.4.0 || ^8.0.0",
+ "symfony/finder": "^7.4.0 || ^8.0.0",
+ "symfony/http-foundation": "^7.4.0 || ^8.0.0",
+ "symfony/http-kernel": "^7.4.0 || ^8.0.0",
+ "symfony/mailer": "^7.4.0 || ^8.0.0",
+ "symfony/mime": "^7.4.0 || ^8.0.0",
+ "symfony/polyfill-php84": "^1.36",
+ "symfony/polyfill-php85": "^1.36",
+ "symfony/polyfill-php86": "^1.36",
+ "symfony/process": "^7.4.5 || ^8.0.5",
+ "symfony/routing": "^7.4.0 || ^8.0.0",
+ "symfony/uid": "^7.4.0 || ^8.0.0",
+ "symfony/var-dumper": "^7.4.0 || ^8.0.0",
"tijsverkoyen/css-to-inline-styles": "^2.2.5",
"vlucas/phpdotenv": "^5.6.1",
"voku/portable-ascii": "^2.0.2"
@@ -3051,9 +2929,9 @@
"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"
+ "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": {
"illuminate/auth": "self.version",
@@ -3099,8 +2977,7 @@
"aws/aws-sdk-php": "^3.322.9",
"ext-gmp": "*",
"fakerphp/faker": "^1.24",
- "guzzlehttp/promises": "^2.0.3",
- "guzzlehttp/psr7": "^2.4",
+ "guzzlehttp/psr7": "^2.9",
"laravel/pint": "^1.18",
"league/flysystem-aws-s3-v3": "^3.25.1",
"league/flysystem-ftp": "^3.25.1",
@@ -3109,22 +2986,23 @@
"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",
+ "orchestra/testbench-core": "^11.0.0",
+ "pda/pheanstalk": "^7.0.0 || ^8.0.0",
"php-http/discovery": "^1.15",
"phpstan/phpstan": "^2.0",
- "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"
+ "phpunit/phpunit": "^11.5.50 || ^12.5.8 || ^13.0.3",
+ "predis/predis": "^2.3 || ^3.0",
+ "rector/rector": "^2.3",
+ "resend/resend-php": "^1.0",
+ "symfony/cache": "^7.4.0 || ^8.0.0",
+ "symfony/http-client": "^7.4.0 || ^8.0.0",
+ "symfony/psr-http-message-bridge": "^7.4.0 || ^8.0.0",
+ "symfony/translation": "^7.4.0 || ^8.0.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.322.9).",
- "brianium/paratest": "Required to run tests in parallel (^7.0|^8.0).",
+ "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.",
@@ -3133,7 +3011,7 @@
"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|^6.0).",
+ "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).",
"laravel/tinker": "Required to use the tinker console command (^2.0).",
@@ -3143,24 +3021,25 @@
"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).",
+ "pda/pheanstalk": "Required to use the beanstalk queue driver (^7.0 || ^8.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).",
+ "phpunit/phpunit": "Required to use assertions and run tests (^11.5.50 || ^12.5.8 || ^13.0.3).",
+ "predis/predis": "Required to use the predis connector (^2.3 || ^3.0).",
"psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).",
- "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^6.0|^7.0).",
- "resend/resend-php": "Required to enable support for the Resend mail transport (^0.10.0|^1.0).",
- "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)."
+ "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^6.0 || ^7.0).",
+ "resend/resend-php": "Required to enable support for the Resend mail transport (^0.10.0 || ^1.0).",
+ "spatie/fork": "Required to use the 'fork' concurrency driver (^1.2).",
+ "symfony/cache": "Required to PSR-6 cache bridge (^7.4 || ^8.0).",
+ "symfony/filesystem": "Required to enable support for relative symbolic links (^7.4 || ^8.0).",
+ "symfony/http-client": "Required to enable support for the Symfony API mail transports (^7.4 || ^8.0).",
+ "symfony/mailgun-mailer": "Required to enable support for the Mailgun mail transport (^7.4 || ^8.0).",
+ "symfony/postmark-mailer": "Required to enable support for the Postmark mail transport (^7.4 || ^8.0).",
+ "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^7.4 || ^8.0)."
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "12.x-dev"
+ "dev-master": "13.0.x-dev"
}
},
"autoload": {
@@ -3205,20 +3084,20 @@
"issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework"
},
- "time": "2026-03-10T20:25:56+00:00"
+ "time": "2026-05-13T15:38:40+00:00"
},
{
"name": "laravel/prompts",
- "version": "v0.3.14",
+ "version": "v0.3.17",
"source": {
"type": "git",
"url": "https://github.com/laravel/prompts.git",
- "reference": "9f0e371244eedfe2ebeaa72c79c54bb5df6e0176"
+ "reference": "6a82ac19a28b916ae0885828795dbd4c59d9a818"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/prompts/zipball/9f0e371244eedfe2ebeaa72c79c54bb5df6e0176",
- "reference": "9f0e371244eedfe2ebeaa72c79c54bb5df6e0176",
+ "url": "https://api.github.com/repos/laravel/prompts/zipball/6a82ac19a28b916ae0885828795dbd4c59d9a818",
+ "reference": "6a82ac19a28b916ae0885828795dbd4c59d9a818",
"shasum": ""
},
"require": {
@@ -3262,22 +3141,22 @@
"description": "Add beautiful and user-friendly forms to your command-line applications.",
"support": {
"issues": "https://github.com/laravel/prompts/issues",
- "source": "https://github.com/laravel/prompts/tree/v0.3.14"
+ "source": "https://github.com/laravel/prompts/tree/v0.3.17"
},
- "time": "2026-03-01T09:02:38+00:00"
+ "time": "2026-04-20T16:07:33+00:00"
},
{
"name": "laravel/reverb",
- "version": "v1.8.0",
+ "version": "v1.10.2",
"source": {
"type": "git",
"url": "https://github.com/laravel/reverb.git",
- "reference": "53753b72035f1b13899fa57d2ad4dfe9480c8d61"
+ "reference": "43a5c0a99b1aaba33dc32f97fcf51f182dd8c8ac"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/reverb/zipball/53753b72035f1b13899fa57d2ad4dfe9480c8d61",
- "reference": "53753b72035f1b13899fa57d2ad4dfe9480c8d61",
+ "url": "https://api.github.com/repos/laravel/reverb/zipball/43a5c0a99b1aaba33dc32f97fcf51f182dd8c8ac",
+ "reference": "43a5c0a99b1aaba33dc32f97fcf51f182dd8c8ac",
"shasum": ""
},
"require": {
@@ -3341,22 +3220,22 @@
],
"support": {
"issues": "https://github.com/laravel/reverb/issues",
- "source": "https://github.com/laravel/reverb/tree/v1.8.0"
+ "source": "https://github.com/laravel/reverb/tree/v1.10.2"
},
- "time": "2026-02-21T14:37:48+00:00"
+ "time": "2026-05-10T15:47:52+00:00"
},
{
"name": "laravel/sanctum",
- "version": "v4.3.1",
+ "version": "v4.3.2",
"source": {
"type": "git",
"url": "https://github.com/laravel/sanctum.git",
- "reference": "e3b85d6e36ad00e5db2d1dcc27c81ffdf15cbf76"
+ "reference": "2a9bccc18e9907808e0018dd15fa643937886b1e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/sanctum/zipball/e3b85d6e36ad00e5db2d1dcc27c81ffdf15cbf76",
- "reference": "e3b85d6e36ad00e5db2d1dcc27c81ffdf15cbf76",
+ "url": "https://api.github.com/repos/laravel/sanctum/zipball/2a9bccc18e9907808e0018dd15fa643937886b1e",
+ "reference": "2a9bccc18e9907808e0018dd15fa643937886b1e",
"shasum": ""
},
"require": {
@@ -3406,20 +3285,20 @@
"issues": "https://github.com/laravel/sanctum/issues",
"source": "https://github.com/laravel/sanctum"
},
- "time": "2026-02-07T17:19:31+00:00"
+ "time": "2026-04-30T11:46:25+00:00"
},
{
"name": "laravel/serializable-closure",
- "version": "v2.0.10",
+ "version": "v2.0.13",
"source": {
"type": "git",
"url": "https://github.com/laravel/serializable-closure.git",
- "reference": "870fc81d2f879903dfc5b60bf8a0f94a1609e669"
+ "reference": "b566ee0dd251f3c4078bed003a7ce015f5ea6dce"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/870fc81d2f879903dfc5b60bf8a0f94a1609e669",
- "reference": "870fc81d2f879903dfc5b60bf8a0f94a1609e669",
+ "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/b566ee0dd251f3c4078bed003a7ce015f5ea6dce",
+ "reference": "b566ee0dd251f3c4078bed003a7ce015f5ea6dce",
"shasum": ""
},
"require": {
@@ -3467,37 +3346,37 @@
"issues": "https://github.com/laravel/serializable-closure/issues",
"source": "https://github.com/laravel/serializable-closure"
},
- "time": "2026-02-20T19:59:49+00:00"
+ "time": "2026-04-16T14:03:50+00:00"
},
{
"name": "laravel/tinker",
- "version": "v2.11.1",
+ "version": "v3.0.2",
"source": {
"type": "git",
"url": "https://github.com/laravel/tinker.git",
- "reference": "c9f80cc835649b5c1842898fb043f8cc098dd741"
+ "reference": "4faba77764bd33411735936acdf30446d058c78b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/tinker/zipball/c9f80cc835649b5c1842898fb043f8cc098dd741",
- "reference": "c9f80cc835649b5c1842898fb043f8cc098dd741",
+ "url": "https://api.github.com/repos/laravel/tinker/zipball/4faba77764bd33411735936acdf30446d058c78b",
+ "reference": "4faba77764bd33411735936acdf30446d058c78b",
"shasum": ""
},
"require": {
- "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.11.1|^0.12.0",
- "symfony/var-dumper": "^4.3.4|^5.0|^6.0|^7.0|^8.0"
+ "illuminate/console": "^8.0|^9.0|^10.0|^11.0|^12.0|^13.0",
+ "illuminate/contracts": "^8.0|^9.0|^10.0|^11.0|^12.0|^13.0",
+ "illuminate/support": "^8.0|^9.0|^10.0|^11.0|^12.0|^13.0",
+ "php": "^8.1",
+ "psy/psysh": "^0.12.0",
+ "symfony/var-dumper": "^5.4|^6.0|^7.0|^8.0"
},
"require-dev": {
"mockery/mockery": "~1.3.3|^1.4.2",
"phpstan/phpstan": "^1.10",
- "phpunit/phpunit": "^8.5.8|^9.3.3|^10.0"
+ "phpunit/phpunit": "^10.5|^11.5"
},
"suggest": {
- "illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0)."
+ "illuminate/database": "The Illuminate Database package (^8.0|^9.0|^10.0|^11.0|^12.0|^13.0)."
},
"type": "library",
"extra": {
@@ -3505,6 +3384,9 @@
"providers": [
"Laravel\\Tinker\\TinkerServiceProvider"
]
+ },
+ "branch-alias": {
+ "dev-master": "3.x-dev"
}
},
"autoload": {
@@ -3531,35 +3413,35 @@
],
"support": {
"issues": "https://github.com/laravel/tinker/issues",
- "source": "https://github.com/laravel/tinker/tree/v2.11.1"
+ "source": "https://github.com/laravel/tinker/tree/v3.0.2"
},
- "time": "2026-02-06T14:12:35+00:00"
+ "time": "2026-03-17T14:54:13+00:00"
},
{
"name": "laravel/ui",
- "version": "v4.6.2",
+ "version": "v4.6.3",
"source": {
"type": "git",
"url": "https://github.com/laravel/ui.git",
- "reference": "4acfa331aa073f169a22d87851dc51eb2f7ac6be"
+ "reference": "ff27db15416c1ed8ad9848f5692e47595dd5de27"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/ui/zipball/4acfa331aa073f169a22d87851dc51eb2f7ac6be",
- "reference": "4acfa331aa073f169a22d87851dc51eb2f7ac6be",
+ "url": "https://api.github.com/repos/laravel/ui/zipball/ff27db15416c1ed8ad9848f5692e47595dd5de27",
+ "reference": "ff27db15416c1ed8ad9848f5692e47595dd5de27",
"shasum": ""
},
"require": {
- "illuminate/console": "^9.21|^10.0|^11.0|^12.0",
- "illuminate/filesystem": "^9.21|^10.0|^11.0|^12.0",
- "illuminate/support": "^9.21|^10.0|^11.0|^12.0",
- "illuminate/validation": "^9.21|^10.0|^11.0|^12.0",
+ "illuminate/console": "^9.21|^10.0|^11.0|^12.0|^13.0",
+ "illuminate/filesystem": "^9.21|^10.0|^11.0|^12.0|^13.0",
+ "illuminate/support": "^9.21|^10.0|^11.0|^12.0|^13.0",
+ "illuminate/validation": "^9.21|^10.0|^11.0|^12.0|^13.0",
"php": "^8.0",
- "symfony/console": "^6.0|^7.0"
+ "symfony/console": "^6.0|^7.0|^8.0"
},
"require-dev": {
- "orchestra/testbench": "^7.35|^8.15|^9.0|^10.0",
- "phpunit/phpunit": "^9.3|^10.4|^11.5"
+ "orchestra/testbench": "^7.35|^8.15|^9.0|^10.0|^11.0",
+ "phpunit/phpunit": "^9.3|^10.4|^11.5|^12.5|^13.0"
},
"type": "library",
"extra": {
@@ -3594,22 +3476,22 @@
"ui"
],
"support": {
- "source": "https://github.com/laravel/ui/tree/v4.6.2"
+ "source": "https://github.com/laravel/ui/tree/v4.6.3"
},
- "time": "2026-03-10T20:00:50+00:00"
+ "time": "2026-03-17T13:41:52+00:00"
},
{
"name": "league/commonmark",
- "version": "2.8.1",
+ "version": "2.8.2",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/commonmark.git",
- "reference": "84b1ca48347efdbe775426f108622a42735a6579"
+ "reference": "59fb075d2101740c337c7216e3f32b36c204218b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/84b1ca48347efdbe775426f108622a42735a6579",
- "reference": "84b1ca48347efdbe775426f108622a42735a6579",
+ "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/59fb075d2101740c337c7216e3f32b36c204218b",
+ "reference": "59fb075d2101740c337c7216e3f32b36c204218b",
"shasum": ""
},
"require": {
@@ -3703,7 +3585,7 @@
"type": "tidelift"
}
],
- "time": "2026-03-05T21:37:03+00:00"
+ "time": "2026-03-19T13:16:38+00:00"
},
{
"name": "league/config",
@@ -3880,16 +3762,16 @@
},
{
"name": "league/flysystem",
- "version": "3.32.0",
+ "version": "3.34.0",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/flysystem.git",
- "reference": "254b1595b16b22dbddaaef9ed6ca9fdac4956725"
+ "reference": "2daaac3b0d4c83ea7ed5d8586e786f5d00f3540e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/254b1595b16b22dbddaaef9ed6ca9fdac4956725",
- "reference": "254b1595b16b22dbddaaef9ed6ca9fdac4956725",
+ "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/2daaac3b0d4c83ea7ed5d8586e786f5d00f3540e",
+ "reference": "2daaac3b0d4c83ea7ed5d8586e786f5d00f3540e",
"shasum": ""
},
"require": {
@@ -3957,26 +3839,26 @@
],
"support": {
"issues": "https://github.com/thephpleague/flysystem/issues",
- "source": "https://github.com/thephpleague/flysystem/tree/3.32.0"
+ "source": "https://github.com/thephpleague/flysystem/tree/3.34.0"
},
- "time": "2026-02-25T17:01:41+00:00"
+ "time": "2026-05-14T10:28:08+00:00"
},
{
"name": "league/flysystem-aws-s3-v3",
- "version": "3.32.0",
+ "version": "3.34.0",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/flysystem-aws-s3-v3.git",
- "reference": "a1979df7c9784d334ea6df356aed3d18ac6673d0"
+ "reference": "0c62fdac907791d8649ad3c61cb7a77628344fb8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/a1979df7c9784d334ea6df356aed3d18ac6673d0",
- "reference": "a1979df7c9784d334ea6df356aed3d18ac6673d0",
+ "url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/0c62fdac907791d8649ad3c61cb7a77628344fb8",
+ "reference": "0c62fdac907791d8649ad3c61cb7a77628344fb8",
"shasum": ""
},
"require": {
- "aws/aws-sdk-php": "^3.295.10",
+ "aws/aws-sdk-php": "^3.371.5",
"league/flysystem": "^3.10.0",
"league/mime-type-detection": "^1.0.0",
"php": "^8.0.2"
@@ -4012,9 +3894,9 @@
"storage"
],
"support": {
- "source": "https://github.com/thephpleague/flysystem-aws-s3-v3/tree/3.32.0"
+ "source": "https://github.com/thephpleague/flysystem-aws-s3-v3/tree/3.34.0"
},
- "time": "2026-02-25T16:46:44+00:00"
+ "time": "2026-05-04T08:24:00+00:00"
},
{
"name": "league/flysystem-local",
@@ -4188,20 +4070,20 @@
},
{
"name": "league/uri",
- "version": "7.8.0",
+ "version": "7.8.1",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/uri.git",
- "reference": "4436c6ec8d458e4244448b069cc572d088230b76"
+ "reference": "08cf38e3924d4f56238125547b5720496fac8fd4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/uri/zipball/4436c6ec8d458e4244448b069cc572d088230b76",
- "reference": "4436c6ec8d458e4244448b069cc572d088230b76",
+ "url": "https://api.github.com/repos/thephpleague/uri/zipball/08cf38e3924d4f56238125547b5720496fac8fd4",
+ "reference": "08cf38e3924d4f56238125547b5720496fac8fd4",
"shasum": ""
},
"require": {
- "league/uri-interfaces": "^7.8",
+ "league/uri-interfaces": "^7.8.1",
"php": "^8.1",
"psr/http-factory": "^1"
},
@@ -4274,7 +4156,7 @@
"docs": "https://uri.thephpleague.com",
"forum": "https://thephpleague.slack.com",
"issues": "https://github.com/thephpleague/uri-src/issues",
- "source": "https://github.com/thephpleague/uri/tree/7.8.0"
+ "source": "https://github.com/thephpleague/uri/tree/7.8.1"
},
"funding": [
{
@@ -4282,24 +4164,24 @@
"type": "github"
}
],
- "time": "2026-01-14T17:24:56+00:00"
+ "time": "2026-03-15T20:22:25+00:00"
},
{
"name": "league/uri-components",
- "version": "7.8.0",
+ "version": "7.8.1",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/uri-components.git",
- "reference": "8b5ffcebcc0842b76eb80964795bd56a8333b2ba"
+ "reference": "848ff9db2f0be06229d6034b7c2e33d41b4fd675"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/uri-components/zipball/8b5ffcebcc0842b76eb80964795bd56a8333b2ba",
- "reference": "8b5ffcebcc0842b76eb80964795bd56a8333b2ba",
+ "url": "https://api.github.com/repos/thephpleague/uri-components/zipball/848ff9db2f0be06229d6034b7c2e33d41b4fd675",
+ "reference": "848ff9db2f0be06229d6034b7c2e33d41b4fd675",
"shasum": ""
},
"require": {
- "league/uri": "^7.8",
+ "league/uri": "^7.8.1",
"php": "^8.1"
},
"suggest": {
@@ -4358,7 +4240,7 @@
"docs": "https://uri.thephpleague.com",
"forum": "https://thephpleague.slack.com",
"issues": "https://github.com/thephpleague/uri-src/issues",
- "source": "https://github.com/thephpleague/uri-components/tree/7.8.0"
+ "source": "https://github.com/thephpleague/uri-components/tree/7.8.1"
},
"funding": [
{
@@ -4366,20 +4248,20 @@
"type": "github"
}
],
- "time": "2026-01-14T17:24:56+00:00"
+ "time": "2026-03-15T20:22:25+00:00"
},
{
"name": "league/uri-interfaces",
- "version": "7.8.0",
+ "version": "7.8.1",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/uri-interfaces.git",
- "reference": "c5c5cd056110fc8afaba29fa6b72a43ced42acd4"
+ "reference": "85d5c77c5d6d3af6c54db4a78246364908f3c928"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/c5c5cd056110fc8afaba29fa6b72a43ced42acd4",
- "reference": "c5c5cd056110fc8afaba29fa6b72a43ced42acd4",
+ "url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/85d5c77c5d6d3af6c54db4a78246364908f3c928",
+ "reference": "85d5c77c5d6d3af6c54db4a78246364908f3c928",
"shasum": ""
},
"require": {
@@ -4442,7 +4324,7 @@
"docs": "https://uri.thephpleague.com",
"forum": "https://thephpleague.slack.com",
"issues": "https://github.com/thephpleague/uri-src/issues",
- "source": "https://github.com/thephpleague/uri-interfaces/tree/7.8.0"
+ "source": "https://github.com/thephpleague/uri-interfaces/tree/7.8.1"
},
"funding": [
{
@@ -4450,20 +4332,20 @@
"type": "github"
}
],
- "time": "2026-01-15T06:54:53+00:00"
+ "time": "2026-03-08T20:05:35+00:00"
},
{
"name": "livewire/livewire",
- "version": "v3.7.11",
+ "version": "v4.3.0",
"source": {
"type": "git",
"url": "https://github.com/livewire/livewire.git",
- "reference": "addd6e8e9234df75f29e6a327ee2a745a7d67bb6"
+ "reference": "19ebb1ee4d057debceccf70ff01950e6a6114edc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/livewire/livewire/zipball/addd6e8e9234df75f29e6a327ee2a745a7d67bb6",
- "reference": "addd6e8e9234df75f29e6a327ee2a745a7d67bb6",
+ "url": "https://api.github.com/repos/livewire/livewire/zipball/19ebb1ee4d057debceccf70ff01950e6a6114edc",
+ "reference": "19ebb1ee4d057debceccf70ff01950e6a6114edc",
"shasum": ""
},
"require": {
@@ -4518,7 +4400,7 @@
"description": "A front-end framework for Laravel.",
"support": {
"issues": "https://github.com/livewire/livewire/issues",
- "source": "https://github.com/livewire/livewire/tree/v3.7.11"
+ "source": "https://github.com/livewire/livewire/tree/v4.3.0"
},
"funding": [
{
@@ -4526,7 +4408,7 @@
"type": "github"
}
],
- "time": "2026-02-26T00:58:19+00:00"
+ "time": "2026-05-01T00:46:07+00:00"
},
{
"name": "lstrojny/fxmlrpc",
@@ -4607,95 +4489,28 @@
},
"time": "2021-06-21T09:30:29+00:00"
},
- {
- "name": "masterminds/html5",
- "version": "2.10.0",
- "source": {
- "type": "git",
- "url": "https://github.com/Masterminds/html5-php.git",
- "reference": "fcf91eb64359852f00d921887b219479b4f21251"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/fcf91eb64359852f00d921887b219479b4f21251",
- "reference": "fcf91eb64359852f00d921887b219479b4f21251",
- "shasum": ""
- },
- "require": {
- "ext-dom": "*",
- "php": ">=5.3.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^4.8.35 || ^5.7.21 || ^6 || ^7 || ^8 || ^9"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.7-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Masterminds\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Matt Butcher",
- "email": "technosophos@gmail.com"
- },
- {
- "name": "Matt Farina",
- "email": "matt@mattfarina.com"
- },
- {
- "name": "Asmir Mustafic",
- "email": "goetas@gmail.com"
- }
- ],
- "description": "An HTML5 parser and serializer.",
- "homepage": "http://masterminds.github.io/html5-php",
- "keywords": [
- "HTML5",
- "dom",
- "html",
- "parser",
- "querypath",
- "serializer",
- "xml"
- ],
- "support": {
- "issues": "https://github.com/Masterminds/html5-php/issues",
- "source": "https://github.com/Masterminds/html5-php/tree/2.10.0"
- },
- "time": "2025-07-25T09:04:22+00:00"
- },
{
"name": "mongodb/laravel-mongodb",
- "version": "5.6.0",
+ "version": "5.7.1",
"source": {
"type": "git",
"url": "https://github.com/mongodb/laravel-mongodb",
- "reference": "0828c481e166793fc359226b9de1eb836082aa45"
+ "reference": "6e371e8e6deb9193f99a84c578e6c9d0a960e43a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/mongodb/laravel-mongodb/zipball/0828c481e166793fc359226b9de1eb836082aa45",
- "reference": "0828c481e166793fc359226b9de1eb836082aa45",
+ "url": "https://api.github.com/repos/mongodb/laravel-mongodb/zipball/6e371e8e6deb9193f99a84c578e6c9d0a960e43a",
+ "reference": "6e371e8e6deb9193f99a84c578e6c9d0a960e43a",
"shasum": ""
},
"require": {
"composer-runtime-api": "^2.0.0",
"ext-mongodb": "^1.21|^2",
- "illuminate/cache": "^10.36|^11|^12",
- "illuminate/container": "^10.0|^11|^12",
- "illuminate/database": "^10.30|^11|^12",
- "illuminate/events": "^10.0|^11|^12",
- "illuminate/support": "^10.0|^11|^12",
+ "illuminate/cache": "^10.36|^11|^12|^13.0",
+ "illuminate/container": "^10.0|^11|^12|^13.0",
+ "illuminate/database": "^10.30|^11|^12|^13.0",
+ "illuminate/events": "^10.0|^11|^12|^13.0",
+ "illuminate/support": "^10.0|^11|^12|^13.0",
"mongodb/mongodb": "^1.21|^2",
"php": "^8.1"
},
@@ -4706,15 +4521,15 @@
"jenssegers/mongodb": "self.version"
},
"require-dev": {
- "doctrine/coding-standard": "12.0.x-dev",
+ "doctrine/coding-standard": "^12.0",
"laravel/scout": "^10.3",
"league/flysystem-gridfs": "^3.28",
"league/flysystem-read-only": "^3.0",
"mockery/mockery": "^1.4.4",
- "orchestra/testbench": "^8.0|^9.0|^10.0",
- "phpstan/phpstan": "^1.10",
- "phpunit/phpunit": "^10.3|^11.5.3",
- "rector/rector": "^1.2",
+ "orchestra/testbench": "^8.0|^9.0|^10.0|^11.0",
+ "phpstan/phpstan": "^1.10|^2.1",
+ "phpunit/phpunit": "^10.3|^11.5.3|^12.5.12",
+ "rector/rector": "^1.2|^2.3",
"spatie/laravel-query-builder": "^5.6|^6"
},
"suggest": {
@@ -4779,7 +4594,7 @@
"issues": "https://www.mongodb.com/support",
"security": "https://www.mongodb.com/security"
},
- "time": "2026-02-12T13:07:48+00:00"
+ "time": "2026-04-15T12:18:12+00:00"
},
{
"name": "mongodb/mongodb",
@@ -5029,16 +4844,16 @@
},
{
"name": "nesbot/carbon",
- "version": "3.11.3",
+ "version": "3.11.4",
"source": {
"type": "git",
"url": "https://github.com/CarbonPHP/carbon.git",
- "reference": "6a7e652845bb018c668220c2a545aded8594fbbf"
+ "reference": "e890471a3494740f7d9326d72ce6a8c559ffee60"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/6a7e652845bb018c668220c2a545aded8594fbbf",
- "reference": "6a7e652845bb018c668220c2a545aded8594fbbf",
+ "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/e890471a3494740f7d9326d72ce6a8c559ffee60",
+ "reference": "e890471a3494740f7d9326d72ce6a8c559ffee60",
"shasum": ""
},
"require": {
@@ -5130,7 +4945,7 @@
"type": "tidelift"
}
],
- "time": "2026-03-11T17:23:39+00:00"
+ "time": "2026-04-07T09:57:54+00:00"
},
{
"name": "nette/php-generator",
@@ -5275,16 +5090,16 @@
},
{
"name": "nette/utils",
- "version": "v4.1.3",
+ "version": "v4.1.4",
"source": {
"type": "git",
"url": "https://github.com/nette/utils.git",
- "reference": "bb3ea637e3d131d72acc033cfc2746ee893349fe"
+ "reference": "7da6c396d7ebe142bc857c20479d5e70a5e1aac7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nette/utils/zipball/bb3ea637e3d131d72acc033cfc2746ee893349fe",
- "reference": "bb3ea637e3d131d72acc033cfc2746ee893349fe",
+ "url": "https://api.github.com/repos/nette/utils/zipball/7da6c396d7ebe142bc857c20479d5e70a5e1aac7",
+ "reference": "7da6c396d7ebe142bc857c20479d5e70a5e1aac7",
"shasum": ""
},
"require": {
@@ -5360,9 +5175,9 @@
],
"support": {
"issues": "https://github.com/nette/utils/issues",
- "source": "https://github.com/nette/utils/tree/v4.1.3"
+ "source": "https://github.com/nette/utils/tree/v4.1.4"
},
- "time": "2026-02-13T03:05:33+00:00"
+ "time": "2026-05-11T20:49:54+00:00"
},
{
"name": "nikic/php-parser",
@@ -6519,16 +6334,16 @@
},
{
"name": "psy/psysh",
- "version": "v0.12.21",
+ "version": "v0.12.22",
"source": {
"type": "git",
"url": "https://github.com/bobthecow/psysh.git",
- "reference": "4821fab5b7cd8c49a673a9fd5754dc9162bb9e97"
+ "reference": "3be75d5b9244936dd4ac62ade2bfb004d13acf0f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/bobthecow/psysh/zipball/4821fab5b7cd8c49a673a9fd5754dc9162bb9e97",
- "reference": "4821fab5b7cd8c49a673a9fd5754dc9162bb9e97",
+ "url": "https://api.github.com/repos/bobthecow/psysh/zipball/3be75d5b9244936dd4ac62ade2bfb004d13acf0f",
+ "reference": "3be75d5b9244936dd4ac62ade2bfb004d13acf0f",
"shasum": ""
},
"require": {
@@ -6592,9 +6407,9 @@
],
"support": {
"issues": "https://github.com/bobthecow/psysh/issues",
- "source": "https://github.com/bobthecow/psysh/tree/v0.12.21"
+ "source": "https://github.com/bobthecow/psysh/tree/v0.12.22"
},
- "time": "2026-03-06T21:21:28+00:00"
+ "time": "2026-03-22T23:03:24+00:00"
},
{
"name": "pusher/pusher-php-server",
@@ -7500,33 +7315,33 @@
},
{
"name": "ryangjchandler/blade-capture-directive",
- "version": "v1.1.0",
+ "version": "v1.1.1",
"source": {
"type": "git",
"url": "https://github.com/ryangjchandler/blade-capture-directive.git",
- "reference": "bbb1513dfd89eaec87a47fe0c449a7e3d4a1976d"
+ "reference": "3f9e80b56ff60b78755ef320e3e16d88850101d6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/ryangjchandler/blade-capture-directive/zipball/bbb1513dfd89eaec87a47fe0c449a7e3d4a1976d",
- "reference": "bbb1513dfd89eaec87a47fe0c449a7e3d4a1976d",
+ "url": "https://api.github.com/repos/ryangjchandler/blade-capture-directive/zipball/3f9e80b56ff60b78755ef320e3e16d88850101d6",
+ "reference": "3f9e80b56ff60b78755ef320e3e16d88850101d6",
"shasum": ""
},
"require": {
- "illuminate/contracts": "^10.0|^11.0|^12.0",
+ "illuminate/contracts": "^10.0|^11.0|^12.0|^13.0",
"php": "^8.1",
"spatie/laravel-package-tools": "^1.9.2"
},
"require-dev": {
"nunomaduro/collision": "^7.0|^8.0",
"nunomaduro/larastan": "^2.0|^3.0",
- "orchestra/testbench": "^8.0|^9.0|^10.0",
- "pestphp/pest": "^2.0|^3.7",
- "pestphp/pest-plugin-laravel": "^2.0|^3.1",
+ "orchestra/testbench": "^8.0|^9.0|^10.0|^11.0",
+ "pestphp/pest": "^2.0|^3.7|^4.1",
+ "pestphp/pest-plugin-laravel": "^2.0|^3.1|^v4.1.0",
"phpstan/extension-installer": "^1.1",
"phpstan/phpstan-deprecation-rules": "^1.0|^2.0",
"phpstan/phpstan-phpunit": "^1.0|^2.0",
- "phpunit/phpunit": "^10.0|^11.5.3",
+ "phpunit/phpunit": "^10.0|^11.5.3|^12.0",
"spatie/laravel-ray": "^1.26"
},
"type": "library",
@@ -7566,7 +7381,7 @@
],
"support": {
"issues": "https://github.com/ryangjchandler/blade-capture-directive/issues",
- "source": "https://github.com/ryangjchandler/blade-capture-directive/tree/v1.1.0"
+ "source": "https://github.com/ryangjchandler/blade-capture-directive/tree/v1.1.1"
},
"funding": [
{
@@ -7574,7 +7389,7 @@
"type": "github"
}
],
- "time": "2025-02-25T09:09:36+00:00"
+ "time": "2026-03-19T10:36:26+00:00"
},
{
"name": "scrivo/highlight.php",
@@ -7852,33 +7667,36 @@
},
{
"name": "spatie/laravel-responsecache",
- "version": "7.7.2",
+ "version": "8.4.0",
"source": {
"type": "git",
"url": "https://github.com/spatie/laravel-responsecache.git",
- "reference": "039f8b9c2e2b2d838d0bfce32cfe52cf5d1cb8fc"
+ "reference": "a8a685cceafdebc201c6cc228d330f38b9b55e2c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/spatie/laravel-responsecache/zipball/039f8b9c2e2b2d838d0bfce32cfe52cf5d1cb8fc",
- "reference": "039f8b9c2e2b2d838d0bfce32cfe52cf5d1cb8fc",
+ "url": "https://api.github.com/repos/spatie/laravel-responsecache/zipball/a8a685cceafdebc201c6cc228d330f38b9b55e2c",
+ "reference": "a8a685cceafdebc201c6cc228d330f38b9b55e2c",
"shasum": ""
},
"require": {
- "illuminate/cache": "^10.0|^11.0|^12.0",
- "illuminate/console": "^10.0|^11.0|^12.0",
- "illuminate/container": "^10.0|^11.0|^12.0",
- "illuminate/http": "^10.0|^11.0|^12.0",
- "illuminate/support": "^10.0|^11.0|^12.0",
- "nesbot/carbon": "^2.63|^3.0",
- "php": "^8.2",
- "spatie/laravel-package-tools": "^1.9"
+ "illuminate/cache": "^12.0|^13.0",
+ "illuminate/console": "^12.0|^13.0",
+ "illuminate/container": "^12.0|^13.0",
+ "illuminate/http": "^12.0|^13.0",
+ "illuminate/support": "^12.0|^13.0",
+ "nesbot/carbon": "^3.0",
+ "php": "^8.4",
+ "spatie/laravel-package-tools": "^1.9",
+ "spatie/php-attribute-reader": "^1.0"
},
"require-dev": {
- "laravel/framework": "^10.0|^11.0|^12.0",
- "mockery/mockery": "^1.4",
- "orchestra/testbench": "^8.0|^9.0|^10.0",
- "pestphp/pest": "^2.22|^3.0"
+ "larastan/larastan": "^3.9",
+ "laravel/framework": "^12.0|^13.0",
+ "laravel/pint": "^1.13.7",
+ "mockery/mockery": "^1.6",
+ "orchestra/testbench": "^10.0|^11.0",
+ "pestphp/pest": "^4.0"
},
"type": "library",
"extra": {
@@ -7919,7 +7737,8 @@
"spatie"
],
"support": {
- "source": "https://github.com/spatie/laravel-responsecache/tree/7.7.2"
+ "issues": "https://github.com/spatie/laravel-responsecache/issues",
+ "source": "https://github.com/spatie/laravel-responsecache/tree/8.4.0"
},
"funding": [
{
@@ -7931,20 +7750,78 @@
"type": "github"
}
],
- "time": "2025-08-28T20:22:23+00:00"
+ "time": "2026-05-11T08:22:08+00:00"
+ },
+ {
+ "name": "spatie/php-attribute-reader",
+ "version": "1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/spatie/php-attribute-reader.git",
+ "reference": "46e7484d7b51f5b22d672745c541e48c5a385404"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/spatie/php-attribute-reader/zipball/46e7484d7b51f5b22d672745c541e48c5a385404",
+ "reference": "46e7484d7b51f5b22d672745c541e48c5a385404",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0"
+ },
+ "require-dev": {
+ "pestphp/pest": "^1.0|^2.0|^3.0|^4.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Spatie\\Attributes\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Freek Van der Herten",
+ "email": "freek@spatie.be",
+ "homepage": "https://spatie.be",
+ "role": "Developer"
+ }
+ ],
+ "description": "A clean API for working with PHP attributes",
+ "homepage": "https://github.com/spatie/php-attribute-reader",
+ "keywords": [
+ "attributes",
+ "php-attribute-reader",
+ "reflection",
+ "spatie"
+ ],
+ "support": {
+ "issues": "https://github.com/spatie/php-attribute-reader/issues",
+ "source": "https://github.com/spatie/php-attribute-reader/tree/1.1.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/spatie",
+ "type": "github"
+ }
+ ],
+ "time": "2026-02-23T09:01:55+00:00"
},
{
"name": "spatie/shiki-php",
- "version": "2.3.3",
+ "version": "2.4.0",
"source": {
"type": "git",
"url": "https://github.com/spatie/shiki-php.git",
- "reference": "9d50ff4d9825d87d3283a6695c65ae9c3c3caa6b"
+ "reference": "b8b0ca32d3a82bc5c533e68ffab96c5d4ec1b9ba"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/spatie/shiki-php/zipball/9d50ff4d9825d87d3283a6695c65ae9c3c3caa6b",
- "reference": "9d50ff4d9825d87d3283a6695c65ae9c3c3caa6b",
+ "url": "https://api.github.com/repos/spatie/shiki-php/zipball/b8b0ca32d3a82bc5c533e68ffab96c5d4ec1b9ba",
+ "reference": "b8b0ca32d3a82bc5c533e68ffab96c5d4ec1b9ba",
"shasum": ""
},
"require": {
@@ -7988,7 +7865,7 @@
"spatie"
],
"support": {
- "source": "https://github.com/spatie/shiki-php/tree/2.3.3"
+ "source": "https://github.com/spatie/shiki-php/tree/2.4.0"
},
"funding": [
{
@@ -7996,7 +7873,7 @@
"type": "github"
}
],
- "time": "2026-02-01T09:30:04+00:00"
+ "time": "2026-04-27T14:27:52+00:00"
},
{
"name": "supervisorphp/supervisor",
@@ -8066,22 +7943,21 @@
},
{
"name": "symfony/clock",
- "version": "v7.4.0",
+ "version": "v8.0.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/clock.git",
- "reference": "9169f24776edde469914c1e7a1442a50f7a4e110"
+ "reference": "b55a638b189a6faa875e0ccdb00908fb87af95b3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/clock/zipball/9169f24776edde469914c1e7a1442a50f7a4e110",
- "reference": "9169f24776edde469914c1e7a1442a50f7a4e110",
+ "url": "https://api.github.com/repos/symfony/clock/zipball/b55a638b189a6faa875e0ccdb00908fb87af95b3",
+ "reference": "b55a638b189a6faa875e0ccdb00908fb87af95b3",
"shasum": ""
},
"require": {
- "php": ">=8.2",
- "psr/clock": "^1.0",
- "symfony/polyfill-php83": "^1.28"
+ "php": ">=8.4",
+ "psr/clock": "^1.0"
},
"provide": {
"psr/clock-implementation": "1.0"
@@ -8120,7 +7996,7 @@
"time"
],
"support": {
- "source": "https://github.com/symfony/clock/tree/v7.4.0"
+ "source": "https://github.com/symfony/clock/tree/v8.0.8"
},
"funding": [
{
@@ -8140,51 +8016,43 @@
"type": "tidelift"
}
],
- "time": "2025-11-12T15:39:26+00:00"
+ "time": "2026-03-30T15:14:47+00:00"
},
{
"name": "symfony/console",
- "version": "v7.4.7",
+ "version": "v8.0.11",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
- "reference": "e1e6770440fb9c9b0cf725f81d1361ad1835329d"
+ "reference": "3156577f46a38aa1b9323aad223de7a9cd426782"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/e1e6770440fb9c9b0cf725f81d1361ad1835329d",
- "reference": "e1e6770440fb9c9b0cf725f81d1361ad1835329d",
+ "url": "https://api.github.com/repos/symfony/console/zipball/3156577f46a38aa1b9323aad223de7a9cd426782",
+ "reference": "3156577f46a38aa1b9323aad223de7a9cd426782",
"shasum": ""
},
"require": {
- "php": ">=8.2",
- "symfony/deprecation-contracts": "^2.5|^3",
- "symfony/polyfill-mbstring": "~1.0",
+ "php": ">=8.4",
+ "symfony/polyfill-mbstring": "^1.0",
"symfony/service-contracts": "^2.5|^3",
- "symfony/string": "^7.2|^8.0"
- },
- "conflict": {
- "symfony/dependency-injection": "<6.4",
- "symfony/dotenv": "<6.4",
- "symfony/event-dispatcher": "<6.4",
- "symfony/lock": "<6.4",
- "symfony/process": "<6.4"
+ "symfony/string": "^7.4|^8.0"
},
"provide": {
"psr/log-implementation": "1.0|2.0|3.0"
},
"require-dev": {
"psr/log": "^1|^2|^3",
- "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"
+ "symfony/config": "^7.4|^8.0",
+ "symfony/dependency-injection": "^7.4|^8.0",
+ "symfony/event-dispatcher": "^7.4|^8.0",
+ "symfony/http-foundation": "^7.4|^8.0",
+ "symfony/http-kernel": "^7.4|^8.0",
+ "symfony/lock": "^7.4|^8.0",
+ "symfony/messenger": "^7.4|^8.0",
+ "symfony/process": "^7.4|^8.0",
+ "symfony/stopwatch": "^7.4|^8.0",
+ "symfony/var-dumper": "^7.4|^8.0"
},
"type": "library",
"autoload": {
@@ -8218,7 +8086,7 @@
"terminal"
],
"support": {
- "source": "https://github.com/symfony/console/tree/v7.4.7"
+ "source": "https://github.com/symfony/console/tree/v8.0.11"
},
"funding": [
{
@@ -8238,24 +8106,24 @@
"type": "tidelift"
}
],
- "time": "2026-03-06T14:06:20+00:00"
+ "time": "2026-05-13T12:07:53+00:00"
},
{
"name": "symfony/css-selector",
- "version": "v7.4.6",
+ "version": "v8.0.9",
"source": {
"type": "git",
"url": "https://github.com/symfony/css-selector.git",
- "reference": "2e7c52c647b406e2107dd867db424a4dbac91864"
+ "reference": "3665cfade90565430909b906394c73c8739e57d0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/css-selector/zipball/2e7c52c647b406e2107dd867db424a4dbac91864",
- "reference": "2e7c52c647b406e2107dd867db424a4dbac91864",
+ "url": "https://api.github.com/repos/symfony/css-selector/zipball/3665cfade90565430909b906394c73c8739e57d0",
+ "reference": "3665cfade90565430909b906394c73c8739e57d0",
"shasum": ""
},
"require": {
- "php": ">=8.2"
+ "php": ">=8.4"
},
"type": "library",
"autoload": {
@@ -8287,7 +8155,7 @@
"description": "Converts CSS selectors to XPath expressions",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/css-selector/tree/v7.4.6"
+ "source": "https://github.com/symfony/css-selector/tree/v8.0.9"
},
"funding": [
{
@@ -8307,20 +8175,20 @@
"type": "tidelift"
}
],
- "time": "2026-02-17T07:53:42+00:00"
+ "time": "2026-04-18T13:51:42+00:00"
},
{
"name": "symfony/deprecation-contracts",
- "version": "v3.6.0",
+ "version": "v3.7.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/deprecation-contracts.git",
- "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62"
+ "reference": "50f59d1f3ca46d41ac911f97a78626b6756af35b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/63afe740e99a13ba87ec199bb07bbdee937a5b62",
- "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62",
+ "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/50f59d1f3ca46d41ac911f97a78626b6756af35b",
+ "reference": "50f59d1f3ca46d41ac911f97a78626b6756af35b",
"shasum": ""
},
"require": {
@@ -8333,7 +8201,7 @@
"name": "symfony/contracts"
},
"branch-alias": {
- "dev-main": "3.6-dev"
+ "dev-main": "3.7-dev"
}
},
"autoload": {
@@ -8358,7 +8226,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.6.0"
+ "source": "https://github.com/symfony/deprecation-contracts/tree/v3.7.0"
},
"funding": [
{
@@ -8369,42 +8237,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": "2024-09-25T14:21:43+00:00"
+ "time": "2026-04-13T15:52:40+00:00"
},
{
"name": "symfony/error-handler",
- "version": "v7.4.4",
+ "version": "v8.0.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/error-handler.git",
- "reference": "8da531f364ddfee53e36092a7eebbbd0b775f6b8"
+ "reference": "c1119fe8dcfc3825ec74ec061b96ef0c8f281517"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/error-handler/zipball/8da531f364ddfee53e36092a7eebbbd0b775f6b8",
- "reference": "8da531f364ddfee53e36092a7eebbbd0b775f6b8",
+ "url": "https://api.github.com/repos/symfony/error-handler/zipball/c1119fe8dcfc3825ec74ec061b96ef0c8f281517",
+ "reference": "c1119fe8dcfc3825ec74ec061b96ef0c8f281517",
"shasum": ""
},
"require": {
- "php": ">=8.2",
+ "php": ">=8.4",
"psr/log": "^1|^2|^3",
"symfony/polyfill-php85": "^1.32",
- "symfony/var-dumper": "^6.4|^7.0|^8.0"
+ "symfony/var-dumper": "^7.4|^8.0"
},
"conflict": {
- "symfony/deprecation-contracts": "<2.5",
- "symfony/http-kernel": "<6.4"
+ "symfony/deprecation-contracts": "<2.5"
},
"require-dev": {
- "symfony/console": "^6.4|^7.0|^8.0",
+ "symfony/console": "^7.4|^8.0",
"symfony/deprecation-contracts": "^2.5|^3",
- "symfony/http-kernel": "^6.4|^7.0|^8.0",
- "symfony/serializer": "^6.4|^7.0|^8.0",
+ "symfony/http-kernel": "^7.4|^8.0",
+ "symfony/serializer": "^7.4|^8.0",
"symfony/webpack-encore-bundle": "^1.0|^2.0"
},
"bin": [
@@ -8436,7 +8307,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/v7.4.4"
+ "source": "https://github.com/symfony/error-handler/tree/v8.0.8"
},
"funding": [
{
@@ -8456,28 +8327,28 @@
"type": "tidelift"
}
],
- "time": "2026-01-20T16:42:42+00:00"
+ "time": "2026-03-30T15:14:47+00:00"
},
{
"name": "symfony/event-dispatcher",
- "version": "v7.4.4",
+ "version": "v8.0.9",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher.git",
- "reference": "dc2c0eba1af673e736bb851d747d266108aea746"
+ "reference": "0c3c1a17604c4dbbec4b93fe162c538482096e1f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/dc2c0eba1af673e736bb851d747d266108aea746",
- "reference": "dc2c0eba1af673e736bb851d747d266108aea746",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/0c3c1a17604c4dbbec4b93fe162c538482096e1f",
+ "reference": "0c3c1a17604c4dbbec4b93fe162c538482096e1f",
"shasum": ""
},
"require": {
- "php": ">=8.2",
+ "php": ">=8.4",
"symfony/event-dispatcher-contracts": "^2.5|^3"
},
"conflict": {
- "symfony/dependency-injection": "<6.4",
+ "symfony/security-http": "<7.4",
"symfony/service-contracts": "<2.5"
},
"provide": {
@@ -8486,14 +8357,14 @@
},
"require-dev": {
"psr/log": "^1|^2|^3",
- "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/config": "^7.4|^8.0",
+ "symfony/dependency-injection": "^7.4|^8.0",
+ "symfony/error-handler": "^7.4|^8.0",
+ "symfony/expression-language": "^7.4|^8.0",
+ "symfony/framework-bundle": "^7.4|^8.0",
+ "symfony/http-foundation": "^7.4|^8.0",
"symfony/service-contracts": "^2.5|^3",
- "symfony/stopwatch": "^6.4|^7.0|^8.0"
+ "symfony/stopwatch": "^7.4|^8.0"
},
"type": "library",
"autoload": {
@@ -8521,7 +8392,7 @@
"description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/event-dispatcher/tree/v7.4.4"
+ "source": "https://github.com/symfony/event-dispatcher/tree/v8.0.9"
},
"funding": [
{
@@ -8541,20 +8412,20 @@
"type": "tidelift"
}
],
- "time": "2026-01-05T11:45:34+00:00"
+ "time": "2026-04-18T13:51:42+00:00"
},
{
"name": "symfony/event-dispatcher-contracts",
- "version": "v3.6.0",
+ "version": "v3.7.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher-contracts.git",
- "reference": "59eb412e93815df44f05f342958efa9f46b1e586"
+ "reference": "ccba7060602b7fed0b03c85bf025257f76d9ef32"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/59eb412e93815df44f05f342958efa9f46b1e586",
- "reference": "59eb412e93815df44f05f342958efa9f46b1e586",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/ccba7060602b7fed0b03c85bf025257f76d9ef32",
+ "reference": "ccba7060602b7fed0b03c85bf025257f76d9ef32",
"shasum": ""
},
"require": {
@@ -8568,7 +8439,7 @@
"name": "symfony/contracts"
},
"branch-alias": {
- "dev-main": "3.6-dev"
+ "dev-main": "3.7-dev"
}
},
"autoload": {
@@ -8601,7 +8472,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.6.0"
+ "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.7.0"
},
"funding": [
{
@@ -8612,34 +8483,38 @@
"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": "2024-09-25T14:21:43+00:00"
+ "time": "2026-01-05T13:30:16+00:00"
},
{
"name": "symfony/filesystem",
- "version": "v7.4.6",
+ "version": "v8.0.11",
"source": {
"type": "git",
"url": "https://github.com/symfony/filesystem.git",
- "reference": "3ebc794fa5315e59fd122561623c2e2e4280538e"
+ "reference": "224db910898ce1317b892a9a1338f1f8f17eb7c7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/filesystem/zipball/3ebc794fa5315e59fd122561623c2e2e4280538e",
- "reference": "3ebc794fa5315e59fd122561623c2e2e4280538e",
+ "url": "https://api.github.com/repos/symfony/filesystem/zipball/224db910898ce1317b892a9a1338f1f8f17eb7c7",
+ "reference": "224db910898ce1317b892a9a1338f1f8f17eb7c7",
"shasum": ""
},
"require": {
- "php": ">=8.2",
+ "php": ">=8.4",
"symfony/polyfill-ctype": "~1.8",
"symfony/polyfill-mbstring": "~1.8"
},
"require-dev": {
- "symfony/process": "^6.4|^7.0|^8.0"
+ "symfony/process": "^7.4|^8.0"
},
"type": "library",
"autoload": {
@@ -8667,7 +8542,7 @@
"description": "Provides basic utilities for the filesystem",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/filesystem/tree/v7.4.6"
+ "source": "https://github.com/symfony/filesystem/tree/v8.0.11"
},
"funding": [
{
@@ -8687,27 +8562,27 @@
"type": "tidelift"
}
],
- "time": "2026-02-25T16:50:00+00:00"
+ "time": "2026-05-11T16:39:47+00:00"
},
{
"name": "symfony/finder",
- "version": "v7.4.6",
+ "version": "v8.0.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/finder.git",
- "reference": "8655bf1076b7a3a346cb11413ffdabff50c7ffcf"
+ "reference": "8da41214757b87d97f181e3d14a4179286151007"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/finder/zipball/8655bf1076b7a3a346cb11413ffdabff50c7ffcf",
- "reference": "8655bf1076b7a3a346cb11413ffdabff50c7ffcf",
+ "url": "https://api.github.com/repos/symfony/finder/zipball/8da41214757b87d97f181e3d14a4179286151007",
+ "reference": "8da41214757b87d97f181e3d14a4179286151007",
"shasum": ""
},
"require": {
- "php": ">=8.2"
+ "php": ">=8.4"
},
"require-dev": {
- "symfony/filesystem": "^6.4|^7.0|^8.0"
+ "symfony/filesystem": "^7.4|^8.0"
},
"type": "library",
"autoload": {
@@ -8735,7 +8610,7 @@
"description": "Finds files and directories via an intuitive fluent interface",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/finder/tree/v7.4.6"
+ "source": "https://github.com/symfony/finder/tree/v8.0.8"
},
"funding": [
{
@@ -8755,28 +8630,26 @@
"type": "tidelift"
}
],
- "time": "2026-01-29T09:40:50+00:00"
+ "time": "2026-03-30T15:14:47+00:00"
},
{
"name": "symfony/html-sanitizer",
- "version": "v7.4.7",
+ "version": "v8.0.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/html-sanitizer.git",
- "reference": "e4df2abd9391ce3263baa1aea9e993f6da74a3c7"
+ "reference": "b0e4a2d9a82ab6bdcc742a63398781f6dae64fe5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/html-sanitizer/zipball/e4df2abd9391ce3263baa1aea9e993f6da74a3c7",
- "reference": "e4df2abd9391ce3263baa1aea9e993f6da74a3c7",
+ "url": "https://api.github.com/repos/symfony/html-sanitizer/zipball/b0e4a2d9a82ab6bdcc742a63398781f6dae64fe5",
+ "reference": "b0e4a2d9a82ab6bdcc742a63398781f6dae64fe5",
"shasum": ""
},
"require": {
"ext-dom": "*",
"league/uri": "^6.5|^7.0",
- "masterminds/html5": "^2.7.2",
- "php": ">=8.2",
- "symfony/deprecation-contracts": "^2.5|^3"
+ "php": ">=8.4"
},
"type": "library",
"autoload": {
@@ -8809,7 +8682,7 @@
"sanitizer"
],
"support": {
- "source": "https://github.com/symfony/html-sanitizer/tree/v7.4.7"
+ "source": "https://github.com/symfony/html-sanitizer/tree/v8.0.8"
},
"funding": [
{
@@ -8829,41 +8702,39 @@
"type": "tidelift"
}
],
- "time": "2026-03-06T13:15:18+00:00"
+ "time": "2026-03-30T15:14:47+00:00"
},
{
"name": "symfony/http-foundation",
- "version": "v7.4.7",
+ "version": "v8.0.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-foundation.git",
- "reference": "f94b3e7b7dafd40e666f0c9ff2084133bae41e81"
+ "reference": "02656f7ebeae5c155d659e946f6b3a33df24051b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-foundation/zipball/f94b3e7b7dafd40e666f0c9ff2084133bae41e81",
- "reference": "f94b3e7b7dafd40e666f0c9ff2084133bae41e81",
+ "url": "https://api.github.com/repos/symfony/http-foundation/zipball/02656f7ebeae5c155d659e946f6b3a33df24051b",
+ "reference": "02656f7ebeae5c155d659e946f6b3a33df24051b",
"shasum": ""
},
"require": {
- "php": ">=8.2",
- "symfony/deprecation-contracts": "^2.5|^3",
+ "php": ">=8.4",
"symfony/polyfill-mbstring": "^1.1"
},
"conflict": {
- "doctrine/dbal": "<3.6",
- "symfony/cache": "<6.4.12|>=7.0,<7.1.5"
+ "doctrine/dbal": "<4.3"
},
"require-dev": {
- "doctrine/dbal": "^3.6|^4",
+ "doctrine/dbal": "^4.3",
"predis/predis": "^1.1|^2.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"
+ "symfony/cache": "^7.4|^8.0",
+ "symfony/clock": "^7.4|^8.0",
+ "symfony/dependency-injection": "^7.4|^8.0",
+ "symfony/expression-language": "^7.4|^8.0",
+ "symfony/http-kernel": "^7.4|^8.0",
+ "symfony/mime": "^7.4|^8.0",
+ "symfony/rate-limiter": "^7.4|^8.0"
},
"type": "library",
"autoload": {
@@ -8891,7 +8762,7 @@
"description": "Defines an object-oriented layer for the HTTP specification",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/http-foundation/tree/v7.4.7"
+ "source": "https://github.com/symfony/http-foundation/tree/v8.0.8"
},
"funding": [
{
@@ -8911,78 +8782,63 @@
"type": "tidelift"
}
],
- "time": "2026-03-06T13:15:18+00:00"
+ "time": "2026-03-30T15:14:47+00:00"
},
{
"name": "symfony/http-kernel",
- "version": "v7.4.7",
+ "version": "v8.0.11",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-kernel.git",
- "reference": "3b3fcf386c809be990c922e10e4c620d6367cab1"
+ "reference": "20d3680373f4b791903c09e74b45402b4aeda71c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-kernel/zipball/3b3fcf386c809be990c922e10e4c620d6367cab1",
- "reference": "3b3fcf386c809be990c922e10e4c620d6367cab1",
+ "url": "https://api.github.com/repos/symfony/http-kernel/zipball/20d3680373f4b791903c09e74b45402b4aeda71c",
+ "reference": "20d3680373f4b791903c09e74b45402b4aeda71c",
"shasum": ""
},
"require": {
- "php": ">=8.2",
+ "php": ">=8.4",
"psr/log": "^1|^2|^3",
- "symfony/deprecation-contracts": "^2.5|^3",
- "symfony/error-handler": "^6.4|^7.0|^8.0",
- "symfony/event-dispatcher": "^7.3|^8.0",
+ "symfony/error-handler": "^7.4|^8.0",
+ "symfony/event-dispatcher": "^7.4|^8.0",
"symfony/http-foundation": "^7.4|^8.0",
"symfony/polyfill-ctype": "^1.8"
},
"conflict": {
- "symfony/browser-kit": "<6.4",
- "symfony/cache": "<6.4",
- "symfony/config": "<6.4",
- "symfony/console": "<6.4",
- "symfony/dependency-injection": "<6.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": "<6.4",
- "symfony/messenger": "<6.4",
- "symfony/translation": "<6.4",
"symfony/translation-contracts": "<2.5",
- "symfony/twig-bridge": "<6.4",
- "symfony/validator": "<6.4",
- "symfony/var-dumper": "<6.4",
- "twig/twig": "<3.12"
+ "twig/twig": "<3.21"
},
"provide": {
"psr/log-implementation": "1.0|2.0|3.0"
},
"require-dev": {
"psr/cache": "^1.0|^2.0|^3.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/browser-kit": "^7.4|^8.0",
+ "symfony/clock": "^7.4|^8.0",
+ "symfony/config": "^7.4|^8.0",
+ "symfony/console": "^7.4|^8.0",
+ "symfony/css-selector": "^7.4|^8.0",
+ "symfony/dependency-injection": "^7.4|^8.0",
+ "symfony/dom-crawler": "^7.4|^8.0",
+ "symfony/expression-language": "^7.4|^8.0",
+ "symfony/finder": "^7.4|^8.0",
"symfony/http-client-contracts": "^2.5|^3",
- "symfony/process": "^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/process": "^7.4|^8.0",
+ "symfony/property-access": "^7.4|^8.0",
+ "symfony/routing": "^7.4|^8.0",
+ "symfony/serializer": "^7.4|^8.0",
+ "symfony/stopwatch": "^7.4|^8.0",
+ "symfony/translation": "^7.4|^8.0",
"symfony/translation-contracts": "^2.5|^3",
- "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"
+ "symfony/uid": "^7.4|^8.0",
+ "symfony/validator": "^7.4|^8.0",
+ "symfony/var-dumper": "^7.4|^8.0",
+ "symfony/var-exporter": "^7.4|^8.0",
+ "twig/twig": "^3.21"
},
"type": "library",
"autoload": {
@@ -9010,7 +8866,7 @@
"description": "Provides a structured process for converting a Request into a Response",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/http-kernel/tree/v7.4.7"
+ "source": "https://github.com/symfony/http-kernel/tree/v8.0.11"
},
"funding": [
{
@@ -9030,43 +8886,39 @@
"type": "tidelift"
}
],
- "time": "2026-03-06T16:33:18+00:00"
+ "time": "2026-05-13T18:07:14+00:00"
},
{
"name": "symfony/mailer",
- "version": "v7.4.6",
+ "version": "v8.0.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/mailer.git",
- "reference": "b02726f39a20bc65e30364f5c750c4ddbf1f58e9"
+ "reference": "ca5f6edaf8780ece814404b58a4482b22b509c56"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/mailer/zipball/b02726f39a20bc65e30364f5c750c4ddbf1f58e9",
- "reference": "b02726f39a20bc65e30364f5c750c4ddbf1f58e9",
+ "url": "https://api.github.com/repos/symfony/mailer/zipball/ca5f6edaf8780ece814404b58a4482b22b509c56",
+ "reference": "ca5f6edaf8780ece814404b58a4482b22b509c56",
"shasum": ""
},
"require": {
"egulias/email-validator": "^2.1.10|^3|^4",
- "php": ">=8.2",
+ "php": ">=8.4",
"psr/event-dispatcher": "^1",
"psr/log": "^1|^2|^3",
- "symfony/event-dispatcher": "^6.4|^7.0|^8.0",
- "symfony/mime": "^7.2|^8.0",
+ "symfony/event-dispatcher": "^7.4|^8.0",
+ "symfony/mime": "^7.4|^8.0",
"symfony/service-contracts": "^2.5|^3"
},
"conflict": {
- "symfony/http-client-contracts": "<2.5",
- "symfony/http-kernel": "<6.4",
- "symfony/messenger": "<6.4",
- "symfony/mime": "<6.4",
- "symfony/twig-bridge": "<6.4"
+ "symfony/http-client-contracts": "<2.5"
},
"require-dev": {
- "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"
+ "symfony/console": "^7.4|^8.0",
+ "symfony/http-client": "^7.4|^8.0",
+ "symfony/messenger": "^7.4|^8.0",
+ "symfony/twig-bridge": "^7.4|^8.0"
},
"type": "library",
"autoload": {
@@ -9094,7 +8946,7 @@
"description": "Helps sending emails",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/mailer/tree/v7.4.6"
+ "source": "https://github.com/symfony/mailer/tree/v8.0.8"
},
"funding": [
{
@@ -9114,44 +8966,41 @@
"type": "tidelift"
}
],
- "time": "2026-02-25T16:50:00+00:00"
+ "time": "2026-03-30T15:14:47+00:00"
},
{
"name": "symfony/mime",
- "version": "v7.4.7",
+ "version": "v8.0.9",
"source": {
"type": "git",
"url": "https://github.com/symfony/mime.git",
- "reference": "da5ab4fde3f6c88ab06e96185b9922f48b677cd1"
+ "reference": "a9fcb293650c054b62a5b406f4e92e7b711ea333"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/mime/zipball/da5ab4fde3f6c88ab06e96185b9922f48b677cd1",
- "reference": "da5ab4fde3f6c88ab06e96185b9922f48b677cd1",
+ "url": "https://api.github.com/repos/symfony/mime/zipball/a9fcb293650c054b62a5b406f4e92e7b711ea333",
+ "reference": "a9fcb293650c054b62a5b406f4e92e7b711ea333",
"shasum": ""
},
"require": {
- "php": ">=8.2",
- "symfony/deprecation-contracts": "^2.5|^3",
+ "php": ">=8.4",
"symfony/polyfill-intl-idn": "^1.10",
"symfony/polyfill-mbstring": "^1.0"
},
"conflict": {
"egulias/email-validator": "~3.0.0",
"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"
+ "phpdocumentor/type-resolver": "<1.5.1"
},
"require-dev": {
"egulias/email-validator": "^2.1.10|^3.1|^4",
"league/html-to-markdown": "^5.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.3|^7.0.3|^8.0"
+ "symfony/dependency-injection": "^7.4|^8.0",
+ "symfony/process": "^7.4|^8.0",
+ "symfony/property-access": "^7.4|^8.0",
+ "symfony/property-info": "^7.4|^8.0",
+ "symfony/serializer": "^7.4|^8.0"
},
"type": "library",
"autoload": {
@@ -9183,7 +9032,7 @@
"mime-type"
],
"support": {
- "source": "https://github.com/symfony/mime/tree/v7.4.7"
+ "source": "https://github.com/symfony/mime/tree/v8.0.9"
},
"funding": [
{
@@ -9203,20 +9052,20 @@
"type": "tidelift"
}
],
- "time": "2026-03-05T15:24:09+00:00"
+ "time": "2026-04-29T15:02:55+00:00"
},
{
"name": "symfony/polyfill-ctype",
- "version": "v1.33.0",
+ "version": "v1.37.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-ctype.git",
- "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638"
+ "reference": "141046a8f9477948ff284fa65be2095baafb94f2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/a3cc8b044a6ea513310cbd48ef7333b384945638",
- "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638",
+ "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/141046a8f9477948ff284fa65be2095baafb94f2",
+ "reference": "141046a8f9477948ff284fa65be2095baafb94f2",
"shasum": ""
},
"require": {
@@ -9266,7 +9115,7 @@
"portable"
],
"support": {
- "source": "https://github.com/symfony/polyfill-ctype/tree/v1.33.0"
+ "source": "https://github.com/symfony/polyfill-ctype/tree/v1.37.0"
},
"funding": [
{
@@ -9286,20 +9135,20 @@
"type": "tidelift"
}
],
- "time": "2024-09-09T11:45:10+00:00"
+ "time": "2026-04-10T16:19:22+00:00"
},
{
"name": "symfony/polyfill-intl-grapheme",
- "version": "v1.33.0",
+ "version": "v1.37.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-grapheme.git",
- "reference": "380872130d3a5dd3ace2f4010d95125fde5d5c70"
+ "reference": "4864388bfbd3001ce88e234fab652acd91fdc57e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/380872130d3a5dd3ace2f4010d95125fde5d5c70",
- "reference": "380872130d3a5dd3ace2f4010d95125fde5d5c70",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/4864388bfbd3001ce88e234fab652acd91fdc57e",
+ "reference": "4864388bfbd3001ce88e234fab652acd91fdc57e",
"shasum": ""
},
"require": {
@@ -9348,7 +9197,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.33.0"
+ "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.37.0"
},
"funding": [
{
@@ -9368,11 +9217,11 @@
"type": "tidelift"
}
],
- "time": "2025-06-27T09:58:17+00:00"
+ "time": "2026-04-26T13:13:48+00:00"
},
{
"name": "symfony/polyfill-intl-idn",
- "version": "v1.33.0",
+ "version": "v1.37.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-idn.git",
@@ -9435,7 +9284,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.33.0"
+ "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.37.0"
},
"funding": [
{
@@ -9459,7 +9308,7 @@
},
{
"name": "symfony/polyfill-intl-normalizer",
- "version": "v1.33.0",
+ "version": "v1.37.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
@@ -9520,7 +9369,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.33.0"
+ "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.37.0"
},
"funding": [
{
@@ -9544,16 +9393,16 @@
},
{
"name": "symfony/polyfill-mbstring",
- "version": "v1.33.0",
+ "version": "v1.37.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git",
- "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493"
+ "reference": "6a21eb99c6973357967f6ce3708cd55a6bec6315"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/6d857f4d76bd4b343eac26d6b539585d2bc56493",
- "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493",
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/6a21eb99c6973357967f6ce3708cd55a6bec6315",
+ "reference": "6a21eb99c6973357967f6ce3708cd55a6bec6315",
"shasum": ""
},
"require": {
@@ -9605,7 +9454,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.33.0"
+ "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.37.0"
},
"funding": [
{
@@ -9625,20 +9474,20 @@
"type": "tidelift"
}
],
- "time": "2024-12-23T08:48:59+00:00"
+ "time": "2026-04-10T17:25:58+00:00"
},
{
"name": "symfony/polyfill-php80",
- "version": "v1.33.0",
+ "version": "v1.37.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php80.git",
- "reference": "0cc9dd0f17f61d8131e7df6b84bd344899fe2608"
+ "reference": "dfb55726c3a76ea3b6459fcfda1ec2d80a682411"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/0cc9dd0f17f61d8131e7df6b84bd344899fe2608",
- "reference": "0cc9dd0f17f61d8131e7df6b84bd344899fe2608",
+ "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/dfb55726c3a76ea3b6459fcfda1ec2d80a682411",
+ "reference": "dfb55726c3a76ea3b6459fcfda1ec2d80a682411",
"shasum": ""
},
"require": {
@@ -9689,7 +9538,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php80/tree/v1.33.0"
+ "source": "https://github.com/symfony/polyfill-php80/tree/v1.37.0"
},
"funding": [
{
@@ -9709,20 +9558,20 @@
"type": "tidelift"
}
],
- "time": "2025-01-02T08:10:11+00:00"
+ "time": "2026-04-10T16:19:22+00:00"
},
{
- "name": "symfony/polyfill-php83",
- "version": "v1.33.0",
+ "name": "symfony/polyfill-php84",
+ "version": "v1.37.0",
"source": {
"type": "git",
- "url": "https://github.com/symfony/polyfill-php83.git",
- "reference": "17f6f9a6b1735c0f163024d959f700cfbc5155e5"
+ "url": "https://github.com/symfony/polyfill-php84.git",
+ "reference": "88486db2c389b290bf87ff1de7ebc1e13e42bb06"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/17f6f9a6b1735c0f163024d959f700cfbc5155e5",
- "reference": "17f6f9a6b1735c0f163024d959f700cfbc5155e5",
+ "url": "https://api.github.com/repos/symfony/polyfill-php84/zipball/88486db2c389b290bf87ff1de7ebc1e13e42bb06",
+ "reference": "88486db2c389b290bf87ff1de7ebc1e13e42bb06",
"shasum": ""
},
"require": {
@@ -9740,7 +9589,7 @@
"bootstrap.php"
],
"psr-4": {
- "Symfony\\Polyfill\\Php83\\": ""
+ "Symfony\\Polyfill\\Php84\\": ""
},
"classmap": [
"Resources/stubs"
@@ -9760,7 +9609,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.4+ features to lower PHP versions",
"homepage": "https://symfony.com",
"keywords": [
"compatibility",
@@ -9769,7 +9618,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php83/tree/v1.33.0"
+ "source": "https://github.com/symfony/polyfill-php84/tree/v1.37.0"
},
"funding": [
{
@@ -9789,20 +9638,20 @@
"type": "tidelift"
}
],
- "time": "2025-07-08T02:45:35+00:00"
+ "time": "2026-04-10T18:47:49+00:00"
},
{
- "name": "symfony/polyfill-php84",
- "version": "v1.33.0",
+ "name": "symfony/polyfill-php85",
+ "version": "v1.37.0",
"source": {
"type": "git",
- "url": "https://github.com/symfony/polyfill-php84.git",
- "reference": "d8ced4d875142b6a7426000426b8abc631d6b191"
+ "url": "https://github.com/symfony/polyfill-php85.git",
+ "reference": "fcfa4973a9917cef23f2e38774da74a2b7d115ee"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php84/zipball/d8ced4d875142b6a7426000426b8abc631d6b191",
- "reference": "d8ced4d875142b6a7426000426b8abc631d6b191",
+ "url": "https://api.github.com/repos/symfony/polyfill-php85/zipball/fcfa4973a9917cef23f2e38774da74a2b7d115ee",
+ "reference": "fcfa4973a9917cef23f2e38774da74a2b7d115ee",
"shasum": ""
},
"require": {
@@ -9820,7 +9669,7 @@
"bootstrap.php"
],
"psr-4": {
- "Symfony\\Polyfill\\Php84\\": ""
+ "Symfony\\Polyfill\\Php85\\": ""
},
"classmap": [
"Resources/stubs"
@@ -9840,7 +9689,7 @@
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Symfony polyfill backporting some PHP 8.4+ features to lower PHP versions",
+ "description": "Symfony polyfill backporting some PHP 8.5+ features to lower PHP versions",
"homepage": "https://symfony.com",
"keywords": [
"compatibility",
@@ -9849,7 +9698,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php84/tree/v1.33.0"
+ "source": "https://github.com/symfony/polyfill-php85/tree/v1.37.0"
},
"funding": [
{
@@ -9869,20 +9718,20 @@
"type": "tidelift"
}
],
- "time": "2025-06-24T13:30:11+00:00"
+ "time": "2026-04-26T13:10:57+00:00"
},
{
- "name": "symfony/polyfill-php85",
- "version": "v1.33.0",
+ "name": "symfony/polyfill-php86",
+ "version": "v1.37.0",
"source": {
"type": "git",
- "url": "https://github.com/symfony/polyfill-php85.git",
- "reference": "d4e5fcd4ab3d998ab16c0db48e6cbb9a01993f91"
+ "url": "https://github.com/symfony/polyfill-php86.git",
+ "reference": "33d8fc5a705481e21fe3a81212b26f9b1f61749c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php85/zipball/d4e5fcd4ab3d998ab16c0db48e6cbb9a01993f91",
- "reference": "d4e5fcd4ab3d998ab16c0db48e6cbb9a01993f91",
+ "url": "https://api.github.com/repos/symfony/polyfill-php86/zipball/33d8fc5a705481e21fe3a81212b26f9b1f61749c",
+ "reference": "33d8fc5a705481e21fe3a81212b26f9b1f61749c",
"shasum": ""
},
"require": {
@@ -9900,7 +9749,7 @@
"bootstrap.php"
],
"psr-4": {
- "Symfony\\Polyfill\\Php85\\": ""
+ "Symfony\\Polyfill\\Php86\\": ""
},
"classmap": [
"Resources/stubs"
@@ -9920,7 +9769,7 @@
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Symfony polyfill backporting some PHP 8.5+ features to lower PHP versions",
+ "description": "Symfony polyfill backporting some PHP 8.6+ features to lower PHP versions",
"homepage": "https://symfony.com",
"keywords": [
"compatibility",
@@ -9929,7 +9778,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php85/tree/v1.33.0"
+ "source": "https://github.com/symfony/polyfill-php86/tree/v1.37.0"
},
"funding": [
{
@@ -9949,20 +9798,20 @@
"type": "tidelift"
}
],
- "time": "2025-06-23T16:12:55+00:00"
+ "time": "2026-04-26T13:13:48+00:00"
},
{
"name": "symfony/polyfill-uuid",
- "version": "v1.33.0",
+ "version": "v1.37.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-uuid.git",
- "reference": "21533be36c24be3f4b1669c4725c7d1d2bab4ae2"
+ "reference": "26dfec253c4cf3e51b541b52ddf7e42cb0908e94"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/21533be36c24be3f4b1669c4725c7d1d2bab4ae2",
- "reference": "21533be36c24be3f4b1669c4725c7d1d2bab4ae2",
+ "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/26dfec253c4cf3e51b541b52ddf7e42cb0908e94",
+ "reference": "26dfec253c4cf3e51b541b52ddf7e42cb0908e94",
"shasum": ""
},
"require": {
@@ -10012,7 +9861,7 @@
"uuid"
],
"support": {
- "source": "https://github.com/symfony/polyfill-uuid/tree/v1.33.0"
+ "source": "https://github.com/symfony/polyfill-uuid/tree/v1.37.0"
},
"funding": [
{
@@ -10032,24 +9881,24 @@
"type": "tidelift"
}
],
- "time": "2024-09-09T11:45:10+00:00"
+ "time": "2026-04-10T16:19:22+00:00"
},
{
"name": "symfony/process",
- "version": "v7.4.5",
+ "version": "v8.0.11",
"source": {
"type": "git",
"url": "https://github.com/symfony/process.git",
- "reference": "608476f4604102976d687c483ac63a79ba18cc97"
+ "reference": "26d89e459f037d2873300605d0a07e7a8ef84db0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/process/zipball/608476f4604102976d687c483ac63a79ba18cc97",
- "reference": "608476f4604102976d687c483ac63a79ba18cc97",
+ "url": "https://api.github.com/repos/symfony/process/zipball/26d89e459f037d2873300605d0a07e7a8ef84db0",
+ "reference": "26d89e459f037d2873300605d0a07e7a8ef84db0",
"shasum": ""
},
"require": {
- "php": ">=8.2"
+ "php": ">=8.4"
},
"type": "library",
"autoload": {
@@ -10077,7 +9926,7 @@
"description": "Executes commands in sub-processes",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/process/tree/v7.4.5"
+ "source": "https://github.com/symfony/process/tree/v8.0.11"
},
"funding": [
{
@@ -10097,38 +9946,33 @@
"type": "tidelift"
}
],
- "time": "2026-01-26T15:07:59+00:00"
+ "time": "2026-05-11T16:56:32+00:00"
},
{
"name": "symfony/routing",
- "version": "v7.4.6",
+ "version": "v8.0.9",
"source": {
"type": "git",
"url": "https://github.com/symfony/routing.git",
- "reference": "238d749c56b804b31a9bf3e26519d93b65a60938"
+ "reference": "75d1bd8e5da3424e4db2fc3ff0222cb4d0c73038"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/routing/zipball/238d749c56b804b31a9bf3e26519d93b65a60938",
- "reference": "238d749c56b804b31a9bf3e26519d93b65a60938",
+ "url": "https://api.github.com/repos/symfony/routing/zipball/75d1bd8e5da3424e4db2fc3ff0222cb4d0c73038",
+ "reference": "75d1bd8e5da3424e4db2fc3ff0222cb4d0c73038",
"shasum": ""
},
"require": {
- "php": ">=8.2",
+ "php": ">=8.4",
"symfony/deprecation-contracts": "^2.5|^3"
},
- "conflict": {
- "symfony/config": "<6.4",
- "symfony/dependency-injection": "<6.4",
- "symfony/yaml": "<6.4"
- },
"require-dev": {
"psr/log": "^1|^2|^3",
- "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"
+ "symfony/config": "^7.4|^8.0",
+ "symfony/dependency-injection": "^7.4|^8.0",
+ "symfony/expression-language": "^7.4|^8.0",
+ "symfony/http-foundation": "^7.4|^8.0",
+ "symfony/yaml": "^7.4|^8.0"
},
"type": "library",
"autoload": {
@@ -10162,7 +10006,7 @@
"url"
],
"support": {
- "source": "https://github.com/symfony/routing/tree/v7.4.6"
+ "source": "https://github.com/symfony/routing/tree/v8.0.9"
},
"funding": [
{
@@ -10182,20 +10026,20 @@
"type": "tidelift"
}
],
- "time": "2026-02-25T16:50:00+00:00"
+ "time": "2026-04-29T15:02:55+00:00"
},
{
"name": "symfony/service-contracts",
- "version": "v3.6.1",
+ "version": "v3.7.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/service-contracts.git",
- "reference": "45112560a3ba2d715666a509a0bc9521d10b6c43"
+ "reference": "d25d82433a80eba6aa0e6c24b61d7370d99e444a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/service-contracts/zipball/45112560a3ba2d715666a509a0bc9521d10b6c43",
- "reference": "45112560a3ba2d715666a509a0bc9521d10b6c43",
+ "url": "https://api.github.com/repos/symfony/service-contracts/zipball/d25d82433a80eba6aa0e6c24b61d7370d99e444a",
+ "reference": "d25d82433a80eba6aa0e6c24b61d7370d99e444a",
"shasum": ""
},
"require": {
@@ -10213,7 +10057,7 @@
"name": "symfony/contracts"
},
"branch-alias": {
- "dev-main": "3.6-dev"
+ "dev-main": "3.7-dev"
}
},
"autoload": {
@@ -10249,7 +10093,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/service-contracts/tree/v3.6.1"
+ "source": "https://github.com/symfony/service-contracts/tree/v3.7.0"
},
"funding": [
{
@@ -10269,39 +10113,38 @@
"type": "tidelift"
}
],
- "time": "2025-07-15T11:30:57+00:00"
+ "time": "2026-03-28T09:44:51+00:00"
},
{
"name": "symfony/string",
- "version": "v7.4.6",
+ "version": "v8.0.11",
"source": {
"type": "git",
"url": "https://github.com/symfony/string.git",
- "reference": "9f209231affa85aa930a5e46e6eb03381424b30b"
+ "reference": "39be2ad058a3c0bd558edca23e65f009865d75ff"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/string/zipball/9f209231affa85aa930a5e46e6eb03381424b30b",
- "reference": "9f209231affa85aa930a5e46e6eb03381424b30b",
+ "url": "https://api.github.com/repos/symfony/string/zipball/39be2ad058a3c0bd558edca23e65f009865d75ff",
+ "reference": "39be2ad058a3c0bd558edca23e65f009865d75ff",
"shasum": ""
},
"require": {
- "php": ">=8.2",
- "symfony/deprecation-contracts": "^2.5|^3.0",
- "symfony/polyfill-ctype": "~1.8",
- "symfony/polyfill-intl-grapheme": "~1.33",
- "symfony/polyfill-intl-normalizer": "~1.0",
- "symfony/polyfill-mbstring": "~1.0"
+ "php": ">=8.4",
+ "symfony/polyfill-ctype": "^1.8",
+ "symfony/polyfill-intl-grapheme": "^1.33",
+ "symfony/polyfill-intl-normalizer": "^1.0",
+ "symfony/polyfill-mbstring": "^1.0"
},
"conflict": {
"symfony/translation-contracts": "<2.5"
},
"require-dev": {
- "symfony/emoji": "^7.1|^8.0",
- "symfony/http-client": "^6.4|^7.0|^8.0",
- "symfony/intl": "^6.4|^7.0|^8.0",
+ "symfony/emoji": "^7.4|^8.0",
+ "symfony/http-client": "^7.4|^8.0",
+ "symfony/intl": "^7.4|^8.0",
"symfony/translation-contracts": "^2.5|^3.0",
- "symfony/var-exporter": "^6.4|^7.0|^8.0"
+ "symfony/var-exporter": "^7.4|^8.0"
},
"type": "library",
"autoload": {
@@ -10340,7 +10183,7 @@
"utf8"
],
"support": {
- "source": "https://github.com/symfony/string/tree/v7.4.6"
+ "source": "https://github.com/symfony/string/tree/v8.0.11"
},
"funding": [
{
@@ -10360,38 +10203,31 @@
"type": "tidelift"
}
],
- "time": "2026-02-09T09:33:46+00:00"
+ "time": "2026-05-13T12:07:53+00:00"
},
{
"name": "symfony/translation",
- "version": "v7.4.6",
+ "version": "v8.0.10",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation.git",
- "reference": "1888cf064399868af3784b9e043240f1d89d25ce"
+ "reference": "f63e9342e12646a57c91ef8a366a4f9d8e557b67"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/translation/zipball/1888cf064399868af3784b9e043240f1d89d25ce",
- "reference": "1888cf064399868af3784b9e043240f1d89d25ce",
+ "url": "https://api.github.com/repos/symfony/translation/zipball/f63e9342e12646a57c91ef8a366a4f9d8e557b67",
+ "reference": "f63e9342e12646a57c91ef8a366a4f9d8e557b67",
"shasum": ""
},
"require": {
- "php": ">=8.2",
- "symfony/deprecation-contracts": "^2.5|^3",
- "symfony/polyfill-mbstring": "~1.0",
- "symfony/translation-contracts": "^2.5.3|^3.3"
+ "php": ">=8.4",
+ "symfony/polyfill-mbstring": "^1.0",
+ "symfony/translation-contracts": "^3.6.1"
},
"conflict": {
"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": "<6.4",
- "symfony/service-contracts": "<2.5",
- "symfony/twig-bundle": "<6.4",
- "symfony/yaml": "<6.4"
+ "symfony/service-contracts": "<2.5"
},
"provide": {
"symfony/translation-implementation": "2.3|3.0"
@@ -10399,17 +10235,17 @@
"require-dev": {
"nikic/php-parser": "^5.0",
"psr/log": "^1|^2|^3",
- "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/config": "^7.4|^8.0",
+ "symfony/console": "^7.4|^8.0",
+ "symfony/dependency-injection": "^7.4|^8.0",
+ "symfony/finder": "^7.4|^8.0",
"symfony/http-client-contracts": "^2.5|^3.0",
- "symfony/http-kernel": "^6.4|^7.0|^8.0",
- "symfony/intl": "^6.4|^7.0|^8.0",
+ "symfony/http-kernel": "^7.4|^8.0",
+ "symfony/intl": "^7.4|^8.0",
"symfony/polyfill-intl-icu": "^1.21",
- "symfony/routing": "^6.4|^7.0|^8.0",
+ "symfony/routing": "^7.4|^8.0",
"symfony/service-contracts": "^2.5|^3",
- "symfony/yaml": "^6.4|^7.0|^8.0"
+ "symfony/yaml": "^7.4|^8.0"
},
"type": "library",
"autoload": {
@@ -10440,7 +10276,7 @@
"description": "Provides tools to internationalize your application",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/translation/tree/v7.4.6"
+ "source": "https://github.com/symfony/translation/tree/v8.0.10"
},
"funding": [
{
@@ -10460,20 +10296,20 @@
"type": "tidelift"
}
],
- "time": "2026-02-17T07:53:42+00:00"
+ "time": "2026-05-06T11:30:54+00:00"
},
{
"name": "symfony/translation-contracts",
- "version": "v3.6.1",
+ "version": "v3.7.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation-contracts.git",
- "reference": "65a8bc82080447fae78373aa10f8d13b38338977"
+ "reference": "0ab302977a952b42fd51475c4ebac81f8da0a95d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/65a8bc82080447fae78373aa10f8d13b38338977",
- "reference": "65a8bc82080447fae78373aa10f8d13b38338977",
+ "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/0ab302977a952b42fd51475c4ebac81f8da0a95d",
+ "reference": "0ab302977a952b42fd51475c4ebac81f8da0a95d",
"shasum": ""
},
"require": {
@@ -10486,7 +10322,7 @@
"name": "symfony/contracts"
},
"branch-alias": {
- "dev-main": "3.6-dev"
+ "dev-main": "3.7-dev"
}
},
"autoload": {
@@ -10522,7 +10358,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/translation-contracts/tree/v3.6.1"
+ "source": "https://github.com/symfony/translation-contracts/tree/v3.7.0"
},
"funding": [
{
@@ -10542,28 +10378,28 @@
"type": "tidelift"
}
],
- "time": "2025-07-15T13:41:35+00:00"
+ "time": "2026-01-05T13:30:16+00:00"
},
{
"name": "symfony/uid",
- "version": "v7.4.4",
+ "version": "v8.0.9",
"source": {
"type": "git",
"url": "https://github.com/symfony/uid.git",
- "reference": "7719ce8aba76be93dfe249192f1fbfa52c588e36"
+ "reference": "4d9d6510bbe88ebb4608b7200d18606cdf80825c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/uid/zipball/7719ce8aba76be93dfe249192f1fbfa52c588e36",
- "reference": "7719ce8aba76be93dfe249192f1fbfa52c588e36",
+ "url": "https://api.github.com/repos/symfony/uid/zipball/4d9d6510bbe88ebb4608b7200d18606cdf80825c",
+ "reference": "4d9d6510bbe88ebb4608b7200d18606cdf80825c",
"shasum": ""
},
"require": {
- "php": ">=8.2",
+ "php": ">=8.4",
"symfony/polyfill-uuid": "^1.15"
},
"require-dev": {
- "symfony/console": "^6.4|^7.0|^8.0"
+ "symfony/console": "^7.4|^8.0"
},
"type": "library",
"autoload": {
@@ -10600,7 +10436,7 @@
"uuid"
],
"support": {
- "source": "https://github.com/symfony/uid/tree/v7.4.4"
+ "source": "https://github.com/symfony/uid/tree/v8.0.9"
},
"funding": [
{
@@ -10620,35 +10456,35 @@
"type": "tidelift"
}
],
- "time": "2026-01-03T23:30:35+00:00"
+ "time": "2026-04-30T16:10:06+00:00"
},
{
"name": "symfony/var-dumper",
- "version": "v7.4.6",
+ "version": "v8.0.8",
"source": {
"type": "git",
"url": "https://github.com/symfony/var-dumper.git",
- "reference": "045321c440ac18347b136c63d2e9bf28a2dc0291"
+ "reference": "cfb7badd53bf4177f6e9416cfbbccc13c0e773a1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/var-dumper/zipball/045321c440ac18347b136c63d2e9bf28a2dc0291",
- "reference": "045321c440ac18347b136c63d2e9bf28a2dc0291",
+ "url": "https://api.github.com/repos/symfony/var-dumper/zipball/cfb7badd53bf4177f6e9416cfbbccc13c0e773a1",
+ "reference": "cfb7badd53bf4177f6e9416cfbbccc13c0e773a1",
"shasum": ""
},
"require": {
- "php": ">=8.2",
- "symfony/deprecation-contracts": "^2.5|^3",
- "symfony/polyfill-mbstring": "~1.0"
+ "php": ">=8.4",
+ "symfony/polyfill-mbstring": "^1.0"
},
"conflict": {
- "symfony/console": "<6.4"
+ "symfony/console": "<7.4",
+ "symfony/error-handler": "<7.4"
},
"require-dev": {
- "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",
+ "symfony/console": "^7.4|^8.0",
+ "symfony/http-kernel": "^7.4|^8.0",
+ "symfony/process": "^7.4|^8.0",
+ "symfony/uid": "^7.4|^8.0",
"twig/twig": "^3.12"
},
"bin": [
@@ -10687,7 +10523,7 @@
"dump"
],
"support": {
- "source": "https://github.com/symfony/var-dumper/tree/v7.4.6"
+ "source": "https://github.com/symfony/var-dumper/tree/v8.0.8"
},
"funding": [
{
@@ -10707,7 +10543,7 @@
"type": "tidelift"
}
],
- "time": "2026-02-15T10:53:20+00:00"
+ "time": "2026-03-31T07:15:36+00:00"
},
{
"name": "tijsverkoyen/css-to-inline-styles",
@@ -10766,16 +10602,16 @@
},
{
"name": "tio/laravel",
- "version": "v1.23",
+ "version": "v1.25",
"source": {
"type": "git",
"url": "https://github.com/translation/laravel.git",
- "reference": "bbcf9ae4c48abb6737040e908f6a03d6c5e42b5c"
+ "reference": "6b18b2ab18708faa689ee8e23d3f2437fb62944d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/translation/laravel/zipball/bbcf9ae4c48abb6737040e908f6a03d6c5e42b5c",
- "reference": "bbcf9ae4c48abb6737040e908f6a03d6c5e42b5c",
+ "url": "https://api.github.com/repos/translation/laravel/zipball/6b18b2ab18708faa689ee8e23d3f2437fb62944d",
+ "reference": "6b18b2ab18708faa689ee8e23d3f2437fb62944d",
"shasum": ""
},
"require": {
@@ -10836,9 +10672,9 @@
],
"support": {
"issues": "https://github.com/translation/laravel/issues",
- "source": "https://github.com/translation/laravel/tree/v1.23"
+ "source": "https://github.com/translation/laravel/tree/v1.25"
},
- "time": "2023-04-13T09:53:38+00:00"
+ "time": "2026-04-29T16:27:45+00:00"
},
{
"name": "ueberdosis/tiptap-php",
@@ -10909,79 +10745,6 @@
],
"time": "2026-01-10T16:40:02+00:00"
},
- {
- "name": "valentin-morice/filament-json-column",
- "version": "dev-dev",
- "source": {
- "type": "git",
- "url": "https://github.com/valentin-morice/filament-json-column.git",
- "reference": "04207c663b3af4aa8686926c4659fa188cb569bd"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/valentin-morice/filament-json-column/zipball/04207c663b3af4aa8686926c4659fa188cb569bd",
- "reference": "04207c663b3af4aa8686926c4659fa188cb569bd",
- "shasum": ""
- },
- "require": {
- "filament/forms": "^4.0",
- "filament/infolists": "^4.0",
- "filament/notifications": "^4.0",
- "php": "^8.2",
- "spatie/laravel-package-tools": "^1.15.0"
- },
- "require-dev": {
- "laravel/pint": "^1.0",
- "nunomaduro/collision": "^7.9|^8.0",
- "nunomaduro/larastan": "^2.0.1",
- "orchestra/testbench": "^8.0|^9.0",
- "pestphp/pest": "^2.1",
- "pestphp/pest-plugin-arch": "^2.0",
- "pestphp/pest-plugin-laravel": "^2.0",
- "phpstan/extension-installer": "^1.1",
- "phpstan/phpstan-deprecation-rules": "^1.0",
- "phpstan/phpstan-phpunit": "^1.0"
- },
- "type": "library",
- "extra": {
- "laravel": {
- "aliases": {
- "FilamentJsonColumn": "ValentinMorice\\FilamentJsonColumn\\Facades\\FilamentJsonColumn"
- },
- "providers": [
- "ValentinMorice\\FilamentJsonColumn\\FilamentJsonColumnServiceProvider"
- ]
- }
- },
- "autoload": {
- "psr-4": {
- "ValentinMorice\\FilamentJsonColumn\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "valentin-morice",
- "email": "valentinmorice1@gmail.com",
- "role": "Developer"
- }
- ],
- "description": "A simple package to view and edit your JSON columns in Filament",
- "homepage": "https://github.com/valentin-morice/filament-json-column",
- "keywords": [
- "filament-json-column",
- "laravel",
- "valentin-morice"
- ],
- "support": {
- "issues": "https://github.com/valentin-morice/filament-json-column/issues",
- "source": "https://github.com/valentin-morice/filament-json-column"
- },
- "time": "2025-12-21T11:08:02+00:00"
- },
{
"name": "vlucas/phpdotenv",
"version": "v5.6.3",
@@ -11068,23 +10831,23 @@
},
{
"name": "voku/portable-ascii",
- "version": "2.0.3",
+ "version": "2.1.1",
"source": {
"type": "git",
"url": "https://github.com/voku/portable-ascii.git",
- "reference": "b1d923f88091c6bf09699efcd7c8a1b1bfd7351d"
+ "reference": "8e1051fe39379367aecf014f41744ce7539a856f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/voku/portable-ascii/zipball/b1d923f88091c6bf09699efcd7c8a1b1bfd7351d",
- "reference": "b1d923f88091c6bf09699efcd7c8a1b1bfd7351d",
+ "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"
@@ -11114,7 +10877,7 @@
],
"support": {
"issues": "https://github.com/voku/portable-ascii/issues",
- "source": "https://github.com/voku/portable-ascii/tree/2.0.3"
+ "source": "https://github.com/voku/portable-ascii/tree/2.1.1"
},
"funding": [
{
@@ -11138,253 +10901,22 @@
"type": "tidelift"
}
],
- "time": "2024-11-21T01:49:47+00:00"
+ "time": "2026-04-26T05:33:54+00:00"
}
],
"packages-dev": [
- {
- "name": "barryvdh/laravel-debugbar",
- "version": "v3.16.5",
- "source": {
- "type": "git",
- "url": "https://github.com/fruitcake/laravel-debugbar.git",
- "reference": "e85c0a8464da67e5b4a53a42796d46a43fc06c9a"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/fruitcake/laravel-debugbar/zipball/e85c0a8464da67e5b4a53a42796d46a43fc06c9a",
- "reference": "e85c0a8464da67e5b4a53a42796d46a43fc06c9a",
- "shasum": ""
- },
- "require": {
- "illuminate/routing": "^10|^11|^12",
- "illuminate/session": "^10|^11|^12",
- "illuminate/support": "^10|^11|^12",
- "php": "^8.1",
- "php-debugbar/php-debugbar": "^2.2.4",
- "symfony/finder": "^6|^7|^8"
- },
- "require-dev": {
- "mockery/mockery": "^1.3.3",
- "orchestra/testbench-dusk": "^7|^8|^9|^10",
- "phpunit/phpunit": "^9.5.10|^10|^11",
- "squizlabs/php_codesniffer": "^3.5"
- },
- "type": "library",
- "extra": {
- "laravel": {
- "aliases": {
- "Debugbar": "Barryvdh\\Debugbar\\Facades\\Debugbar"
- },
- "providers": [
- "Barryvdh\\Debugbar\\ServiceProvider"
- ]
- },
- "branch-alias": {
- "dev-master": "3.16-dev"
- }
- },
- "autoload": {
- "files": [
- "src/helpers.php"
- ],
- "psr-4": {
- "Barryvdh\\Debugbar\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Barry vd. Heuvel",
- "email": "barryvdh@gmail.com"
- }
- ],
- "description": "PHP Debugbar integration for Laravel",
- "keywords": [
- "debug",
- "debugbar",
- "dev",
- "laravel",
- "profiler",
- "webprofiler"
- ],
- "support": {
- "issues": "https://github.com/fruitcake/laravel-debugbar/issues",
- "source": "https://github.com/fruitcake/laravel-debugbar/tree/v3.16.5"
- },
- "funding": [
- {
- "url": "https://fruitcake.nl",
- "type": "custom"
- },
- {
- "url": "https://github.com/barryvdh",
- "type": "github"
- }
- ],
- "time": "2026-01-23T15:03:22+00:00"
- },
- {
- "name": "barryvdh/laravel-ide-helper",
- "version": "v3.6.1",
- "source": {
- "type": "git",
- "url": "https://github.com/barryvdh/laravel-ide-helper.git",
- "reference": "b106f7ee85f263c4f103eca49e7bf3862c2e5e75"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/barryvdh/laravel-ide-helper/zipball/b106f7ee85f263c4f103eca49e7bf3862c2e5e75",
- "reference": "b106f7ee85f263c4f103eca49e7bf3862c2e5e75",
- "shasum": ""
- },
- "require": {
- "barryvdh/reflection-docblock": "^2.4",
- "composer/class-map-generator": "^1.0",
- "ext-json": "*",
- "illuminate/console": "^11.15 || ^12",
- "illuminate/database": "^11.15 || ^12",
- "illuminate/filesystem": "^11.15 || ^12",
- "illuminate/support": "^11.15 || ^12",
- "php": "^8.2"
- },
- "require-dev": {
- "ext-pdo_sqlite": "*",
- "friendsofphp/php-cs-fixer": "^3",
- "illuminate/config": "^11.15 || ^12",
- "illuminate/view": "^11.15 || ^12",
- "mockery/mockery": "^1.4",
- "orchestra/testbench": "^9.2 || ^10",
- "phpunit/phpunit": "^10.5 || ^11.5.3",
- "spatie/phpunit-snapshot-assertions": "^4 || ^5",
- "vimeo/psalm": "^5.4",
- "vlucas/phpdotenv": "^5"
- },
- "suggest": {
- "illuminate/events": "Required for automatic helper generation (^6|^7|^8|^9|^10|^11)."
- },
- "type": "library",
- "extra": {
- "laravel": {
- "providers": [
- "Barryvdh\\LaravelIdeHelper\\IdeHelperServiceProvider"
- ]
- },
- "branch-alias": {
- "dev-master": "3.5-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Barryvdh\\LaravelIdeHelper\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Barry vd. Heuvel",
- "email": "barryvdh@gmail.com"
- }
- ],
- "description": "Laravel IDE Helper, generates correct PHPDocs for all Facade classes, to improve auto-completion.",
- "keywords": [
- "autocomplete",
- "codeintel",
- "dev",
- "helper",
- "ide",
- "laravel",
- "netbeans",
- "phpdoc",
- "phpstorm",
- "sublime"
- ],
- "support": {
- "issues": "https://github.com/barryvdh/laravel-ide-helper/issues",
- "source": "https://github.com/barryvdh/laravel-ide-helper/tree/v3.6.1"
- },
- "funding": [
- {
- "url": "https://fruitcake.nl",
- "type": "custom"
- },
- {
- "url": "https://github.com/barryvdh",
- "type": "github"
- }
- ],
- "time": "2025-12-10T09:11:07+00:00"
- },
- {
- "name": "barryvdh/reflection-docblock",
- "version": "v2.4.1",
- "source": {
- "type": "git",
- "url": "https://github.com/barryvdh/ReflectionDocBlock.git",
- "reference": "4f5ba70c30c81f2ce03a16a9965832cfcc31ed3b"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/barryvdh/ReflectionDocBlock/zipball/4f5ba70c30c81f2ce03a16a9965832cfcc31ed3b",
- "reference": "4f5ba70c30c81f2ce03a16a9965832cfcc31ed3b",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "require-dev": {
- "phpunit/phpunit": "^8.5.14|^9"
- },
- "suggest": {
- "dflydev/markdown": "~1.0",
- "erusev/parsedown": "~1.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.3.x-dev"
- }
- },
- "autoload": {
- "psr-0": {
- "Barryvdh": [
- "src/"
- ]
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Mike van Riel",
- "email": "mike.vanriel@naenius.com"
- }
- ],
- "support": {
- "source": "https://github.com/barryvdh/ReflectionDocBlock/tree/v2.4.1"
- },
- "time": "2026-03-05T20:09:01+00:00"
- },
{
"name": "brianium/paratest",
- "version": "v7.19.0",
+ "version": "v7.20.0",
"source": {
"type": "git",
"url": "https://github.com/paratestphp/paratest.git",
- "reference": "7c6c29af7c4b406b49ce0c6b0a3a81d3684474e6"
+ "reference": "81c80677c9ec0ed4ef16b246167f11dec81a6e3d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/paratestphp/paratest/zipball/7c6c29af7c4b406b49ce0c6b0a3a81d3684474e6",
- "reference": "7c6c29af7c4b406b49ce0c6b0a3a81d3684474e6",
+ "url": "https://api.github.com/repos/paratestphp/paratest/zipball/81c80677c9ec0ed4ef16b246167f11dec81a6e3d",
+ "reference": "81c80677c9ec0ed4ef16b246167f11dec81a6e3d",
"shasum": ""
},
"require": {
@@ -11398,9 +10930,9 @@
"phpunit/php-code-coverage": "^12.5.3 || ^13.0.1",
"phpunit/php-file-iterator": "^6.0.1 || ^7",
"phpunit/php-timer": "^8 || ^9",
- "phpunit/phpunit": "^12.5.9 || ^13",
+ "phpunit/phpunit": "^12.5.14 || ^13.0.5",
"sebastian/environment": "^8.0.3 || ^9",
- "symfony/console": "^7.4.4 || ^8.0.4",
+ "symfony/console": "^7.4.7 || ^8.0.7",
"symfony/process": "^7.4.5 || ^8.0.5"
},
"require-dev": {
@@ -11408,11 +10940,11 @@
"ext-pcntl": "*",
"ext-pcov": "*",
"ext-posix": "*",
- "phpstan/phpstan": "^2.1.38",
- "phpstan/phpstan-deprecation-rules": "^2.0.3",
- "phpstan/phpstan-phpunit": "^2.0.12",
- "phpstan/phpstan-strict-rules": "^2.0.8",
- "symfony/filesystem": "^7.4.0 || ^8.0.1"
+ "phpstan/phpstan": "^2.1.44",
+ "phpstan/phpstan-deprecation-rules": "^2.0.4",
+ "phpstan/phpstan-phpunit": "^2.0.16",
+ "phpstan/phpstan-strict-rules": "^2.0.10",
+ "symfony/filesystem": "^7.4.6 || ^8.0.6"
},
"bin": [
"bin/paratest",
@@ -11452,7 +10984,7 @@
],
"support": {
"issues": "https://github.com/paratestphp/paratest/issues",
- "source": "https://github.com/paratestphp/paratest/tree/v7.19.0"
+ "source": "https://github.com/paratestphp/paratest/tree/v7.20.0"
},
"funding": [
{
@@ -11464,44 +10996,47 @@
"type": "paypal"
}
],
- "time": "2026-02-06T10:53:26+00:00"
+ "time": "2026-03-29T15:46:14+00:00"
},
{
- "name": "composer/class-map-generator",
- "version": "1.7.1",
+ "name": "composer/pcre",
+ "version": "3.3.2",
"source": {
"type": "git",
- "url": "https://github.com/composer/class-map-generator.git",
- "reference": "8f5fa3cc214230e71f54924bd0197a3bcc705eb1"
+ "url": "https://github.com/composer/pcre.git",
+ "reference": "b2bed4734f0cc156ee1fe9c0da2550420d99a21e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/composer/class-map-generator/zipball/8f5fa3cc214230e71f54924bd0197a3bcc705eb1",
- "reference": "8f5fa3cc214230e71f54924bd0197a3bcc705eb1",
+ "url": "https://api.github.com/repos/composer/pcre/zipball/b2bed4734f0cc156ee1fe9c0da2550420d99a21e",
+ "reference": "b2bed4734f0cc156ee1fe9c0da2550420d99a21e",
"shasum": ""
},
"require": {
- "composer/pcre": "^2.1 || ^3.1",
- "php": "^7.2 || ^8.0",
- "symfony/finder": "^4.4 || ^5.3 || ^6 || ^7 || ^8"
+ "php": "^7.4 || ^8.0"
+ },
+ "conflict": {
+ "phpstan/phpstan": "<1.11.10"
},
"require-dev": {
"phpstan/phpstan": "^1.12 || ^2",
- "phpstan/phpstan-deprecation-rules": "^1 || ^2",
- "phpstan/phpstan-phpunit": "^1 || ^2",
- "phpstan/phpstan-strict-rules": "^1.1 || ^2",
- "phpunit/phpunit": "^8",
- "symfony/filesystem": "^5.4 || ^6 || ^7 || ^8"
+ "phpstan/phpstan-strict-rules": "^1 || ^2",
+ "phpunit/phpunit": "^8 || ^9"
},
"type": "library",
"extra": {
+ "phpstan": {
+ "includes": [
+ "extension.neon"
+ ]
+ },
"branch-alias": {
- "dev-main": "1.x-dev"
+ "dev-main": "3.x-dev"
}
},
"autoload": {
"psr-4": {
- "Composer\\ClassMapGenerator\\": "src"
+ "Composer\\Pcre\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -11512,16 +11047,19 @@
{
"name": "Jordi Boggiano",
"email": "j.boggiano@seld.be",
- "homepage": "https://seld.be"
+ "homepage": "http://seld.be"
}
],
- "description": "Utilities to scan PHP code and generate class maps.",
+ "description": "PCRE wrapping library that offers type-safe preg_* replacements.",
"keywords": [
- "classmap"
+ "PCRE",
+ "preg",
+ "regex",
+ "regular expression"
],
"support": {
- "issues": "https://github.com/composer/class-map-generator/issues",
- "source": "https://github.com/composer/class-map-generator/tree/1.7.1"
+ "issues": "https://github.com/composer/pcre/issues",
+ "source": "https://github.com/composer/pcre/tree/3.3.2"
},
"funding": [
{
@@ -11531,49 +11069,42 @@
{
"url": "https://github.com/composer",
"type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+ "type": "tidelift"
}
],
- "time": "2025-12-29T13:15:25+00:00"
+ "time": "2024-11-12T16:29:46+00:00"
},
{
- "name": "composer/pcre",
- "version": "3.3.2",
+ "name": "composer/xdebug-handler",
+ "version": "3.0.5",
"source": {
"type": "git",
- "url": "https://github.com/composer/pcre.git",
- "reference": "b2bed4734f0cc156ee1fe9c0da2550420d99a21e"
+ "url": "https://github.com/composer/xdebug-handler.git",
+ "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/composer/pcre/zipball/b2bed4734f0cc156ee1fe9c0da2550420d99a21e",
- "reference": "b2bed4734f0cc156ee1fe9c0da2550420d99a21e",
+ "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/6c1925561632e83d60a44492e0b344cf48ab85ef",
+ "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef",
"shasum": ""
},
"require": {
- "php": "^7.4 || ^8.0"
- },
- "conflict": {
- "phpstan/phpstan": "<1.11.10"
- },
- "require-dev": {
- "phpstan/phpstan": "^1.12 || ^2",
- "phpstan/phpstan-strict-rules": "^1 || ^2",
- "phpunit/phpunit": "^8 || ^9"
+ "composer/pcre": "^1 || ^2 || ^3",
+ "php": "^7.2.5 || ^8.0",
+ "psr/log": "^1 || ^2 || ^3"
},
- "type": "library",
- "extra": {
- "phpstan": {
- "includes": [
- "extension.neon"
- ]
- },
- "branch-alias": {
- "dev-main": "3.x-dev"
- }
+ "require-dev": {
+ "phpstan/phpstan": "^1.0",
+ "phpstan/phpstan-strict-rules": "^1.1",
+ "phpunit/phpunit": "^8.5 || ^9.6 || ^10.5"
},
+ "type": "library",
"autoload": {
"psr-4": {
- "Composer\\Pcre\\": "src"
+ "Composer\\XdebugHandler\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -11582,21 +11113,19 @@
],
"authors": [
{
- "name": "Jordi Boggiano",
- "email": "j.boggiano@seld.be",
- "homepage": "http://seld.be"
+ "name": "John Stevenson",
+ "email": "john-stevenson@blueyonder.co.uk"
}
],
- "description": "PCRE wrapping library that offers type-safe preg_* replacements.",
+ "description": "Restarts a process without Xdebug.",
"keywords": [
- "PCRE",
- "preg",
- "regex",
- "regular expression"
+ "Xdebug",
+ "performance"
],
"support": {
- "issues": "https://github.com/composer/pcre/issues",
- "source": "https://github.com/composer/pcre/tree/3.3.2"
+ "irc": "ircs://irc.libera.chat:6697/composer",
+ "issues": "https://github.com/composer/xdebug-handler/issues",
+ "source": "https://github.com/composer/xdebug-handler/tree/3.0.5"
},
"funding": [
{
@@ -11612,37 +11141,48 @@
"type": "tidelift"
}
],
- "time": "2024-11-12T16:29:46+00:00"
+ "time": "2024-05-06T16:37:16+00:00"
},
{
"name": "deployer/deployer",
- "version": "v7.5.12",
+ "version": "v8.0.4",
"source": {
"type": "git",
"url": "https://github.com/deployphp/deployer.git",
- "reference": "efc71dac9ccc86b3f9946e75d50cb106b775aae2"
+ "reference": "927c9efcac7b1ad4af2c6fa5d031e0475a35820a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/deployphp/deployer/zipball/efc71dac9ccc86b3f9946e75d50cb106b775aae2",
- "reference": "efc71dac9ccc86b3f9946e75d50cb106b775aae2",
+ "url": "https://api.github.com/repos/deployphp/deployer/zipball/927c9efcac7b1ad4af2c6fa5d031e0475a35820a",
+ "reference": "927c9efcac7b1ad4af2c6fa5d031e0475a35820a",
"shasum": ""
},
"require": {
- "ext-json": "*",
- "php": "^8.0|^7.3"
+ "maml/maml": "^3.2",
+ "php": "^8.3",
+ "symfony/console": "^7.4.0 || ^8.0.0",
+ "symfony/process": "^7.4.0 || ^8.0.0",
+ "symfony/yaml": "^7.4.0 || ^8.0.0"
},
"require-dev": {
- "friendsofphp/php-cs-fixer": "^3.64",
- "pestphp/pest": "^3.3",
- "phpstan/phpstan": "^1.4",
- "phpunit/php-code-coverage": "^11.0",
- "phpunit/phpunit": "^11.4"
+ "friendsofphp/php-cs-fixer": "^3.68",
+ "phpstan/phpstan": "^2.1",
+ "phpunit/php-code-coverage": "^12.0",
+ "phpunit/phpunit": "^12.5"
},
"bin": [
"bin/dep"
],
"type": "library",
+ "autoload": {
+ "files": [
+ "src/functions.php",
+ "src/Support/helpers.php"
+ ],
+ "psr-4": {
+ "Deployer\\": "src/"
+ }
+ },
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
@@ -11666,7 +11206,7 @@
"type": "github"
}
],
- "time": "2025-02-19T16:45:27+00:00"
+ "time": "2026-05-16T09:54:43+00:00"
},
{
"name": "doctrine/deprecations",
@@ -11911,6 +11451,108 @@
],
"time": "2025-08-08T12:00:00+00:00"
},
+ {
+ "name": "fruitcake/laravel-debugbar",
+ "version": "v4.2.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/fruitcake/laravel-debugbar.git",
+ "reference": "799d70c1101d3f8840dd76ff68ff6a78f9352905"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/fruitcake/laravel-debugbar/zipball/799d70c1101d3f8840dd76ff68ff6a78f9352905",
+ "reference": "799d70c1101d3f8840dd76ff68ff6a78f9352905",
+ "shasum": ""
+ },
+ "require": {
+ "illuminate/routing": "^11|^12|^13.0",
+ "illuminate/session": "^11|^12|^13.0",
+ "illuminate/support": "^11|^12|^13.0",
+ "php": "^8.2",
+ "php-debugbar/php-debugbar": "^3.7.2",
+ "php-debugbar/symfony-bridge": "^1.1"
+ },
+ "replace": {
+ "barryvdh/laravel-debugbar": "self.version"
+ },
+ "require-dev": {
+ "larastan/larastan": "^3",
+ "laravel/octane": "^2",
+ "laravel/pennant": "^1",
+ "laravel/pint": "^1",
+ "laravel/telescope": "^5.16",
+ "livewire/livewire": "^3.7|^4",
+ "mockery/mockery": "^1.3.3",
+ "orchestra/testbench-dusk": "^9|^10|^11",
+ "php-debugbar/twig-bridge": "^2.0",
+ "phpstan/phpstan-phpunit": "^2",
+ "phpstan/phpstan-strict-rules": "^2.0",
+ "phpunit/phpunit": "^11",
+ "shipmonk/phpstan-rules": "^4.3"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "aliases": {
+ "Debugbar": "Fruitcake\\LaravelDebugbar\\Facades\\Debugbar"
+ },
+ "providers": [
+ "Fruitcake\\LaravelDebugbar\\ServiceProvider"
+ ]
+ },
+ "branch-alias": {
+ "dev-master": "4.2-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/helpers.php"
+ ],
+ "psr-4": {
+ "Fruitcake\\LaravelDebugbar\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fruitcake",
+ "homepage": "https://fruitcake.nl"
+ },
+ {
+ "name": "Barry vd. Heuvel",
+ "email": "barryvdh@gmail.com"
+ }
+ ],
+ "description": "PHP Debugbar integration for Laravel",
+ "keywords": [
+ "barryvdh",
+ "debug",
+ "debugbar",
+ "dev",
+ "laravel",
+ "profiler",
+ "webprofiler"
+ ],
+ "support": {
+ "issues": "https://github.com/fruitcake/laravel-debugbar/issues",
+ "source": "https://github.com/fruitcake/laravel-debugbar/tree/v4.2.8"
+ },
+ "funding": [
+ {
+ "url": "https://fruitcake.nl",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/barryvdh",
+ "type": "github"
+ }
+ ],
+ "time": "2026-04-20T13:31:29+00:00"
+ },
{
"name": "hamcrest/hamcrest-php",
"version": "v2.1.1",
@@ -12024,21 +11666,21 @@
},
{
"name": "kitloong/laravel-migrations-generator",
- "version": "v7.2.0",
+ "version": "v7.4.0",
"source": {
"type": "git",
"url": "https://github.com/kitloong/laravel-migrations-generator.git",
- "reference": "37f29a99671a5dde3a598e40157e2e245f077878"
+ "reference": "706366afcef5be8a01a92c3a12bfa04c01a1eed2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/kitloong/laravel-migrations-generator/zipball/37f29a99671a5dde3a598e40157e2e245f077878",
- "reference": "37f29a99671a5dde3a598e40157e2e245f077878",
+ "url": "https://api.github.com/repos/kitloong/laravel-migrations-generator/zipball/706366afcef5be8a01a92c3a12bfa04c01a1eed2",
+ "reference": "706366afcef5be8a01a92c3a12bfa04c01a1eed2",
"shasum": ""
},
"require": {
"ext-pdo": "*",
- "illuminate/support": "^11.0|^12.0",
+ "illuminate/support": "^11.0|^12.0|^13.0",
"php": "^8.2"
},
"require-dev": {
@@ -12046,7 +11688,7 @@
"friendsofphp/php-cs-fixer": "^3.1",
"larastan/larastan": "^2.0|^3.0",
"mockery/mockery": "^1.0",
- "orchestra/testbench": "^9.0|^10.0",
+ "orchestra/testbench": "^9.0|^10.0|^11.0",
"phpmd/phpmd": "^2.10",
"phpstan/phpstan-mockery": "^1.0|^2.0",
"slevomat/coding-standard": "^8.0",
@@ -12086,7 +11728,7 @@
],
"support": {
"issues": "https://github.com/kitloong/laravel-migrations-generator/issues",
- "source": "https://github.com/kitloong/laravel-migrations-generator/tree/v7.2.0"
+ "source": "https://github.com/kitloong/laravel-migrations-generator/tree/v7.4.0"
},
"funding": [
{
@@ -12098,38 +11740,36 @@
"type": "github"
}
],
- "time": "2025-08-10T07:31:19+00:00"
+ "time": "2026-05-10T14:54:43+00:00"
},
{
"name": "laradumps/laradumps",
- "version": "v4.6.2",
+ "version": "v5.3.0",
"source": {
"type": "git",
"url": "https://github.com/laradumps/laradumps.git",
- "reference": "805d45f060d2b3badd1d3fc229a9bb893360d776"
+ "reference": "22ac20bb88e960eb1f68535958adefbc963074ce"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laradumps/laradumps/zipball/805d45f060d2b3badd1d3fc229a9bb893360d776",
- "reference": "805d45f060d2b3badd1d3fc229a9bb893360d776",
+ "url": "https://api.github.com/repos/laradumps/laradumps/zipball/22ac20bb88e960eb1f68535958adefbc963074ce",
+ "reference": "22ac20bb88e960eb1f68535958adefbc963074ce",
"shasum": ""
},
"require": {
- "illuminate/mail": "^10.0|^11.0|^12.0",
- "illuminate/support": "^10.0|^11.0|^12.0",
- "laradumps/laradumps-core": "^3.2.2",
- "nunomaduro/termwind": "^1.15.1|^2.0.1",
- "php": "^8.1"
+ "illuminate/mail": "^11.0 || ^12.0 || ^13.0",
+ "illuminate/support": "^11.0 || ^12.0 || ^13.0",
+ "laradumps/laradumps-core": "^4.0.3",
+ "php": "^8.2"
},
"require-dev": {
- "larastan/larastan": "^2.0|^3.0",
- "laravel/framework": "^10.0|^11.0|^12.0",
- "laravel/pint": "^1.17.2",
- "livewire/livewire": "^3.5.6",
+ "larastan/larastan": "^3.8",
+ "laravel/framework": "^11.0 || ^12.0 || ^13.0",
+ "laravel/pint": "^1.26.0",
"mockery/mockery": "^1.6.12",
- "orchestra/testbench-core": "^8.0|^9.4|^10.0",
- "pestphp/pest": "^4.0.0|^3.7.0|^2.35.1",
- "symfony/var-dumper": "^6.4.0|^7.1.3"
+ "orchestra/testbench-core": "^9.4 || ^10.0 || ^11.0",
+ "pestphp/pest": "^3.7.0 || ^4.0.0",
+ "symfony/var-dumper": "^7.1.3|^8.0"
},
"type": "library",
"extra": {
@@ -12162,7 +11802,7 @@
"homepage": "https://github.com/laradumps/laradumps",
"support": {
"issues": "https://github.com/laradumps/laradumps/issues",
- "source": "https://github.com/laradumps/laradumps/tree/v4.6.2"
+ "source": "https://github.com/laradumps/laradumps/tree/v5.3.0"
},
"funding": [
{
@@ -12170,40 +11810,42 @@
"type": "github"
}
],
- "time": "2025-12-11T11:38:20+00:00"
+ "time": "2026-03-25T12:27:54+00:00"
},
{
"name": "laradumps/laradumps-core",
- "version": "v3.2.11",
+ "version": "v4.0.6",
"source": {
"type": "git",
"url": "https://github.com/laradumps/laradumps-core.git",
- "reference": "cfc91afd1a6217ec568960eb996f371c08c380eb"
+ "reference": "41acc4a0dba81232287bed4d98de112b1c466244"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laradumps/laradumps-core/zipball/cfc91afd1a6217ec568960eb996f371c08c380eb",
- "reference": "cfc91afd1a6217ec568960eb996f371c08c380eb",
+ "url": "https://api.github.com/repos/laradumps/laradumps-core/zipball/41acc4a0dba81232287bed4d98de112b1c466244",
+ "reference": "41acc4a0dba81232287bed4d98de112b1c466244",
"shasum": ""
},
"require": {
"ext-curl": "*",
- "nunomaduro/termwind": "^1.15|^2.0",
- "php": "^8.1",
- "ramsey/uuid": "^4.7.5",
+ "php": "^8.2",
+ "ramsey/uuid": "^4.9.1",
"spatie/backtrace": "^1.5",
- "symfony/console": "^5.4|^6.4|^7.0",
- "symfony/finder": "^5.4|^6.4|^7.0",
- "symfony/process": "^5.4|^6.4|^7.0",
- "symfony/var-dumper": "^5.4|^6.4|^7.0",
- "symfony/yaml": "^5.4|^6.4|^7.0"
+ "symfony/console": "^6.4|^7.0|^8.0",
+ "symfony/finder": "^6.4|^7.0|^8.0",
+ "symfony/process": "^6.4|^7.0|^8.0",
+ "symfony/var-dumper": "^6.4|^7.0|^8.0",
+ "symfony/yaml": "^6.4|^7.0|^8.0"
},
"require-dev": {
- "illuminate/support": "^10.46",
- "laravel/pint": "^1.13.7",
- "pestphp/pest": "^2.0|^3.0",
+ "illuminate/support": "^12",
+ "laravel/pint": "^1.26.0",
+ "pestphp/pest": "^3.0|^4.0",
"phpstan/phpstan": "^1.10.50"
},
+ "suggest": {
+ "nunomaduro/termwind": "For a better terminal experience"
+ },
"bin": [
"bin/laradumps"
],
@@ -12231,7 +11873,7 @@
"homepage": "https://github.com/laradumps/laradumps-core",
"support": {
"issues": "https://github.com/laradumps/laradumps-core/issues",
- "source": "https://github.com/laradumps/laradumps-core/tree/v3.2.11"
+ "source": "https://github.com/laradumps/laradumps-core/tree/v4.0.6"
},
"funding": [
{
@@ -12239,20 +11881,20 @@
"type": "github"
}
],
- "time": "2025-12-11T14:41:59+00:00"
+ "time": "2026-03-19T15:05:22+00:00"
},
{
"name": "laravel/boost",
- "version": "v2.3.1",
+ "version": "v2.4.6",
"source": {
"type": "git",
"url": "https://github.com/laravel/boost.git",
- "reference": "ba0a9e6497398b6ce8243f5517b67d6761509150"
+ "reference": "c9ea6368c66f7c0e6a9b26706b401de900cdb9ac"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/boost/zipball/ba0a9e6497398b6ce8243f5517b67d6761509150",
- "reference": "ba0a9e6497398b6ce8243f5517b67d6761509150",
+ "url": "https://api.github.com/repos/laravel/boost/zipball/c9ea6368c66f7c0e6a9b26706b401de900cdb9ac",
+ "reference": "c9ea6368c66f7c0e6a9b26706b401de900cdb9ac",
"shasum": ""
},
"require": {
@@ -12261,7 +11903,7 @@
"illuminate/contracts": "^11.45.3|^12.41.1|^13.0",
"illuminate/routing": "^11.45.3|^12.41.1|^13.0",
"illuminate/support": "^11.45.3|^12.41.1|^13.0",
- "laravel/mcp": "^0.5.1|^0.6.0",
+ "laravel/mcp": "^0.5.1|^0.6.0|^0.7.0",
"laravel/prompts": "^0.3.10",
"laravel/roster": "^0.5.0",
"php": "^8.2"
@@ -12305,7 +11947,7 @@
"issues": "https://github.com/laravel/boost/issues",
"source": "https://github.com/laravel/boost"
},
- "time": "2026-03-12T09:06:47+00:00"
+ "time": "2026-04-28T11:52:01+00:00"
},
{
"name": "laravel/breeze",
@@ -12370,16 +12012,16 @@
},
{
"name": "laravel/mcp",
- "version": "v0.6.2",
+ "version": "v0.7.0",
"source": {
"type": "git",
"url": "https://github.com/laravel/mcp.git",
- "reference": "f696e44735b95ff275392eab8ce5a3b4b42a2223"
+ "reference": "3513b4feca5f1678be4d2261dcfa8e456436d02a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/mcp/zipball/f696e44735b95ff275392eab8ce5a3b4b42a2223",
- "reference": "f696e44735b95ff275392eab8ce5a3b4b42a2223",
+ "url": "https://api.github.com/repos/laravel/mcp/zipball/3513b4feca5f1678be4d2261dcfa8e456436d02a",
+ "reference": "3513b4feca5f1678be4d2261dcfa8e456436d02a",
"shasum": ""
},
"require": {
@@ -12439,7 +12081,7 @@
"issues": "https://github.com/laravel/mcp/issues",
"source": "https://github.com/laravel/mcp"
},
- "time": "2026-03-10T20:00:23+00:00"
+ "time": "2026-04-21T10:23:03+00:00"
},
{
"name": "laravel/pail",
@@ -12523,16 +12165,16 @@
},
{
"name": "laravel/pint",
- "version": "v1.29.0",
+ "version": "v1.29.1",
"source": {
"type": "git",
"url": "https://github.com/laravel/pint.git",
- "reference": "bdec963f53172c5e36330f3a400604c69bf02d39"
+ "reference": "0770e9b7fafd50d4586881d456d6eb41c9247a80"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/pint/zipball/bdec963f53172c5e36330f3a400604c69bf02d39",
- "reference": "bdec963f53172c5e36330f3a400604c69bf02d39",
+ "url": "https://api.github.com/repos/laravel/pint/zipball/0770e9b7fafd50d4586881d456d6eb41c9247a80",
+ "reference": "0770e9b7fafd50d4586881d456d6eb41c9247a80",
"shasum": ""
},
"require": {
@@ -12543,14 +12185,14 @@
"php": "^8.2.0"
},
"require-dev": {
- "friendsofphp/php-cs-fixer": "^3.94.2",
- "illuminate/view": "^12.54.1",
- "larastan/larastan": "^3.9.3",
- "laravel-zero/framework": "^12.0.5",
+ "friendsofphp/php-cs-fixer": "^3.95.1",
+ "illuminate/view": "^12.56.0",
+ "larastan/larastan": "^3.9.6",
+ "laravel-zero/framework": "^12.1.0",
"mockery/mockery": "^1.6.12",
"nunomaduro/termwind": "^2.4.0",
"pestphp/pest": "^3.8.6",
- "shipfastlabs/agent-detector": "^1.1.0"
+ "shipfastlabs/agent-detector": "^1.1.3"
},
"bin": [
"builds/pint"
@@ -12587,7 +12229,7 @@
"issues": "https://github.com/laravel/pint/issues",
"source": "https://github.com/laravel/pint"
},
- "time": "2026-03-12T15:51:39+00:00"
+ "time": "2026-04-20T15:26:14+00:00"
},
{
"name": "laravel/roster",
@@ -12650,6 +12292,60 @@
},
"time": "2026-03-05T07:58:43+00:00"
},
+ {
+ "name": "maml/maml",
+ "version": "v3.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/maml-dev/maml-php.git",
+ "reference": "f11cdff4325bf399f23c33fc1995450e40ac0854"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/maml-dev/maml-php/zipball/f11cdff4325bf399f23c33fc1995450e40ac0854",
+ "reference": "f11cdff4325bf399f23c33fc1995450e40ac0854",
+ "shasum": ""
+ },
+ "require": {
+ "ext-mbstring": "*",
+ "php": ">=8.2"
+ },
+ "require-dev": {
+ "php-cs-fixer/shim": "^3.94",
+ "phpstan/phpstan": "^2.1",
+ "phpunit/phpunit": "^10.0 || ^11.0 || ^12.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Maml\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Anton Medvedev",
+ "email": "anton@medv.io"
+ }
+ ],
+ "description": "MAML Parser",
+ "homepage": "https://maml.dev",
+ "keywords": [
+ "config",
+ "configuration",
+ "maml",
+ "parser",
+ "serializer"
+ ],
+ "support": {
+ "issues": "https://github.com/maml-dev/maml-php/issues",
+ "source": "https://github.com/maml-dev/maml-php/tree/v3.2.0"
+ },
+ "time": "2026-04-12T16:50:36+00:00"
+ },
{
"name": "mockery/mockery",
"version": "1.6.12",
@@ -12795,23 +12491,23 @@
},
{
"name": "nunomaduro/collision",
- "version": "v8.9.1",
+ "version": "v8.9.4",
"source": {
"type": "git",
"url": "https://github.com/nunomaduro/collision.git",
- "reference": "a1ed3fa530fd60bc515f9303e8520fcb7d4bd935"
+ "reference": "716af8f95a470e9094cfca09ed897b023be191a5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nunomaduro/collision/zipball/a1ed3fa530fd60bc515f9303e8520fcb7d4bd935",
- "reference": "a1ed3fa530fd60bc515f9303e8520fcb7d4bd935",
+ "url": "https://api.github.com/repos/nunomaduro/collision/zipball/716af8f95a470e9094cfca09ed897b023be191a5",
+ "reference": "716af8f95a470e9094cfca09ed897b023be191a5",
"shasum": ""
},
"require": {
"filp/whoops": "^2.18.4",
"nunomaduro/termwind": "^2.4.0",
"php": "^8.2.0",
- "symfony/console": "^7.4.4 || ^8.0.4"
+ "symfony/console": "^7.4.8 || ^8.0.8"
},
"conflict": {
"laravel/framework": "<11.48.0 || >=14.0.0",
@@ -12819,12 +12515,12 @@
},
"require-dev": {
"brianium/paratest": "^7.8.5",
- "larastan/larastan": "^3.9.2",
- "laravel/framework": "^11.48.0 || ^12.52.0",
- "laravel/pint": "^1.27.1",
- "orchestra/testbench-core": "^9.12.0 || ^10.9.0",
- "pestphp/pest": "^3.8.5 || ^4.4.1 || ^5.0.0",
- "sebastian/environment": "^7.2.1 || ^8.0.3 || ^9.0.0"
+ "larastan/larastan": "^3.9.6",
+ "laravel/framework": "^11.48.0 || ^12.56.0 || ^13.5.0",
+ "laravel/pint": "^1.29.1",
+ "orchestra/testbench-core": "^9.12.0 || ^10.12.1 || ^11.2.1",
+ "pestphp/pest": "^3.8.5 || ^4.4.3 || ^5.0.0",
+ "sebastian/environment": "^7.2.1 || ^8.0.4 || ^9.3.0"
},
"type": "library",
"extra": {
@@ -12887,45 +12583,47 @@
"type": "patreon"
}
],
- "time": "2026-02-17T17:33:08+00:00"
+ "time": "2026-04-21T14:04:20+00:00"
},
{
"name": "pestphp/pest",
- "version": "v4.4.2",
+ "version": "v4.7.0",
"source": {
"type": "git",
"url": "https://github.com/pestphp/pest.git",
- "reference": "5d42e8fe3ae1d9fdf7c9f73ee88138fd30265701"
+ "reference": "2fc75cfcf03c041c804778fa894282234adc3c66"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/pestphp/pest/zipball/5d42e8fe3ae1d9fdf7c9f73ee88138fd30265701",
- "reference": "5d42e8fe3ae1d9fdf7c9f73ee88138fd30265701",
+ "url": "https://api.github.com/repos/pestphp/pest/zipball/2fc75cfcf03c041c804778fa894282234adc3c66",
+ "reference": "2fc75cfcf03c041c804778fa894282234adc3c66",
"shasum": ""
},
"require": {
- "brianium/paratest": "^7.19.0",
- "nunomaduro/collision": "^8.9.1",
+ "brianium/paratest": "^7.20.0",
+ "composer/xdebug-handler": "^3.0.5",
+ "nunomaduro/collision": "^8.9.4",
"nunomaduro/termwind": "^2.4.0",
"pestphp/pest-plugin": "^4.0.0",
- "pestphp/pest-plugin-arch": "^4.0.0",
+ "pestphp/pest-plugin-arch": "^4.0.2",
"pestphp/pest-plugin-mutate": "^4.0.1",
"pestphp/pest-plugin-profanity": "^4.2.1",
"php": "^8.3.0",
- "phpunit/phpunit": "^12.5.12",
- "symfony/process": "^7.4.5|^8.0.5"
+ "phpunit/phpunit": "^12.5.24",
+ "symfony/process": "^7.4.8|^8.0.8"
},
"conflict": {
"filp/whoops": "<2.18.3",
- "phpunit/phpunit": ">12.5.12",
+ "phpunit/phpunit": ">12.5.24",
"sebastian/exporter": "<7.0.0",
"webmozart/assert": "<1.11.0"
},
"require-dev": {
+ "mrpunyapal/peststan": "^0.2.9",
"pestphp/pest-dev-tools": "^4.1.0",
- "pestphp/pest-plugin-browser": "^4.3.0",
- "pestphp/pest-plugin-type-coverage": "^4.0.3",
- "psy/psysh": "^0.12.21"
+ "pestphp/pest-plugin-browser": "^4.3.1",
+ "pestphp/pest-plugin-type-coverage": "^4.0.4",
+ "psy/psysh": "^0.12.22"
},
"bin": [
"bin/pest"
@@ -12952,6 +12650,7 @@
"Pest\\Plugins\\Verbose",
"Pest\\Plugins\\Version",
"Pest\\Plugins\\Shard",
+ "Pest\\Plugins\\Tia",
"Pest\\Plugins\\Parallel"
]
},
@@ -12991,7 +12690,7 @@
],
"support": {
"issues": "https://github.com/pestphp/pest/issues",
- "source": "https://github.com/pestphp/pest/tree/v4.4.2"
+ "source": "https://github.com/pestphp/pest/tree/v4.7.0"
},
"funding": [
{
@@ -13003,7 +12702,7 @@
"type": "github"
}
],
- "time": "2026-03-10T21:09:12+00:00"
+ "time": "2026-05-03T16:09:32+00:00"
},
{
"name": "pestphp/pest-plugin",
@@ -13077,26 +12776,26 @@
},
{
"name": "pestphp/pest-plugin-arch",
- "version": "v4.0.0",
+ "version": "v4.0.2",
"source": {
"type": "git",
"url": "https://github.com/pestphp/pest-plugin-arch.git",
- "reference": "25bb17e37920ccc35cbbcda3b00d596aadf3e58d"
+ "reference": "3fb0d02a91b9da504b139dc7ab2a31efb7c3215c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/pestphp/pest-plugin-arch/zipball/25bb17e37920ccc35cbbcda3b00d596aadf3e58d",
- "reference": "25bb17e37920ccc35cbbcda3b00d596aadf3e58d",
+ "url": "https://api.github.com/repos/pestphp/pest-plugin-arch/zipball/3fb0d02a91b9da504b139dc7ab2a31efb7c3215c",
+ "reference": "3fb0d02a91b9da504b139dc7ab2a31efb7c3215c",
"shasum": ""
},
"require": {
"pestphp/pest-plugin": "^4.0.0",
"php": "^8.3",
- "ta-tikoma/phpunit-architecture-test": "^0.8.5"
+ "ta-tikoma/phpunit-architecture-test": "^0.8.7"
},
"require-dev": {
- "pestphp/pest": "^4.0.0",
- "pestphp/pest-dev-tools": "^4.0.0"
+ "pestphp/pest": "^4.4.6",
+ "pestphp/pest-dev-tools": "^4.1.0"
},
"type": "library",
"extra": {
@@ -13131,7 +12830,7 @@
"unit"
],
"support": {
- "source": "https://github.com/pestphp/pest-plugin-arch/tree/v4.0.0"
+ "source": "https://github.com/pestphp/pest-plugin-arch/tree/v4.0.2"
},
"funding": [
{
@@ -13143,7 +12842,7 @@
"type": "github"
}
],
- "time": "2025-08-20T13:10:51+00:00"
+ "time": "2026-04-10T17:20:19+00:00"
},
{
"name": "pestphp/pest-plugin-laravel",
@@ -13471,47 +13170,63 @@
},
{
"name": "php-debugbar/php-debugbar",
- "version": "v2.2.6",
+ "version": "v3.7.6",
"source": {
"type": "git",
"url": "https://github.com/php-debugbar/php-debugbar.git",
- "reference": "abb9fa3c5c8dbe7efe03ddba56782917481de3e8"
+ "reference": "1690ee1728827f9deb4b60457fa387cf44672c56"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-debugbar/php-debugbar/zipball/abb9fa3c5c8dbe7efe03ddba56782917481de3e8",
- "reference": "abb9fa3c5c8dbe7efe03ddba56782917481de3e8",
+ "url": "https://api.github.com/repos/php-debugbar/php-debugbar/zipball/1690ee1728827f9deb4b60457fa387cf44672c56",
+ "reference": "1690ee1728827f9deb4b60457fa387cf44672c56",
"shasum": ""
},
"require": {
- "php": "^8.1",
+ "php": "^8.2",
"psr/log": "^1|^2|^3",
- "symfony/var-dumper": "^5.4|^6.4|^7.3|^8.0"
+ "symfony/var-dumper": "^5.4|^6|^7|^8"
},
"replace": {
"maximebf/debugbar": "self.version"
},
"require-dev": {
- "dbrekelmans/bdi": "^1",
+ "dbrekelmans/bdi": "^1.4",
+ "friendsofphp/php-cs-fixer": "^3.92",
+ "monolog/monolog": "^3.9",
+ "php-debugbar/doctrine-bridge": "^3@dev",
+ "php-debugbar/monolog-bridge": "^1@dev",
+ "php-debugbar/symfony-bridge": "^1@dev",
+ "php-debugbar/twig-bridge": "^2@dev",
+ "phpstan/phpstan": "^2.1",
+ "phpstan/phpstan-phpunit": "^2.0",
+ "phpstan/phpstan-strict-rules": "^2.0",
"phpunit/phpunit": "^10",
- "symfony/browser-kit": "^6.0|7.0",
+ "predis/predis": "^3.3",
+ "shipmonk/phpstan-rules": "^4.3",
+ "symfony/browser-kit": "^6.4|7.0",
+ "symfony/dom-crawler": "^6.4|^7",
+ "symfony/event-dispatcher": "^5.4|^6.4|^7.3|^8.0",
+ "symfony/http-foundation": "^5.4|^6.4|^7.3|^8.0",
+ "symfony/mailer": "^5.4|^6.4|^7.3|^8.0",
"symfony/panther": "^1|^2.1",
"twig/twig": "^3.11.2"
},
"suggest": {
- "kriswallsmith/assetic": "The best way to manage assets",
- "monolog/monolog": "Log using Monolog",
- "predis/predis": "Redis storage"
+ "php-debugbar/doctrine-bridge": "To integrate Doctrine with php-debugbar.",
+ "php-debugbar/monolog-bridge": "To integrate Monolog with php-debugbar.",
+ "php-debugbar/symfony-bridge": "To integrate Symfony with php-debugbar.",
+ "php-debugbar/twig-bridge": "To integrate Twig with php-debugbar."
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.2-dev"
+ "dev-master": "3.0-dev"
}
},
"autoload": {
"psr-4": {
- "DebugBar\\": "src/DebugBar/"
+ "DebugBar\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -13535,13 +13250,91 @@
"debug",
"debug bar",
"debugbar",
- "dev"
+ "dev",
+ "profiler",
+ "toolbar"
],
"support": {
"issues": "https://github.com/php-debugbar/php-debugbar/issues",
- "source": "https://github.com/php-debugbar/php-debugbar/tree/v2.2.6"
+ "source": "https://github.com/php-debugbar/php-debugbar/tree/v3.7.6"
+ },
+ "funding": [
+ {
+ "url": "https://fruitcake.nl",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/barryvdh",
+ "type": "github"
+ }
+ ],
+ "time": "2026-04-30T07:31:44+00:00"
+ },
+ {
+ "name": "php-debugbar/symfony-bridge",
+ "version": "v1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-debugbar/symfony-bridge.git",
+ "reference": "e37d2debe5d316408b00d0ab2688d9c2cf59b5ad"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-debugbar/symfony-bridge/zipball/e37d2debe5d316408b00d0ab2688d9c2cf59b5ad",
+ "reference": "e37d2debe5d316408b00d0ab2688d9c2cf59b5ad",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.2",
+ "php-debugbar/php-debugbar": "^3.1",
+ "symfony/http-foundation": "^5.4|^6.4|^7.3|^8.0"
+ },
+ "require-dev": {
+ "dbrekelmans/bdi": "^1.4",
+ "phpunit/phpunit": "^10",
+ "symfony/browser-kit": "^6|^7",
+ "symfony/dom-crawler": "^6|^7",
+ "symfony/mailer": "^5.4|^6.4|^7.3|^8.0",
+ "symfony/panther": "^1|^2.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "DebugBar\\Bridge\\Symfony\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Maxime Bouroumeau-Fuseau",
+ "email": "maxime.bouroumeau@gmail.com",
+ "homepage": "http://maximebf.com"
+ },
+ {
+ "name": "Barry vd. Heuvel",
+ "email": "barryvdh@gmail.com"
+ }
+ ],
+ "description": "Symfony bridge for PHP Debugbar",
+ "homepage": "https://github.com/php-debugbar/php-debugbar",
+ "keywords": [
+ "debugbar",
+ "dev",
+ "symfony"
+ ],
+ "support": {
+ "issues": "https://github.com/php-debugbar/symfony-bridge/issues",
+ "source": "https://github.com/php-debugbar/symfony-bridge/tree/v1.1.0"
},
- "time": "2025-12-22T13:21:32+00:00"
+ "time": "2026-01-15T14:47:34+00:00"
},
{
"name": "phpdocumentor/reflection-common",
@@ -13598,16 +13391,16 @@
},
{
"name": "phpdocumentor/reflection-docblock",
- "version": "6.0.2",
+ "version": "6.0.3",
"source": {
"type": "git",
"url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
- "reference": "897b5986ece6b4f9d8413fea345c7d49c757d6bf"
+ "reference": "7bae67520aa9f5ecc506d646810bd40d9da54582"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/897b5986ece6b4f9d8413fea345c7d49c757d6bf",
- "reference": "897b5986ece6b4f9d8413fea345c7d49c757d6bf",
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/7bae67520aa9f5ecc506d646810bd40d9da54582",
+ "reference": "7bae67520aa9f5ecc506d646810bd40d9da54582",
"shasum": ""
},
"require": {
@@ -13657,9 +13450,9 @@
"description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
"support": {
"issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues",
- "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/6.0.2"
+ "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/6.0.3"
},
- "time": "2026-03-01T18:43:49+00:00"
+ "time": "2026-03-18T20:49:53+00:00"
},
{
"name": "phpdocumentor/type-resolver",
@@ -13768,16 +13561,16 @@
},
{
"name": "phpunit/php-code-coverage",
- "version": "12.5.3",
+ "version": "12.5.6",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
- "reference": "b015312f28dd75b75d3422ca37dff2cd1a565e8d"
+ "reference": "876099a072646c7745f673d7aeab5382c4439691"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/b015312f28dd75b75d3422ca37dff2cd1a565e8d",
- "reference": "b015312f28dd75b75d3422ca37dff2cd1a565e8d",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/876099a072646c7745f673d7aeab5382c4439691",
+ "reference": "876099a072646c7745f673d7aeab5382c4439691",
"shasum": ""
},
"require": {
@@ -13786,7 +13579,6 @@
"ext-xmlwriter": "*",
"nikic/php-parser": "^5.7.0",
"php": ">=8.3",
- "phpunit/php-file-iterator": "^6.0",
"phpunit/php-text-template": "^5.0",
"sebastian/complexity": "^5.0",
"sebastian/environment": "^8.0.3",
@@ -13833,7 +13625,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
"security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy",
- "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/12.5.3"
+ "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/12.5.6"
},
"funding": [
{
@@ -13853,7 +13645,7 @@
"type": "tidelift"
}
],
- "time": "2026-02-06T06:01:44+00:00"
+ "time": "2026-04-15T08:23:17+00:00"
},
{
"name": "phpunit/php-file-iterator",
@@ -14114,16 +13906,16 @@
},
{
"name": "phpunit/phpunit",
- "version": "12.5.12",
+ "version": "12.5.24",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "418e06b3b46b0d54bad749ff4907fc7dfb530199"
+ "reference": "d75dd30597caa80e72fad2ef7904601a30ef1046"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/418e06b3b46b0d54bad749ff4907fc7dfb530199",
- "reference": "418e06b3b46b0d54bad749ff4907fc7dfb530199",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/d75dd30597caa80e72fad2ef7904601a30ef1046",
+ "reference": "d75dd30597caa80e72fad2ef7904601a30ef1046",
"shasum": ""
},
"require": {
@@ -14137,15 +13929,15 @@
"phar-io/manifest": "^2.0.4",
"phar-io/version": "^3.2.1",
"php": ">=8.3",
- "phpunit/php-code-coverage": "^12.5.3",
+ "phpunit/php-code-coverage": "^12.5.6",
"phpunit/php-file-iterator": "^6.0.1",
"phpunit/php-invoker": "^6.0.0",
"phpunit/php-text-template": "^5.0.0",
"phpunit/php-timer": "^8.0.0",
"sebastian/cli-parser": "^4.2.0",
- "sebastian/comparator": "^7.1.4",
+ "sebastian/comparator": "^7.1.6",
"sebastian/diff": "^7.0.0",
- "sebastian/environment": "^8.0.3",
+ "sebastian/environment": "^8.1.0",
"sebastian/exporter": "^7.0.2",
"sebastian/global-state": "^8.0.2",
"sebastian/object-enumerator": "^7.0.0",
@@ -14192,31 +13984,15 @@
"support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
"security": "https://github.com/sebastianbergmann/phpunit/security/policy",
- "source": "https://github.com/sebastianbergmann/phpunit/tree/12.5.12"
+ "source": "https://github.com/sebastianbergmann/phpunit/tree/12.5.24"
},
"funding": [
{
- "url": "https://phpunit.de/sponsors.html",
- "type": "custom"
- },
- {
- "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/phpunit",
- "type": "tidelift"
+ "url": "https://phpunit.de/sponsoring.html",
+ "type": "other"
}
],
- "time": "2026-02-16T08:34:36+00:00"
+ "time": "2026-05-01T04:21:04+00:00"
},
{
"name": "sebastian/cli-parser",
@@ -14289,16 +14065,16 @@
},
{
"name": "sebastian/comparator",
- "version": "7.1.4",
+ "version": "7.1.6",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/comparator.git",
- "reference": "6a7de5df2e094f9a80b40a522391a7e6022df5f6"
+ "reference": "c769009dee98f494e0edc3fd4f4087501688f11e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/6a7de5df2e094f9a80b40a522391a7e6022df5f6",
- "reference": "6a7de5df2e094f9a80b40a522391a7e6022df5f6",
+ "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/c769009dee98f494e0edc3fd4f4087501688f11e",
+ "reference": "c769009dee98f494e0edc3fd4f4087501688f11e",
"shasum": ""
},
"require": {
@@ -14357,7 +14133,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/comparator/issues",
"security": "https://github.com/sebastianbergmann/comparator/security/policy",
- "source": "https://github.com/sebastianbergmann/comparator/tree/7.1.4"
+ "source": "https://github.com/sebastianbergmann/comparator/tree/7.1.6"
},
"funding": [
{
@@ -14377,7 +14153,7 @@
"type": "tidelift"
}
],
- "time": "2026-01-24T09:28:48+00:00"
+ "time": "2026-04-14T08:23:15+00:00"
},
{
"name": "sebastian/complexity",
@@ -14506,16 +14282,16 @@
},
{
"name": "sebastian/environment",
- "version": "8.0.3",
+ "version": "8.1.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/environment.git",
- "reference": "24a711b5c916efc6d6e62aa65aa2ec98fef77f68"
+ "reference": "b121608b28a13f721e76ffbbd386d08eff58f3f6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/24a711b5c916efc6d6e62aa65aa2ec98fef77f68",
- "reference": "24a711b5c916efc6d6e62aa65aa2ec98fef77f68",
+ "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/b121608b28a13f721e76ffbbd386d08eff58f3f6",
+ "reference": "b121608b28a13f721e76ffbbd386d08eff58f3f6",
"shasum": ""
},
"require": {
@@ -14530,7 +14306,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "8.0-dev"
+ "dev-main": "8.1-dev"
}
},
"autoload": {
@@ -14558,7 +14334,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/environment/issues",
"security": "https://github.com/sebastianbergmann/environment/security/policy",
- "source": "https://github.com/sebastianbergmann/environment/tree/8.0.3"
+ "source": "https://github.com/sebastianbergmann/environment/tree/8.1.0"
},
"funding": [
{
@@ -14578,7 +14354,7 @@
"type": "tidelift"
}
],
- "time": "2025-08-12T14:11:56+00:00"
+ "time": "2026-04-15T12:13:01+00:00"
},
{
"name": "sebastian/exporter",
@@ -15255,26 +15031,26 @@
},
{
"name": "spatie/flare-client-php",
- "version": "1.10.1",
+ "version": "1.11.1",
"source": {
"type": "git",
"url": "https://github.com/spatie/flare-client-php.git",
- "reference": "bf1716eb98bd689451b071548ae9e70738dce62f"
+ "reference": "53f41b08a27cc039e1a8ed2be9a202e924f31bad"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/spatie/flare-client-php/zipball/bf1716eb98bd689451b071548ae9e70738dce62f",
- "reference": "bf1716eb98bd689451b071548ae9e70738dce62f",
+ "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|^12.0",
+ "illuminate/pipeline": "^8.0|^9.0|^10.0|^11.0|^12.0|^13.0",
"php": "^8.0",
"spatie/backtrace": "^1.6.1",
- "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"
+ "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",
@@ -15312,7 +15088,7 @@
],
"support": {
"issues": "https://github.com/spatie/flare-client-php/issues",
- "source": "https://github.com/spatie/flare-client-php/tree/1.10.1"
+ "source": "https://github.com/spatie/flare-client-php/tree/1.11.1"
},
"funding": [
{
@@ -15320,41 +15096,44 @@
"type": "github"
}
],
- "time": "2025-02-14T13:42:06+00:00"
+ "time": "2026-05-15T09:31:32+00:00"
},
{
"name": "spatie/ignition",
- "version": "1.15.1",
+ "version": "1.16.0",
"source": {
"type": "git",
"url": "https://github.com/spatie/ignition.git",
- "reference": "31f314153020aee5af3537e507fef892ffbf8c85"
+ "reference": "b59385bb7aa24dae81bcc15850ebecfda7b40838"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/spatie/ignition/zipball/31f314153020aee5af3537e507fef892ffbf8c85",
- "reference": "31f314153020aee5af3537e507fef892ffbf8c85",
+ "url": "https://api.github.com/repos/spatie/ignition/zipball/b59385bb7aa24dae81bcc15850ebecfda7b40838",
+ "reference": "b59385bb7aa24dae81bcc15850ebecfda7b40838",
"shasum": ""
},
"require": {
"ext-json": "*",
"ext-mbstring": "*",
"php": "^8.0",
- "spatie/error-solutions": "^1.0",
- "spatie/flare-client-php": "^1.7",
- "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|^12.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": {
@@ -15403,20 +15182,20 @@
"type": "github"
}
],
- "time": "2025-02-21T14:31:39+00:00"
+ "time": "2026-03-17T10:51:08+00:00"
},
{
"name": "spatie/laravel-ignition",
- "version": "2.11.0",
+ "version": "2.12.0",
"source": {
"type": "git",
"url": "https://github.com/spatie/laravel-ignition.git",
- "reference": "11f38d1ff7abc583a61c96bf3c1b03610a69cccd"
+ "reference": "45b3b6e1e73fc161cba2149972698644b99594ee"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/11f38d1ff7abc583a61c96bf3c1b03610a69cccd",
- "reference": "11f38d1ff7abc583a61c96bf3c1b03610a69cccd",
+ "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/45b3b6e1e73fc161cba2149972698644b99594ee",
+ "reference": "45b3b6e1e73fc161cba2149972698644b99594ee",
"shasum": ""
},
"require": {
@@ -15426,7 +15205,7 @@
"illuminate/support": "^11.0|^12.0|^13.0",
"nesbot/carbon": "^2.72|^3.0",
"php": "^8.2",
- "spatie/ignition": "^1.15.1",
+ "spatie/ignition": "^1.16",
"symfony/console": "^7.4|^8.0",
"symfony/var-dumper": "^7.4|^8.0"
},
@@ -15495,7 +15274,7 @@
"type": "github"
}
],
- "time": "2026-02-22T19:14:05+00:00"
+ "time": "2026-03-17T12:20:04+00:00"
},
{
"name": "staabm/side-effects-detector",
@@ -15551,28 +15330,27 @@
},
{
"name": "symfony/yaml",
- "version": "v7.4.6",
+ "version": "v8.0.11",
"source": {
"type": "git",
"url": "https://github.com/symfony/yaml.git",
- "reference": "58751048de17bae71c5aa0d13cb19d79bca26391"
+ "reference": "48046fbd5567bd1717f278eaa2cfc3131f489984"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/yaml/zipball/58751048de17bae71c5aa0d13cb19d79bca26391",
- "reference": "58751048de17bae71c5aa0d13cb19d79bca26391",
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/48046fbd5567bd1717f278eaa2cfc3131f489984",
+ "reference": "48046fbd5567bd1717f278eaa2cfc3131f489984",
"shasum": ""
},
"require": {
- "php": ">=8.2",
- "symfony/deprecation-contracts": "^2.5|^3",
+ "php": ">=8.4",
"symfony/polyfill-ctype": "^1.8"
},
"conflict": {
- "symfony/console": "<6.4"
+ "symfony/console": "<7.4"
},
"require-dev": {
- "symfony/console": "^6.4|^7.0|^8.0"
+ "symfony/console": "^7.4|^8.0"
},
"bin": [
"Resources/bin/yaml-lint"
@@ -15603,7 +15381,7 @@
"description": "Loads and dumps YAML files",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/yaml/tree/v7.4.6"
+ "source": "https://github.com/symfony/yaml/tree/v8.0.11"
},
"funding": [
{
@@ -15623,7 +15401,7 @@
"type": "tidelift"
}
],
- "time": "2026-02-09T09:33:46+00:00"
+ "time": "2026-05-13T12:07:53+00:00"
},
{
"name": "ta-tikoma/phpunit-architecture-test",
@@ -15736,16 +15514,16 @@
},
{
"name": "webmozart/assert",
- "version": "2.1.6",
+ "version": "2.3.0",
"source": {
"type": "git",
"url": "https://github.com/webmozarts/assert.git",
- "reference": "ff31ad6efc62e66e518fbab1cde3453d389bcdc8"
+ "reference": "eb0d790f735ba6cff25c683a85a1da0eadeff9e4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/webmozarts/assert/zipball/ff31ad6efc62e66e518fbab1cde3453d389bcdc8",
- "reference": "ff31ad6efc62e66e518fbab1cde3453d389bcdc8",
+ "url": "https://api.github.com/repos/webmozarts/assert/zipball/eb0d790f735ba6cff25c683a85a1da0eadeff9e4",
+ "reference": "eb0d790f735ba6cff25c683a85a1da0eadeff9e4",
"shasum": ""
},
"require": {
@@ -15792,20 +15570,18 @@
],
"support": {
"issues": "https://github.com/webmozarts/assert/issues",
- "source": "https://github.com/webmozarts/assert/tree/2.1.6"
+ "source": "https://github.com/webmozarts/assert/tree/2.3.0"
},
- "time": "2026-02-27T10:28:38+00:00"
+ "time": "2026-04-11T10:33:05+00:00"
}
],
"aliases": [],
"minimum-stability": "stable",
- "stability-flags": {
- "valentin-morice/filament-json-column": 20
- },
+ "stability-flags": {},
"prefer-stable": true,
"prefer-lowest": false,
"platform": {
- "php": "^8.2",
+ "php": "^8.5",
"ext-curl": "*",
"ext-dom": "*",
"ext-fileinfo": "*",
@@ -15813,6 +15589,6 @@
"ext-mongodb": "*",
"ext-redis": "*"
},
- "platform-dev": [],
- "plugin-api-version": "2.6.0"
+ "platform-dev": {},
+ "plugin-api-version": "2.9.0"
}
diff --git a/config/app.php b/config/app.php
index 1a0d6f850..8e6c14198 100644
--- a/config/app.php
+++ b/config/app.php
@@ -3,6 +3,68 @@
use App\Facades\CountHelper;
use App\Facades\DateHelper;
use App\Facades\TranscriptionMapHelper;
+use App\Providers\AppServiceProvider;
+use App\Providers\Filament\AdminPanelProvider;
+use App\Providers\GroupEventServiceProvider;
+use App\Providers\HelpersServiceProvider;
+use App\Providers\InfrastructureServiceProvider;
+use App\Providers\SupportServiceProvider;
+use Illuminate\Auth\AuthServiceProvider;
+use Illuminate\Auth\Passwords\PasswordResetServiceProvider;
+use Illuminate\Broadcasting\BroadcastServiceProvider;
+use Illuminate\Bus\BusServiceProvider;
+use Illuminate\Cache\CacheServiceProvider;
+use Illuminate\Cookie\CookieServiceProvider;
+use Illuminate\Database\DatabaseServiceProvider;
+use Illuminate\Database\Eloquent\Model;
+use Illuminate\Encryption\EncryptionServiceProvider;
+use Illuminate\Filesystem\FilesystemServiceProvider;
+use Illuminate\Foundation\Providers\ConsoleSupportServiceProvider;
+use Illuminate\Foundation\Providers\FoundationServiceProvider;
+use Illuminate\Hashing\HashServiceProvider;
+use Illuminate\Mail\MailServiceProvider;
+use Illuminate\Notifications\NotificationServiceProvider;
+use Illuminate\Pagination\PaginationServiceProvider;
+use Illuminate\Pipeline\PipelineServiceProvider;
+use Illuminate\Queue\QueueServiceProvider;
+use Illuminate\Redis\RedisServiceProvider;
+use Illuminate\Session\SessionServiceProvider;
+use Illuminate\Support\Arr;
+use Illuminate\Support\Facades\Artisan;
+use Illuminate\Support\Facades\Auth;
+use Illuminate\Support\Facades\Blade;
+use Illuminate\Support\Facades\Broadcast;
+use Illuminate\Support\Facades\Bus;
+use Illuminate\Support\Facades\Cache;
+use Illuminate\Support\Facades\Config;
+use Illuminate\Support\Facades\Cookie;
+use Illuminate\Support\Facades\Crypt;
+use Illuminate\Support\Facades\DB;
+use Illuminate\Support\Facades\Event;
+use Illuminate\Support\Facades\File;
+use Illuminate\Support\Facades\Gate;
+use Illuminate\Support\Facades\Hash;
+use Illuminate\Support\Facades\Lang;
+use Illuminate\Support\Facades\Log;
+use Illuminate\Support\Facades\Mail;
+use Illuminate\Support\Facades\Notification;
+use Illuminate\Support\Facades\Password;
+use Illuminate\Support\Facades\Queue;
+use Illuminate\Support\Facades\Redirect;
+use Illuminate\Support\Facades\Redis;
+use Illuminate\Support\Facades\Request;
+use Illuminate\Support\Facades\Response;
+use Illuminate\Support\Facades\Route;
+use Illuminate\Support\Facades\Schema;
+use Illuminate\Support\Facades\Session;
+use Illuminate\Support\Facades\Storage;
+use Illuminate\Support\Facades\URL;
+use Illuminate\Support\Facades\Validator;
+use Illuminate\Support\Facades\View;
+use Illuminate\Support\Str;
+use Illuminate\Translation\TranslationServiceProvider;
+use Illuminate\Validation\ValidationServiceProvider;
+use Illuminate\View\ViewServiceProvider;
return [
@@ -17,7 +79,6 @@
'current_path' => env('APP_CURRENT_PATH', '/data/web/biospex/current'),
'server_user' => env('APP_SERVER_USER', 'ubuntu'),
'registration' => env('APP_REGISTRATION', true),
- 'opcache_webhook_token' => env('OPCACHE_WEBHOOK_TOKEN', null),
/*
|--------------------------------------------------------------------------
@@ -156,41 +217,41 @@
/*
* Laravel Framework Service Providers...
*/
- Illuminate\Auth\AuthServiceProvider::class,
- Illuminate\Broadcasting\BroadcastServiceProvider::class,
- Illuminate\Bus\BusServiceProvider::class,
- Illuminate\Cache\CacheServiceProvider::class,
- Illuminate\Foundation\Providers\ConsoleSupportServiceProvider::class,
- Illuminate\Cookie\CookieServiceProvider::class,
- Illuminate\Database\DatabaseServiceProvider::class,
- Illuminate\Encryption\EncryptionServiceProvider::class,
- Illuminate\Filesystem\FilesystemServiceProvider::class,
- Illuminate\Foundation\Providers\FoundationServiceProvider::class,
- Illuminate\Hashing\HashServiceProvider::class,
- Illuminate\Mail\MailServiceProvider::class,
- Illuminate\Notifications\NotificationServiceProvider::class,
- Illuminate\Pagination\PaginationServiceProvider::class,
- Illuminate\Pipeline\PipelineServiceProvider::class,
- Illuminate\Queue\QueueServiceProvider::class,
- Illuminate\Redis\RedisServiceProvider::class,
- Illuminate\Auth\Passwords\PasswordResetServiceProvider::class,
- Illuminate\Session\SessionServiceProvider::class,
- Illuminate\Translation\TranslationServiceProvider::class,
- Illuminate\Validation\ValidationServiceProvider::class,
- Illuminate\View\ViewServiceProvider::class,
+ AuthServiceProvider::class,
+ BroadcastServiceProvider::class,
+ BusServiceProvider::class,
+ CacheServiceProvider::class,
+ ConsoleSupportServiceProvider::class,
+ CookieServiceProvider::class,
+ DatabaseServiceProvider::class,
+ EncryptionServiceProvider::class,
+ FilesystemServiceProvider::class,
+ FoundationServiceProvider::class,
+ HashServiceProvider::class,
+ MailServiceProvider::class,
+ NotificationServiceProvider::class,
+ PaginationServiceProvider::class,
+ PipelineServiceProvider::class,
+ QueueServiceProvider::class,
+ RedisServiceProvider::class,
+ PasswordResetServiceProvider::class,
+ SessionServiceProvider::class,
+ TranslationServiceProvider::class,
+ ValidationServiceProvider::class,
+ ViewServiceProvider::class,
/*
* Application Service Providers...
*/
- App\Providers\AppServiceProvider::class,
+ AppServiceProvider::class,
App\Providers\AuthServiceProvider::class,
App\Providers\BroadcastServiceProvider::class,
- App\Providers\Filament\AdminPanelProvider::class,
- App\Providers\InfrastructureServiceProvider::class,
- App\Providers\SupportServiceProvider::class,
- App\Providers\HelpersServiceProvider::class,
+ AdminPanelProvider::class,
+ InfrastructureServiceProvider::class,
+ SupportServiceProvider::class,
+ HelpersServiceProvider::class,
App\Providers\ViewServiceProvider::class,
- App\Providers\GroupEventServiceProvider::class,
+ GroupEventServiceProvider::class,
],
@@ -208,40 +269,40 @@
'aliases' => [
'App' => Illuminate\Support\Facades\App::class,
- 'Arr' => Illuminate\Support\Arr::class,
- 'Artisan' => Illuminate\Support\Facades\Artisan::class,
- 'Auth' => Illuminate\Support\Facades\Auth::class,
- 'Blade' => Illuminate\Support\Facades\Blade::class,
- 'Broadcast' => Illuminate\Support\Facades\Broadcast::class,
- 'Bus' => Illuminate\Support\Facades\Bus::class,
- 'Cache' => Illuminate\Support\Facades\Cache::class,
- 'Config' => Illuminate\Support\Facades\Config::class,
- 'Cookie' => Illuminate\Support\Facades\Cookie::class,
- 'Crypt' => Illuminate\Support\Facades\Crypt::class,
- 'DB' => Illuminate\Support\Facades\DB::class,
- 'Eloquent' => Illuminate\Database\Eloquent\Model::class,
- 'Event' => Illuminate\Support\Facades\Event::class,
- 'File' => Illuminate\Support\Facades\File::class,
- 'Gate' => Illuminate\Support\Facades\Gate::class,
- 'Hash' => Illuminate\Support\Facades\Hash::class,
- 'Lang' => Illuminate\Support\Facades\Lang::class,
- 'Log' => Illuminate\Support\Facades\Log::class,
- 'Mail' => Illuminate\Support\Facades\Mail::class,
- 'Notification' => Illuminate\Support\Facades\Notification::class,
- 'Password' => Illuminate\Support\Facades\Password::class,
- 'Queue' => Illuminate\Support\Facades\Queue::class,
- 'Redirect' => Illuminate\Support\Facades\Redirect::class,
- 'Redis' => Illuminate\Support\Facades\Redis::class,
- 'Request' => Illuminate\Support\Facades\Request::class,
- 'Response' => Illuminate\Support\Facades\Response::class,
- 'Route' => Illuminate\Support\Facades\Route::class,
- 'Schema' => Illuminate\Support\Facades\Schema::class,
- 'Session' => Illuminate\Support\Facades\Session::class,
- 'Storage' => Illuminate\Support\Facades\Storage::class,
- 'Str' => Illuminate\Support\Str::class,
- 'URL' => Illuminate\Support\Facades\URL::class,
- 'Validator' => Illuminate\Support\Facades\Validator::class,
- 'View' => Illuminate\Support\Facades\View::class,
+ 'Arr' => Arr::class,
+ 'Artisan' => Artisan::class,
+ 'Auth' => Auth::class,
+ 'Blade' => Blade::class,
+ 'Broadcast' => Broadcast::class,
+ 'Bus' => Bus::class,
+ 'Cache' => Cache::class,
+ 'Config' => Config::class,
+ 'Cookie' => Cookie::class,
+ 'Crypt' => Crypt::class,
+ 'DB' => DB::class,
+ 'Eloquent' => Model::class,
+ 'Event' => Event::class,
+ 'File' => File::class,
+ 'Gate' => Gate::class,
+ 'Hash' => Hash::class,
+ 'Lang' => Lang::class,
+ 'Log' => Log::class,
+ 'Mail' => Mail::class,
+ 'Notification' => Notification::class,
+ 'Password' => Password::class,
+ 'Queue' => Queue::class,
+ 'Redirect' => Redirect::class,
+ 'Redis' => Redis::class,
+ 'Request' => Request::class,
+ 'Response' => Response::class,
+ 'Route' => Route::class,
+ 'Schema' => Schema::class,
+ 'Session' => Session::class,
+ 'Storage' => Storage::class,
+ 'Str' => Str::class,
+ 'URL' => URL::class,
+ 'Validator' => Validator::class,
+ 'View' => View::class,
// ### Packages
'CountHelper' => CountHelper::class,
diff --git a/config/database.php b/config/database.php
index 44bc4cf2a..d67aea405 100644
--- a/config/database.php
+++ b/config/database.php
@@ -1,5 +1,7 @@
false,
'engine' => null,
'options' => extension_loaded('pdo_mysql') ? array_filter([
- PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
+ Mysql::ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
]) : [],
],
diff --git a/config/debugbar.php b/config/debugbar.php
index f6163f243..c64b5f7e0 100644
--- a/config/debugbar.php
+++ b/config/debugbar.php
@@ -1,5 +1,7 @@
env('DEBUGBAR_ENABLED', null),
+ 'enabled' => env('DEBUGBAR_ENABLED'),
+ 'collect_jobs' => env('DEBUGBAR_COLLECT_JOBS', false),
'except' => [
'telescope*',
- 'api.biospex.test',
+ 'horizon*',
+ '_boost/browser-logs',
+ 'livewire-*/livewire.js',
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | DataCollectors
+ |--------------------------------------------------------------------------
+ |
+ | Enable/disable DataCollectors
+ |
+ */
+
+ 'collectors' => [
+ 'phpinfo' => env('DEBUGBAR_COLLECTORS_PHPINFO', false), // Php version
+ 'messages' => env('DEBUGBAR_COLLECTORS_MESSAGES', true), // Messages
+ 'time' => env('DEBUGBAR_COLLECTORS_TIME', true), // Time Datalogger
+ 'memory' => env('DEBUGBAR_COLLECTORS_MEMORY', true), // Memory usage
+ 'exceptions' => env('DEBUGBAR_COLLECTORS_EXCEPTIONS', true), // Exception displayer
+ 'log' => env('DEBUGBAR_COLLECTORS_LOG', true), // Logs from Monolog (merged in messages if enabled)
+ 'db' => env('DEBUGBAR_COLLECTORS_DB', true), // Show database (PDO) queries and bindings
+ 'views' => env('DEBUGBAR_COLLECTORS_VIEWS', true), // Views with their data
+ 'route' => env('DEBUGBAR_COLLECTORS_ROUTE', false), // Current route information
+ 'auth' => env('DEBUGBAR_COLLECTORS_AUTH', false), // Display Laravel authentication status
+ 'gate' => env('DEBUGBAR_COLLECTORS_GATE', true), // Display Laravel Gate checks
+ 'session' => env('DEBUGBAR_COLLECTORS_SESSION', false), // Display session data
+ 'symfony_request' => env('DEBUGBAR_COLLECTORS_SYMFONY_REQUEST', true), // Default Request Data
+ 'mail' => env('DEBUGBAR_COLLECTORS_MAIL', true), // Catch mail messages
+ 'laravel' => env('DEBUGBAR_COLLECTORS_LARAVEL', true), // Laravel version and environment
+ 'events' => env('DEBUGBAR_COLLECTORS_EVENTS', false), // All events fired
+ 'logs' => env('DEBUGBAR_COLLECTORS_LOGS', false), // Add the latest log messages
+ 'config' => env('DEBUGBAR_COLLECTORS_CONFIG', false), // Display config settings
+ 'cache' => env('DEBUGBAR_COLLECTORS_CACHE', true), // Display cache events
+ 'models' => env('DEBUGBAR_COLLECTORS_MODELS', true), // Display models
+ 'livewire' => env('DEBUGBAR_COLLECTORS_LIVEWIRE', true), // Display Livewire (when available)
+ 'inertia' => env('DEBUGBAR_COLLECTORS_INERTIA', true), // Display Inertia (when available)
+ 'jobs' => env('DEBUGBAR_COLLECTORS_JOBS', true), // Display dispatched jobs
+ 'pennant' => env('DEBUGBAR_COLLECTORS_PENNANT', true), // Display Pennant feature flags
+ 'http_client' => env('DEBUGBAR_COLLECTORS_HTTP_CLIENT', true), // Display HTTP Client requests
],
/*
|--------------------------------------------------------------------------
- | Storage settings
+ | Extra options
|--------------------------------------------------------------------------
|
- | DebugBar stores data for session/ajax requests.
- | You can disable this, so the debugbar stores data in headers/session,
- | but this can cause problems with large data collectors.
- | By default, file storage (in the storage folder) is used. Redis and PDO
- | can also be used. For PDO, run the package migrations first.
+ | Configure some DataCollectors
|
*/
+
+ 'options' => [
+ 'time' => [
+ 'memory_usage' => env('DEBUGBAR_OPTIONS_TIME_MEMORY_USAGE', false), // Calculated by subtracting memory start and end, it may be inaccurate
+ ],
+ 'messages' => [
+ 'trace' => env('DEBUGBAR_OPTIONS_MESSAGES_TRACE', true), // Trace the origin of the debug message
+ 'backtrace_exclude_paths' => [], // Paths to exclude from backtrace. (in addition to defaults)
+ 'capture_dumps' => env('DEBUGBAR_OPTIONS_MESSAGES_CAPTURE_DUMPS', false), // Capture laravel `dump();` as message
+ 'timeline' => env('DEBUGBAR_OPTIONS_MESSAGES_TIMELINE', true), // Add messages to the timeline
+ ],
+ 'memory' => [
+ 'reset_peak' => env('DEBUGBAR_OPTIONS_MEMORY_RESET_PEAK', false), // run memory_reset_peak_usage before collecting
+ 'with_baseline' => env('DEBUGBAR_OPTIONS_MEMORY_WITH_BASELINE', false), // Set boot memory usage as memory peak baseline
+ 'precision' => (int) env('DEBUGBAR_OPTIONS_MEMORY_PRECISION', 0), // Memory rounding precision
+ ],
+ 'auth' => [
+ 'show_name' => env('DEBUGBAR_OPTIONS_AUTH_SHOW_NAME', true), // Also show the users name/email in the debugbar
+ 'show_guards' => env('DEBUGBAR_OPTIONS_AUTH_SHOW_GUARDS', true), // Show the guards that are used
+ ],
+ 'gate' => [
+ 'trace' => false, // Trace the origin of the Gate checks
+ 'timeline' => env('DEBUGBAR_OPTIONS_GATE_TIMELINE', false), // Add mails to the timeline
+ ],
+ 'db' => [
+ 'with_params' => env('DEBUGBAR_OPTIONS_WITH_PARAMS', true), // Render SQL with the parameters substituted
+ 'exclude_paths' => [ // Paths to exclude entirely from the collector
+ // 'vendor/laravel/framework/src/Illuminate/Session', // Exclude sessions queries
+ ],
+ 'backtrace' => env('DEBUGBAR_OPTIONS_DB_BACKTRACE', true), // Use a backtrace to find the origin of the query in your files.
+ 'backtrace_exclude_paths' => [], // Paths to exclude from backtrace. (in addition to defaults)
+ 'backtrace_editor_links' => env('DEBUGBAR_OPTIONS_DB_BACKTRACE_EDITOR_LINKS', false), // Add editor links to backtrace entries (non-vendor files only)
+ 'timeline' => env('DEBUGBAR_OPTIONS_DB_TIMELINE', false), // Add the queries to the timeline
+ 'duration_background' => env('DEBUGBAR_OPTIONS_DB_DURATION_BACKGROUND', true), // Show shaded background on each query relative to how long it took to execute.
+ 'explain' => [ // Show EXPLAIN output on queries
+ 'enabled' => env('DEBUGBAR_OPTIONS_DB_EXPLAIN_ENABLED', true),
+ ],
+ 'show_query_result' => env('DEBUGBAR_OPTIONS_DB_SHOW_QUERY_RESULT', false), // Show option to re-run SELECT queries and show the result
+ 'only_slow_queries' => env('DEBUGBAR_OPTIONS_DB_ONLY_SLOW_QUERIES', true), // Only track queries that last longer than `slow_threshold`
+ 'slow_threshold' => env('DEBUGBAR_OPTIONS_DB_SLOW_THRESHOLD', false), // Max query execution time (ms). Exceeding queries will be highlighted
+ 'memory_usage' => env('DEBUGBAR_OPTIONS_DB_MEMORY_USAGE', false), // Show queries memory usage
+ 'soft_limit' => (int) env('DEBUGBAR_OPTIONS_DB_SOFT_LIMIT', 100), // After the soft limit, no parameters/backtrace are captured
+ 'hard_limit' => (int) env('DEBUGBAR_OPTIONS_DB_HARD_LIMIT', 500), // After the hard limit, queries are ignored
+ ],
+ 'mail' => [
+ 'timeline' => env('DEBUGBAR_OPTIONS_MAIL_TIMELINE', true), // Add mails to the timeline
+ 'show_body' => env('DEBUGBAR_OPTIONS_MAIL_SHOW_BODY', true),
+ ],
+ 'views' => [
+ 'timeline' => env('DEBUGBAR_OPTIONS_VIEWS_TIMELINE', true), // Add the views to the timeline
+ 'data' => env('DEBUGBAR_OPTIONS_VIEWS_DATA', false), // True for all data, 'keys' for only names, false for no parameters.
+ 'group' => (int) env('DEBUGBAR_OPTIONS_VIEWS_GROUP', 50), // Group duplicate views. Pass value to auto-group, or true/false to force
+ 'exclude_paths' => [ // Add the paths which you don't want to appear in the views
+ 'vendor/filament', // Exclude Filament components by default
+ ],
+ ],
+ 'inertia' => [
+ 'pages' => env('DEBUGBAR_OPTIONS_VIEWS_INERTIA_PAGES', 'js/Pages'), // Path for Inertia views
+ ],
+ 'route' => [
+ 'label' => env('DEBUGBAR_OPTIONS_ROUTE_LABEL', true), // Show complete route on bar
+ ],
+ 'session' => [
+ 'masked' => [], // List of keys that are masked
+ ],
+ 'symfony_request' => [
+ 'label' => env('DEBUGBAR_OPTIONS_SYMFONY_REQUEST_LABEL', true), // Show route on bar
+ 'masked' => [], // List of keys that are masked
+ ],
+ 'events' => [
+ 'data' => env('DEBUGBAR_OPTIONS_EVENTS_DATA', false), // Collect events data
+ 'listeners' => env('DEBUGBAR_OPTIONS_EVENTS_LISTENERS', false), // Add listeners to the events data
+ 'excluded' => [], // Example: ['eloquent.*', 'composing', Illuminate\Cache\Events\CacheHit::class]
+ ],
+ 'logs' => [
+ 'file' => env('DEBUGBAR_OPTIONS_LOGS_FILE'),
+ ],
+ 'config' => [
+ 'masked' => [],
+ ],
+ 'cache' => [
+ 'values' => env('DEBUGBAR_OPTIONS_CACHE_VALUES', true), // Collect cache values
+ 'timeline' => env('DEBUGBAR_OPTIONS_CACHE_TIMELINE', false), // Add cache events to the timeline
+ ],
+ 'http_client' => [
+ 'masked' => [],
+ 'timeline' => env('DEBUGBAR_OPTIONS_HTTP_CLIENT_TIMELINE', true), // Add requests to the timeline
+ ],
+ ],
+
+ /**
+ * Add any additional DataCollectors by adding the class name of a DataCollector or invokable class.
+ */
+ 'custom_collectors' => [
+ // MyCollector::class => env('DEBUGBAR_COLLECTORS_MYCOLLECTOR', true),
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Editor
+ |--------------------------------------------------------------------------
+ |
+ | Choose your preferred editor to use when clicking file name.
+ |
+ | Supported: "sublime", "textmate", "emacs", "macvim", "codelite",
+ | "phpstorm", "phpstorm-remote", "idea", "idea-remote",
+ | "vscode", "vscode-insiders", "vscode-remote", "vscode-insiders-remote",
+ | "vscodium", "nova", "xdebug", "atom", "espresso",
+ | "netbeans", "cursor", "windsurf", "zed", "antigravity"
+ |
+ */
+
+ 'editor' => env('DEBUGBAR_EDITOR') ?: env('IGNITION_EDITOR', 'phpstorm'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Capture Ajax Requests
+ |--------------------------------------------------------------------------
+ |
+ | The Debugbar can capture Ajax requests and display them. If you don't want this (ie. because of errors),
+ | you can use this option to disable sending the data through the headers.
+ |
+ | Optionally, you can also send ServerTiming headers on ajax requests for the Chrome DevTools.
+ |
+ | Note for your request to be identified as ajax requests they must either send the header
+ | X-Requested-With with the value XMLHttpRequest (most JS libraries send this), or have application/json as a Accept header.
+ |
+ | By default `ajax_handler_auto_show` is set to true allowing ajax requests to be shown automatically in the Debugbar.
+ | Changing `ajax_handler_auto_show` to false will prevent the Debugbar from reloading.
+ |
+ | You can defer loading the dataset, so it will be loaded with ajax after the request is done. (Experimental)
+ */
+
+ 'capture_ajax' => env('DEBUGBAR_CAPTURE_AJAX', true),
+ 'add_ajax_timing' => env('DEBUGBAR_ADD_AJAX_TIMING', false),
+ 'ajax_handler_auto_show' => env('DEBUGBAR_AJAX_HANDLER_AUTO_SHOW', true),
+ 'ajax_handler_enable_tab' => env('DEBUGBAR_AJAX_HANDLER_ENABLE_TAB', true),
+ 'defer_datasets' => env('DEBUGBAR_DEFER_DATASETS', false),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Remote Path Mapping
+ |--------------------------------------------------------------------------
+ |
+ | If you are using a remote dev server, like Laravel Homestead, Docker, or
+ | even a remote VPS, it will be necessary to specify your path mapping.
+ |
+ | Leaving one, or both of these, empty or null will not trigger the remote
+ | URL changes and Debugbar will treat your editor links as local files.
+ |
+ | "remote_sites_path" is an absolute base path for your sites or projects
+ | in Homestead, Vagrant, Docker, or another remote development server.
+ |
+ | Example value: "/home/vagrant/Code"
+ |
+ | "local_sites_path" is an absolute base path for your sites or projects
+ | on your local computer where your IDE or code editor is running on.
+ |
+ | Example values: "/Users//Code", "C:\Users\\Documents\Code"
+ |
+ */
+
+ 'remote_sites_path' => env('DEBUGBAR_REMOTE_SITES_PATH'),
+ 'local_sites_path' => env('DEBUGBAR_LOCAL_SITES_PATH', env('IGNITION_LOCAL_SITES_PATH')),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Storage settings
+ |--------------------------------------------------------------------------
+ |
+ | Debugbar stores data for session/ajax requests.
+ | You can disable this, so the debugbar stores data in headers/session,
+ | but this can cause problems with large data collectors.
+ | By default, file storage (in the storage folder) is used. Sqlite will
+ | create a database file in the storage folder.
+ | Redis and PDO can also be used. For PDO, run the package migrations first.
+ |
+ | Warning: Enabling storage.open will allow everyone to access previous
+ | request, do not enable open storage in publicly available environments!
+ | Specify a callback if you want to limit based on IP or authentication.
+ | Leaving it to null will allow localhost only.
+ */
'storage' => [
- 'enabled' => true,
- 'driver' => 'redis', // redis, file, pdo, custom
- 'path' => storage_path('debugbar'), // For file driver
- 'connection' => null, // Leave null for default connection (Redis/PDO)
- 'provider' => '', // Instance of StorageInterface for custom driver
+ 'enabled' => env('DEBUGBAR_STORAGE_ENABLED', true),
+ 'open' => env('DEBUGBAR_OPEN_STORAGE'), // bool/callback.
+ 'driver' => env('DEBUGBAR_STORAGE_DRIVER', 'file'), // redis, file, sqlite, pdo, custom
+ 'path' => env('DEBUGBAR_STORAGE_PATH', storage_path('debugbar')), // For file driver
+ 'connection' => env('DEBUGBAR_STORAGE_CONNECTION'), // Leave null for default connection (Redis/PDO)
+ 'provider' => env('DEBUGBAR_STORAGE_PROVIDER', ''), // Instance of StorageInterface for custom driver
],
/*
|--------------------------------------------------------------------------
- | Vendors
+ | Force Allow Debugbar to be Enabled during boot
|--------------------------------------------------------------------------
|
- | Vendor files are included by default, but can be set to false.
- | This can also be set to 'js' or 'css', to only include javascript or css vendor files.
- | Vendor files are for css: font-awesome (including fonts) and highlight.js (css files)
- | and for js: jquery and and highlight.js
- | So if you want syntax highlighting, set it to true.
- | jQuery is set to not conflict with existing jQuery scripts.
+ | By default, debugbar can only be enabled when the app is in debug mode and not in production.
+ | For special cases, eg admin panels behind proper authentication, you can force debugbar to be enabled.
+ | Just this setting alone will not enable the Debugbar, but it will boot the Debugbar including routes and listeners,
+ | so you can enable it further in the requests using $debugbar->enable().
|
- */
-
- 'include_vendors' => true,
+ | Warning: Use with caution. Debugbar is a development tool and should never be exposed in non-trusted endpoints.
+ |
+ */
+ 'force_allow_enable' => env('DEBUGBAR_FORCE_ALLOW_ENABLE', false),
/*
|--------------------------------------------------------------------------
- | Capture Ajax Requests
+ | Assets
|--------------------------------------------------------------------------
|
- | The Debugbar can capture Ajax requests and display them. If you don't want this (ie. because of errors),
- | you can use this option to disable sending the data through the headers.
+ | Vendor files are included by default, but can be set to false.
+ | This can also be set to 'js' or 'css', to only include javascript or css vendor files.
+ | Vendor files are for css: (none)
+ | and for js: highlight.js
+ | So if you want syntax highlighting, set it to true.
|
- | Optionally, you can also send ServerTiming headers on ajax requests for the Chrome DevTools.
*/
-
- 'capture_ajax' => true,
- 'add_ajax_timing' => false,
+ 'use_dist_files' => env('DEBUGBAR_USE_DIST_FILES', true),
+ 'include_vendors' => env('DEBUGBAR_INCLUDE_VENDORS', true),
/*
|--------------------------------------------------------------------------
@@ -78,8 +299,18 @@
| When enabled, the Debugbar shows deprecated warnings for Symfony components
| in the Messages tab.
|
+ | You can set a custom error reporting level to filter which errors are
+ | handled. For example, to exclude deprecation warnings:
+ | E_ALL & ~E_DEPRECATED & ~E_USER_DEPRECATED
+ |
+ | To exclude notices, strict warnings, and deprecations:
+ | E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED & ~E_USER_DEPRECATED
+ |
+ | Defaults to E_ALL (all errors).
+ |
*/
- 'error_handler' => false,
+ 'error_handler' => env('DEBUGBAR_ERROR_HANDLER', false),
+ 'error_level' => env('DEBUGBAR_ERROR_LEVEL', E_ALL),
/*
|--------------------------------------------------------------------------
@@ -90,113 +321,69 @@
| Extension, without the server-side code. It uses Debugbar collectors instead.
|
*/
- 'clockwork' => false,
+ 'clockwork' => env('DEBUGBAR_CLOCKWORK', false),
/*
|--------------------------------------------------------------------------
- | DataCollectors
+ | Inject Debugbar in Response
|--------------------------------------------------------------------------
|
- | Enable/disable DataCollectors
+ | Usually, the debugbar is added just before