diff --git a/.env.ci b/.env.ci index 7fe70963..394f7dc7 100644 --- a/.env.ci +++ b/.env.ci @@ -64,3 +64,6 @@ GOTENBERG_URL=http://localhost:3000 # Octane OCTANE_SERVER=frankenphp + +# Inertia +INERTIA_SSR_ENABLED=false diff --git a/.env.example b/.env.example index 5c0a4fee..69eceed2 100644 --- a/.env.example +++ b/.env.example @@ -88,3 +88,6 @@ FORWARD_DB_PORT=54329 VITE_HOST_NAME=vite.solidtime.test VITE_APP_NAME="${APP_NAME}" #SAIL_XDEBUG_MODE=develop,debug,coverage + +# This app does not ship a Node SSR bundle, so Inertia SSR must stay disabled. +INERTIA_SSR_ENABLED=false diff --git a/.env.production b/.env.production index 9c3cfa6e..e56edb7d 100644 --- a/.env.production +++ b/.env.production @@ -13,3 +13,5 @@ LOG_DEPRECATIONS_CHANNEL=null LOG_LEVEL=debug DB_CONNECTION=pgsql + +INERTIA_SSR_ENABLED=false diff --git a/app/Auth/ActiveUserProvider.php b/app/Auth/ActiveUserProvider.php index 4c72656c..23fc2c57 100644 --- a/app/Auth/ActiveUserProvider.php +++ b/app/Auth/ActiveUserProvider.php @@ -7,6 +7,7 @@ namespace App\Auth; use Illuminate\Auth\EloquentUserProvider; use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Model; +use Override; /** * User provider that only resolves non-placeholder users. @@ -26,7 +27,7 @@ class ActiveUserProvider extends EloquentUserProvider * @param Model|null $model * @return Builder */ - #[\Override] + #[Override] protected function newModelQuery($model = null): Builder { $query = parent::newModelQuery($model); diff --git a/app/Console/Commands/SelfHost/SelfHostDatabaseConsistency.php b/app/Console/Commands/SelfHost/SelfHostDatabaseConsistency.php index 2c821468..88a11184 100644 --- a/app/Console/Commands/SelfHost/SelfHostDatabaseConsistency.php +++ b/app/Console/Commands/SelfHost/SelfHostDatabaseConsistency.php @@ -10,6 +10,7 @@ use Illuminate\Database\Query\JoinClause; use Illuminate\Support\Collection; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Log; +use stdClass; class SelfHostDatabaseConsistency extends Command { @@ -101,7 +102,7 @@ class SelfHostDatabaseConsistency extends Command } /** - * @param Collection $problems + * @param Collection $problems */ private function logProblems(Collection $problems, string $message, bool &$hadAProblem): void { diff --git a/app/Console/Commands/SelfHost/SelfHostGenerateKeysCommand.php b/app/Console/Commands/SelfHost/SelfHostGenerateKeysCommand.php index 2147a8fa..70a3ee1e 100644 --- a/app/Console/Commands/SelfHost/SelfHostGenerateKeysCommand.php +++ b/app/Console/Commands/SelfHost/SelfHostGenerateKeysCommand.php @@ -7,7 +7,7 @@ namespace App\Console\Commands\SelfHost; use Illuminate\Console\Command; use Illuminate\Encryption\Encrypter; use Illuminate\Support\Str; -use phpseclib3\Crypt\RSA; +use phpseclib4\Crypt\RSA; class SelfHostGenerateKeysCommand extends Command { diff --git a/app/Exceptions/Api/EntityStillInUseApiException.php b/app/Exceptions/Api/EntityStillInUseApiException.php index 9b5cabef..6a1ca6b4 100644 --- a/app/Exceptions/Api/EntityStillInUseApiException.php +++ b/app/Exceptions/Api/EntityStillInUseApiException.php @@ -4,6 +4,8 @@ declare(strict_types=1); namespace App\Exceptions\Api; +use Override; + class EntityStillInUseApiException extends ApiException { private string $modelToDelete; @@ -32,7 +34,7 @@ class EntityStillInUseApiException extends ApiException /** * Get the translated message for the exception. */ - #[\Override] + #[Override] public function getTranslatedMessage(): string { return __('exceptions.api.'.$this->getKey(), [ diff --git a/app/Filament/Resources/AuditResource.php b/app/Filament/Resources/AuditResource.php index 1a807aea..2b64ad50 100644 --- a/app/Filament/Resources/AuditResource.php +++ b/app/Filament/Resources/AuditResource.php @@ -4,13 +4,17 @@ declare(strict_types=1); namespace App\Filament\Resources; -use App\Filament\Resources\AuditResource\Pages; +use App\Filament\Resources\AuditResource\Pages\CreateAudit; +use App\Filament\Resources\AuditResource\Pages\ListAudits; +use App\Filament\Resources\AuditResource\Pages\ViewAudit; use App\Models\Audit; -use Filament\Forms; -use Filament\Forms\Form; +use Filament\Actions\ViewAction; +use Filament\Forms\Components\Textarea; +use Filament\Forms\Components\TextInput; use Filament\Resources\Resource; -use Filament\Tables; +use Filament\Schemas\Schema; use Filament\Tables\Columns\IconColumn; +use Filament\Tables\Columns\TextColumn; use Filament\Tables\Table; use Illuminate\Support\Str; use Novadaemon\FilamentPrettyJson\Form\PrettyJsonField; @@ -19,32 +23,32 @@ class AuditResource extends Resource { protected static ?string $model = Audit::class; - protected static ?string $navigationIcon = 'heroicon-o-archive-box'; + protected static string|\BackedEnum|null $navigationIcon = 'heroicon-o-archive-box'; - protected static ?string $navigationGroup = 'System'; + protected static string|\UnitEnum|null $navigationGroup = 'System'; - public static function form(Form $form): Form + public static function form(Schema $schema): Schema { - return $form - ->schema([ - Forms\Components\TextInput::make('user_type') + return $schema + ->components([ + TextInput::make('user_type') ->maxLength(255), - Forms\Components\TextInput::make('user_id'), - Forms\Components\TextInput::make('event') + TextInput::make('user_id'), + TextInput::make('event') ->required() ->maxLength(255), - Forms\Components\TextInput::make('auditable_type') + TextInput::make('auditable_type') ->required() ->maxLength(255), - Forms\Components\TextInput::make('auditable_id') + TextInput::make('auditable_id') ->required(), PrettyJsonField::make('old_values'), PrettyJsonField::make('new_values'), - Forms\Components\Textarea::make('url'), - Forms\Components\TextInput::make('ip_address'), - Forms\Components\TextInput::make('user_agent') + Textarea::make('url'), + TextInput::make('ip_address'), + TextInput::make('user_agent') ->maxLength(1023), - Forms\Components\TextInput::make('tags') + TextInput::make('tags') ->maxLength(255), ]); } @@ -53,27 +57,27 @@ class AuditResource extends Resource { return $table ->columns([ - Tables\Columns\TextColumn::make('user.name'), - Tables\Columns\TextColumn::make('event'), - Tables\Columns\TextColumn::make('auditable_type'), - Tables\Columns\TextColumn::make('auditable_id'), + TextColumn::make('user.name'), + TextColumn::make('event'), + TextColumn::make('auditable_type'), + TextColumn::make('auditable_id'), IconColumn::make('was_command') ->getStateUsing(fn (Audit $record) => Str::startsWith($record->url, 'artisan ')) ->boolean(), - Tables\Columns\TextColumn::make('created_at') + TextColumn::make('created_at') ->sortable() ->dateTime(), - Tables\Columns\TextColumn::make('updated_at') + TextColumn::make('updated_at') ->sortable() ->dateTime(), ]) ->filters([ // ]) - ->actions([ - Tables\Actions\ViewAction::make(), + ->recordActions([ + ViewAction::make(), ]) - ->bulkActions([ + ->toolbarActions([ ]) ->defaultSort('created_at', 'desc'); } @@ -87,9 +91,9 @@ class AuditResource extends Resource public static function getPages(): array { return [ - 'index' => Pages\ListAudits::route('/'), - 'create' => Pages\CreateAudit::route('/create'), - 'view' => Pages\ViewAudit::route('/{record}'), + 'index' => ListAudits::route('/'), + 'create' => CreateAudit::route('/create'), + 'view' => ViewAudit::route('/{record}'), ]; } } diff --git a/app/Filament/Resources/ClientResource.php b/app/Filament/Resources/ClientResource.php index ee43a4e4..e291f661 100644 --- a/app/Filament/Resources/ClientResource.php +++ b/app/Filament/Resources/ClientResource.php @@ -4,13 +4,18 @@ declare(strict_types=1); namespace App\Filament\Resources; -use App\Filament\Resources\ClientResource\Pages; +use App\Filament\Resources\ClientResource\Pages\CreateClient; +use App\Filament\Resources\ClientResource\Pages\EditClient; +use App\Filament\Resources\ClientResource\Pages\ListClients; use App\Models\Client; +use Filament\Actions\BulkActionGroup; +use Filament\Actions\DeleteBulkAction; +use Filament\Actions\EditAction; use Filament\Forms\Components\Select; use Filament\Forms\Components\TextInput; -use Filament\Forms\Form; use Filament\Resources\Resource; -use Filament\Tables; +use Filament\Schemas\Schema; +use Filament\Tables\Columns\TextColumn; use Filament\Tables\Filters\SelectFilter; use Filament\Tables\Table; @@ -18,16 +23,16 @@ class ClientResource extends Resource { protected static ?string $model = Client::class; - protected static ?string $navigationIcon = 'heroicon-o-briefcase'; + protected static string|\BackedEnum|null $navigationIcon = 'heroicon-o-briefcase'; - protected static ?string $navigationGroup = 'Timetracking'; + protected static string|\UnitEnum|null $navigationGroup = 'Timetracking'; protected static ?int $navigationSort = 4; - public static function form(Form $form): Form + public static function form(Schema $schema): Schema { - return $form - ->schema([ + return $schema + ->components([ TextInput::make('name') ->label('Name') ->required(), @@ -43,17 +48,17 @@ class ClientResource extends Resource { return $table ->columns([ - Tables\Columns\TextColumn::make('name') + TextColumn::make('name') ->label('Name') ->searchable() ->sortable(), - Tables\Columns\TextColumn::make('organization.name') + TextColumn::make('organization.name') ->sortable() ->label('Organization'), - Tables\Columns\TextColumn::make('created_at') + TextColumn::make('created_at') ->label('Created at') ->sortable(), - Tables\Columns\TextColumn::make('updated_at') + TextColumn::make('updated_at') ->label('Updated at') ->sortable(), ]) @@ -68,12 +73,12 @@ class ClientResource extends Resource ->relationship('organization', 'id') ->searchable(), ]) - ->actions([ - Tables\Actions\EditAction::make(), + ->recordActions([ + EditAction::make(), ]) - ->bulkActions([ - Tables\Actions\BulkActionGroup::make([ - Tables\Actions\DeleteBulkAction::make(), + ->toolbarActions([ + BulkActionGroup::make([ + DeleteBulkAction::make(), ]), ]); } @@ -88,9 +93,9 @@ class ClientResource extends Resource public static function getPages(): array { return [ - 'index' => Pages\ListClients::route('/'), - 'create' => Pages\CreateClient::route('/create'), - 'edit' => Pages\EditClient::route('/{record}/edit'), + 'index' => ListClients::route('/'), + 'create' => CreateClient::route('/create'), + 'edit' => EditClient::route('/{record}/edit'), ]; } } diff --git a/app/Filament/Resources/ClientResource/Pages/EditClient.php b/app/Filament/Resources/ClientResource/Pages/EditClient.php index 028b3204..e0e0b7c5 100644 --- a/app/Filament/Resources/ClientResource/Pages/EditClient.php +++ b/app/Filament/Resources/ClientResource/Pages/EditClient.php @@ -5,7 +5,7 @@ declare(strict_types=1); namespace App\Filament\Resources\ClientResource\Pages; use App\Filament\Resources\ClientResource; -use Filament\Actions; +use Filament\Actions\DeleteAction; use Filament\Resources\Pages\EditRecord; class EditClient extends EditRecord @@ -15,7 +15,7 @@ class EditClient extends EditRecord protected function getHeaderActions(): array { return [ - Actions\DeleteAction::make() + DeleteAction::make() ->icon('heroicon-m-trash'), ]; } diff --git a/app/Filament/Resources/ClientResource/Pages/ListClients.php b/app/Filament/Resources/ClientResource/Pages/ListClients.php index 65a2fbd2..88a3567a 100644 --- a/app/Filament/Resources/ClientResource/Pages/ListClients.php +++ b/app/Filament/Resources/ClientResource/Pages/ListClients.php @@ -5,7 +5,7 @@ declare(strict_types=1); namespace App\Filament\Resources\ClientResource\Pages; use App\Filament\Resources\ClientResource; -use Filament\Actions; +use Filament\Actions\CreateAction; use Filament\Resources\Pages\ListRecords; class ListClients extends ListRecords @@ -15,7 +15,7 @@ class ListClients extends ListRecords protected function getHeaderActions(): array { return [ - Actions\CreateAction::make() + CreateAction::make() ->icon('heroicon-s-plus'), ]; } diff --git a/app/Filament/Resources/FailedJobResource.php b/app/Filament/Resources/FailedJobResource.php index f47d98d3..eee29241 100644 --- a/app/Filament/Resources/FailedJobResource.php +++ b/app/Filament/Resources/FailedJobResource.php @@ -7,16 +7,16 @@ namespace App\Filament\Resources; use App\Filament\Resources\FailedJobResource\Pages\ListFailedJobs; use App\Filament\Resources\FailedJobResource\Pages\ViewFailedJobs; use App\Models\FailedJob; +use Filament\Actions\Action; +use Filament\Actions\BulkAction; +use Filament\Actions\DeleteAction; +use Filament\Actions\DeleteBulkAction; +use Filament\Actions\ViewAction; use Filament\Forms\Components\Textarea; use Filament\Forms\Components\TextInput; -use Filament\Forms\Form; use Filament\Notifications\Notification; use Filament\Resources\Resource; -use Filament\Tables\Actions\Action; -use Filament\Tables\Actions\BulkAction; -use Filament\Tables\Actions\DeleteAction; -use Filament\Tables\Actions\DeleteBulkAction; -use Filament\Tables\Actions\ViewAction; +use Filament\Schemas\Schema; use Filament\Tables\Columns\TextColumn; use Filament\Tables\Table; use Illuminate\Support\Collection; @@ -30,19 +30,19 @@ class FailedJobResource extends Resource { protected static ?string $model = FailedJob::class; - protected static ?string $navigationIcon = 'heroicon-o-exclamation-circle'; + protected static string|\BackedEnum|null $navigationIcon = 'heroicon-o-exclamation-circle'; - protected static ?string $navigationGroup = 'System'; + protected static string|\UnitEnum|null $navigationGroup = 'System'; public static function getNavigationBadge(): ?string { return (string) FailedJob::query()->count(); } - public static function form(Form $form): Form + public static function form(Schema $schema): Schema { - return $form - ->schema([ + return $schema + ->components([ TextInput::make('uuid')->disabled()->columnSpan(4), TextInput::make('failed_at')->disabled(), TextInput::make('id')->disabled(), @@ -74,7 +74,7 @@ class FailedJobResource extends Resource TextColumn::make('queue')->sortable()->searchable()->toggleable(isToggledHiddenByDefault: true), ]) ->filters([]) - ->bulkActions([ + ->toolbarActions([ BulkAction::make('retry') ->icon('heroicon-o-arrow-path') ->label('Retry selected') @@ -91,7 +91,7 @@ class FailedJobResource extends Resource }), DeleteBulkAction::make(), ]) - ->actions([ + ->recordActions([ DeleteAction::make(), ViewAction::make(), Action::make('retry') diff --git a/app/Filament/Resources/OrganizationInvitationResource.php b/app/Filament/Resources/OrganizationInvitationResource.php index c03a3811..2cfaa8ca 100644 --- a/app/Filament/Resources/OrganizationInvitationResource.php +++ b/app/Filament/Resources/OrganizationInvitationResource.php @@ -5,14 +5,21 @@ declare(strict_types=1); namespace App\Filament\Resources; use App\Enums\Role; -use App\Filament\Resources\OrganizationInvitationResource\Pages; +use App\Filament\Resources\OrganizationInvitationResource\Pages\EditOrganizationInvitation; +use App\Filament\Resources\OrganizationInvitationResource\Pages\ListOrganizationInvitations; +use App\Filament\Resources\OrganizationInvitationResource\Pages\ViewOrganizationInvitation; use App\Models\OrganizationInvitation; use App\Service\OrganizationInvitationService; -use Filament\Forms; +use Filament\Actions\BulkAction; +use Filament\Actions\BulkActionGroup; +use Filament\Actions\DeleteAction; +use Filament\Actions\EditAction; +use Filament\Forms\Components\DateTimePicker; use Filament\Forms\Components\Select; -use Filament\Forms\Form; +use Filament\Forms\Components\TextInput; use Filament\Resources\Resource; -use Filament\Tables; +use Filament\Schemas\Schema; +use Filament\Tables\Columns\TextColumn; use Filament\Tables\Table; use Illuminate\Support\Collection; @@ -22,18 +29,18 @@ class OrganizationInvitationResource extends Resource protected static ?string $label = 'Invitations'; - protected static ?string $navigationIcon = 'heroicon-o-user-plus'; + protected static string|\BackedEnum|null $navigationIcon = 'heroicon-o-user-plus'; - protected static ?string $navigationGroup = 'Users'; + protected static string|\UnitEnum|null $navigationGroup = 'Users'; protected static ?int $navigationSort = 9; - public static function form(Form $form): Form + public static function form(Schema $schema): Schema { - return $form + return $schema ->columns(1) - ->schema([ - Forms\Components\TextInput::make('email') + ->components([ + TextInput::make('email') ->label('Email') ->disabledOn(['edit']) ->required(), @@ -45,11 +52,11 @@ class OrganizationInvitationResource extends Resource ->searchable(['name']) ->disabledOn(['edit']) ->required(), - Forms\Components\DateTimePicker::make('created_at') + DateTimePicker::make('created_at') ->label('Created At') ->hiddenOn(['create']) ->disabled(), - Forms\Components\DateTimePicker::make('updated_at') + DateTimePicker::make('updated_at') ->label('Updated At') ->hiddenOn(['create']) ->disabled(), @@ -60,17 +67,17 @@ class OrganizationInvitationResource extends Resource { return $table ->columns([ - Tables\Columns\TextColumn::make('organization.name') + TextColumn::make('organization.name') ->searchable() ->sortable(), - Tables\Columns\TextColumn::make('email') + TextColumn::make('email') ->sortable(), - Tables\Columns\TextColumn::make('role'), - Tables\Columns\TextColumn::make('created_at') + TextColumn::make('role'), + TextColumn::make('created_at') ->label('Created At') ->dateTime() ->sortable(), - Tables\Columns\TextColumn::make('updated_at') + TextColumn::make('updated_at') ->label('Updated At') ->dateTime() ->sortable() @@ -80,13 +87,13 @@ class OrganizationInvitationResource extends Resource ->filters([ // ]) - ->actions([ - Tables\Actions\EditAction::make(), - Tables\Actions\DeleteAction::make(), + ->recordActions([ + EditAction::make(), + DeleteAction::make(), ]) - ->bulkActions([ - Tables\Actions\BulkActionGroup::make([ - Tables\Actions\BulkAction::make('resend') + ->toolbarActions([ + BulkActionGroup::make([ + BulkAction::make('resend') ->label('Resend') ->action(function (Collection $records): void { foreach ($records as $organizationInvite) { @@ -106,9 +113,9 @@ class OrganizationInvitationResource extends Resource public static function getPages(): array { return [ - 'index' => Pages\ListOrganizationInvitations::route('/'), - 'edit' => Pages\EditOrganizationInvitation::route('/{record}/edit'), - 'view' => Pages\ViewOrganizationInvitation::route('/{record}'), + 'index' => ListOrganizationInvitations::route('/'), + 'edit' => EditOrganizationInvitation::route('/{record}/edit'), + 'view' => ViewOrganizationInvitation::route('/{record}'), ]; } } diff --git a/app/Filament/Resources/OrganizationInvitationResource/Pages/EditOrganizationInvitation.php b/app/Filament/Resources/OrganizationInvitationResource/Pages/EditOrganizationInvitation.php index c1c6e76d..4bfc5885 100644 --- a/app/Filament/Resources/OrganizationInvitationResource/Pages/EditOrganizationInvitation.php +++ b/app/Filament/Resources/OrganizationInvitationResource/Pages/EditOrganizationInvitation.php @@ -5,7 +5,7 @@ declare(strict_types=1); namespace App\Filament\Resources\OrganizationInvitationResource\Pages; use App\Filament\Resources\OrganizationInvitationResource; -use Filament\Actions; +use Filament\Actions\DeleteAction; use Filament\Resources\Pages\EditRecord; class EditOrganizationInvitation extends EditRecord @@ -15,7 +15,7 @@ class EditOrganizationInvitation extends EditRecord protected function getHeaderActions(): array { return [ - Actions\DeleteAction::make() + DeleteAction::make() ->icon('heroicon-m-trash'), ]; } diff --git a/app/Filament/Resources/OrganizationResource.php b/app/Filament/Resources/OrganizationResource.php index 460de0dc..e3338e45 100644 --- a/app/Filament/Resources/OrganizationResource.php +++ b/app/Filament/Resources/OrganizationResource.php @@ -9,7 +9,10 @@ use App\Enums\DateFormat; use App\Enums\IntervalFormat; use App\Enums\NumberFormat; use App\Enums\TimeFormat; -use App\Filament\Resources\OrganizationResource\Pages; +use App\Filament\Resources\OrganizationResource\Pages\CreateOrganization; +use App\Filament\Resources\OrganizationResource\Pages\EditOrganization; +use App\Filament\Resources\OrganizationResource\Pages\ListOrganizations; +use App\Filament\Resources\OrganizationResource\Pages\ViewOrganization; use App\Filament\Resources\OrganizationResource\RelationManagers\InvitationsRelationManager; use App\Filament\Resources\OrganizationResource\RelationManagers\UsersRelationManager; use App\Models\Organization; @@ -21,13 +24,19 @@ use App\Service\Import\Importers\ReportDto; use App\Service\Import\ImportService; use App\Service\TimezoneService; use Brick\Money\ISOCurrencyProvider; -use Filament\Forms; +use Exception; +use Filament\Actions\Action; +use Filament\Actions\DeleteAction; +use Filament\Actions\EditAction; +use Filament\Forms\Components\DateTimePicker; +use Filament\Forms\Components\FileUpload; use Filament\Forms\Components\Select; -use Filament\Forms\Form; +use Filament\Forms\Components\TextInput; +use Filament\Forms\Components\Toggle; use Filament\Notifications\Notification; use Filament\Resources\Resource; -use Filament\Tables; -use Filament\Tables\Actions\Action; +use Filament\Schemas\Schema; +use Filament\Tables\Columns\IconColumn; use Filament\Tables\Columns\TextColumn; use Filament\Tables\Table; use Illuminate\Support\Facades\Storage; @@ -36,22 +45,22 @@ class OrganizationResource extends Resource { protected static ?string $model = Organization::class; - protected static ?string $navigationIcon = 'heroicon-o-building-office-2'; + protected static string|\BackedEnum|null $navigationIcon = 'heroicon-o-building-office-2'; - protected static ?string $navigationGroup = 'Users'; + protected static string|\UnitEnum|null $navigationGroup = 'Users'; protected static ?int $navigationSort = 7; - public static function form(Form $form): Form + public static function form(Schema $schema): Schema { - return $form + return $schema ->columns(1) - ->schema([ - Forms\Components\TextInput::make('name') + ->components([ + TextInput::make('name') ->label('Name') ->required() ->maxLength(255), - Forms\Components\Toggle::make('personal_team') + Toggle::make('personal_team') ->label('Is personal?') ->hiddenOn(['create']) ->required(), @@ -89,7 +98,7 @@ class OrganizationResource extends Resource }) ->required() ->searchable(), - Forms\Components\TextInput::make('billable_rate') + TextInput::make('billable_rate') ->label('Billable rate (in Cents)') ->nullable() ->rules([ @@ -99,11 +108,11 @@ class OrganizationResource extends Resource 'max:2147483647', ]) ->numeric(), - Forms\Components\DateTimePicker::make('created_at') + DateTimePicker::make('created_at') ->label('Created At') ->hiddenOn(['create']) ->disabled(), - Forms\Components\DateTimePicker::make('updated_at') + DateTimePicker::make('updated_at') ->label('Updated At') ->hiddenOn(['create']) ->disabled(), @@ -117,7 +126,7 @@ class OrganizationResource extends Resource TextColumn::make('name') ->searchable() ->sortable(), - Tables\Columns\IconColumn::make('personal_team') + IconColumn::make('personal_team') ->boolean() ->label('Is personal?') ->sortable(), @@ -138,9 +147,9 @@ class OrganizationResource extends Resource ->filters([ // ]) - ->actions([ - Tables\Actions\EditAction::make(), - Tables\Actions\DeleteAction::make() + ->recordActions([ + EditAction::make(), + DeleteAction::make() ->using(function (Organization $record): void { app(DeletionService::class)->deleteOrganization($record); }), @@ -158,7 +167,7 @@ class OrganizationResource extends Resource return response()->streamDownload(function () use ($file): void { echo Storage::disk(config('filesystems.private'))->get($file); }, 'export.zip'); - } catch (\Exception $exception) { + } catch (Exception $exception) { report($exception); Notification::make() ->title('Export failed') @@ -174,7 +183,7 @@ class OrganizationResource extends Resource try { $file = Storage::disk(config('filament.default_filesystem_disk'))->get($data['file']); if ($file === null) { - throw new \Exception('File not found'); + throw new Exception('File not found'); } /** @var string $timezone */ $timezone = $data['timezone']; @@ -209,8 +218,8 @@ class OrganizationResource extends Resource } }) ->tooltip(fn (Organization $record): string => 'Import into '.$record->name) - ->form([ - Forms\Components\FileUpload::make('file') + ->schema([ + FileUpload::make('file') ->label('File') ->required(), Select::make('type') @@ -230,7 +239,7 @@ class OrganizationResource extends Resource ->required(), ]), ]) - ->bulkActions([ + ->toolbarActions([ ]); } @@ -245,10 +254,10 @@ class OrganizationResource extends Resource public static function getPages(): array { return [ - 'index' => Pages\ListOrganizations::route('/'), - 'create' => Pages\CreateOrganization::route('/create'), - 'edit' => Pages\EditOrganization::route('/{record}/edit'), - 'view' => Pages\ViewOrganization::route('/{record}'), + 'index' => ListOrganizations::route('/'), + 'create' => CreateOrganization::route('/create'), + 'edit' => EditOrganization::route('/{record}/edit'), + 'view' => ViewOrganization::route('/{record}'), ]; } } diff --git a/app/Filament/Resources/OrganizationResource/Pages/EditOrganization.php b/app/Filament/Resources/OrganizationResource/Pages/EditOrganization.php index 528d4e80..6df35c33 100644 --- a/app/Filament/Resources/OrganizationResource/Pages/EditOrganization.php +++ b/app/Filament/Resources/OrganizationResource/Pages/EditOrganization.php @@ -5,6 +5,7 @@ declare(strict_types=1); namespace App\Filament\Resources\OrganizationResource\Pages; use App\Filament\Resources\OrganizationResource; +use App\Filament\Resources\OrganizationResource\Actions\DeleteOrganization; use Filament\Resources\Pages\EditRecord; class EditOrganization extends EditRecord @@ -14,7 +15,7 @@ class EditOrganization extends EditRecord protected function getHeaderActions(): array { return [ - OrganizationResource\Actions\DeleteOrganization::make(), + DeleteOrganization::make(), ]; } } diff --git a/app/Filament/Resources/OrganizationResource/Pages/ListOrganizations.php b/app/Filament/Resources/OrganizationResource/Pages/ListOrganizations.php index 93cb0cdc..579a5a30 100644 --- a/app/Filament/Resources/OrganizationResource/Pages/ListOrganizations.php +++ b/app/Filament/Resources/OrganizationResource/Pages/ListOrganizations.php @@ -5,7 +5,7 @@ declare(strict_types=1); namespace App\Filament\Resources\OrganizationResource\Pages; use App\Filament\Resources\OrganizationResource; -use Filament\Actions; +use Filament\Actions\CreateAction; use Filament\Resources\Pages\ListRecords; class ListOrganizations extends ListRecords @@ -15,7 +15,7 @@ class ListOrganizations extends ListRecords protected function getHeaderActions(): array { return [ - Actions\CreateAction::make() + CreateAction::make() ->icon('heroicon-s-plus'), ]; } diff --git a/app/Filament/Resources/OrganizationResource/RelationManagers/InvitationsRelationManager.php b/app/Filament/Resources/OrganizationResource/RelationManagers/InvitationsRelationManager.php index a4cdaf47..a324ff05 100644 --- a/app/Filament/Resources/OrganizationResource/RelationManagers/InvitationsRelationManager.php +++ b/app/Filament/Resources/OrganizationResource/RelationManagers/InvitationsRelationManager.php @@ -9,12 +9,17 @@ use App\Filament\Resources\OrganizationInvitationResource; use App\Models\Organization; use App\Models\OrganizationInvitation; use App\Service\InvitationService; +use Filament\Actions\Action; +use Filament\Actions\BulkActionGroup; +use Filament\Actions\CreateAction; +use Filament\Actions\DeleteAction; +use Filament\Actions\DetachBulkAction; +use Filament\Actions\EditAction; use Filament\Forms\Components\Select; use Filament\Forms\Components\TextInput; -use Filament\Forms\Form; use Filament\Resources\RelationManagers\RelationManager; -use Filament\Tables; -use Filament\Tables\Actions\Action; +use Filament\Schemas\Schema; +use Filament\Tables\Columns\TextColumn; use Filament\Tables\Table; use Illuminate\Database\Eloquent\Model; use Illuminate\Validation\Rule; @@ -25,10 +30,10 @@ class InvitationsRelationManager extends RelationManager protected static ?string $title = 'Invitations'; - public function form(Form $form): Form + public function form(Schema $schema): Schema { - return $form - ->schema([ + return $schema + ->components([ TextInput::make('email') ->label('Email') ->disabledOn(['edit']) @@ -53,33 +58,33 @@ class InvitationsRelationManager extends RelationManager ->modelLabel('Invitation') ->pluralModelLabel('Invitations') ->columns([ - Tables\Columns\TextColumn::make('email'), - Tables\Columns\TextColumn::make('role'), + TextColumn::make('email'), + TextColumn::make('role'), ]) ->headerActions([ - Tables\Actions\CreateAction::make() + CreateAction::make() ->icon('heroicon-s-plus') ->using(function (array $data, string $model): Model { /** @var Organization $ownerRecord */ $ownerRecord = $this->getOwnerRecord(); return app(InvitationService::class) - ->inviteUser($ownerRecord, $data['email'], Role::from($data['role']), auth()->user()); + ->inviteUser($ownerRecord, $data['email'], ($data['role'] instanceof Role ? $data['role'] : Role::from($data['role'])), auth()->user()); }), ]) - ->actions([ + ->recordActions([ Action::make('view') ->icon('heroicon-o-eye') ->color('gray') ->url(fn (OrganizationInvitation $record): string => OrganizationInvitationResource::getUrl('view', [ 'record' => $record->getKey(), ])), - Tables\Actions\EditAction::make(), - Tables\Actions\DeleteAction::make(), + EditAction::make(), + DeleteAction::make(), ]) - ->bulkActions([ - Tables\Actions\BulkActionGroup::make([ - Tables\Actions\DetachBulkAction::make(), + ->toolbarActions([ + BulkActionGroup::make([ + DetachBulkAction::make(), ]), ]); } diff --git a/app/Filament/Resources/OrganizationResource/RelationManagers/UsersRelationManager.php b/app/Filament/Resources/OrganizationResource/RelationManagers/UsersRelationManager.php index 841ed6ae..79ffd080 100644 --- a/app/Filament/Resources/OrganizationResource/RelationManagers/UsersRelationManager.php +++ b/app/Filament/Resources/OrganizationResource/RelationManagers/UsersRelationManager.php @@ -12,14 +12,15 @@ use App\Models\Organization; use App\Models\User; use App\Service\BillableRateService; use App\Service\MemberService; +use Filament\Actions\Action; +use Filament\Actions\AttachAction; +use Filament\Actions\DetachAction; +use Filament\Actions\EditAction; use Filament\Forms\Components\Select; use Filament\Forms\Components\TextInput; -use Filament\Forms\Form; use Filament\Notifications\Notification; use Filament\Resources\RelationManagers\RelationManager; -use Filament\Tables; -use Filament\Tables\Actions\Action; -use Filament\Tables\Actions\AttachAction; +use Filament\Schemas\Schema; use Filament\Tables\Columns\TextColumn; use Filament\Tables\Table; use Illuminate\Validation\Rule; @@ -28,10 +29,10 @@ class UsersRelationManager extends RelationManager { protected static string $relationship = 'users'; - public function form(Form $form): Form + public function form(Schema $schema): Schema { - return $form - ->schema([ + return $schema + ->components([ Select::make('role') ->options(Role::class), TextInput::make('billable_rate') @@ -75,17 +76,17 @@ class UsersRelationManager extends RelationManager ->using(function (User $record, array $data): void { /** @var Organization $organization */ $organization = $this->getOwnerRecord(); - app(MemberService::class)->addMember($record, $organization, Role::from($data['role']), true); + app(MemberService::class)->addMember($record, $organization, ($data['role'] instanceof Role ? $data['role'] : Role::from($data['role'])), true); }), ]) - ->actions([ + ->recordActions([ Action::make('view') ->icon('heroicon-o-eye') ->color('gray') ->url(fn (User $record): string => UserResource::getUrl('view', [ 'record' => $record->getKey(), ])), - Tables\Actions\EditAction::make() + EditAction::make() ->using(function (User $record, array $data): User { /** @var Organization $organization */ $organization = $this->getOwnerRecord(); @@ -99,7 +100,7 @@ class UsersRelationManager extends RelationManager if ($data['role'] !== $member->role) { try { - app(MemberService::class)->changeRole($member, $organization, Role::from($data['role']), true); + app(MemberService::class)->changeRole($member, $organization, ($data['role'] instanceof Role ? $data['role'] : Role::from($data['role'])), true); } catch (ApiException $exception) { Notification::make() ->danger() @@ -113,7 +114,7 @@ class UsersRelationManager extends RelationManager return $record; }), - Tables\Actions\DetachAction::make() + DetachAction::make() ->using(function (User $record): void { /** @var Organization $organization */ $organization = $this->getOwnerRecord(); @@ -133,7 +134,7 @@ class UsersRelationManager extends RelationManager } }), ]) - ->bulkActions([ + ->toolbarActions([ ]); } } diff --git a/app/Filament/Resources/ProjectMemberResource.php b/app/Filament/Resources/ProjectMemberResource.php index c1b9f8e0..6ca38487 100644 --- a/app/Filament/Resources/ProjectMemberResource.php +++ b/app/Filament/Resources/ProjectMemberResource.php @@ -4,12 +4,19 @@ declare(strict_types=1); namespace App\Filament\Resources; -use App\Filament\Resources\ProjectMemberResource\Pages; +use App\Filament\Resources\ProjectMemberResource\Pages\CreateProjectMember; +use App\Filament\Resources\ProjectMemberResource\Pages\EditProjectMember; +use App\Filament\Resources\ProjectMemberResource\Pages\ListProjectMembers; +use App\Filament\Resources\ProjectMemberResource\Pages\ViewProjectMembers; use App\Models\ProjectMember; -use Filament\Forms; -use Filament\Forms\Form; +use Filament\Actions\BulkActionGroup; +use Filament\Actions\DeleteBulkAction; +use Filament\Actions\EditAction; +use Filament\Forms\Components\Select; +use Filament\Forms\Components\TextInput; use Filament\Resources\Resource; -use Filament\Tables; +use Filament\Schemas\Schema; +use Filament\Tables\Columns\TextColumn; use Filament\Tables\Table; class ProjectMemberResource extends Resource @@ -18,11 +25,11 @@ class ProjectMemberResource extends Resource protected static bool $shouldRegisterNavigation = false; - public static function form(Form $form): Form + public static function form(Schema $schema): Schema { - return $form - ->schema([ - Forms\Components\TextInput::make('billable_rate') + return $schema + ->components([ + TextInput::make('billable_rate') ->label('Billable rate (in Cents)') ->nullable() ->rules([ @@ -32,10 +39,10 @@ class ProjectMemberResource extends Resource 'max:2147483647', ]) ->numeric(), - Forms\Components\Select::make('user_id') + Select::make('user_id') ->relationship('user', 'name') ->required(), - Forms\Components\Select::make('member_id') + Select::make('member_id') ->relationship('member', 'id') ->required(), ]); @@ -45,17 +52,17 @@ class ProjectMemberResource extends Resource { return $table ->columns([ - Tables\Columns\TextColumn::make('id') + TextColumn::make('id') ->label('ID'), - Tables\Columns\TextColumn::make('billable_rate') + TextColumn::make('billable_rate') ->numeric() ->sortable(), - Tables\Columns\TextColumn::make('project.name'), - Tables\Columns\TextColumn::make('user.name'), - Tables\Columns\TextColumn::make('created_at') + TextColumn::make('project.name'), + TextColumn::make('user.name'), + TextColumn::make('created_at') ->dateTime() ->sortable(), - Tables\Columns\TextColumn::make('updated_at') + TextColumn::make('updated_at') ->dateTime() ->sortable() ->toggleable(isToggledHiddenByDefault: true), @@ -63,12 +70,12 @@ class ProjectMemberResource extends Resource ->filters([ // ]) - ->actions([ - Tables\Actions\EditAction::make(), + ->recordActions([ + EditAction::make(), ]) - ->bulkActions([ - Tables\Actions\BulkActionGroup::make([ - Tables\Actions\DeleteBulkAction::make(), + ->toolbarActions([ + BulkActionGroup::make([ + DeleteBulkAction::make(), ]), ]); } @@ -83,10 +90,10 @@ class ProjectMemberResource extends Resource public static function getPages(): array { return [ - 'index' => Pages\ListProjectMembers::route('/'), - 'create' => Pages\CreateProjectMember::route('/create'), - 'edit' => Pages\EditProjectMember::route('/{record}/edit'), - 'view' => Pages\ViewProjectMembers::route('/{record}'), + 'index' => ListProjectMembers::route('/'), + 'create' => CreateProjectMember::route('/create'), + 'edit' => EditProjectMember::route('/{record}/edit'), + 'view' => ViewProjectMembers::route('/{record}'), ]; } } diff --git a/app/Filament/Resources/ProjectMemberResource/Pages/EditProjectMember.php b/app/Filament/Resources/ProjectMemberResource/Pages/EditProjectMember.php index 5852ae81..198aa1dd 100644 --- a/app/Filament/Resources/ProjectMemberResource/Pages/EditProjectMember.php +++ b/app/Filament/Resources/ProjectMemberResource/Pages/EditProjectMember.php @@ -5,7 +5,7 @@ declare(strict_types=1); namespace App\Filament\Resources\ProjectMemberResource\Pages; use App\Filament\Resources\ProjectMemberResource; -use Filament\Actions; +use Filament\Actions\DeleteAction; use Filament\Resources\Pages\EditRecord; class EditProjectMember extends EditRecord @@ -15,7 +15,7 @@ class EditProjectMember extends EditRecord protected function getHeaderActions(): array { return [ - Actions\DeleteAction::make() + DeleteAction::make() ->icon('heroicon-m-trash'), ]; } diff --git a/app/Filament/Resources/ProjectMemberResource/Pages/ListProjectMembers.php b/app/Filament/Resources/ProjectMemberResource/Pages/ListProjectMembers.php index a91bb454..40122c3e 100644 --- a/app/Filament/Resources/ProjectMemberResource/Pages/ListProjectMembers.php +++ b/app/Filament/Resources/ProjectMemberResource/Pages/ListProjectMembers.php @@ -5,7 +5,7 @@ declare(strict_types=1); namespace App\Filament\Resources\ProjectMemberResource\Pages; use App\Filament\Resources\ProjectMemberResource; -use Filament\Actions; +use Filament\Actions\CreateAction; use Filament\Resources\Pages\ListRecords; class ListProjectMembers extends ListRecords @@ -15,7 +15,7 @@ class ListProjectMembers extends ListRecords protected function getHeaderActions(): array { return [ - Actions\CreateAction::make() + CreateAction::make() ->icon('heroicon-s-plus'), ]; } diff --git a/app/Filament/Resources/ProjectResource.php b/app/Filament/Resources/ProjectResource.php index 695c31e5..89dbd1e2 100644 --- a/app/Filament/Resources/ProjectResource.php +++ b/app/Filament/Resources/ProjectResource.php @@ -4,14 +4,19 @@ declare(strict_types=1); namespace App\Filament\Resources; -use App\Filament\Resources\ProjectResource\Pages; +use App\Filament\Resources\ProjectResource\Pages\CreateProject; +use App\Filament\Resources\ProjectResource\Pages\EditProject; +use App\Filament\Resources\ProjectResource\Pages\ListProjects; use App\Filament\Resources\ProjectResource\RelationManagers\ProjectMembersRelationManager; use App\Models\Project; -use Filament\Forms; +use Filament\Actions\BulkActionGroup; +use Filament\Actions\DeleteBulkAction; +use Filament\Actions\EditAction; use Filament\Forms\Components\ColorPicker; -use Filament\Forms\Form; +use Filament\Forms\Components\Select; +use Filament\Forms\Components\TextInput; use Filament\Resources\Resource; -use Filament\Tables; +use Filament\Schemas\Schema; use Filament\Tables\Columns\ColorColumn; use Filament\Tables\Columns\TextColumn; use Filament\Tables\Filters\SelectFilter; @@ -21,24 +26,24 @@ class ProjectResource extends Resource { protected static ?string $model = Project::class; - protected static ?string $navigationIcon = 'heroicon-o-folder'; + protected static string|\BackedEnum|null $navigationIcon = 'heroicon-o-folder'; - protected static ?string $navigationGroup = 'Timetracking'; + protected static string|\UnitEnum|null $navigationGroup = 'Timetracking'; protected static ?int $navigationSort = 2; - public static function form(Form $form): Form + public static function form(Schema $schema): Schema { - return $form - ->schema([ - Forms\Components\TextInput::make('name') + return $schema + ->components([ + TextInput::make('name') ->label('Name') ->required() ->maxLength(255), ColorPicker::make('color') ->label('Color') ->required(), - Forms\Components\TextInput::make('billable_rate') + TextInput::make('billable_rate') ->label('Billable rate (in Cents)') ->nullable() ->rules([ @@ -48,7 +53,7 @@ class ProjectResource extends Resource 'max:2147483647', ]) ->numeric(), - Forms\Components\Select::make('organization_id') + Select::make('organization_id') ->relationship(name: 'organization', titleAttribute: 'name') ->searchable(['name']) ->required(), @@ -81,12 +86,12 @@ class ProjectResource extends Resource ->searchable(), ]) ->defaultSort('created_at', 'desc') - ->actions([ - Tables\Actions\EditAction::make(), + ->recordActions([ + EditAction::make(), ]) - ->bulkActions([ - Tables\Actions\BulkActionGroup::make([ - Tables\Actions\DeleteBulkAction::make(), + ->toolbarActions([ + BulkActionGroup::make([ + DeleteBulkAction::make(), ]), ]); } @@ -101,9 +106,9 @@ class ProjectResource extends Resource public static function getPages(): array { return [ - 'index' => Pages\ListProjects::route('/'), - 'create' => Pages\CreateProject::route('/create'), - 'edit' => Pages\EditProject::route('/{record}/edit'), + 'index' => ListProjects::route('/'), + 'create' => CreateProject::route('/create'), + 'edit' => EditProject::route('/{record}/edit'), ]; } } diff --git a/app/Filament/Resources/ProjectResource/Pages/EditProject.php b/app/Filament/Resources/ProjectResource/Pages/EditProject.php index 13eae2e6..e67a711b 100644 --- a/app/Filament/Resources/ProjectResource/Pages/EditProject.php +++ b/app/Filament/Resources/ProjectResource/Pages/EditProject.php @@ -5,7 +5,7 @@ declare(strict_types=1); namespace App\Filament\Resources\ProjectResource\Pages; use App\Filament\Resources\ProjectResource; -use Filament\Actions; +use Filament\Actions\DeleteAction; use Filament\Resources\Pages\EditRecord; class EditProject extends EditRecord @@ -15,7 +15,7 @@ class EditProject extends EditRecord protected function getHeaderActions(): array { return [ - Actions\DeleteAction::make() + DeleteAction::make() ->icon('heroicon-m-trash'), ]; } diff --git a/app/Filament/Resources/ProjectResource/Pages/ListProjects.php b/app/Filament/Resources/ProjectResource/Pages/ListProjects.php index b44bbc0a..2217a459 100644 --- a/app/Filament/Resources/ProjectResource/Pages/ListProjects.php +++ b/app/Filament/Resources/ProjectResource/Pages/ListProjects.php @@ -5,7 +5,7 @@ declare(strict_types=1); namespace App\Filament\Resources\ProjectResource\Pages; use App\Filament\Resources\ProjectResource; -use Filament\Actions; +use Filament\Actions\CreateAction; use Filament\Resources\Pages\ListRecords; class ListProjects extends ListRecords @@ -15,7 +15,7 @@ class ListProjects extends ListRecords protected function getHeaderActions(): array { return [ - Actions\CreateAction::make() + CreateAction::make() ->icon('heroicon-s-plus'), ]; } diff --git a/app/Filament/Resources/ProjectResource/RelationManagers/ProjectMembersRelationManager.php b/app/Filament/Resources/ProjectResource/RelationManagers/ProjectMembersRelationManager.php index 67e1403e..1e4ff835 100644 --- a/app/Filament/Resources/ProjectResource/RelationManagers/ProjectMembersRelationManager.php +++ b/app/Filament/Resources/ProjectResource/RelationManagers/ProjectMembersRelationManager.php @@ -6,10 +6,10 @@ namespace App\Filament\Resources\ProjectResource\RelationManagers; use App\Filament\Resources\ProjectMemberResource; use App\Models\ProjectMember; -use Filament\Forms\Form; +use Filament\Actions\Action; use Filament\Resources\RelationManagers\RelationManager; -use Filament\Tables; -use Filament\Tables\Actions\Action; +use Filament\Schemas\Schema; +use Filament\Tables\Columns\TextColumn; use Filament\Tables\Table; class ProjectMembersRelationManager extends RelationManager @@ -18,10 +18,10 @@ class ProjectMembersRelationManager extends RelationManager protected static string $relationship = 'members'; - public function form(Form $form): Form + public function form(Schema $schema): Schema { - return $form - ->schema([ + return $schema + ->components([ ]); } @@ -30,8 +30,8 @@ class ProjectMembersRelationManager extends RelationManager return $table ->recordTitleAttribute('name') ->columns([ - Tables\Columns\TextColumn::make('user.name'), - Tables\Columns\TextColumn::make('billable_rate') + TextColumn::make('user.name'), + TextColumn::make('billable_rate') ->numeric() ->sortable(), ]) @@ -40,7 +40,7 @@ class ProjectMembersRelationManager extends RelationManager ]) ->headerActions([ ]) - ->actions([ + ->recordActions([ Action::make('view') ->icon('heroicon-o-eye') ->color('gray') @@ -54,7 +54,7 @@ class ProjectMembersRelationManager extends RelationManager ])) ->openUrlInNewTab(), ]) - ->bulkActions([ + ->toolbarActions([ ]); } } diff --git a/app/Filament/Resources/ReportResource.php b/app/Filament/Resources/ReportResource.php index 6c3081e5..2a81ab6a 100644 --- a/app/Filament/Resources/ReportResource.php +++ b/app/Filament/Resources/ReportResource.php @@ -4,16 +4,21 @@ declare(strict_types=1); namespace App\Filament\Resources; -use App\Filament\Resources\ReportResource\Pages; +use App\Filament\Resources\ReportResource\Pages\EditReport; +use App\Filament\Resources\ReportResource\Pages\ListReports; +use App\Filament\Resources\ReportResource\Pages\ViewReport; use App\Models\Report; use App\Service\Dto\ReportPropertiesDto; -use Filament\Forms; +use Filament\Actions\Action; +use Filament\Actions\DeleteAction; +use Filament\Actions\EditAction; +use Filament\Actions\ViewAction; use Filament\Forms\Components\DateTimePicker; +use Filament\Forms\Components\Select; +use Filament\Forms\Components\TextInput; use Filament\Forms\Components\Toggle; -use Filament\Forms\Form; use Filament\Resources\Resource; -use Filament\Tables; -use Filament\Tables\Actions\Action; +use Filament\Schemas\Schema; use Filament\Tables\Columns\TextColumn; use Filament\Tables\Columns\ToggleColumn; use Filament\Tables\Filters\SelectFilter; @@ -24,22 +29,22 @@ class ReportResource extends Resource { protected static ?string $model = Report::class; - protected static ?string $navigationIcon = 'heroicon-o-document-chart-bar'; + protected static string|\BackedEnum|null $navigationIcon = 'heroicon-o-document-chart-bar'; - protected static ?string $navigationGroup = 'Timetracking'; + protected static string|\UnitEnum|null $navigationGroup = 'Timetracking'; protected static ?int $navigationSort = 7; - public static function form(Form $form): Form + public static function form(Schema $schema): Schema { - return $form + return $schema ->columns(1) - ->schema([ - Forms\Components\TextInput::make('name') + ->components([ + TextInput::make('name') ->label('Name') ->required() ->maxLength(255), - Forms\Components\TextInput::make('description') + TextInput::make('description') ->label('Description') ->nullable() ->maxLength(255), @@ -49,13 +54,13 @@ class ReportResource extends Resource DateTimePicker::make('public_until') ->label('Public until') ->nullable(), - Forms\Components\Select::make('organization_id') + Select::make('organization_id') ->label('Organization') ->relationship(name: 'organization', titleAttribute: 'name') ->searchable(['name']) ->disabled() ->required(), - Forms\Components\TextInput::make('share_secret') + TextInput::make('share_secret') ->label('Share Secret') ->nullable(), PrettyJsonField::make('properties') @@ -109,18 +114,18 @@ class ReportResource extends Resource ->relationship('organization', 'id') ->searchable(), ]) - ->actions([ + ->recordActions([ Action::make('public-view') ->label('Public') ->icon('heroicon-o-eye') ->color('gray') ->hidden(fn (Report $record): bool => $record->getShareableLink() === null) ->url(fn (Report $record): string => $record->getShareableLink(), true), - Tables\Actions\ViewAction::make(), - Tables\Actions\EditAction::make(), - Tables\Actions\DeleteAction::make(), + ViewAction::make(), + EditAction::make(), + DeleteAction::make(), ]) - ->bulkActions([ + ->toolbarActions([ ]); } @@ -133,9 +138,9 @@ class ReportResource extends Resource public static function getPages(): array { return [ - 'index' => Pages\ListReports::route('/'), - 'edit' => Pages\EditReport::route('/{record}/edit'), - 'view' => Pages\ViewReport::route('/{record}'), + 'index' => ListReports::route('/'), + 'edit' => EditReport::route('/{record}/edit'), + 'view' => ViewReport::route('/{record}'), ]; } } diff --git a/app/Filament/Resources/ReportResource/Pages/EditReport.php b/app/Filament/Resources/ReportResource/Pages/EditReport.php index 1acc1738..ae6c25ca 100644 --- a/app/Filament/Resources/ReportResource/Pages/EditReport.php +++ b/app/Filament/Resources/ReportResource/Pages/EditReport.php @@ -5,7 +5,7 @@ declare(strict_types=1); namespace App\Filament\Resources\ReportResource\Pages; use App\Filament\Resources\ReportResource; -use Filament\Actions; +use Filament\Actions\DeleteAction; use Filament\Resources\Pages\EditRecord; class EditReport extends EditRecord @@ -15,7 +15,7 @@ class EditReport extends EditRecord protected function getHeaderActions(): array { return [ - Actions\DeleteAction::make() + DeleteAction::make() ->icon('heroicon-m-trash'), ]; } diff --git a/app/Filament/Resources/TagResource.php b/app/Filament/Resources/TagResource.php index 659f4755..fe1ccd2e 100644 --- a/app/Filament/Resources/TagResource.php +++ b/app/Filament/Resources/TagResource.php @@ -4,13 +4,18 @@ declare(strict_types=1); namespace App\Filament\Resources; -use App\Filament\Resources\TagResource\Pages; +use App\Filament\Resources\TagResource\Pages\CreateTag; +use App\Filament\Resources\TagResource\Pages\EditTag; +use App\Filament\Resources\TagResource\Pages\ListTags; use App\Models\Tag; -use Filament\Forms; +use Filament\Actions\BulkActionGroup; +use Filament\Actions\DeleteBulkAction; +use Filament\Actions\EditAction; +use Filament\Forms\Components\Select; use Filament\Forms\Components\TextInput; -use Filament\Forms\Form; use Filament\Resources\Resource; -use Filament\Tables; +use Filament\Schemas\Schema; +use Filament\Tables\Columns\TextColumn; use Filament\Tables\Filters\SelectFilter; use Filament\Tables\Table; @@ -18,20 +23,20 @@ class TagResource extends Resource { protected static ?string $model = Tag::class; - protected static ?string $navigationIcon = 'heroicon-o-tag'; + protected static string|\BackedEnum|null $navigationIcon = 'heroicon-o-tag'; - protected static ?string $navigationGroup = 'Timetracking'; + protected static string|\UnitEnum|null $navigationGroup = 'Timetracking'; protected static ?int $navigationSort = 5; - public static function form(Form $form): Form + public static function form(Schema $schema): Schema { - return $form - ->schema([ + return $schema + ->components([ TextInput::make('name') ->label('Name') ->required(), - Forms\Components\Select::make('organization_id') + Select::make('organization_id') ->relationship(name: 'organization', titleAttribute: 'name') ->label('Organization') ->searchable(['name']) @@ -43,17 +48,17 @@ class TagResource extends Resource { return $table ->columns([ - Tables\Columns\TextColumn::make('name') + TextColumn::make('name') ->label('Name') ->searchable() ->sortable(), - Tables\Columns\TextColumn::make('organization.name') + TextColumn::make('organization.name') ->sortable() ->label('Organization'), - Tables\Columns\TextColumn::make('created_at') + TextColumn::make('created_at') ->label('Created at') ->sortable(), - Tables\Columns\TextColumn::make('updated_at') + TextColumn::make('updated_at') ->label('Updated at') ->sortable(), ]) @@ -68,12 +73,12 @@ class TagResource extends Resource ->relationship('organization', 'id') ->searchable(), ]) - ->actions([ - Tables\Actions\EditAction::make(), + ->recordActions([ + EditAction::make(), ]) - ->bulkActions([ - Tables\Actions\BulkActionGroup::make([ - Tables\Actions\DeleteBulkAction::make(), + ->toolbarActions([ + BulkActionGroup::make([ + DeleteBulkAction::make(), ]), ]); } @@ -88,9 +93,9 @@ class TagResource extends Resource public static function getPages(): array { return [ - 'index' => Pages\ListTags::route('/'), - 'create' => Pages\CreateTag::route('/create'), - 'edit' => Pages\EditTag::route('/{record}/edit'), + 'index' => ListTags::route('/'), + 'create' => CreateTag::route('/create'), + 'edit' => EditTag::route('/{record}/edit'), ]; } } diff --git a/app/Filament/Resources/TagResource/Pages/EditTag.php b/app/Filament/Resources/TagResource/Pages/EditTag.php index b61b1269..674390cc 100644 --- a/app/Filament/Resources/TagResource/Pages/EditTag.php +++ b/app/Filament/Resources/TagResource/Pages/EditTag.php @@ -5,7 +5,7 @@ declare(strict_types=1); namespace App\Filament\Resources\TagResource\Pages; use App\Filament\Resources\TagResource; -use Filament\Actions; +use Filament\Actions\DeleteAction; use Filament\Resources\Pages\EditRecord; class EditTag extends EditRecord @@ -15,7 +15,7 @@ class EditTag extends EditRecord protected function getHeaderActions(): array { return [ - Actions\DeleteAction::make() + DeleteAction::make() ->icon('heroicon-m-trash'), ]; } diff --git a/app/Filament/Resources/TagResource/Pages/ListTags.php b/app/Filament/Resources/TagResource/Pages/ListTags.php index c17bc294..4b5f434b 100644 --- a/app/Filament/Resources/TagResource/Pages/ListTags.php +++ b/app/Filament/Resources/TagResource/Pages/ListTags.php @@ -5,7 +5,7 @@ declare(strict_types=1); namespace App\Filament\Resources\TagResource\Pages; use App\Filament\Resources\TagResource; -use Filament\Actions; +use Filament\Actions\CreateAction; use Filament\Resources\Pages\ListRecords; class ListTags extends ListRecords @@ -15,7 +15,7 @@ class ListTags extends ListRecords protected function getHeaderActions(): array { return [ - Actions\CreateAction::make() + CreateAction::make() ->icon('heroicon-s-plus'), ]; } diff --git a/app/Filament/Resources/TaskResource.php b/app/Filament/Resources/TaskResource.php index 78e63b31..a618cccc 100644 --- a/app/Filament/Resources/TaskResource.php +++ b/app/Filament/Resources/TaskResource.php @@ -4,13 +4,18 @@ declare(strict_types=1); namespace App\Filament\Resources; -use App\Filament\Resources\TaskResource\Pages; +use App\Filament\Resources\TaskResource\Pages\CreateTask; +use App\Filament\Resources\TaskResource\Pages\EditTask; +use App\Filament\Resources\TaskResource\Pages\ListTasks; use App\Models\Task; -use Filament\Forms; +use Filament\Actions\BulkActionGroup; +use Filament\Actions\DeleteBulkAction; +use Filament\Actions\EditAction; use Filament\Forms\Components\Select; -use Filament\Forms\Form; +use Filament\Forms\Components\TextInput; use Filament\Resources\Resource; -use Filament\Tables; +use Filament\Schemas\Schema; +use Filament\Tables\Columns\TextColumn; use Filament\Tables\Filters\SelectFilter; use Filament\Tables\Table; @@ -18,17 +23,17 @@ class TaskResource extends Resource { protected static ?string $model = Task::class; - protected static ?string $navigationIcon = 'heroicon-o-list-bullet'; + protected static string|\BackedEnum|null $navigationIcon = 'heroicon-o-list-bullet'; - protected static ?string $navigationGroup = 'Timetracking'; + protected static string|\UnitEnum|null $navigationGroup = 'Timetracking'; protected static ?int $navigationSort = 3; - public static function form(Form $form): Form + public static function form(Schema $schema): Schema { - return $form - ->schema([ - Forms\Components\TextInput::make('name') + return $schema + ->components([ + TextInput::make('name') ->label('Name') ->required() ->maxLength(255), @@ -47,16 +52,16 @@ class TaskResource extends Resource { return $table ->columns([ - Tables\Columns\TextColumn::make('name') + TextColumn::make('name') ->searchable() ->sortable(), - Tables\Columns\TextColumn::make('project.name') + TextColumn::make('project.name') ->sortable(), - Tables\Columns\TextColumn::make('organization.name') + TextColumn::make('organization.name') ->sortable(), - Tables\Columns\TextColumn::make('created_at') + TextColumn::make('created_at') ->sortable(), - Tables\Columns\TextColumn::make('updated_at') + TextColumn::make('updated_at') ->sortable(), ]) ->filters([ @@ -70,12 +75,12 @@ class TaskResource extends Resource ->searchable(), ]) ->defaultSort('created_at', 'desc') - ->actions([ - Tables\Actions\EditAction::make(), + ->recordActions([ + EditAction::make(), ]) - ->bulkActions([ - Tables\Actions\BulkActionGroup::make([ - Tables\Actions\DeleteBulkAction::make(), + ->toolbarActions([ + BulkActionGroup::make([ + DeleteBulkAction::make(), ]), ]); } @@ -90,9 +95,9 @@ class TaskResource extends Resource public static function getPages(): array { return [ - 'index' => Pages\ListTasks::route('/'), - 'create' => Pages\CreateTask::route('/create'), - 'edit' => Pages\EditTask::route('/{record}/edit'), + 'index' => ListTasks::route('/'), + 'create' => CreateTask::route('/create'), + 'edit' => EditTask::route('/{record}/edit'), ]; } } diff --git a/app/Filament/Resources/TaskResource/Pages/EditTask.php b/app/Filament/Resources/TaskResource/Pages/EditTask.php index 26331b2c..97995859 100644 --- a/app/Filament/Resources/TaskResource/Pages/EditTask.php +++ b/app/Filament/Resources/TaskResource/Pages/EditTask.php @@ -5,7 +5,7 @@ declare(strict_types=1); namespace App\Filament\Resources\TaskResource\Pages; use App\Filament\Resources\TaskResource; -use Filament\Actions; +use Filament\Actions\DeleteAction; use Filament\Resources\Pages\EditRecord; class EditTask extends EditRecord @@ -15,7 +15,7 @@ class EditTask extends EditRecord protected function getHeaderActions(): array { return [ - Actions\DeleteAction::make() + DeleteAction::make() ->icon('heroicon-m-trash'), ]; } diff --git a/app/Filament/Resources/TaskResource/Pages/ListTasks.php b/app/Filament/Resources/TaskResource/Pages/ListTasks.php index 4c0519bb..503ce2f3 100644 --- a/app/Filament/Resources/TaskResource/Pages/ListTasks.php +++ b/app/Filament/Resources/TaskResource/Pages/ListTasks.php @@ -5,7 +5,7 @@ declare(strict_types=1); namespace App\Filament\Resources\TaskResource\Pages; use App\Filament\Resources\TaskResource; -use Filament\Actions; +use Filament\Actions\CreateAction; use Filament\Resources\Pages\ListRecords; class ListTasks extends ListRecords @@ -15,7 +15,7 @@ class ListTasks extends ListRecords protected function getHeaderActions(): array { return [ - Actions\CreateAction::make() + CreateAction::make() ->icon('heroicon-s-plus'), ]; } diff --git a/app/Filament/Resources/TimeEntryResource.php b/app/Filament/Resources/TimeEntryResource.php index 53d459c7..083fbd63 100644 --- a/app/Filament/Resources/TimeEntryResource.php +++ b/app/Filament/Resources/TimeEntryResource.php @@ -4,16 +4,20 @@ declare(strict_types=1); namespace App\Filament\Resources; -use App\Filament\Resources\TimeEntryResource\Pages; +use App\Filament\Resources\TimeEntryResource\Pages\CreateTimeEntry; +use App\Filament\Resources\TimeEntryResource\Pages\EditTimeEntry; +use App\Filament\Resources\TimeEntryResource\Pages\ListTimeEntries; use App\Models\Member; use App\Models\TimeEntry; +use Filament\Actions\BulkActionGroup; +use Filament\Actions\DeleteBulkAction; +use Filament\Actions\EditAction; use Filament\Forms\Components\DateTimePicker; use Filament\Forms\Components\Select; use Filament\Forms\Components\TextInput; use Filament\Forms\Components\Toggle; -use Filament\Forms\Form; use Filament\Resources\Resource; -use Filament\Tables; +use Filament\Schemas\Schema; use Filament\Tables\Columns\TextColumn; use Filament\Tables\Filters\SelectFilter; use Filament\Tables\Table; @@ -23,16 +27,16 @@ class TimeEntryResource extends Resource { protected static ?string $model = TimeEntry::class; - protected static ?string $navigationIcon = 'heroicon-o-clock'; + protected static string|\BackedEnum|null $navigationIcon = 'heroicon-o-clock'; - protected static ?string $navigationGroup = 'Timetracking'; + protected static string|\UnitEnum|null $navigationGroup = 'Timetracking'; protected static ?int $navigationSort = 1; - public static function form(Form $form): Form + public static function form(Schema $schema): Schema { - return $form - ->schema([ + return $schema + ->components([ TextInput::make('id') ->label('ID') ->readOnly() @@ -111,12 +115,12 @@ class TimeEntryResource extends Resource ->searchable(), ]) ->defaultSort('created_at', 'desc') - ->actions([ - Tables\Actions\EditAction::make(), + ->recordActions([ + EditAction::make(), ]) - ->bulkActions([ - Tables\Actions\BulkActionGroup::make([ - Tables\Actions\DeleteBulkAction::make(), + ->toolbarActions([ + BulkActionGroup::make([ + DeleteBulkAction::make(), ]), ]); } @@ -131,9 +135,9 @@ class TimeEntryResource extends Resource public static function getPages(): array { return [ - 'index' => Pages\ListTimeEntries::route('/'), - 'create' => Pages\CreateTimeEntry::route('/create'), - 'edit' => Pages\EditTimeEntry::route('/{record}/edit'), + 'index' => ListTimeEntries::route('/'), + 'create' => CreateTimeEntry::route('/create'), + 'edit' => EditTimeEntry::route('/{record}/edit'), ]; } } diff --git a/app/Filament/Resources/TimeEntryResource/Pages/EditTimeEntry.php b/app/Filament/Resources/TimeEntryResource/Pages/EditTimeEntry.php index f8ef533f..948161af 100644 --- a/app/Filament/Resources/TimeEntryResource/Pages/EditTimeEntry.php +++ b/app/Filament/Resources/TimeEntryResource/Pages/EditTimeEntry.php @@ -6,7 +6,7 @@ namespace App\Filament\Resources\TimeEntryResource\Pages; use App\Filament\Resources\TimeEntryResource; use App\Models\Member; -use Filament\Actions; +use Filament\Actions\DeleteAction; use Filament\Resources\Pages\EditRecord; class EditTimeEntry extends EditRecord @@ -16,7 +16,7 @@ class EditTimeEntry extends EditRecord protected function getHeaderActions(): array { return [ - Actions\DeleteAction::make() + DeleteAction::make() ->icon('heroicon-m-trash'), ]; } diff --git a/app/Filament/Resources/TimeEntryResource/Pages/ListTimeEntries.php b/app/Filament/Resources/TimeEntryResource/Pages/ListTimeEntries.php index 93f1e497..bb440e43 100644 --- a/app/Filament/Resources/TimeEntryResource/Pages/ListTimeEntries.php +++ b/app/Filament/Resources/TimeEntryResource/Pages/ListTimeEntries.php @@ -5,7 +5,7 @@ declare(strict_types=1); namespace App\Filament\Resources\TimeEntryResource\Pages; use App\Filament\Resources\TimeEntryResource; -use Filament\Actions; +use Filament\Actions\CreateAction; use Filament\Resources\Pages\ListRecords; class ListTimeEntries extends ListRecords @@ -15,7 +15,7 @@ class ListTimeEntries extends ListRecords protected function getHeaderActions(): array { return [ - Actions\CreateAction::make() + CreateAction::make() ->icon('heroicon-s-plus'), ]; } diff --git a/app/Filament/Resources/TokenResource.php b/app/Filament/Resources/TokenResource.php index 13e34d39..ec5d7ff1 100644 --- a/app/Filament/Resources/TokenResource.php +++ b/app/Filament/Resources/TokenResource.php @@ -4,12 +4,18 @@ declare(strict_types=1); namespace App\Filament\Resources; -use App\Filament\Resources\TokenResource\Pages; +use App\Filament\Resources\TokenResource\Pages\ListTokens; +use App\Filament\Resources\TokenResource\Pages\ViewToken; use App\Models\Passport\Token; -use Filament\Forms; -use Filament\Forms\Form; +use Filament\Actions\ViewAction; +use Filament\Forms\Components\DateTimePicker; +use Filament\Forms\Components\Select; +use Filament\Forms\Components\TextInput; +use Filament\Forms\Components\Toggle; use Filament\Resources\Resource; -use Filament\Tables; +use Filament\Schemas\Schema; +use Filament\Tables\Columns\IconColumn; +use Filament\Tables\Columns\TextColumn; use Filament\Tables\Filters\TernaryFilter; use Filament\Tables\Table; use Illuminate\Database\Eloquent\Builder; @@ -18,48 +24,48 @@ class TokenResource extends Resource { protected static ?string $model = Token::class; - protected static ?string $navigationIcon = 'heroicon-o-key'; + protected static string|\BackedEnum|null $navigationIcon = 'heroicon-o-key'; - protected static ?string $navigationGroup = 'Auth'; + protected static string|\UnitEnum|null $navigationGroup = 'Auth'; protected static ?int $navigationSort = 6; - public static function form(Form $form): Form + public static function form(Schema $schema): Schema { - return $form + return $schema ->columns(1) - ->schema([ - Forms\Components\TextInput::make('id') + ->components([ + TextInput::make('id') ->label('ID') ->disabled() ->visibleOn(['update', 'show']) ->readOnly() ->maxLength(255), - Forms\Components\TextInput::make('name') + TextInput::make('name') ->label('Name') ->required() ->maxLength(255), - Forms\Components\Select::make('owner_id') + Select::make('owner_id') ->label('User') ->relationship(name: 'user', titleAttribute: 'name') ->searchable(['name']) ->disabled() ->required(), - Forms\Components\Select::make('client_id') + Select::make('client_id') ->label('Client') ->relationship(name: 'client', titleAttribute: 'name') ->searchable(['name']) ->required(), - Forms\Components\Toggle::make('revoked') + Toggle::make('revoked') ->label('Revoked') ->required(), - Forms\Components\DateTimePicker::make('expires_at') + DateTimePicker::make('expires_at') ->label('Expires At') ->disabled(), - Forms\Components\DateTimePicker::make('created_at') + DateTimePicker::make('created_at') ->label('Created At') ->disabled(), - Forms\Components\DateTimePicker::make('updated_at') + DateTimePicker::make('updated_at') ->label('Updated At') ->disabled(), ]); @@ -69,32 +75,32 @@ class TokenResource extends Resource { return $table ->columns([ - Tables\Columns\TextColumn::make('name') + TextColumn::make('name') ->searchable() ->sortable(), - Tables\Columns\TextColumn::make('user.name') + TextColumn::make('user.name') ->searchable() ->sortable(), - Tables\Columns\TextColumn::make('client.name') + TextColumn::make('client.name') ->searchable() ->sortable(), - Tables\Columns\IconColumn::make('personal_access_client') + IconColumn::make('personal_access_client') ->state(function (Token $token): bool { return in_array('personal_access', $token->client->grant_types ?? [], true); }) ->boolean() ->label('API token?'), - Tables\Columns\IconColumn::make('revoked') + IconColumn::make('revoked') ->boolean() ->label('Revoked?') ->sortable(), - Tables\Columns\TextColumn::make('expires_at') + TextColumn::make('expires_at') ->dateTime() ->sortable(), - Tables\Columns\TextColumn::make('created_at') + TextColumn::make('created_at') ->dateTime() ->sortable(), - Tables\Columns\TextColumn::make('updated_at') + TextColumn::make('updated_at') ->dateTime() ->sortable() ->toggleable(isToggledHiddenByDefault: true), @@ -120,10 +126,10 @@ class TokenResource extends Resource TernaryFilter::make('revoked') ->label('Revoked?'), ]) - ->actions([ - Tables\Actions\ViewAction::make(), + ->recordActions([ + ViewAction::make(), ]) - ->bulkActions([ + ->toolbarActions([ ]); } @@ -136,8 +142,8 @@ class TokenResource extends Resource public static function getPages(): array { return [ - 'index' => Pages\ListTokens::route('/'), - 'view' => Pages\ViewToken::route('/{record}'), + 'index' => ListTokens::route('/'), + 'view' => ViewToken::route('/{record}'), ]; } } diff --git a/app/Filament/Resources/UserResource.php b/app/Filament/Resources/UserResource.php index eef374d4..dc4bfd4a 100644 --- a/app/Filament/Resources/UserResource.php +++ b/app/Filament/Resources/UserResource.php @@ -6,7 +6,10 @@ namespace App\Filament\Resources; use App\Enums\Weekday; use App\Exceptions\Api\ApiException; -use App\Filament\Resources\UserResource\Pages; +use App\Filament\Resources\UserResource\Pages\CreateUser; +use App\Filament\Resources\UserResource\Pages\EditUser; +use App\Filament\Resources\UserResource\Pages\ListUsers; +use App\Filament\Resources\UserResource\Pages\ViewUser; use App\Filament\Resources\UserResource\RelationManagers\OrganizationsRelationManager; use App\Filament\Resources\UserResource\RelationManagers\OwnedOrganizationsRelationManager; use App\Models\User; @@ -15,12 +18,18 @@ use App\Service\TimezoneService; use App\Service\UserService; use Brick\Money\ISOCurrencyProvider; use Exception; -use Filament\Forms; +use Filament\Actions\BulkAction; +use Filament\Actions\DeleteAction; +use Filament\Actions\EditAction; +use Filament\Forms\Components\DateTimePicker; +use Filament\Forms\Components\Select; use Filament\Forms\Components\TextInput; -use Filament\Forms\Form; +use Filament\Forms\Components\Toggle; use Filament\Notifications\Notification; use Filament\Resources\Resource; -use Filament\Tables; +use Filament\Schemas\Schema; +use Filament\Tables\Columns\IconColumn; +use Filament\Tables\Columns\TextColumn; use Filament\Tables\Filters\TernaryFilter; use Filament\Tables\Table; use Illuminate\Database\Eloquent\Builder; @@ -28,26 +37,26 @@ use Illuminate\Support\Collection; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Hash; use Korridor\LaravelModelValidationRules\Rules\UniqueEloquent; -use STS\FilamentImpersonate\Tables\Actions\Impersonate; +use STS\FilamentImpersonate\Actions\Impersonate; class UserResource extends Resource { protected static ?string $model = User::class; - protected static ?string $navigationIcon = 'heroicon-o-user'; + protected static string|\BackedEnum|null $navigationIcon = 'heroicon-o-user'; - protected static ?string $navigationGroup = 'Users'; + protected static string|\UnitEnum|null $navigationGroup = 'Users'; protected static ?int $navigationSort = 6; - public static function form(Form $form): Form + public static function form(Schema $schema): Schema { /** @var User|null $record */ - $record = $form->getRecord(); + $record = $schema->getRecord(); - return $form + return $schema ->columns(1) - ->schema([ + ->components([ TextInput::make('id') ->label('ID') ->disabled() @@ -69,23 +78,23 @@ class UserResource extends Resource 'email:rfc,strict', ]) ->maxLength(255), - Forms\Components\Toggle::make('is_placeholder') + Toggle::make('is_placeholder') ->label('Is Placeholder?') ->hiddenOn(['create']) ->disabledOn(['edit']), - Forms\Components\DateTimePicker::make('email_verified_at') + DateTimePicker::make('email_verified_at') ->label('Email Verified At') ->hiddenOn(['create']) ->nullable(), - Forms\Components\Toggle::make('is_email_verified') + Toggle::make('is_email_verified') ->label('Email Verified?') ->visibleOn(['create']), - Forms\Components\Select::make('timezone') + Select::make('timezone') ->label('Timezone') ->options(fn (): array => app(TimezoneService::class)->getSelectOptions()) ->searchable() ->required(), - Forms\Components\Select::make('week_start') + Select::make('week_start') ->label('Week Start') ->options(Weekday::class) ->required(), @@ -103,7 +112,7 @@ class UserResource extends Resource ->visibleOn(['create']) ->required(fn (string $context): bool => $context === 'create') ->maxLength(255), - Forms\Components\Select::make('currency') + Select::make('currency') ->label('Currency (Personal Organization)') ->options(function (): array { $currencies = ISOCurrencyProvider::getInstance()->getAvailableCurrencies(); @@ -117,11 +126,11 @@ class UserResource extends Resource ->required() ->visibleOn(['create']) ->searchable(), - Forms\Components\DateTimePicker::make('created_at') + DateTimePicker::make('created_at') ->label('Created At') ->hiddenOn(['create']) ->disabled(), - Forms\Components\DateTimePicker::make('updated_at') + DateTimePicker::make('updated_at') ->label('Updated At') ->hiddenOn(['create']) ->disabled(), @@ -132,25 +141,25 @@ class UserResource extends Resource { return $table ->columns([ - Tables\Columns\TextColumn::make('name') + TextColumn::make('name') ->searchable() ->sortable(), - Tables\Columns\TextColumn::make('email') + TextColumn::make('email') ->icon('heroicon-m-envelope') ->searchable() ->sortable(), - Tables\Columns\IconColumn::make('is_real_user') + IconColumn::make('is_real_user') ->getStateUsing(fn (User $record): bool => ! $record->is_placeholder) ->label('Real user?') ->boolean(), - Tables\Columns\IconColumn::make('email_verified') + IconColumn::make('email_verified') ->getStateUsing(fn (User $record): bool => $record->email_verified_at !== null) ->label('Email verified?') ->boolean(), - Tables\Columns\TextColumn::make('created_at') + TextColumn::make('created_at') ->dateTime() ->sortable(), - Tables\Columns\TextColumn::make('updated_at') + TextColumn::make('updated_at') ->dateTime() ->sortable() ->toggleable(isToggledHiddenByDefault: true), @@ -178,7 +187,7 @@ class UserResource extends Resource ->attribute('email_verified_at') ->nullable(), ]) - ->actions([ + ->recordActions([ Impersonate::make()->before(function (User $record): void { if ($record->currentOrganization === null) { $organization = $record->organizations()->where('personal_team', '=', true)->first(); @@ -191,8 +200,8 @@ class UserResource extends Resource app(UserService::class)->switchCurrentOrganization($record, $organization); } }), - Tables\Actions\EditAction::make(), - Tables\Actions\DeleteAction::make() + EditAction::make(), + DeleteAction::make() ->hidden(fn (User $record) => $record->is(Auth::user())) ->using(function (User $record): void { try { @@ -207,8 +216,8 @@ class UserResource extends Resource } }), ]) - ->bulkActions([ - Tables\Actions\BulkAction::make('Resend verification email') + ->toolbarActions([ + BulkAction::make('Resend verification email') ->icon('heroicon-o-paper-airplane') ->action(function (Collection $records): void { foreach ($records as $user) { @@ -230,10 +239,10 @@ class UserResource extends Resource public static function getPages(): array { return [ - 'index' => Pages\ListUsers::route('/'), - 'create' => Pages\CreateUser::route('/create'), - 'edit' => Pages\EditUser::route('/{record}/edit'), - 'view' => Pages\ViewUser::route('/{record}'), + 'index' => ListUsers::route('/'), + 'create' => CreateUser::route('/create'), + 'edit' => EditUser::route('/{record}/edit'), + 'view' => ViewUser::route('/{record}'), ]; } } diff --git a/app/Filament/Resources/UserResource/Pages/CreateUser.php b/app/Filament/Resources/UserResource/Pages/CreateUser.php index 51666d49..831eadcd 100644 --- a/app/Filament/Resources/UserResource/Pages/CreateUser.php +++ b/app/Filament/Resources/UserResource/Pages/CreateUser.php @@ -22,7 +22,7 @@ class CreateUser extends CreateRecord $data['email'], $data['password_create'], $data['timezone'], - Weekday::from($data['week_start']), + $data['week_start'] instanceof Weekday ? $data['week_start'] : Weekday::from($data['week_start']), $data['currency'], verifyEmail: (bool) $data['is_email_verified'] ); diff --git a/app/Filament/Resources/UserResource/Pages/EditUser.php b/app/Filament/Resources/UserResource/Pages/EditUser.php index f7793a9a..c31df325 100644 --- a/app/Filament/Resources/UserResource/Pages/EditUser.php +++ b/app/Filament/Resources/UserResource/Pages/EditUser.php @@ -5,8 +5,9 @@ declare(strict_types=1); namespace App\Filament\Resources\UserResource\Pages; use App\Filament\Resources\UserResource; +use App\Filament\Resources\UserResource\Actions\DeleteUser; use Filament\Resources\Pages\EditRecord; -use STS\FilamentImpersonate\Pages\Actions\Impersonate; +use STS\FilamentImpersonate\Actions\Impersonate; class EditUser extends EditRecord { @@ -16,7 +17,7 @@ class EditUser extends EditRecord { return [ Impersonate::make()->record($this->getRecord()), - UserResource\Actions\DeleteUser::make(), + DeleteUser::make(), ]; } } diff --git a/app/Filament/Resources/UserResource/Pages/ListUsers.php b/app/Filament/Resources/UserResource/Pages/ListUsers.php index 8d04ff0e..6fdbe4f1 100644 --- a/app/Filament/Resources/UserResource/Pages/ListUsers.php +++ b/app/Filament/Resources/UserResource/Pages/ListUsers.php @@ -5,7 +5,7 @@ declare(strict_types=1); namespace App\Filament\Resources\UserResource\Pages; use App\Filament\Resources\UserResource; -use Filament\Actions; +use Filament\Actions\CreateAction; use Filament\Resources\Pages\ListRecords; class ListUsers extends ListRecords @@ -15,7 +15,7 @@ class ListUsers extends ListRecords protected function getHeaderActions(): array { return [ - Actions\CreateAction::make() + CreateAction::make() ->icon('heroicon-s-plus'), ]; } diff --git a/app/Filament/Resources/UserResource/Pages/ViewUser.php b/app/Filament/Resources/UserResource/Pages/ViewUser.php index 6b49282d..c9340c23 100644 --- a/app/Filament/Resources/UserResource/Pages/ViewUser.php +++ b/app/Filament/Resources/UserResource/Pages/ViewUser.php @@ -7,7 +7,7 @@ namespace App\Filament\Resources\UserResource\Pages; use App\Filament\Resources\UserResource; use Filament\Actions\EditAction; use Filament\Resources\Pages\ViewRecord; -use STS\FilamentImpersonate\Pages\Actions\Impersonate; +use STS\FilamentImpersonate\Actions\Impersonate; class ViewUser extends ViewRecord { diff --git a/app/Filament/Resources/UserResource/RelationManagers/OrganizationsRelationManager.php b/app/Filament/Resources/UserResource/RelationManagers/OrganizationsRelationManager.php index 72b31442..1b80804d 100644 --- a/app/Filament/Resources/UserResource/RelationManagers/OrganizationsRelationManager.php +++ b/app/Filament/Resources/UserResource/RelationManagers/OrganizationsRelationManager.php @@ -11,12 +11,13 @@ use App\Models\Member; use App\Models\Organization; use App\Models\User; use App\Service\MemberService; +use Filament\Actions\Action; +use Filament\Actions\DetachAction; +use Filament\Actions\EditAction; use Filament\Forms\Components\Select; -use Filament\Forms\Form; use Filament\Notifications\Notification; use Filament\Resources\RelationManagers\RelationManager; -use Filament\Tables; -use Filament\Tables\Actions\Action; +use Filament\Schemas\Schema; use Filament\Tables\Columns\TextColumn; use Filament\Tables\Table; @@ -24,10 +25,10 @@ class OrganizationsRelationManager extends RelationManager { protected static string $relationship = 'organizations'; - public function form(Form $form): Form + public function form(Schema $schema): Schema { - return $form - ->schema([ + return $schema + ->components([ Select::make('role') ->options(Role::class), ]); @@ -46,21 +47,21 @@ class OrganizationsRelationManager extends RelationManager ]) ->headerActions([ ]) - ->actions([ + ->recordActions([ Action::make('view') ->icon('heroicon-o-eye') ->color('gray') ->url(fn (Organization $record): string => OrganizationResource::getUrl('view', [ 'record' => $record->getKey(), ])), - Tables\Actions\EditAction::make() + EditAction::make() ->using(function (Organization $record, array $data): Organization { /** @var Member $member */ $member = $record->getRelation('membership'); if ($data['role'] !== $member->role) { try { - app(MemberService::class)->changeRole($member, $record, Role::from($data['role']), true); + app(MemberService::class)->changeRole($member, $record, ($data['role'] instanceof Role ? $data['role'] : Role::from($data['role'])), true); } catch (ApiException $exception) { Notification::make() ->danger() @@ -74,7 +75,7 @@ class OrganizationsRelationManager extends RelationManager return $record; }), - Tables\Actions\DetachAction::make() + DetachAction::make() ->using(function (Organization $record): void { /** @var User $user */ $user = $this->getOwnerRecord(); @@ -94,7 +95,7 @@ class OrganizationsRelationManager extends RelationManager } }), ]) - ->bulkActions([ + ->toolbarActions([ ]); } } diff --git a/app/Filament/Resources/UserResource/RelationManagers/OwnedOrganizationsRelationManager.php b/app/Filament/Resources/UserResource/RelationManagers/OwnedOrganizationsRelationManager.php index c348c3dc..719c8643 100644 --- a/app/Filament/Resources/UserResource/RelationManagers/OwnedOrganizationsRelationManager.php +++ b/app/Filament/Resources/UserResource/RelationManagers/OwnedOrganizationsRelationManager.php @@ -6,10 +6,10 @@ namespace App\Filament\Resources\UserResource\RelationManagers; use App\Filament\Resources\OrganizationResource; use App\Models\Organization; -use Filament\Forms\Form; +use Filament\Actions\Action; use Filament\Resources\RelationManagers\RelationManager; -use Filament\Tables; -use Filament\Tables\Actions\Action; +use Filament\Schemas\Schema; +use Filament\Tables\Columns\TextColumn; use Filament\Tables\Table; class OwnedOrganizationsRelationManager extends RelationManager @@ -18,10 +18,10 @@ class OwnedOrganizationsRelationManager extends RelationManager protected static string $relationship = 'ownedOrganizations'; - public function form(Form $form): Form + public function form(Schema $schema): Schema { - return $form - ->schema([ + return $schema + ->components([ ]); } @@ -30,14 +30,14 @@ class OwnedOrganizationsRelationManager extends RelationManager return $table ->recordTitleAttribute('name') ->columns([ - Tables\Columns\TextColumn::make('name'), + TextColumn::make('name'), ]) ->filters([ // ]) ->headerActions([ ]) - ->actions([ + ->recordActions([ Action::make('view') ->icon('heroicon-o-eye') ->color('gray') @@ -51,7 +51,7 @@ class OwnedOrganizationsRelationManager extends RelationManager ])) ->openUrlInNewTab(), ]) - ->bulkActions([ + ->toolbarActions([ ]); } } diff --git a/app/Filament/Widgets/ServerOverview.php b/app/Filament/Widgets/ServerOverview.php index 0aae7339..11557ba2 100644 --- a/app/Filament/Widgets/ServerOverview.php +++ b/app/Filament/Widgets/ServerOverview.php @@ -9,7 +9,7 @@ use Illuminate\Support\Facades\Cache; class ServerOverview extends Widget { - protected static string $view = 'filament.widgets.server-overview'; + protected string $view = 'filament.widgets.server-overview'; /** * @return array diff --git a/app/Filament/Widgets/TimeEntriesCreated.php b/app/Filament/Widgets/TimeEntriesCreated.php index 260edbc3..5c295bbe 100644 --- a/app/Filament/Widgets/TimeEntriesCreated.php +++ b/app/Filament/Widgets/TimeEntriesCreated.php @@ -11,7 +11,7 @@ use Flowframe\Trend\TrendValue; class TimeEntriesCreated extends ChartWidget { - protected static ?string $heading = 'Time Entries Created'; + protected ?string $heading = 'Time Entries Created'; public ?string $filter = 'week'; @@ -53,7 +53,7 @@ class TimeEntriesCreated extends ChartWidget return [ 'datasets' => [ [ - 'label' => self::$heading, + 'label' => $this->heading, 'data' => $data->map(fn (TrendValue $value) => $value->aggregate), ], ], diff --git a/app/Filament/Widgets/TimeEntriesImported.php b/app/Filament/Widgets/TimeEntriesImported.php index 5638b734..5b4296ad 100644 --- a/app/Filament/Widgets/TimeEntriesImported.php +++ b/app/Filament/Widgets/TimeEntriesImported.php @@ -11,7 +11,7 @@ use Flowframe\Trend\TrendValue; class TimeEntriesImported extends ChartWidget { - protected static ?string $heading = 'Time Entries Imported'; + protected ?string $heading = 'Time Entries Imported'; public ?string $filter = 'week'; @@ -53,7 +53,7 @@ class TimeEntriesImported extends ChartWidget return [ 'datasets' => [ [ - 'label' => self::$heading, + 'label' => $this->heading, 'data' => $data->map(fn (TrendValue $value) => $value->aggregate), ], ], diff --git a/app/Filament/Widgets/UserRegistrations.php b/app/Filament/Widgets/UserRegistrations.php index 9a972121..af06154e 100644 --- a/app/Filament/Widgets/UserRegistrations.php +++ b/app/Filament/Widgets/UserRegistrations.php @@ -11,7 +11,7 @@ use Flowframe\Trend\TrendValue; class UserRegistrations extends ChartWidget { - protected static ?string $heading = 'User Registrations'; + protected ?string $heading = 'User Registrations'; public ?string $filter = 'week'; @@ -54,7 +54,7 @@ class UserRegistrations extends ChartWidget return [ 'datasets' => [ [ - 'label' => self::$heading, + 'label' => $this->heading, 'data' => $data->map(fn (TrendValue $value) => $value->aggregate), ], ], diff --git a/app/Http/Controllers/Api/V1/ApiTokenController.php b/app/Http/Controllers/Api/V1/ApiTokenController.php index 4cbb3cc9..91bda68b 100644 --- a/app/Http/Controllers/Api/V1/ApiTokenController.php +++ b/app/Http/Controllers/Api/V1/ApiTokenController.php @@ -14,6 +14,7 @@ use Illuminate\Auth\Access\AuthorizationException; use Illuminate\Database\Eloquent\Builder; use Illuminate\Http\JsonResponse; use Illuminate\Support\Str; +use RuntimeException; class ApiTokenController extends Controller { @@ -62,7 +63,7 @@ class ApiTokenController extends Controller $tokenModel = $token->getToken(); return new ApiTokenWithAccessTokenResource($tokenModel, $token->accessToken); - } catch (\RuntimeException $exception) { + } catch (RuntimeException $exception) { report($exception); if (Str::contains($exception->getMessage(), ['Personal access client not found'])) { throw new PersonalAccessClientIsNotConfiguredException; diff --git a/app/Http/Controllers/Api/V1/MemberController.php b/app/Http/Controllers/Api/V1/MemberController.php index 0b1a1ab6..de2a2998 100644 --- a/app/Http/Controllers/Api/V1/MemberController.php +++ b/app/Http/Controllers/Api/V1/MemberController.php @@ -33,6 +33,7 @@ use Illuminate\Http\JsonResponse; use Illuminate\Http\Resources\Json\JsonResource; use Illuminate\Support\Facades\DB; use Illuminate\Support\Str; +use Throwable; class MemberController extends Controller { @@ -146,7 +147,7 @@ class MemberController extends Controller * * @throws AuthorizationException * @throws OnlyPlaceholdersCanBeMergedIntoAnotherMember - * @throws \Throwable + * @throws Throwable * * @operationId mergeMember */ diff --git a/app/Http/Controllers/Api/V1/TimeEntryController.php b/app/Http/Controllers/Api/V1/TimeEntryController.php index 165546b9..5a1cd2f3 100644 --- a/app/Http/Controllers/Api/V1/TimeEntryController.php +++ b/app/Http/Controllers/Api/V1/TimeEntryController.php @@ -55,6 +55,7 @@ use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Storage; use Illuminate\Support\Str; +use LogicException; use Maatwebsite\Excel\Facades\Excel; use Spatie\TemporaryDirectory\TemporaryDirectory; @@ -265,7 +266,7 @@ class TimeEntryController extends Controller } $viewFile = file_get_contents(resource_path('views/reports/time-entry-index/pdf.blade.php')); if ($viewFile === false) { - throw new \LogicException('View file not found'); + throw new LogicException('View file not found'); } $timeEntriesAggregateQuery = $this->getTimeEntriesAggregateQuery($organization, $request, $memberFilter); $aggregatedData = $timeEntryAggregationService->getAggregatedTimeEntries( @@ -293,7 +294,7 @@ class TimeEntryController extends Controller ]); $footerViewFile = file_get_contents(resource_path('views/reports/time-entry-index/pdf-footer.blade.php')); if ($footerViewFile === false) { - throw new \LogicException('View file not found'); + throw new LogicException('View file not found'); } $footerHtml = Blade::render($footerViewFile); if ($debug) { @@ -495,7 +496,7 @@ class TimeEntryController extends Controller ]); $viewFile = file_get_contents(resource_path('views/reports/time-entry-aggregate/pdf.blade.php')); if ($viewFile === false) { - throw new \LogicException('View file not found'); + throw new LogicException('View file not found'); } $html = Blade::render($viewFile, [ 'aggregatedData' => $aggregatedData, @@ -512,7 +513,7 @@ class TimeEntryController extends Controller ]); $footerViewFile = file_get_contents(resource_path('views/reports/time-entry-aggregate/pdf-footer.blade.php')); if ($footerViewFile === false) { - throw new \LogicException('View file not found'); + throw new LogicException('View file not found'); } $footerHtml = Blade::render($footerViewFile); if ($debug) { diff --git a/app/Http/Controllers/Web/UserProfileController.php b/app/Http/Controllers/Web/UserProfileController.php index a247b842..4cb74747 100644 --- a/app/Http/Controllers/Web/UserProfileController.php +++ b/app/Http/Controllers/Web/UserProfileController.php @@ -16,6 +16,7 @@ use Inertia\Inertia; use Inertia\Response; use Laravel\Fortify\Actions\DisableTwoFactorAuthentication; use Laravel\Fortify\Features; +use stdClass; class UserProfileController extends Controller { @@ -103,7 +104,7 @@ class UserProfileController extends Controller /** * Get the current sessions. * - * @return array + * @return array */ public function sessions(Request $request): array { diff --git a/app/Http/Middleware/CheckOrganizationBlocked.php b/app/Http/Middleware/CheckOrganizationBlocked.php index c08e38ab..1a2c37b0 100644 --- a/app/Http/Middleware/CheckOrganizationBlocked.php +++ b/app/Http/Middleware/CheckOrganizationBlocked.php @@ -9,6 +9,7 @@ use App\Models\Organization; use App\Service\BillingContract; use Closure; use Illuminate\Http\Request; +use LogicException; use Symfony\Component\HttpFoundation\Response; class CheckOrganizationBlocked @@ -25,7 +26,7 @@ class CheckOrganizationBlocked $organization = $request->route('organization'); if (! ($organization instanceof Organization)) { - throw new \LogicException('The organization must be loaded before this middleware.'); + throw new LogicException('The organization must be loaded before this middleware.'); } /** @var BillingContract $billing */ diff --git a/app/Http/Middleware/TrustHosts.php b/app/Http/Middleware/TrustHosts.php index b261f660..b86c20a3 100644 --- a/app/Http/Middleware/TrustHosts.php +++ b/app/Http/Middleware/TrustHosts.php @@ -4,6 +4,7 @@ declare(strict_types=1); namespace App\Http\Middleware; +use Closure; use Illuminate\Http\Middleware\TrustHosts as BaseTrustHosts; use Illuminate\Http\Request; use Illuminate\Http\Response; @@ -39,7 +40,7 @@ class TrustHosts extends BaseTrustHosts } /** - * @param \Closure(Request): Response $next + * @param Closure(Request):Response $next */ public function handle(Request $request, $next) { diff --git a/app/Http/Requests/V1/Report/ReportStoreRequest.php b/app/Http/Requests/V1/Report/ReportStoreRequest.php index cb9aacf7..34fbc934 100644 --- a/app/Http/Requests/V1/Report/ReportStoreRequest.php +++ b/app/Http/Requests/V1/Report/ReportStoreRequest.php @@ -13,11 +13,13 @@ use App\Enums\Weekday; use App\Http\Requests\V1\BaseFormRequest; use App\Models\Organization; use App\Service\TimeEntryFilter; +use Closure; use Illuminate\Contracts\Validation\Rule as LegacyValidationRule; use Illuminate\Contracts\Validation\ValidationRule; use Illuminate\Support\Carbon; use Illuminate\Support\Str; use Illuminate\Validation\Rule; +use LogicException; /** * @property Organization $organization Organization from model binding @@ -27,7 +29,7 @@ class ReportStoreRequest extends BaseFormRequest /** * Get the validation rules that apply to the request. * - * @return array> + * @return array> */ public function rules(): array { @@ -85,7 +87,7 @@ class ReportStoreRequest extends BaseFormRequest ], 'properties.client_ids.*' => [ 'string', - function (string $attribute, mixed $value, \Closure $fail): void { + function (string $attribute, mixed $value, Closure $fail): void { if ($value === TimeEntryFilter::NONE_VALUE) { return; } @@ -101,7 +103,7 @@ class ReportStoreRequest extends BaseFormRequest ], 'properties.project_ids.*' => [ 'string', - function (string $attribute, mixed $value, \Closure $fail): void { + function (string $attribute, mixed $value, Closure $fail): void { if ($value === TimeEntryFilter::NONE_VALUE) { return; } @@ -117,7 +119,7 @@ class ReportStoreRequest extends BaseFormRequest ], 'properties.tag_ids.*' => [ 'string', - function (string $attribute, mixed $value, \Closure $fail): void { + function (string $attribute, mixed $value, Closure $fail): void { if ($value === TimeEntryFilter::NONE_VALUE) { return; } @@ -137,7 +139,7 @@ class ReportStoreRequest extends BaseFormRequest ], 'properties.task_ids.*' => [ 'string', - function (string $attribute, mixed $value, \Closure $fail): void { + function (string $attribute, mixed $value, Closure $fail): void { if ($value === TimeEntryFilter::NONE_VALUE) { return; } @@ -213,7 +215,7 @@ class ReportStoreRequest extends BaseFormRequest { $start = Carbon::createFromFormat('Y-m-d\TH:i:s\Z', $this->input('properties.start')); if ($start === null) { - throw new \LogicException('Start date validation is not working'); + throw new LogicException('Start date validation is not working'); } return $start; @@ -223,7 +225,7 @@ class ReportStoreRequest extends BaseFormRequest { $end = Carbon::createFromFormat('Y-m-d\TH:i:s\Z', $this->input('properties.end')); if ($end === null) { - throw new \LogicException('End date validation is not working'); + throw new LogicException('End date validation is not working'); } return $end; diff --git a/app/Http/Requests/V1/TimeEntry/TimeEntryAggregateExportRequest.php b/app/Http/Requests/V1/TimeEntry/TimeEntryAggregateExportRequest.php index 5cac5414..a3f5cced 100644 --- a/app/Http/Requests/V1/TimeEntry/TimeEntryAggregateExportRequest.php +++ b/app/Http/Requests/V1/TimeEntry/TimeEntryAggregateExportRequest.php @@ -19,11 +19,13 @@ use App\Models\Tag; use App\Models\Task; use App\Models\User; use App\Service\TimeEntryFilter; +use Closure; use Illuminate\Contracts\Validation\ValidationRule; use Illuminate\Database\Eloquent\Builder; use Illuminate\Support\Carbon; use Illuminate\Validation\Rule; use Korridor\LaravelModelValidationRules\Rules\ExistsEloquent; +use LogicException; /** * @property Organization $organization @@ -33,7 +35,7 @@ class TimeEntryAggregateExportRequest extends BaseFormRequest /** * Get the validation rules that apply to the request. * - * @return array> + * @return array> */ public function rules(): array { @@ -97,7 +99,7 @@ class TimeEntryAggregateExportRequest extends BaseFormRequest ], 'project_ids.*' => [ 'string', - function (string $attribute, mixed $value, \Closure $fail): void { + function (string $attribute, mixed $value, Closure $fail): void { if ($value === TimeEntryFilter::NONE_VALUE) { return; } @@ -114,7 +116,7 @@ class TimeEntryAggregateExportRequest extends BaseFormRequest ], 'client_ids.*' => [ 'string', - function (string $attribute, mixed $value, \Closure $fail): void { + function (string $attribute, mixed $value, Closure $fail): void { if ($value === TimeEntryFilter::NONE_VALUE) { return; } @@ -131,7 +133,7 @@ class TimeEntryAggregateExportRequest extends BaseFormRequest ], 'tag_ids.*' => [ 'string', - function (string $attribute, mixed $value, \Closure $fail): void { + function (string $attribute, mixed $value, Closure $fail): void { if ($value === TimeEntryFilter::NONE_VALUE) { return; } @@ -152,7 +154,7 @@ class TimeEntryAggregateExportRequest extends BaseFormRequest ], 'task_ids.*' => [ 'string', - function (string $attribute, mixed $value, \Closure $fail): void { + function (string $attribute, mixed $value, Closure $fail): void { if ($value === TimeEntryFilter::NONE_VALUE) { return; } @@ -236,7 +238,7 @@ class TimeEntryAggregateExportRequest extends BaseFormRequest { $start = Carbon::createFromFormat('Y-m-d\TH:i:s\Z', $this->input('start'), 'UTC'); if ($start === null) { - throw new \LogicException('Start date validation is not working'); + throw new LogicException('Start date validation is not working'); } return $start; @@ -246,7 +248,7 @@ class TimeEntryAggregateExportRequest extends BaseFormRequest { $end = Carbon::createFromFormat('Y-m-d\TH:i:s\Z', $this->input('end'), 'UTC'); if ($end === null) { - throw new \LogicException('End date validation is not working'); + throw new LogicException('End date validation is not working'); } return $end; diff --git a/app/Http/Requests/V1/TimeEntry/TimeEntryAggregateRequest.php b/app/Http/Requests/V1/TimeEntry/TimeEntryAggregateRequest.php index 1df2c321..e4c0c02b 100644 --- a/app/Http/Requests/V1/TimeEntry/TimeEntryAggregateRequest.php +++ b/app/Http/Requests/V1/TimeEntry/TimeEntryAggregateRequest.php @@ -17,6 +17,7 @@ use App\Models\Tag; use App\Models\Task; use App\Models\User; use App\Service\TimeEntryFilter; +use Closure; use Illuminate\Contracts\Validation\ValidationRule; use Illuminate\Database\Eloquent\Builder; use Illuminate\Support\Carbon; @@ -31,7 +32,7 @@ class TimeEntryAggregateRequest extends BaseFormRequest /** * Get the validation rules that apply to the request. * - * @return array> + * @return array> */ public function rules(): array { @@ -83,7 +84,7 @@ class TimeEntryAggregateRequest extends BaseFormRequest ], 'project_ids.*' => [ 'string', - function (string $attribute, mixed $value, \Closure $fail): void { + function (string $attribute, mixed $value, Closure $fail): void { if ($value === TimeEntryFilter::NONE_VALUE) { return; } @@ -100,7 +101,7 @@ class TimeEntryAggregateRequest extends BaseFormRequest ], 'client_ids.*' => [ 'string', - function (string $attribute, mixed $value, \Closure $fail): void { + function (string $attribute, mixed $value, Closure $fail): void { if ($value === TimeEntryFilter::NONE_VALUE) { return; } @@ -117,7 +118,7 @@ class TimeEntryAggregateRequest extends BaseFormRequest ], 'tag_ids.*' => [ 'string', - function (string $attribute, mixed $value, \Closure $fail): void { + function (string $attribute, mixed $value, Closure $fail): void { if ($value === TimeEntryFilter::NONE_VALUE) { return; } @@ -138,7 +139,7 @@ class TimeEntryAggregateRequest extends BaseFormRequest ], 'task_ids.*' => [ 'string', - function (string $attribute, mixed $value, \Closure $fail): void { + function (string $attribute, mixed $value, Closure $fail): void { if ($value === TimeEntryFilter::NONE_VALUE) { return; } diff --git a/app/Http/Requests/V1/TimeEntry/TimeEntryIndexExportRequest.php b/app/Http/Requests/V1/TimeEntry/TimeEntryIndexExportRequest.php index 7189139b..7abdfa93 100644 --- a/app/Http/Requests/V1/TimeEntry/TimeEntryIndexExportRequest.php +++ b/app/Http/Requests/V1/TimeEntry/TimeEntryIndexExportRequest.php @@ -15,11 +15,13 @@ use App\Models\Project; use App\Models\Tag; use App\Models\Task; use App\Service\TimeEntryFilter; +use Closure; use Illuminate\Contracts\Validation\ValidationRule; use Illuminate\Database\Eloquent\Builder; use Illuminate\Support\Carbon; use Illuminate\Validation\Rule; use Korridor\LaravelModelValidationRules\Rules\ExistsEloquent; +use LogicException; /** * @property Organization $organization @@ -29,7 +31,7 @@ class TimeEntryIndexExportRequest extends TimeEntryIndexRequest /** * Get the validation rules that apply to the request. * - * @return array> + * @return array> */ public function rules(): array { @@ -68,7 +70,7 @@ class TimeEntryIndexExportRequest extends TimeEntryIndexRequest ], 'client_ids.*' => [ 'string', - function (string $attribute, mixed $value, \Closure $fail): void { + function (string $attribute, mixed $value, Closure $fail): void { if ($value === TimeEntryFilter::NONE_VALUE) { return; } @@ -85,7 +87,7 @@ class TimeEntryIndexExportRequest extends TimeEntryIndexRequest ], 'project_ids.*' => [ 'string', - function (string $attribute, mixed $value, \Closure $fail): void { + function (string $attribute, mixed $value, Closure $fail): void { if ($value === TimeEntryFilter::NONE_VALUE) { return; } @@ -102,7 +104,7 @@ class TimeEntryIndexExportRequest extends TimeEntryIndexRequest ], 'tag_ids.*' => [ 'string', - function (string $attribute, mixed $value, \Closure $fail): void { + function (string $attribute, mixed $value, Closure $fail): void { if ($value === TimeEntryFilter::NONE_VALUE) { return; } @@ -123,7 +125,7 @@ class TimeEntryIndexExportRequest extends TimeEntryIndexRequest ], 'task_ids.*' => [ 'string', - function (string $attribute, mixed $value, \Closure $fail): void { + function (string $attribute, mixed $value, Closure $fail): void { if ($value === TimeEntryFilter::NONE_VALUE) { return; } @@ -200,7 +202,7 @@ class TimeEntryIndexExportRequest extends TimeEntryIndexRequest { $start = Carbon::createFromFormat('Y-m-d\TH:i:s\Z', $this->input('start'), 'UTC'); if ($start === null) { - throw new \LogicException('Start date validation is not working'); + throw new LogicException('Start date validation is not working'); } return $start; @@ -210,7 +212,7 @@ class TimeEntryIndexExportRequest extends TimeEntryIndexRequest { $end = Carbon::createFromFormat('Y-m-d\TH:i:s\Z', $this->input('end'), 'UTC'); if ($end === null) { - throw new \LogicException('End date validation is not working'); + throw new LogicException('End date validation is not working'); } return $end; diff --git a/app/Http/Requests/V1/TimeEntry/TimeEntryIndexRequest.php b/app/Http/Requests/V1/TimeEntry/TimeEntryIndexRequest.php index 8dde3011..8bae1e86 100644 --- a/app/Http/Requests/V1/TimeEntry/TimeEntryIndexRequest.php +++ b/app/Http/Requests/V1/TimeEntry/TimeEntryIndexRequest.php @@ -15,6 +15,7 @@ use App\Models\Project; use App\Models\Tag; use App\Models\Task; use App\Service\TimeEntryFilter; +use Closure; use Illuminate\Contracts\Validation\Rule as RuleContract; use Illuminate\Contracts\Validation\ValidationRule; use Illuminate\Database\Eloquent\Builder; @@ -29,7 +30,7 @@ class TimeEntryIndexRequest extends BaseFormRequest /** * Get the validation rules that apply to the request. * - * @return array> + * @return array> */ public function rules(): array { @@ -61,7 +62,7 @@ class TimeEntryIndexRequest extends BaseFormRequest ], 'client_ids.*' => [ 'string', - function (string $attribute, mixed $value, \Closure $fail): void { + function (string $attribute, mixed $value, Closure $fail): void { if ($value === TimeEntryFilter::NONE_VALUE) { return; } @@ -78,7 +79,7 @@ class TimeEntryIndexRequest extends BaseFormRequest ], 'project_ids.*' => [ 'string', - function (string $attribute, mixed $value, \Closure $fail): void { + function (string $attribute, mixed $value, Closure $fail): void { if ($value === TimeEntryFilter::NONE_VALUE) { return; } @@ -95,7 +96,7 @@ class TimeEntryIndexRequest extends BaseFormRequest ], 'tag_ids.*' => [ 'string', - function (string $attribute, mixed $value, \Closure $fail): void { + function (string $attribute, mixed $value, Closure $fail): void { if ($value === TimeEntryFilter::NONE_VALUE) { return; } @@ -116,7 +117,7 @@ class TimeEntryIndexRequest extends BaseFormRequest ], 'task_ids.*' => [ 'string', - function (string $attribute, mixed $value, \Closure $fail): void { + function (string $attribute, mixed $value, Closure $fail): void { if ($value === TimeEntryFilter::NONE_VALUE) { return; } diff --git a/app/Http/Requests/V1/TimeEntry/TimeEntryStoreRequest.php b/app/Http/Requests/V1/TimeEntry/TimeEntryStoreRequest.php index 19a534e1..18484f1d 100644 --- a/app/Http/Requests/V1/TimeEntry/TimeEntryStoreRequest.php +++ b/app/Http/Requests/V1/TimeEntry/TimeEntryStoreRequest.php @@ -12,6 +12,7 @@ use App\Models\Project; use App\Models\Tag; use App\Models\Task; use App\Service\PermissionStore; +use Closure; use Illuminate\Contracts\Validation\ValidationRule; use Illuminate\Database\Eloquent\Builder; use Illuminate\Support\Facades\Auth; @@ -26,7 +27,7 @@ class TimeEntryStoreRequest extends BaseFormRequest /** * Get the validation rules that apply to the request. * - * @return array> + * @return array> */ public function rules(): array { @@ -94,7 +95,7 @@ class TimeEntryStoreRequest extends BaseFormRequest // Type of the time entry (work time or a break) 'type' => [ Rule::enum(TimeEntryType::class), - function (string $attribute, mixed $value, \Closure $fail): void { + function (string $attribute, mixed $value, Closure $fail): void { if ($value === TimeEntryType::Break->value && ! $this->organization->breaks_enabled) { $fail('Breaks are disabled for this organization.'); } diff --git a/app/Http/Requests/V1/TimeEntry/TimeEntryUpdateRequest.php b/app/Http/Requests/V1/TimeEntry/TimeEntryUpdateRequest.php index 428148dc..92c84f32 100644 --- a/app/Http/Requests/V1/TimeEntry/TimeEntryUpdateRequest.php +++ b/app/Http/Requests/V1/TimeEntry/TimeEntryUpdateRequest.php @@ -13,6 +13,7 @@ use App\Models\Tag; use App\Models\Task; use App\Models\TimeEntry; use App\Service\PermissionStore; +use Closure; use Illuminate\Contracts\Validation\ValidationRule; use Illuminate\Database\Eloquent\Builder; use Illuminate\Support\Facades\Auth; @@ -29,7 +30,7 @@ class TimeEntryUpdateRequest extends BaseFormRequest /** * Get the validation rules that apply to the request. * - * @return array> + * @return array> */ public function rules(): array { @@ -105,7 +106,7 @@ class TimeEntryUpdateRequest extends BaseFormRequest // Type of the time entry (work time or a break) 'type' => [ Rule::enum(TimeEntryType::class), - function (string $attribute, mixed $value, \Closure $fail) use ($timeEntry): void { + function (string $attribute, mixed $value, Closure $fail) use ($timeEntry): void { // While breaks are disabled, entries that already are breaks may stay // breaks, but converting a work entry to a break is not allowed. if ($value === TimeEntryType::Break->value diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 699b63ec..2149b359 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -25,7 +25,7 @@ use Dedoc\Scramble\Scramble; use Dedoc\Scramble\Support\Generator\OpenApi; use Dedoc\Scramble\Support\Generator\SecurityScheme; use Dedoc\Scramble\Support\Generator\SecuritySchemes\OAuthFlow; -use Filament\Forms\Components\Section; +use Filament\Schemas\Components\Section; use Filament\Tables\Table; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\Relation; diff --git a/app/Providers/Filament/AdminPanelProvider.php b/app/Providers/Filament/AdminPanelProvider.php index c5be5d30..fdc74be3 100644 --- a/app/Providers/Filament/AdminPanelProvider.php +++ b/app/Providers/Filament/AdminPanelProvider.php @@ -13,7 +13,7 @@ use Filament\Http\Middleware\Authenticate; use Filament\Http\Middleware\DisableBladeIconComponents; use Filament\Http\Middleware\DispatchServingFilamentEvent; use Filament\Navigation\NavigationGroup; -use Filament\Pages; +use Filament\Pages\Dashboard; use Filament\Panel; use Filament\PanelProvider; use Filament\Support\Colors\Color; @@ -41,7 +41,7 @@ class AdminPanelProvider extends PanelProvider ->discoverResources(in: app_path('Filament/Resources'), for: 'App\\Filament\\Resources') ->discoverPages(in: app_path('Filament/Pages'), for: 'App\\Filament\\Pages') ->pages([ - Pages\Dashboard::class, + Dashboard::class, ]) ->discoverWidgets(in: app_path('Filament/Widgets'), for: 'App\\Filament\\Widgets') ->widgets([ diff --git a/app/Service/ApiService.php b/app/Service/ApiService.php index 7bb07061..8dd4aea8 100644 --- a/app/Service/ApiService.php +++ b/app/Service/ApiService.php @@ -15,6 +15,7 @@ use App\Models\User; use Exception; use Illuminate\Support\Facades\Http; use Log; +use Throwable; class ApiService { @@ -42,7 +43,7 @@ class ApiService return null; } - } catch (\Throwable $e) { + } catch (Throwable $e) { Log::warning('Failed to check for update', [ 'message' => $e->getMessage(), ]); diff --git a/app/Service/DashboardService.php b/app/Service/DashboardService.php index a95065a0..58bcd1c8 100644 --- a/app/Service/DashboardService.php +++ b/app/Service/DashboardService.php @@ -16,6 +16,7 @@ use Illuminate\Database\Eloquent\Builder; use Illuminate\Support\Carbon; use Illuminate\Support\Collection; use Illuminate\Support\Facades\DB; +use RuntimeException; class DashboardService { @@ -101,7 +102,7 @@ class DashboardService $value1 = Carbon::createFromFormat('Y-m-d', $possibleDates->first(), $timeZone); $value2 = Carbon::createFromFormat('Y-m-d', $possibleDates->last(), $timeZone); if ($value2 === null || $value1 === null) { - throw new \RuntimeException('Provided date is not valid'); + throw new RuntimeException('Provided date is not valid'); } if ($value1->gt($value2)) { $last = $value1; diff --git a/app/Service/Dto/ReportPropertiesDto.php b/app/Service/Dto/ReportPropertiesDto.php index dc232db8..6f4ea450 100644 --- a/app/Service/Dto/ReportPropertiesDto.php +++ b/app/Service/Dto/ReportPropertiesDto.php @@ -17,6 +17,7 @@ use Illuminate\Database\Eloquent\Model; use Illuminate\Support\Carbon; use Illuminate\Support\Collection; use Illuminate\Support\Str; +use InvalidArgumentException; class ReportPropertiesDto implements Castable { @@ -101,15 +102,15 @@ class ReportPropertiesDto implements Castable public function get(Model $model, string $key, mixed $value, array $attributes): ReportPropertiesDto { if (! is_string($value)) { - throw new \InvalidArgumentException('The given value is not a string'); + throw new InvalidArgumentException('The given value is not a string'); } $data = json_decode($value, false); if ($data === null) { - throw new \InvalidArgumentException('The given value is not a JSON string'); + throw new InvalidArgumentException('The given value is not a JSON string'); } foreach (self::REQUIRED_PROPERTIES as $property) { if (! property_exists($data, $property)) { - throw new \InvalidArgumentException('The given JSON string does not contain the required property "'.$property.'"'); + throw new InvalidArgumentException('The given JSON string does not contain the required property "'.$property.'"'); } } $dto = new ReportPropertiesDto; @@ -145,7 +146,7 @@ class ReportPropertiesDto implements Castable public function set(Model $model, string $key, mixed $value, array $attributes): string { if (! ($value instanceof ReportPropertiesDto)) { - throw new \InvalidArgumentException('The given value is not an instance of ReportPropertiesDto'); + throw new InvalidArgumentException('The given value is not an instance of ReportPropertiesDto'); } $data = (object) [ @@ -171,7 +172,7 @@ class ReportPropertiesDto implements Castable $jsonString = json_encode($data); if ($jsonString === false) { - throw new \InvalidArgumentException('Could not encode the given data to a JSON string'); + throw new InvalidArgumentException('Could not encode the given data to a JSON string'); } return $jsonString; @@ -188,10 +189,10 @@ class ReportPropertiesDto implements Castable $collection = new Collection; foreach ($ids as $id) { if (! is_string($id)) { - throw new \InvalidArgumentException('The given ID is not a string'); + throw new InvalidArgumentException('The given ID is not a string'); } if ($id !== TimeEntryFilter::NONE_VALUE && ! Str::isUuid($id)) { - throw new \InvalidArgumentException('The given ID is not a valid UUID'); + throw new InvalidArgumentException('The given ID is not a valid UUID'); } $collection->push($id); } diff --git a/app/Service/Import/ImportDatabaseHelper.php b/app/Service/Import/ImportDatabaseHelper.php index 6f6067b8..71d5f678 100644 --- a/app/Service/Import/ImportDatabaseHelper.php +++ b/app/Service/Import/ImportDatabaseHelper.php @@ -9,6 +9,7 @@ use Closure; use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Model; use Illuminate\Support\Facades\Validator; +use RuntimeException; /** * @template TModel of Model @@ -133,7 +134,7 @@ class ImportDatabaseHelper { $jsonData = json_encode($data); if ($jsonData === false) { - throw new \RuntimeException('Failed to encode data to JSON'); + throw new RuntimeException('Failed to encode data to JSON'); } return md5($jsonData); @@ -164,7 +165,7 @@ class ImportDatabaseHelper return $this->createEntity($identifierData, $createValues, $externalIdentifier); } else { - throw new \RuntimeException('Not implemented'); + throw new RuntimeException('Not implemented'); } } diff --git a/app/Service/Import/Importers/ClockifyProjectsImporter.php b/app/Service/Import/Importers/ClockifyProjectsImporter.php index f60a385c..434a948c 100644 --- a/app/Service/Import/Importers/ClockifyProjectsImporter.php +++ b/app/Service/Import/Importers/ClockifyProjectsImporter.php @@ -9,13 +9,14 @@ use Illuminate\Support\Carbon; use Illuminate\Support\Str; use League\Csv\Exception as CsvException; use League\Csv\Reader; +use Override; class ClockifyProjectsImporter extends DefaultImporter { /** * @throws ImportException */ - #[\Override] + #[Override] public function importData(string $data, string $timezone): void { try { @@ -129,13 +130,13 @@ class ClockifyProjectsImporter extends DefaultImporter return $billableRateKey; } - #[\Override] + #[Override] public function getName(): string { return __('importer.clockify_projects.name'); } - #[\Override] + #[Override] public function getDescription(): string { return __('importer.clockify_projects.description'); diff --git a/app/Service/Import/Importers/ClockifyTimeEntriesImporter.php b/app/Service/Import/Importers/ClockifyTimeEntriesImporter.php index ef8b1ca9..ce1152b0 100644 --- a/app/Service/Import/Importers/ClockifyTimeEntriesImporter.php +++ b/app/Service/Import/Importers/ClockifyTimeEntriesImporter.php @@ -15,6 +15,7 @@ use Illuminate\Support\Carbon; use Illuminate\Support\Str; use League\Csv\Exception as CsvException; use League\Csv\Reader; +use Override; class ClockifyTimeEntriesImporter extends DefaultImporter { @@ -44,7 +45,7 @@ class ClockifyTimeEntriesImporter extends DefaultImporter /** * @throws ImportException */ - #[\Override] + #[Override] public function importData(string $data, string $timezone): void { try { @@ -262,13 +263,13 @@ class ClockifyTimeEntriesImporter extends DefaultImporter return null; } - #[\Override] + #[Override] public function getName(): string { return __('importer.clockify_time_entries.name'); } - #[\Override] + #[Override] public function getDescription(): string { return __('importer.clockify_time_entries.description'); diff --git a/app/Service/Import/Importers/DefaultImporter.php b/app/Service/Import/Importers/DefaultImporter.php index af6c6081..aaed5777 100644 --- a/app/Service/Import/Importers/DefaultImporter.php +++ b/app/Service/Import/Importers/DefaultImporter.php @@ -18,6 +18,7 @@ use App\Service\ColorService; use App\Service\Import\ImportDatabaseHelper; use App\Service\TimezoneService; use Illuminate\Database\Eloquent\Builder; +use Override; abstract class DefaultImporter implements ImporterContract { @@ -181,7 +182,7 @@ abstract class DefaultImporter implements ImporterContract $this->billableRateService = app(BillableRateService::class); } - #[\Override] + #[Override] public function getReport(): ReportDto { return new ReportDto( diff --git a/app/Service/Import/Importers/GenericTimeEntriesImporter.php b/app/Service/Import/Importers/GenericTimeEntriesImporter.php index 6ba1ac83..c82ecd38 100644 --- a/app/Service/Import/Importers/GenericTimeEntriesImporter.php +++ b/app/Service/Import/Importers/GenericTimeEntriesImporter.php @@ -14,6 +14,7 @@ use Illuminate\Support\Carbon; use Illuminate\Support\Str; use League\Csv\Exception as CsvException; use League\Csv\Reader; +use Override; class GenericTimeEntriesImporter extends DefaultImporter { @@ -59,7 +60,7 @@ class GenericTimeEntriesImporter extends DefaultImporter /** * @throws ImportException */ - #[\Override] + #[Override] public function importData(string $data, string $timezone): void { try { @@ -194,13 +195,13 @@ class GenericTimeEntriesImporter extends DefaultImporter } } - #[\Override] + #[Override] public function getName(): string { return __('importer.generic_time_entries.name'); } - #[\Override] + #[Override] public function getDescription(): string { return __('importer.generic_time_entries.description'); diff --git a/app/Service/Import/Importers/HarvestClientsImporter.php b/app/Service/Import/Importers/HarvestClientsImporter.php index f4c0e943..39d481c0 100644 --- a/app/Service/Import/Importers/HarvestClientsImporter.php +++ b/app/Service/Import/Importers/HarvestClientsImporter.php @@ -7,6 +7,7 @@ namespace App\Service\Import\Importers; use Exception; use League\Csv\Exception as CsvException; use League\Csv\Reader; +use Override; class HarvestClientsImporter extends DefaultImporter { @@ -20,7 +21,7 @@ class HarvestClientsImporter extends DefaultImporter /** * @throws ImportException */ - #[\Override] + #[Override] public function importData(string $data, string $timezone): void { try { @@ -62,13 +63,13 @@ class HarvestClientsImporter extends DefaultImporter } } - #[\Override] + #[Override] public function getName(): string { return __('importer.harvest_clients.name'); } - #[\Override] + #[Override] public function getDescription(): string { return __('importer.harvest_clients.description'); diff --git a/app/Service/Import/Importers/HarvestProjectsImporter.php b/app/Service/Import/Importers/HarvestProjectsImporter.php index 202b4f55..ebd88e09 100644 --- a/app/Service/Import/Importers/HarvestProjectsImporter.php +++ b/app/Service/Import/Importers/HarvestProjectsImporter.php @@ -8,6 +8,7 @@ use Exception; use Illuminate\Support\Str; use League\Csv\Exception as CsvException; use League\Csv\Reader; +use Override; class HarvestProjectsImporter extends DefaultImporter { @@ -24,7 +25,7 @@ class HarvestProjectsImporter extends DefaultImporter /** * @throws ImportException */ - #[\Override] + #[Override] public function importData(string $data, string $timezone): void { try { @@ -93,13 +94,13 @@ class HarvestProjectsImporter extends DefaultImporter } } - #[\Override] + #[Override] public function getName(): string { return __('importer.harvest_projects.name'); } - #[\Override] + #[Override] public function getDescription(): string { return __('importer.harvest_projects.description'); diff --git a/app/Service/Import/Importers/ImportException.php b/app/Service/Import/Importers/ImportException.php index d5ecd200..ceeeaf85 100644 --- a/app/Service/Import/Importers/ImportException.php +++ b/app/Service/Import/Importers/ImportException.php @@ -4,4 +4,6 @@ declare(strict_types=1); namespace App\Service\Import\Importers; -class ImportException extends \Exception {} +use Exception; + +class ImportException extends Exception {} diff --git a/app/Service/Import/Importers/ImporterProvider.php b/app/Service/Import/Importers/ImporterProvider.php index 240416b4..7f1fd2d0 100644 --- a/app/Service/Import/Importers/ImporterProvider.php +++ b/app/Service/Import/Importers/ImporterProvider.php @@ -4,6 +4,8 @@ declare(strict_types=1); namespace App\Service\Import\Importers; +use InvalidArgumentException; + class ImporterProvider { /** @@ -49,7 +51,7 @@ class ImporterProvider public function getImporter(string $type): ImporterContract { if (! array_key_exists($type, $this->importers)) { - throw new \InvalidArgumentException('Invalid importer type'); + throw new InvalidArgumentException('Invalid importer type'); } return new $this->importers[$type]; diff --git a/app/Service/Import/Importers/TogglTimeEntriesImporter.php b/app/Service/Import/Importers/TogglTimeEntriesImporter.php index 95fef716..57fc02c0 100644 --- a/app/Service/Import/Importers/TogglTimeEntriesImporter.php +++ b/app/Service/Import/Importers/TogglTimeEntriesImporter.php @@ -14,6 +14,7 @@ use Illuminate\Support\Carbon; use Illuminate\Support\Str; use League\Csv\Exception as CsvException; use League\Csv\Reader; +use Override; class TogglTimeEntriesImporter extends DefaultImporter { @@ -43,7 +44,7 @@ class TogglTimeEntriesImporter extends DefaultImporter /** * @throws ImportException */ - #[\Override] + #[Override] public function importData(string $data, string $timezone): void { try { @@ -192,13 +193,13 @@ class TogglTimeEntriesImporter extends DefaultImporter } } - #[\Override] + #[Override] public function getName(): string { return __('importer.toggl_time_entries.name'); } - #[\Override] + #[Override] public function getDescription(): string { return __('importer.toggl_time_entries.description'); diff --git a/app/Service/ReportExport/CsvExport.php b/app/Service/ReportExport/CsvExport.php index 850d96f7..4c243c61 100644 --- a/app/Service/ReportExport/CsvExport.php +++ b/app/Service/ReportExport/CsvExport.php @@ -14,6 +14,7 @@ use League\Csv\CannotInsertRecord; use League\Csv\Exception; use League\Csv\UnavailableStream; use League\Csv\Writer; +use LogicException; use Spatie\TemporaryDirectory\TemporaryDirectory; /** @@ -116,7 +117,7 @@ abstract class CsvExport private function validateRow(array $row): void { if (array_keys($row) !== static::HEADER) { - throw new \LogicException('Invalid row'); + throw new LogicException('Invalid row'); } } } diff --git a/app/Service/TimeEntryAggregationService.php b/app/Service/TimeEntryAggregationService.php index 4333b2e7..5a160ee6 100644 --- a/app/Service/TimeEntryAggregationService.php +++ b/app/Service/TimeEntryAggregationService.php @@ -20,6 +20,7 @@ use Illuminate\Support\Carbon; use Illuminate\Support\Collection; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Log; +use InvalidArgumentException; class TimeEntryAggregationService { @@ -526,7 +527,7 @@ class TimeEntryAggregationService public function timeSlotsBetween(Carbon $start, Carbon $end, string $timezone, Weekday $startOfWeek, TimeEntryAggregationTypeInterval $interval, string $format): Collection { if ($start->gt($end)) { - throw new \InvalidArgumentException('Start date must be before end date'); + throw new InvalidArgumentException('Start date must be before end date'); } $slots = new Collection; $current = $start->copy()->timezone($timezone); @@ -539,7 +540,7 @@ class TimeEntryAggregationService } elseif ($interval === TimeEntryAggregationTypeInterval::Year) { $current->startOfYear(); } else { - throw new \InvalidArgumentException('Invalid interval'); + throw new InvalidArgumentException('Invalid interval'); } while ($current->lt($end)) { diff --git a/app/Service/TimezoneService.php b/app/Service/TimezoneService.php index 41a413df..586e5812 100644 --- a/app/Service/TimezoneService.php +++ b/app/Service/TimezoneService.php @@ -6,6 +6,7 @@ namespace App\Service; use App\Models\User; use Carbon\CarbonTimeZone; +use Exception; use Illuminate\Support\Carbon; use Illuminate\Support\Facades\Log; @@ -287,7 +288,7 @@ class TimezoneService { try { return new CarbonTimeZone($user->timezone); - } catch (\Exception $e) { + } catch (Exception $e) { Log::error('User has a invalid timezone', [ 'user_id' => $user->getKey(), 'timezone' => $user->timezone, diff --git a/app/Service/UserService.php b/app/Service/UserService.php index 5cefb62f..f6d980a8 100644 --- a/app/Service/UserService.php +++ b/app/Service/UserService.php @@ -20,6 +20,7 @@ use App\Models\User; use Illuminate\Support\Carbon; use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Storage; +use InvalidArgumentException; class UserService { @@ -148,7 +149,7 @@ class UserService ->whereBelongsTo($newOwner, 'user') ->first(); if ($userMembership === null) { - throw new \InvalidArgumentException('User is not a member of the organization'); + throw new InvalidArgumentException('User is not a member of the organization'); } $userMembership->role = Role::Owner->value; $userMembership->save(); diff --git a/app/Support/Base64File.php b/app/Support/Base64File.php index 5a94422b..c046ff4d 100644 --- a/app/Support/Base64File.php +++ b/app/Support/Base64File.php @@ -4,6 +4,7 @@ declare(strict_types=1); namespace App\Support; +use finfo; use Symfony\Component\Mime\MimeTypes; class Base64File @@ -27,7 +28,7 @@ class Base64File return null; } - $mimeType = (new \finfo(FILEINFO_MIME_TYPE))->buffer($decoded); + $mimeType = (new finfo(FILEINFO_MIME_TYPE))->buffer($decoded); if ($mimeType === false) { return null; } diff --git a/composer.json b/composer.json index 357a47b7..4ec8c6f0 100644 --- a/composer.json +++ b/composer.json @@ -7,14 +7,14 @@ "require": { "php": "8.3.*", "ext-zip": "*", - "brick/money": "^0.10.0", + "brick/money": "^0.11.2", "datomatic/laravel-enum-helper": "^2.0.0", - "dedoc/scramble": "^0.12.2", - "filament/filament": "^3.2", - "flowframe/laravel-trend": "^0.4.0", + "dedoc/scramble": "^0.13.43", + "filament/filament": "^5.0", + "flowframe/laravel-trend": "^0.5.0", "gotenberg/gotenberg-php": "^2.8", "guzzlehttp/guzzle": "^7.2", - "inertiajs/inertia-laravel": "^2.0.3", + "inertiajs/inertia-laravel": "^3.3.4", "korridor/laravel-computed-attributes": "^3.1", "korridor/laravel-has-many-sync": "^3.1", "korridor/laravel-model-validation-rules": "^3.0", @@ -26,15 +26,15 @@ "league/csv": "^9.16.0", "league/flysystem-aws-s3-v3": "^3.0", "league/iso3166": "^4.3", - "maatwebsite/excel": "^3.1", + "maatwebsite/excel": "^4.0.3", "mobiledetect/mobiledetectlib": "^4.11", - "novadaemon/filament-pretty-json": "^2.2", - "nwidart/laravel-modules": "^12.0.4", + "novadaemon/filament-pretty-json": "^4.0", + "nwidart/laravel-modules": "^13.0.0", "owen-it/laravel-auditing": "^14.0.0", - "pxlrbt/filament-environment-indicator": "^2.1.0", + "pxlrbt/filament-environment-indicator": "^3.0", "spatie/temporary-directory": "^2.2", "staudenmeir/eloquent-json-relations": "^1.1", - "stechstudio/filament-impersonate": "^3.8", + "stechstudio/filament-impersonate": "^5.0", "tightenco/ziggy": "^2.1.0", "tpetry/laravel-postgresql-enhanced": "^3.0.0", "wikimedia/composer-merge-plugin": "^2.1.0" diff --git a/composer.lock b/composer.lock index 60efe66e..270ffd87 100644 --- a/composer.lock +++ b/composer.lock @@ -4,20 +4,20 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "897ca7bc13f827db641f7affa54a8523", + "content-hash": "c428b96257b9205de05fa5fd64f3f658", "packages": [ { "name": "anourvalar/eloquent-serialize", - "version": "1.3.8", + "version": "1.3.12", "source": { "type": "git", "url": "https://github.com/AnourValar/eloquent-serialize.git", - "reference": "6bf2d5b336e78c99cdb9e1252eb78d004451841b" + "reference": "eb46e698efe7e20c311f1f93830111fcdcdabd96" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/AnourValar/eloquent-serialize/zipball/6bf2d5b336e78c99cdb9e1252eb78d004451841b", - "reference": "6bf2d5b336e78c99cdb9e1252eb78d004451841b", + "url": "https://api.github.com/repos/AnourValar/eloquent-serialize/zipball/eb46e698efe7e20c311f1f93830111fcdcdabd96", + "reference": "eb46e698efe7e20c311f1f93830111fcdcdabd96", "shasum": "" }, "require": { @@ -67,9 +67,9 @@ ], "support": { "issues": "https://github.com/AnourValar/eloquent-serialize/issues", - "source": "https://github.com/AnourValar/eloquent-serialize/tree/1.3.8" + "source": "https://github.com/AnourValar/eloquent-serialize/tree/1.3.12" }, - "time": "2026-05-04T09:18:12+00:00" + "time": "2026-09-13T06:25:37+00:00" }, { "name": "aws/aws-crt-php", @@ -127,16 +127,16 @@ }, { "name": "aws/aws-sdk-php", - "version": "3.381.6", + "version": "3.395.4", "source": { "type": "git", "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "9be3422631494111ec76bec677f1ae2dec650573" + "reference": "0756c511a913b57ab5415db6136d8c0c250ace15" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/9be3422631494111ec76bec677f1ae2dec650573", - "reference": "9be3422631494111ec76bec677f1ae2dec650573", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/0756c511a913b57ab5415db6136d8c0c250ace15", + "reference": "0756c511a913b57ab5415db6136d8c0c250ace15", "shasum": "" }, "require": { @@ -144,10 +144,10 @@ "ext-json": "*", "ext-pcre": "*", "ext-simplexml": "*", - "guzzlehttp/guzzle": "^7.4.5", - "guzzlehttp/promises": "^2.0", - "guzzlehttp/psr7": "^2.4.5", - "mtdowling/jmespath.php": "^2.8.0", + "guzzlehttp/guzzle": "^7.8.2 || ^8.0", + "guzzlehttp/promises": "^2.0.3 || ^3.0", + "guzzlehttp/psr7": "^2.6.3 || ^3.0", + "mtdowling/jmespath.php": "^2.9.1", "php": ">=8.1", "psr/http-message": "^1.0 || ^2.0", "symfony/filesystem": "^v5.4.45 || ^v6.4.3 || ^v7.1.0 || ^v8.0.0" @@ -218,9 +218,9 @@ "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.381.6" + "source": "https://github.com/aws/aws-sdk-php/tree/3.395.4" }, - "time": "2026-05-21T20:14:47+00:00" + "time": "2026-09-16T18:39:53+00:00" }, { "name": "bacon/bacon-qr-code", @@ -348,16 +348,16 @@ }, { "name": "blade-ui-kit/blade-icons", - "version": "1.10.0", + "version": "1.10.1", "source": { "type": "git", "url": "https://github.com/driesvints/blade-icons.git", - "reference": "74189a80bbaa4966aebaee54fec3a3c2ef0a5f3a" + "reference": "6e072d021ea6249986c330b93293c33d0c4f0e34" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/driesvints/blade-icons/zipball/74189a80bbaa4966aebaee54fec3a3c2ef0a5f3a", - "reference": "74189a80bbaa4966aebaee54fec3a3c2ef0a5f3a", + "url": "https://api.github.com/repos/driesvints/blade-icons/zipball/6e072d021ea6249986c330b93293c33d0c4f0e34", + "reference": "6e072d021ea6249986c330b93293c33d0c4f0e34", "shasum": "" }, "require": { @@ -425,7 +425,7 @@ "type": "paypal" } ], - "time": "2026-04-23T19:03:45+00:00" + "time": "2026-06-30T09:44:12+00:00" }, { "name": "brick/math", @@ -489,29 +489,29 @@ }, { "name": "brick/money", - "version": "0.10.3", + "version": "0.11.2", "source": { "type": "git", "url": "https://github.com/brick/money.git", - "reference": "b1b0bb6035d26a58f29b1c06b1265c01a0b5c9c3" + "reference": "57fb799337d9c532da7f7c7def52b926bfcf0917" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/brick/money/zipball/b1b0bb6035d26a58f29b1c06b1265c01a0b5c9c3", - "reference": "b1b0bb6035d26a58f29b1c06b1265c01a0b5c9c3", + "url": "https://api.github.com/repos/brick/money/zipball/57fb799337d9c532da7f7c7def52b926bfcf0917", + "reference": "57fb799337d9c532da7f7c7def52b926bfcf0917", "shasum": "" }, "require": { - "brick/math": "~0.12.0|~0.13.0|~0.14.0", - "php": "^8.1" + "brick/math": "~0.14.4", + "php": "^8.2", + "symfony/deprecation-contracts": "^2.2|^3.0" }, "require-dev": { - "brick/varexporter": "~0.5.0", + "brick/varexporter": "0.7.0", "ext-dom": "*", "ext-pdo": "*", - "php-coveralls/php-coveralls": "^2.2", - "phpunit/phpunit": "^10.1", - "vimeo/psalm": "6.3.0" + "phpunit/phpunit": "^11.0", + "vimeo/psalm": "6.14.3" }, "suggest": { "ext-intl": "Required to format Money objects" @@ -534,7 +534,7 @@ ], "support": { "issues": "https://github.com/brick/money/issues", - "source": "https://github.com/brick/money/tree/0.10.3" + "source": "https://github.com/brick/money/tree/0.11.2" }, "funding": [ { @@ -542,20 +542,20 @@ "type": "github" } ], - "time": "2025-09-03T09:55:48+00:00" + "time": "2026-03-02T20:25:37+00:00" }, { "name": "carbonphp/carbon-doctrine-types", - "version": "3.2.0", + "version": "3.2.1", "source": { "type": "git", "url": "https://github.com/CarbonPHP/carbon-doctrine-types.git", - "reference": "18ba5ddfec8976260ead6e866180bd5d2f71aa1d" + "reference": "5fa5eacafd9ef47c8c6ab9143fc901ba0194d3dc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/CarbonPHP/carbon-doctrine-types/zipball/18ba5ddfec8976260ead6e866180bd5d2f71aa1d", - "reference": "18ba5ddfec8976260ead6e866180bd5d2f71aa1d", + "url": "https://api.github.com/repos/CarbonPHP/carbon-doctrine-types/zipball/5fa5eacafd9ef47c8c6ab9143fc901ba0194d3dc", + "reference": "5fa5eacafd9ef47c8c6ab9143fc901ba0194d3dc", "shasum": "" }, "require": { @@ -570,6 +570,11 @@ "phpunit/phpunit": "^10.3" }, "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + } + }, "autoload": { "psr-4": { "Carbon\\Doctrine\\": "src/Carbon/Doctrine/" @@ -595,7 +600,7 @@ ], "support": { "issues": "https://github.com/CarbonPHP/carbon-doctrine-types/issues", - "source": "https://github.com/CarbonPHP/carbon-doctrine-types/tree/3.2.0" + "source": "https://github.com/CarbonPHP/carbon-doctrine-types/tree/3.2.1" }, "funding": [ { @@ -611,20 +616,182 @@ "type": "tidelift" } ], - "time": "2024-02-09T16:56:22+00:00" + "time": "2026-09-06T14:11:38+00:00" }, { - "name": "composer/ca-bundle", - "version": "1.5.12", + "name": "chillerlan/php-qrcode", + "version": "5.0.5", "source": { "type": "git", - "url": "https://github.com/composer/ca-bundle.git", - "reference": "00a2f4201641d5c53f7fc0195e6c8d9fcc321a78" + "url": "https://github.com/chillerlan/php-qrcode.git", + "reference": "7b66282572fc14075c0507d74d9837dab25b38d6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/ca-bundle/zipball/00a2f4201641d5c53f7fc0195e6c8d9fcc321a78", - "reference": "00a2f4201641d5c53f7fc0195e6c8d9fcc321a78", + "url": "https://api.github.com/repos/chillerlan/php-qrcode/zipball/7b66282572fc14075c0507d74d9837dab25b38d6", + "reference": "7b66282572fc14075c0507d74d9837dab25b38d6", + "shasum": "" + }, + "require": { + "chillerlan/php-settings-container": "^2.1.6 || ^3.2.1", + "ext-mbstring": "*", + "php": "^7.4 || ^8.0" + }, + "require-dev": { + "chillerlan/php-authenticator": "^4.3.1 || ^5.2.1", + "ext-fileinfo": "*", + "phan/phan": "^5.5.2", + "phpcompatibility/php-compatibility": "10.x-dev", + "phpmd/phpmd": "^2.15", + "phpunit/phpunit": "^9.6", + "setasign/fpdf": "^1.8.2", + "slevomat/coding-standard": "^8.23.0", + "squizlabs/php_codesniffer": "^4.0.0" + }, + "suggest": { + "chillerlan/php-authenticator": "Yet another Google authenticator! Also creates URIs for mobile apps.", + "setasign/fpdf": "Required to use the QR FPDF output.", + "simple-icons/simple-icons": "SVG icons that you can use to embed as logos in the QR Code" + }, + "type": "library", + "autoload": { + "psr-4": { + "chillerlan\\QRCode\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT", + "Apache-2.0" + ], + "authors": [ + { + "name": "Kazuhiko Arase", + "homepage": "https://github.com/kazuhikoarase/qrcode-generator" + }, + { + "name": "ZXing Authors", + "homepage": "https://github.com/zxing/zxing" + }, + { + "name": "Ashot Khanamiryan", + "homepage": "https://github.com/khanamiryan/php-qrcode-detector-decoder" + }, + { + "name": "Smiley", + "email": "smiley@chillerlan.net", + "homepage": "https://github.com/codemasher" + }, + { + "name": "Contributors", + "homepage": "https://github.com/chillerlan/php-qrcode/graphs/contributors" + } + ], + "description": "A QR Code generator and reader with a user-friendly API. PHP 7.4+", + "homepage": "https://github.com/chillerlan/php-qrcode", + "keywords": [ + "phpqrcode", + "qr", + "qr code", + "qr-reader", + "qrcode", + "qrcode-generator", + "qrcode-reader" + ], + "support": { + "docs": "https://php-qrcode.readthedocs.io", + "issues": "https://github.com/chillerlan/php-qrcode/issues", + "source": "https://github.com/chillerlan/php-qrcode" + }, + "funding": [ + { + "url": "https://ko-fi.com/codemasher", + "type": "Ko-Fi" + } + ], + "time": "2025-11-23T23:51:44+00:00" + }, + { + "name": "chillerlan/php-settings-container", + "version": "3.3.0", + "source": { + "type": "git", + "url": "https://github.com/chillerlan/php-settings-container.git", + "reference": "a0a487cbf5344f721eb504bf0f59bada40c381b7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/chillerlan/php-settings-container/zipball/a0a487cbf5344f721eb504bf0f59bada40c381b7", + "reference": "a0a487cbf5344f721eb504bf0f59bada40c381b7", + "shasum": "" + }, + "require": { + "ext-json": "*", + "php": "^8.1" + }, + "require-dev": { + "phan/phan": "^5.5.2", + "phpmd/phpmd": "^2.15", + "phpstan/phpstan": "^2.1.31", + "phpstan/phpstan-deprecation-rules": "^2.0.3", + "phpunit/phpunit": "^10.5", + "slevomat/coding-standard": "^8.22", + "squizlabs/php_codesniffer": "^4.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "chillerlan\\Settings\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Smiley", + "email": "smiley@chillerlan.net", + "homepage": "https://github.com/codemasher" + } + ], + "description": "A container class for immutable settings objects. Not a DI container.", + "homepage": "https://github.com/chillerlan/php-settings-container", + "keywords": [ + "Settings", + "configuration", + "container", + "helper", + "property hook" + ], + "support": { + "issues": "https://github.com/chillerlan/php-settings-container/issues", + "source": "https://github.com/chillerlan/php-settings-container" + }, + "funding": [ + { + "url": "https://www.paypal.com/donate?hosted_button_id=WLYUNAT9ZTJZ4", + "type": "custom" + }, + { + "url": "https://ko-fi.com/codemasher", + "type": "ko_fi" + } + ], + "time": "2026-03-20T21:10:52+00:00" + }, + { + "name": "composer/ca-bundle", + "version": "1.5.14", + "source": { + "type": "git", + "url": "https://github.com/composer/ca-bundle.git", + "reference": "0c8abba0634f637bd78c4e451981da368d403463" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/ca-bundle/zipball/0c8abba0634f637bd78c4e451981da368d403463", + "reference": "0c8abba0634f637bd78c4e451981da368d403463", "shasum": "" }, "require": { @@ -671,7 +838,7 @@ "support": { "irc": "irc://irc.freenode.org/composer", "issues": "https://github.com/composer/ca-bundle/issues", - "source": "https://github.com/composer/ca-bundle/tree/1.5.12" + "source": "https://github.com/composer/ca-bundle/tree/1.5.14" }, "funding": [ { @@ -683,7 +850,7 @@ "type": "github" } ], - "time": "2026-05-19T11:26:22+00:00" + "time": "2026-08-21T14:57:29+00:00" }, { "name": "composer/class-map-generator", @@ -756,16 +923,16 @@ }, { "name": "composer/composer", - "version": "2.9.8", + "version": "2.10.3", "source": { "type": "git", "url": "https://github.com/composer/composer.git", - "reference": "39ee8baff8e97a1b657bbfcd6a236ff93a5efbb2" + "reference": "f0de0bf90226853b841672f086d8b58b02332504" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/composer/zipball/39ee8baff8e97a1b657bbfcd6a236ff93a5efbb2", - "reference": "39ee8baff8e97a1b657bbfcd6a236ff93a5efbb2", + "url": "https://api.github.com/repos/composer/composer/zipball/f0de0bf90226853b841672f086d8b58b02332504", + "reference": "f0de0bf90226853b841672f086d8b58b02332504", "shasum": "" }, "require": { @@ -776,6 +943,8 @@ "composer/semver": "^3.3", "composer/spdx-licenses": "^1.5.7", "composer/xdebug-handler": "^2.0.2 || ^3.0.3", + "ext-filter": "*", + "ext-hash": "*", "ext-json": "*", "justinrainbow/json-schema": "^6.5.1", "php": "^7.2.5 || ^8.0", @@ -818,7 +987,7 @@ ] }, "branch-alias": { - "dev-main": "2.9-dev" + "dev-main": "2.10-dev" } }, "autoload": { @@ -853,7 +1022,7 @@ "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/composer/issues", "security": "https://github.com/composer/composer/security/policy", - "source": "https://github.com/composer/composer/tree/2.9.8" + "source": "https://github.com/composer/composer/tree/2.10.3" }, "funding": [ { @@ -865,20 +1034,20 @@ "type": "github" } ], - "time": "2026-05-13T07:28:38+00:00" + "time": "2026-08-27T11:34:23+00:00" }, { "name": "composer/metadata-minifier", - "version": "1.0.0", + "version": "1.0.1", "source": { "type": "git", "url": "https://github.com/composer/metadata-minifier.git", - "reference": "c549d23829536f0d0e984aaabbf02af91f443207" + "reference": "8e86142e3ade750b837d55e55f0cdc786d8da006" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/metadata-minifier/zipball/c549d23829536f0d0e984aaabbf02af91f443207", - "reference": "c549d23829536f0d0e984aaabbf02af91f443207", + "url": "https://api.github.com/repos/composer/metadata-minifier/zipball/8e86142e3ade750b837d55e55f0cdc786d8da006", + "reference": "8e86142e3ade750b837d55e55f0cdc786d8da006", "shasum": "" }, "require": { @@ -886,8 +1055,8 @@ }, "require-dev": { "composer/composer": "^2", - "phpstan/phpstan": "^0.12.55", - "symfony/phpunit-bridge": "^4.2 || ^5" + "phpstan/phpstan": "^1", + "symfony/phpunit-bridge": "^4.2 || ^5 || ^6 || ^7" }, "type": "library", "extra": { @@ -918,7 +1087,7 @@ ], "support": { "issues": "https://github.com/composer/metadata-minifier/issues", - "source": "https://github.com/composer/metadata-minifier/tree/1.0.0" + "source": "https://github.com/composer/metadata-minifier/tree/1.0.1" }, "funding": [ { @@ -928,38 +1097,35 @@ { "url": "https://github.com/composer", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" } ], - "time": "2021-04-07T13:37:33+00:00" + "time": "2026-06-30T11:34:59+00:00" }, { "name": "composer/pcre", - "version": "3.3.2", + "version": "3.4.0", "source": { "type": "git", "url": "https://github.com/composer/pcre.git", - "reference": "b2bed4734f0cc156ee1fe9c0da2550420d99a21e" + "reference": "d5a341b3fb61f3001970940afb1d332968a183ed" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/pcre/zipball/b2bed4734f0cc156ee1fe9c0da2550420d99a21e", - "reference": "b2bed4734f0cc156ee1fe9c0da2550420d99a21e", + "url": "https://api.github.com/repos/composer/pcre/zipball/d5a341b3fb61f3001970940afb1d332968a183ed", + "reference": "d5a341b3fb61f3001970940afb1d332968a183ed", "shasum": "" }, "require": { "php": "^7.4 || ^8.0" }, "conflict": { - "phpstan/phpstan": "<1.11.10" + "phpstan/phpstan": "<2.2.2" }, "require-dev": { - "phpstan/phpstan": "^1.12 || ^2", - "phpstan/phpstan-strict-rules": "^1 || ^2", - "phpunit/phpunit": "^8 || ^9" + "phpstan/phpstan": "^2", + "phpstan/phpstan-deprecation-rules": "^2", + "phpstan/phpstan-strict-rules": "^2", + "phpunit/phpunit": "^9" }, "type": "library", "extra": { @@ -997,7 +1163,7 @@ ], "support": { "issues": "https://github.com/composer/pcre/issues", - "source": "https://github.com/composer/pcre/tree/3.3.2" + "source": "https://github.com/composer/pcre/tree/3.4.0" }, "funding": [ { @@ -1007,13 +1173,9 @@ { "url": "https://github.com/composer", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" } ], - "time": "2024-11-12T16:29:46+00:00" + "time": "2026-06-07T11:47:49+00:00" }, { "name": "composer/semver", @@ -1287,16 +1449,16 @@ }, { "name": "danharrin/livewire-rate-limiting", - "version": "v2.2.0", + "version": "v2.2.1", "source": { "type": "git", "url": "https://github.com/danharrin/livewire-rate-limiting.git", - "reference": "c03e649220089f6e5a52d422e24e3f98c73e456d" + "reference": "69436717dc70e30f80d7f8fd02504c22992a9ad5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/danharrin/livewire-rate-limiting/zipball/c03e649220089f6e5a52d422e24e3f98c73e456d", - "reference": "c03e649220089f6e5a52d422e24e3f98c73e456d", + "url": "https://api.github.com/repos/danharrin/livewire-rate-limiting/zipball/69436717dc70e30f80d7f8fd02504c22992a9ad5", + "reference": "69436717dc70e30f80d7f8fd02504c22992a9ad5", "shasum": "" }, "require": { @@ -1304,7 +1466,7 @@ "php": "^8.0" }, "require-dev": { - "livewire/livewire": "^3.0", + "livewire/livewire": "^3.0|^4.0", "livewire/volt": "^1.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" @@ -1337,7 +1499,7 @@ "type": "github" } ], - "time": "2026-03-16T11:29:23+00:00" + "time": "2026-08-06T08:41:51+00:00" }, { "name": "dasprid/enum", @@ -1501,20 +1663,20 @@ }, { "name": "dedoc/scramble", - "version": "v0.12.36", + "version": "0.13.43", "source": { "type": "git", "url": "https://github.com/dedoc/scramble.git", - "reference": "e2741add99b5f9360a7a58a58ce97781569e4cc6" + "reference": "2226e6664b88b3af1e5c10693f8e63a07ffd8fc0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dedoc/scramble/zipball/e2741add99b5f9360a7a58a58ce97781569e4cc6", - "reference": "e2741add99b5f9360a7a58a58ce97781569e4cc6", + "url": "https://api.github.com/repos/dedoc/scramble/zipball/2226e6664b88b3af1e5c10693f8e63a07ffd8fc0", + "reference": "2226e6664b88b3af1e5c10693f8e63a07ffd8fc0", "shasum": "" }, "require": { - "illuminate/contracts": "^10.0|^11.0|^12.0", + "illuminate/contracts": "^10.0|^11.0|^12.0|^13.0", "myclabs/deep-copy": "^1.12", "nikic/php-parser": "^5.0", "php": "^8.1", @@ -1524,15 +1686,16 @@ "require-dev": { "larastan/larastan": "^3.3", "laravel/pint": "^v1.1.0", + "laravel/scout": "^10.0|^11.0", "nunomaduro/collision": "^7.0|^8.0", - "orchestra/testbench": "^8.0|^9.0|^10.0", - "pestphp/pest": "^2.34|^3.7", - "pestphp/pest-plugin-laravel": "^2.3|^3.1", + "orchestra/testbench": "^8.0|^9.0|^10.0|^11.0", + "pestphp/pest": "^2.34|^3.7|^4.4", + "pestphp/pest-plugin-laravel": "^2.3|^3.1|^4.1", "phpstan/extension-installer": "^1.4", "phpstan/phpstan-deprecation-rules": "^2.0", "phpstan/phpstan-phpunit": "^2.0", - "phpunit/phpunit": "^10.5|^11.5.3", - "spatie/laravel-permission": "^6.10", + "phpunit/phpunit": "^10.5|^11.5.3|^12.5.12", + "spatie/laravel-permission": "^6.10|^7.2", "spatie/pest-plugin-snapshots": "^2.1" }, "type": "library", @@ -1569,7 +1732,7 @@ ], "support": { "issues": "https://github.com/dedoc/scramble/issues", - "source": "https://github.com/dedoc/scramble/tree/v0.12.36" + "source": "https://github.com/dedoc/scramble/tree/0.13.43" }, "funding": [ { @@ -1577,7 +1740,7 @@ "type": "github" } ], - "time": "2025-10-20T08:06:09+00:00" + "time": "2026-09-08T18:27:41+00:00" }, { "name": "defuse/php-encryption", @@ -1723,16 +1886,16 @@ }, { "name": "doctrine/dbal", - "version": "4.4.3", + "version": "4.4.4", "source": { "type": "git", "url": "https://github.com/doctrine/dbal.git", - "reference": "61e730f1658814821a85f2402c945f3883407dec" + "reference": "fb9e0ffe15e1590e24dc61c0c0a23f9a33ee42ce" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/61e730f1658814821a85f2402c945f3883407dec", - "reference": "61e730f1658814821a85f2402c945f3883407dec", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/fb9e0ffe15e1590e24dc61c0c0a23f9a33ee42ce", + "reference": "fb9e0ffe15e1590e24dc61c0c0a23f9a33ee42ce", "shasum": "" }, "require": { @@ -1809,7 +1972,7 @@ ], "support": { "issues": "https://github.com/doctrine/dbal/issues", - "source": "https://github.com/doctrine/dbal/tree/4.4.3" + "source": "https://github.com/doctrine/dbal/tree/4.4.4" }, "funding": [ { @@ -1825,7 +1988,7 @@ "type": "tidelift" } ], - "time": "2026-03-20T08:52:12+00:00" + "time": "2026-07-21T14:34:40+00:00" }, { "name": "doctrine/deprecations", @@ -2173,94 +2336,29 @@ ], "time": "2025-03-06T22:45:56+00:00" }, - { - "name": "ezyang/htmlpurifier", - "version": "v4.19.0", - "source": { - "type": "git", - "url": "https://github.com/ezyang/htmlpurifier.git", - "reference": "b287d2a16aceffbf6e0295559b39662612b77fcf" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/b287d2a16aceffbf6e0295559b39662612b77fcf", - "reference": "b287d2a16aceffbf6e0295559b39662612b77fcf", - "shasum": "" - }, - "require": { - "php": "~5.6.0 || ~7.0.0 || ~7.1.0 || ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0" - }, - "require-dev": { - "cerdic/css-tidy": "^1.7 || ^2.0", - "simpletest/simpletest": "dev-master" - }, - "suggest": { - "cerdic/css-tidy": "If you want to use the filter 'Filter.ExtractStyleBlocks'.", - "ext-bcmath": "Used for unit conversion and imagecrash protection", - "ext-iconv": "Converts text to and from non-UTF-8 encodings", - "ext-tidy": "Used for pretty-printing HTML" - }, - "type": "library", - "autoload": { - "files": [ - "library/HTMLPurifier.composer.php" - ], - "psr-0": { - "HTMLPurifier": "library/" - }, - "exclude-from-classmap": [ - "/library/HTMLPurifier/Language/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "LGPL-2.1-or-later" - ], - "authors": [ - { - "name": "Edward Z. Yang", - "email": "admin@htmlpurifier.org", - "homepage": "http://ezyang.com" - } - ], - "description": "Standards compliant HTML filter written in PHP", - "homepage": "http://htmlpurifier.org/", - "keywords": [ - "html" - ], - "support": { - "issues": "https://github.com/ezyang/htmlpurifier/issues", - "source": "https://github.com/ezyang/htmlpurifier/tree/v4.19.0" - }, - "time": "2025-10-17T16:34:55+00:00" - }, { "name": "filament/actions", - "version": "v3.3.52", + "version": "v5.8.2", "source": { "type": "git", "url": "https://github.com/filamentphp/actions.git", - "reference": "3cb3e1f9094ed3b4bc102616966c365138c908bc" + "reference": "d52683c6624d7adbae5979dc5474632b3299f47f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/actions/zipball/3cb3e1f9094ed3b4bc102616966c365138c908bc", - "reference": "3cb3e1f9094ed3b4bc102616966c365138c908bc", + "url": "https://api.github.com/repos/filamentphp/actions/zipball/d52683c6624d7adbae5979dc5474632b3299f47f", + "reference": "d52683c6624d7adbae5979dc5474632b3299f47f", "shasum": "" }, "require": { - "anourvalar/eloquent-serialize": "^1.2", + "anourvalar/eloquent-serialize": "^1.3.6", "filament/forms": "self.version", "filament/infolists": "self.version", "filament/notifications": "self.version", "filament/support": "self.version", - "illuminate/contracts": "^10.45|^11.0|^12.0", - "illuminate/database": "^10.45|^11.0|^12.0", - "illuminate/support": "^10.45|^11.0|^12.0", - "league/csv": "^9.16", + "league/csv": "^9.27", "openspout/openspout": "^4.23", - "php": "^8.1", - "spatie/laravel-package-tools": "^1.9" + "php": "^8.2" }, "type": "library", "extra": { @@ -2285,43 +2383,36 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2026-02-07T21:52:11+00:00" + "time": "2026-09-15T16:56:37+00:00" }, { "name": "filament/filament", - "version": "v3.3.52", + "version": "v5.8.2", "source": { "type": "git", "url": "https://github.com/filamentphp/panels.git", - "reference": "073e41c0abe78bc2cfcde3a186a40cbed328a6a7" + "reference": "42dd202c91244526b01d94488ab16529f9e8511c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/panels/zipball/073e41c0abe78bc2cfcde3a186a40cbed328a6a7", - "reference": "073e41c0abe78bc2cfcde3a186a40cbed328a6a7", + "url": "https://api.github.com/repos/filamentphp/panels/zipball/42dd202c91244526b01d94488ab16529f9e8511c", + "reference": "42dd202c91244526b01d94488ab16529f9e8511c", "shasum": "" }, "require": { - "danharrin/livewire-rate-limiting": "^0.3|^1.0|^2.0", + "chillerlan/php-qrcode": "^5.0", + "composer-runtime-api": "^2.1", "filament/actions": "self.version", "filament/forms": "self.version", "filament/infolists": "self.version", "filament/notifications": "self.version", + "filament/schemas": "self.version", "filament/support": "self.version", "filament/tables": "self.version", "filament/widgets": "self.version", - "illuminate/auth": "^10.45|^11.0|^12.0", - "illuminate/console": "^10.45|^11.0|^12.0", - "illuminate/contracts": "^10.45|^11.0|^12.0", - "illuminate/cookie": "^10.45|^11.0|^12.0", - "illuminate/database": "^10.45|^11.0|^12.0", - "illuminate/http": "^10.45|^11.0|^12.0", - "illuminate/routing": "^10.45|^11.0|^12.0", - "illuminate/session": "^10.45|^11.0|^12.0", - "illuminate/support": "^10.45|^11.0|^12.0", - "illuminate/view": "^10.45|^11.0|^12.0", - "php": "^8.1", - "spatie/laravel-package-tools": "^1.9" + "php": "^8.2", + "pragmarx/google2fa": "^8.0|^9.0", + "pragmarx/google2fa-qrcode": "^3.0|^4.0" }, "type": "library", "extra": { @@ -2350,35 +2441,29 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2026-05-21T17:50:14+00:00" + "time": "2026-09-15T16:56:51+00:00" }, { "name": "filament/forms", - "version": "v3.3.52", + "version": "v5.8.2", "source": { "type": "git", "url": "https://github.com/filamentphp/forms.git", - "reference": "67b6dc4cef99d2a9eda916a4202f63985b54ccf2" + "reference": "3e162d96ff679b05e9e61c919a0d19a3923b979b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/forms/zipball/67b6dc4cef99d2a9eda916a4202f63985b54ccf2", - "reference": "67b6dc4cef99d2a9eda916a4202f63985b54ccf2", + "url": "https://api.github.com/repos/filamentphp/forms/zipball/3e162d96ff679b05e9e61c919a0d19a3923b979b", + "reference": "3e162d96ff679b05e9e61c919a0d19a3923b979b", "shasum": "" }, "require": { "danharrin/date-format-converter": "^0.3", "filament/actions": "self.version", + "filament/schemas": "self.version", "filament/support": "self.version", - "illuminate/console": "^10.45|^11.0|^12.0", - "illuminate/contracts": "^10.45|^11.0|^12.0", - "illuminate/database": "^10.45|^11.0|^12.0", - "illuminate/filesystem": "^10.45|^11.0|^12.0", - "illuminate/support": "^10.45|^11.0|^12.0", - "illuminate/validation": "^10.45|^11.0|^12.0", - "illuminate/view": "^10.45|^11.0|^12.0", - "php": "^8.1", - "spatie/laravel-package-tools": "^1.9" + "php": "^8.2", + "ueberdosis/tiptap-php": "^2.0" }, "type": "library", "extra": { @@ -2406,33 +2491,27 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2026-05-21T17:51:59+00:00" + "time": "2026-09-15T16:59:23+00:00" }, { "name": "filament/infolists", - "version": "v3.3.52", + "version": "v5.8.2", "source": { "type": "git", "url": "https://github.com/filamentphp/infolists.git", - "reference": "9cef7bf9f46756a8adf762ced62952e8c239b840" + "reference": "02616ec1a7ebf84ad72e82d5fe3464156d16628b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/infolists/zipball/9cef7bf9f46756a8adf762ced62952e8c239b840", - "reference": "9cef7bf9f46756a8adf762ced62952e8c239b840", + "url": "https://api.github.com/repos/filamentphp/infolists/zipball/02616ec1a7ebf84ad72e82d5fe3464156d16628b", + "reference": "02616ec1a7ebf84ad72e82d5fe3464156d16628b", "shasum": "" }, "require": { "filament/actions": "self.version", + "filament/schemas": "self.version", "filament/support": "self.version", - "illuminate/console": "^10.45|^11.0|^12.0", - "illuminate/contracts": "^10.45|^11.0|^12.0", - "illuminate/database": "^10.45|^11.0|^12.0", - "illuminate/filesystem": "^10.45|^11.0|^12.0", - "illuminate/support": "^10.45|^11.0|^12.0", - "illuminate/view": "^10.45|^11.0|^12.0", - "php": "^8.1", - "spatie/laravel-package-tools": "^1.9" + "php": "^8.2" }, "type": "library", "extra": { @@ -2457,31 +2536,26 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2026-02-07T21:51:54+00:00" + "time": "2026-09-15T17:00:55+00:00" }, { "name": "filament/notifications", - "version": "v3.3.52", + "version": "v5.8.2", "source": { "type": "git", "url": "https://github.com/filamentphp/notifications.git", - "reference": "3a6ef54b6a8cefc79858e7033e4d6b65fb2d859b" + "reference": "56f89733b1e220ebb1d24d5ea032947c4655dab4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/notifications/zipball/3a6ef54b6a8cefc79858e7033e4d6b65fb2d859b", - "reference": "3a6ef54b6a8cefc79858e7033e4d6b65fb2d859b", + "url": "https://api.github.com/repos/filamentphp/notifications/zipball/56f89733b1e220ebb1d24d5ea032947c4655dab4", + "reference": "56f89733b1e220ebb1d24d5ea032947c4655dab4", "shasum": "" }, "require": { "filament/actions": "self.version", "filament/support": "self.version", - "illuminate/contracts": "^10.45|^11.0|^12.0", - "illuminate/filesystem": "^10.45|^11.0|^12.0", - "illuminate/notifications": "^10.45|^11.0|^12.0", - "illuminate/support": "^10.45|^11.0|^12.0", - "php": "^8.1", - "spatie/laravel-package-tools": "^1.9" + "php": "^8.2" }, "type": "library", "extra": { @@ -2493,7 +2567,7 @@ }, "autoload": { "files": [ - "src/Testing/Autoload.php" + "src/Testing/helpers.php" ], "psr-4": { "Filament\\Notifications\\": "src" @@ -2509,38 +2583,129 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2026-01-01T16:29:16+00:00" + "time": "2026-09-15T16:57:16+00:00" }, { - "name": "filament/support", - "version": "v3.3.52", + "name": "filament/query-builder", + "version": "v5.8.2", "source": { "type": "git", - "url": "https://github.com/filamentphp/support.git", - "reference": "493bd79d4f4ae7b9256c317af742354318a6f4e0" + "url": "https://github.com/filamentphp/query-builder.git", + "reference": "69402125ced6ee48d8ecd7ef895784fa46fb0423" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/support/zipball/493bd79d4f4ae7b9256c317af742354318a6f4e0", - "reference": "493bd79d4f4ae7b9256c317af742354318a6f4e0", + "url": "https://api.github.com/repos/filamentphp/query-builder/zipball/69402125ced6ee48d8ecd7ef895784fa46fb0423", + "reference": "69402125ced6ee48d8ecd7ef895784fa46fb0423", + "shasum": "" + }, + "require": { + "filament/actions": "self.version", + "filament/forms": "self.version", + "filament/schemas": "self.version", + "filament/support": "self.version", + "php": "^8.2" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Filament\\QueryBuilder\\QueryBuilderServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Filament\\QueryBuilder\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A powerful query builder component for Filament.", + "homepage": "https://github.com/filamentphp/filament", + "support": { + "issues": "https://github.com/filamentphp/filament/issues", + "source": "https://github.com/filamentphp/filament" + }, + "time": "2026-09-15T16:57:17+00:00" + }, + { + "name": "filament/schemas", + "version": "v5.8.2", + "source": { + "type": "git", + "url": "https://github.com/filamentphp/schemas.git", + "reference": "ca4e860522d9149f3442468bf7eaebf04bccca67" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/filamentphp/schemas/zipball/ca4e860522d9149f3442468bf7eaebf04bccca67", + "reference": "ca4e860522d9149f3442468bf7eaebf04bccca67", + "shasum": "" + }, + "require": { + "danharrin/date-format-converter": "^0.3", + "filament/actions": "self.version", + "filament/support": "self.version", + "php": "^8.2" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Filament\\Schemas\\SchemasServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Filament\\Schemas\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Easily add beautiful UI to any Livewire component.", + "homepage": "https://github.com/filamentphp/filament", + "support": { + "issues": "https://github.com/filamentphp/filament/issues", + "source": "https://github.com/filamentphp/filament" + }, + "time": "2026-09-08T10:21:40+00:00" + }, + { + "name": "filament/support", + "version": "v5.8.2", + "source": { + "type": "git", + "url": "https://github.com/filamentphp/support.git", + "reference": "706ea6c6fee863b32ec3c249b2269e10cb307a78" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/filamentphp/support/zipball/706ea6c6fee863b32ec3c249b2269e10cb307a78", + "reference": "706ea6c6fee863b32ec3c249b2269e10cb307a78", "shasum": "" }, "require": { "blade-ui-kit/blade-heroicons": "^2.5", - "doctrine/dbal": "^3.2|^4.0", + "composer-runtime-api": "^2.1", + "danharrin/livewire-rate-limiting": "^2.0", "ext-intl": "*", - "illuminate/contracts": "^10.45|^11.0|^12.0", - "illuminate/support": "^10.45|^11.0|^12.0", - "illuminate/view": "^10.45|^11.0|^12.0", - "kirschbaum-development/eloquent-power-joins": "^3.0|^4.0", - "livewire/livewire": "^3.5", - "php": "^8.1", - "ryangjchandler/blade-capture-directive": "^0.2|^0.3|^1.0", - "spatie/color": "^1.5", - "spatie/invade": "^1.0|^2.0", + "illuminate/contracts": "^11.28|^12.0|^13.0", + "kirschbaum-development/eloquent-power-joins": "^4.0", + "league/uri-components": "^7.0", + "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": "^6.0|^7.0", - "symfony/html-sanitizer": "^6.1|^7.0" + "symfony/console": "^7.0|^8.0", + "symfony/html-sanitizer": "^7.0|^8.0" }, "type": "library", "extra": { @@ -2568,34 +2733,28 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2026-02-07T21:51:58+00:00" + "time": "2026-09-15T17:01:46+00:00" }, { "name": "filament/tables", - "version": "v3.3.52", + "version": "v5.8.2", "source": { "type": "git", "url": "https://github.com/filamentphp/tables.git", - "reference": "6665aa5cc1bfaccd6c1de31b9c64a6f5ee54d937" + "reference": "a6d1f24ce6cafcf4ef270ac90a383e3601935996" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/tables/zipball/6665aa5cc1bfaccd6c1de31b9c64a6f5ee54d937", - "reference": "6665aa5cc1bfaccd6c1de31b9c64a6f5ee54d937", + "url": "https://api.github.com/repos/filamentphp/tables/zipball/a6d1f24ce6cafcf4ef270ac90a383e3601935996", + "reference": "a6d1f24ce6cafcf4ef270ac90a383e3601935996", "shasum": "" }, "require": { "filament/actions": "self.version", "filament/forms": "self.version", + "filament/query-builder": "self.version", "filament/support": "self.version", - "illuminate/console": "^10.45|^11.0|^12.0", - "illuminate/contracts": "^10.45|^11.0|^12.0", - "illuminate/database": "^10.45|^11.0|^12.0", - "illuminate/filesystem": "^10.45|^11.0|^12.0", - "illuminate/support": "^10.45|^11.0|^12.0", - "illuminate/view": "^10.45|^11.0|^12.0", - "php": "^8.1", - "spatie/laravel-package-tools": "^1.9" + "php": "^8.2" }, "type": "library", "extra": { @@ -2620,26 +2779,26 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2026-05-20T15:37:01+00:00" + "time": "2026-09-15T17:01:34+00:00" }, { "name": "filament/widgets", - "version": "v3.3.52", + "version": "v5.8.2", "source": { "type": "git", "url": "https://github.com/filamentphp/widgets.git", - "reference": "f58ff26e81ca2557205e3111e1d9d05c258cc206" + "reference": "20e52cc560b591d2e3cc01bf4a5e9aca8f176476" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/widgets/zipball/f58ff26e81ca2557205e3111e1d9d05c258cc206", - "reference": "f58ff26e81ca2557205e3111e1d9d05c258cc206", + "url": "https://api.github.com/repos/filamentphp/widgets/zipball/20e52cc560b591d2e3cc01bf4a5e9aca8f176476", + "reference": "20e52cc560b591d2e3cc01bf4a5e9aca8f176476", "shasum": "" }, "require": { + "filament/schemas": "self.version", "filament/support": "self.version", - "php": "^8.1", - "spatie/laravel-package-tools": "^1.9" + "php": "^8.2" }, "type": "library", "extra": { @@ -2664,28 +2823,29 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2026-02-07T21:51:58+00:00" + "time": "2026-09-07T18:43:09+00:00" }, { "name": "firebase/php-jwt", - "version": "v7.0.5", + "version": "v7.1.1", "source": { "type": "git", "url": "https://github.com/googleapis/php-jwt.git", - "reference": "47ad26bab5e7c70ae8a6f08ed25ff83631121380" + "reference": "9bc93bd7e3ee5bead4cd23c365ec12f3c1fb0a6a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/googleapis/php-jwt/zipball/47ad26bab5e7c70ae8a6f08ed25ff83631121380", - "reference": "47ad26bab5e7c70ae8a6f08ed25ff83631121380", + "url": "https://api.github.com/repos/googleapis/php-jwt/zipball/9bc93bd7e3ee5bead4cd23c365ec12f3c1fb0a6a", + "reference": "9bc93bd7e3ee5bead4cd23c365ec12f3c1fb0a6a", "shasum": "" }, "require": { "php": "^8.0" }, "require-dev": { - "guzzlehttp/guzzle": "^7.4", + "guzzlehttp/guzzle": "^7.4||^8.0", "phpfastcache/phpfastcache": "^9.2", + "phpseclib/phpseclib": "~3.0", "phpspec/prophecy-phpunit": "^2.0", "phpunit/phpunit": "^9.5", "psr/cache": "^2.0||^3.0", @@ -2694,7 +2854,8 @@ }, "suggest": { "ext-sodium": "Support EdDSA (Ed25519) signatures", - "paragonie/sodium_compat": "Support EdDSA (Ed25519) signatures when libsodium is not present" + "paragonie/sodium_compat": "Support EdDSA (Ed25519) signatures when libsodium is not present", + "phpseclib/phpseclib": "Support PS256 (RSASSA-PSS) signatures" }, "type": "library", "autoload": { @@ -2719,41 +2880,41 @@ } ], "description": "A simple library to encode and decode JSON Web Tokens (JWT) in PHP. Should conform to the current spec.", - "homepage": "https://github.com/firebase/php-jwt", + "homepage": "https://github.com/googleapis/php-jwt", "keywords": [ "jwt", "php" ], "support": { "issues": "https://github.com/googleapis/php-jwt/issues", - "source": "https://github.com/googleapis/php-jwt/tree/v7.0.5" + "source": "https://github.com/googleapis/php-jwt/tree/v7.1.1" }, - "time": "2026-04-01T20:38:03+00:00" + "time": "2026-09-14T17:48:47+00:00" }, { "name": "flowframe/laravel-trend", - "version": "v0.4.0", + "version": "v0.5.0", "source": { "type": "git", "url": "https://github.com/Flowframe/laravel-trend.git", - "reference": "5ace11d3075932652dc48963faa732c043aeb14d" + "reference": "1b968af2c1e1d633dc4bc78131660ae6eb67e252" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Flowframe/laravel-trend/zipball/5ace11d3075932652dc48963faa732c043aeb14d", - "reference": "5ace11d3075932652dc48963faa732c043aeb14d", + "url": "https://api.github.com/repos/Flowframe/laravel-trend/zipball/1b968af2c1e1d633dc4bc78131660ae6eb67e252", + "reference": "1b968af2c1e1d633dc4bc78131660ae6eb67e252", "shasum": "" }, "require": { - "illuminate/contracts": "^8.37|^9|^10.0|^11.0|^12.0", + "illuminate/contracts": "^8.37|^9|^10.0|^11.0|^12.0|^13.0", "php": "^8.2", "spatie/laravel-package-tools": "^1.4.3" }, "require-dev": { "nunomaduro/collision": "^5.3|^6.1|^8.0", - "orchestra/testbench": "^6.15|^7.0|^8.0|^9.0|^10.0", - "pestphp/pest": "^1.18|^2.34|^3.7", - "pestphp/pest-plugin-laravel": "^1.1|^2.3|^3.1", + "orchestra/testbench": "^6.15|^7.0|^8.0|^9.0|^10.0|^11.0", + "pestphp/pest": "^1.18|^2.34|^3.7|^4.4", + "pestphp/pest-plugin-laravel": "^1.1|^2.3|^3.1|^4.1", "spatie/laravel-ray": "^1.23", "vimeo/psalm": "^4.8|^5.6|^6.5" }, @@ -2794,7 +2955,7 @@ ], "support": { "issues": "https://github.com/Flowframe/laravel-trend/issues", - "source": "https://github.com/Flowframe/laravel-trend/tree/v0.4.0" + "source": "https://github.com/Flowframe/laravel-trend/tree/v0.5.0" }, "funding": [ { @@ -2802,7 +2963,7 @@ "type": "github" } ], - "time": "2025-02-25T11:13:23+00:00" + "time": "2026-03-23T15:41:48+00:00" }, { "name": "fruitcake/php-cors", @@ -2877,22 +3038,22 @@ }, { "name": "gotenberg/gotenberg-php", - "version": "v2.21.0", + "version": "v2.25.0", "source": { "type": "git", "url": "https://github.com/gotenberg/gotenberg-php.git", - "reference": "991a618b019d066c84e73b0aadf083887d62549f" + "reference": "690480b428102141c0e1933cd89092aa2ae13844" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/gotenberg/gotenberg-php/zipball/991a618b019d066c84e73b0aadf083887d62549f", - "reference": "991a618b019d066c84e73b0aadf083887d62549f", + "url": "https://api.github.com/repos/gotenberg/gotenberg-php/zipball/690480b428102141c0e1933cd89092aa2ae13844", + "reference": "690480b428102141c0e1933cd89092aa2ae13844", "shasum": "" }, "require": { "ext-json": "*", "ext-mbstring": "*", - "guzzlehttp/psr7": "^1 || ^2.1", + "guzzlehttp/psr7": "^1 || ^2.1 || ^3", "php": "^8.1|^8.2|^8.3|^8.4|^8.5", "php-http/discovery": "^1.14", "psr/http-client": "^1.0", @@ -2946,7 +3107,7 @@ ], "support": { "issues": "https://github.com/gotenberg/gotenberg-php/issues", - "source": "https://github.com/gotenberg/gotenberg-php/tree/v2.21.0" + "source": "https://github.com/gotenberg/gotenberg-php/tree/v2.25.0" }, "funding": [ { @@ -2954,28 +3115,28 @@ "type": "github" } ], - "time": "2026-04-17T13:26:28+00:00" + "time": "2026-08-14T14:40:42+00:00" }, { "name": "graham-campbell/result-type", - "version": "v1.1.4", + "version": "v1.2.0", "source": { "type": "git", "url": "https://github.com/GrahamCampbell/Result-Type.git", - "reference": "e01f4a821471308ba86aa202fed6698b6b695e3b" + "reference": "adccca3324eece92ca35463648c12b9e6293c05b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/e01f4a821471308ba86aa202fed6698b6b695e3b", - "reference": "e01f4a821471308ba86aa202fed6698b6b695e3b", + "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/adccca3324eece92ca35463648c12b9e6293c05b", + "reference": "adccca3324eece92ca35463648c12b9e6293c05b", "shasum": "" }, "require": { "php": "^7.2.5 || ^8.0", - "phpoption/phpoption": "^1.9.5" + "phpoption/phpoption": "^1.10" }, "require-dev": { - "phpunit/phpunit": "^8.5.41 || ^9.6.22 || ^10.5.45 || ^11.5.7" + "phpunit/phpunit": "^8.5.52 || ^9.6.34 || ^10.5.63 || ^11.5.55 || ^12.5.14" }, "type": "library", "autoload": { @@ -3004,7 +3165,7 @@ ], "support": { "issues": "https://github.com/GrahamCampbell/Result-Type/issues", - "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.4" + "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.2.0" }, "funding": [ { @@ -3016,29 +3177,30 @@ "type": "tidelift" } ], - "time": "2025-12-27T19:43:20+00:00" + "time": "2026-08-24T09:06:52+00:00" }, { "name": "guzzlehttp/guzzle", - "version": "7.10.3", + "version": "7.15.5", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "47ba23c7a55247e2e1b7407aca90e9bbed0d9d86" + "reference": "ee80339fd9177ba44c49cdb653ff02a4d1106b9a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/47ba23c7a55247e2e1b7407aca90e9bbed0d9d86", - "reference": "47ba23c7a55247e2e1b7407aca90e9bbed0d9d86", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/ee80339fd9177ba44c49cdb653ff02a4d1106b9a", + "reference": "ee80339fd9177ba44c49cdb653ff02a4d1106b9a", "shasum": "" }, "require": { "ext-json": "*", - "guzzlehttp/promises": "^2.3", - "guzzlehttp/psr7": "^2.8", + "guzzlehttp/promises": "^2.5.3", + "guzzlehttp/psr7": "^2.13.1", "php": "^7.2.5 || ^8.0", "psr/http-client": "^1.0", - "symfony/deprecation-contracts": "^2.2 || ^3.0" + "symfony/deprecation-contracts": "^2.5 || ^3.0", + "symfony/polyfill-php80": "^1.25" }, "provide": { "psr/http-client-implementation": "1.0" @@ -3046,8 +3208,8 @@ "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", "ext-curl": "*", - "guzzle/client-integration-tests": "3.0.2", - "guzzlehttp/test-server": "^0.3.2", + "guzzle/client-integration-tests": "3.0.3", + "guzzlehttp/test-server": "^0.7", "php-http/message-factory": "^1.1", "phpunit/phpunit": "^8.5.52 || ^9.6.34", "psr/log": "^1.1 || ^2.0 || ^3.0" @@ -3127,7 +3289,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.10.3" + "source": "https://github.com/guzzle/guzzle/tree/7.15.5" }, "funding": [ { @@ -3143,24 +3305,25 @@ "type": "tidelift" } ], - "time": "2026-05-20T22:59:19+00:00" + "time": "2026-08-24T09:21:06+00:00" }, { "name": "guzzlehttp/promises", - "version": "2.4.1", + "version": "2.5.3", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "09e8a212562fb1fb6a512c4156ed71525969d6c2" + "reference": "cde49999552d185d64715fe9c1f77a2aadd2f9f1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/09e8a212562fb1fb6a512c4156ed71525969d6c2", - "reference": "09e8a212562fb1fb6a512c4156ed71525969d6c2", + "url": "https://api.github.com/repos/guzzle/promises/zipball/cde49999552d185d64715fe9c1f77a2aadd2f9f1", + "reference": "cde49999552d185d64715fe9c1f77a2aadd2f9f1", "shasum": "" }, "require": { - "php": "^7.2.5 || ^8.0" + "php": "^7.2.5 || ^8.0", + "symfony/deprecation-contracts": "^2.5 || ^3.0" }, "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", @@ -3210,7 +3373,7 @@ ], "support": { "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/2.4.1" + "source": "https://github.com/guzzle/promises/tree/2.5.3" }, "funding": [ { @@ -3226,27 +3389,29 @@ "type": "tidelift" } ], - "time": "2026-05-20T22:57:30+00:00" + "time": "2026-08-24T09:11:28+00:00" }, { "name": "guzzlehttp/psr7", - "version": "2.10.1", + "version": "2.13.1", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "73ab136360b5dfd858006eae9795e8fe43c80361" + "reference": "95e7828100de18b4e269fb1703be530082d5166d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/73ab136360b5dfd858006eae9795e8fe43c80361", - "reference": "73ab136360b5dfd858006eae9795e8fe43c80361", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/95e7828100de18b4e269fb1703be530082d5166d", + "reference": "95e7828100de18b4e269fb1703be530082d5166d", "shasum": "" }, "require": { "php": "^7.2.5 || ^8.0", "psr/http-factory": "^1.0", "psr/http-message": "^1.1 || ^2.0", - "ralouphie/getallheaders": "^3.0" + "ralouphie/getallheaders": "^3.0", + "symfony/deprecation-contracts": "^2.5 || ^3.0", + "symfony/polyfill-php80": "^1.25" }, "provide": { "psr/http-factory-implementation": "1.0", @@ -3327,7 +3492,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.10.1" + "source": "https://github.com/guzzle/psr7/tree/2.13.1" }, "funding": [ { @@ -3343,29 +3508,29 @@ "type": "tidelift" } ], - "time": "2026-05-20T09:27:36+00:00" + "time": "2026-08-24T09:13:11+00:00" }, { "name": "guzzlehttp/uri-template", - "version": "v1.0.5", + "version": "v1.0.11", "source": { "type": "git", "url": "https://github.com/guzzle/uri-template.git", - "reference": "4f4bbd4e7172148801e76e3decc1e559bdee34e1" + "reference": "d0058dccf4299d70c3d9da3378b8908b32780368" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/uri-template/zipball/4f4bbd4e7172148801e76e3decc1e559bdee34e1", - "reference": "4f4bbd4e7172148801e76e3decc1e559bdee34e1", + "url": "https://api.github.com/repos/guzzle/uri-template/zipball/d0058dccf4299d70c3d9da3378b8908b32780368", + "reference": "d0058dccf4299d70c3d9da3378b8908b32780368", "shasum": "" }, "require": { "php": "^7.2.5 || ^8.0", - "symfony/polyfill-php80": "^1.24" + "symfony/polyfill-php80": "^1.25" }, "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", - "phpunit/phpunit": "^8.5.44 || ^9.6.25", + "phpunit/phpunit": "^8.5.52 || ^9.6.34", "uri-template/tests": "1.0.0" }, "type": "library", @@ -3413,7 +3578,7 @@ ], "support": { "issues": "https://github.com/guzzle/uri-template/issues", - "source": "https://github.com/guzzle/uri-template/tree/v1.0.5" + "source": "https://github.com/guzzle/uri-template/tree/v1.0.11" }, "funding": [ { @@ -3429,39 +3594,38 @@ "type": "tidelift" } ], - "time": "2025-08-22T14:27:06+00:00" + "time": "2026-08-24T09:15:32+00:00" }, { "name": "inertiajs/inertia-laravel", - "version": "v2.0.24", + "version": "v3.3.4", "source": { "type": "git", "url": "https://github.com/inertiajs/inertia-laravel.git", - "reference": "ea345adad12f110edbbc4bef03b69c2374a535d4" + "reference": "15fb5a7b2f984780ff968d9da3787aef6138326d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/inertiajs/inertia-laravel/zipball/ea345adad12f110edbbc4bef03b69c2374a535d4", - "reference": "ea345adad12f110edbbc4bef03b69c2374a535d4", + "url": "https://api.github.com/repos/inertiajs/inertia-laravel/zipball/15fb5a7b2f984780ff968d9da3787aef6138326d", + "reference": "15fb5a7b2f984780ff968d9da3787aef6138326d", "shasum": "" }, "require": { "ext-json": "*", - "laravel/framework": "^10.0|^11.0|^12.0|^13.0", - "php": "^8.1.0", - "symfony/console": "^6.2|^7.0|^8.0" + "laravel/framework": "^11.35|^12.0|^13.0", + "php": "^8.2.0", + "symfony/console": "^7.0|^8.0" }, "conflict": { - "laravel/boost": "<2.2.0" + "laravel/boost": "<2.5.0" }, "require-dev": { - "guzzlehttp/guzzle": "^7.2", + "guzzlehttp/guzzle": "^7.15.2|^8.0", "larastan/larastan": "^3.0", "laravel/pint": "^1.16", "mockery/mockery": "^1.3.3", - "orchestra/testbench": "^8.0|^9.2|^10.0|^11.0", - "phpunit/phpunit": "^10.4|^11.5|^12.0", - "roave/security-advisories": "dev-master" + "orchestra/testbench": "^9.2|^10.0|^11.0", + "phpunit/phpunit": "^11.5|^12.0" }, "suggest": { "ext-pcntl": "Recommended when running the Inertia SSR server via the `inertia:start-ssr` artisan command." @@ -3500,9 +3664,9 @@ ], "support": { "issues": "https://github.com/inertiajs/inertia-laravel/issues", - "source": "https://github.com/inertiajs/inertia-laravel/tree/v2.0.24" + "source": "https://github.com/inertiajs/inertia-laravel/tree/v3.3.4" }, - "time": "2026-04-10T14:36:44+00:00" + "time": "2026-09-11T13:57:53+00:00" }, { "name": "jawira/case-converter", @@ -3572,19 +3736,20 @@ }, { "name": "justinrainbow/json-schema", - "version": "6.8.2", + "version": "6.12.0", "source": { "type": "git", "url": "https://github.com/jsonrainbow/json-schema.git", - "reference": "2c89ebb95ca9cedc9347f780333f7b25792dcb76" + "reference": "8ef236a1a37df364b518b7411a4b5bb95b040d79" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/jsonrainbow/json-schema/zipball/2c89ebb95ca9cedc9347f780333f7b25792dcb76", - "reference": "2c89ebb95ca9cedc9347f780333f7b25792dcb76", + "url": "https://api.github.com/repos/jsonrainbow/json-schema/zipball/8ef236a1a37df364b518b7411a4b5bb95b040d79", + "reference": "8ef236a1a37df364b518b7411a4b5bb95b040d79", "shasum": "" }, "require": { + "ext-filter": "*", "ext-json": "*", "marc-mabe/php-enum": "^4.4", "php": "^7.2 || ^8.0" @@ -3617,20 +3782,9 @@ ], "authors": [ { - "name": "Bruno Prieto Reis", - "email": "bruno.p.reis@gmail.com" - }, - { - "name": "Justin Rainbow", - "email": "justin.rainbow@gmail.com" - }, - { - "name": "Igor Wiedler", - "email": "igor@wiedler.ch" - }, - { - "name": "Robert Schönthal", - "email": "seroscho@googlemail.com" + "name": "Danny van der Sluijs", + "email": "danny.vandersluijs@icloud.com", + "role": "Maintainer" } ], "description": "A library to validate a json schema.", @@ -3641,22 +3795,22 @@ ], "support": { "issues": "https://github.com/jsonrainbow/json-schema/issues", - "source": "https://github.com/jsonrainbow/json-schema/tree/6.8.2" + "source": "https://github.com/jsonrainbow/json-schema/tree/6.12.0" }, - "time": "2026-05-05T05:39:01+00:00" + "time": "2026-09-04T12:54:20+00:00" }, { "name": "kirschbaum-development/eloquent-power-joins", - "version": "4.3.1", + "version": "4.3.3", "source": { "type": "git", "url": "https://github.com/kirschbaum-development/eloquent-power-joins.git", - "reference": "3f77b096c1e8b5aa1fc40d7080e55e795f3430ae" + "reference": "c609dbbe4ad2051b667e937f1ab554067519d64b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/kirschbaum-development/eloquent-power-joins/zipball/3f77b096c1e8b5aa1fc40d7080e55e795f3430ae", - "reference": "3f77b096c1e8b5aa1fc40d7080e55e795f3430ae", + "url": "https://api.github.com/repos/kirschbaum-development/eloquent-power-joins/zipball/c609dbbe4ad2051b667e937f1ab554067519d64b", + "reference": "c609dbbe4ad2051b667e937f1ab554067519d64b", "shasum": "" }, "require": { @@ -3704,9 +3858,9 @@ ], "support": { "issues": "https://github.com/kirschbaum-development/eloquent-power-joins/issues", - "source": "https://github.com/kirschbaum-development/eloquent-power-joins/tree/4.3.1" + "source": "https://github.com/kirschbaum-development/eloquent-power-joins/tree/4.3.3" }, - "time": "2026-03-29T12:05:03+00:00" + "time": "2026-07-23T11:41:37+00:00" }, { "name": "korridor/laravel-computed-attributes", @@ -3909,73 +4063,6 @@ }, "time": "2026-04-16T11:39:22+00:00" }, - { - "name": "lab404/laravel-impersonate", - "version": "1.7.8", - "source": { - "type": "git", - "url": "https://github.com/404labfr/laravel-impersonate.git", - "reference": "0008a39da8914cc946b6a5ed211230708ee736b3" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/404labfr/laravel-impersonate/zipball/0008a39da8914cc946b6a5ed211230708ee736b3", - "reference": "0008a39da8914cc946b6a5ed211230708ee736b3", - "shasum": "" - }, - "require": { - "laravel/framework": "^6.0 | ^7.0 | ^8.0 | ^9.0 | ^10.0 | ^11.0 | ^12.0 | ^13.0", - "php": "^7.2 | ^8.0" - }, - "require-dev": { - "mockery/mockery": "^1.3.3", - "orchestra/testbench": "^4.0 | ^5.0 | ^6.0 | ^7.0 | ^8.0 | ^9.0 | ^10.0 | ^11.0", - "phpunit/phpunit": "^7.5 | ^8.0 | ^9.0 | ^10.0 | ^11.0" - }, - "type": "library", - "extra": { - "laravel": { - "providers": [ - "Lab404\\Impersonate\\ImpersonateServiceProvider" - ] - } - }, - "autoload": { - "files": [ - "src/helpers.php" - ], - "psr-4": { - "Lab404\\Impersonate\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Marceau Casals", - "email": "marceau@casals.fr" - } - ], - "description": "Laravel Impersonate is a plugin that allows to you to authenticate as your users.", - "keywords": [ - "auth", - "impersonate", - "impersonation", - "laravel", - "laravel-package", - "laravel-plugin", - "package", - "plugin", - "user" - ], - "support": { - "issues": "https://github.com/404labfr/laravel-impersonate/issues", - "source": "https://github.com/404labfr/laravel-impersonate/tree/1.7.8" - }, - "time": "2026-03-17T15:24:14+00:00" - }, { "name": "laminas/laminas-code", "version": "4.17.0", @@ -4129,16 +4216,16 @@ }, { "name": "laravel/fortify", - "version": "v1.37.2", + "version": "v1.39.0", "source": { "type": "git", "url": "https://github.com/laravel/fortify.git", - "reference": "5d4b6a53527edd19ecc4f13e8e74ec91bdefab0c" + "reference": "b1fc50707bbe007fd92165d8b7d460ab549b355a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/fortify/zipball/5d4b6a53527edd19ecc4f13e8e74ec91bdefab0c", - "reference": "5d4b6a53527edd19ecc4f13e8e74ec91bdefab0c", + "url": "https://api.github.com/repos/laravel/fortify/zipball/b1fc50707bbe007fd92165d8b7d460ab549b355a", + "reference": "b1fc50707bbe007fd92165d8b7d460ab549b355a", "shasum": "" }, "require": { @@ -4152,7 +4239,7 @@ }, "require-dev": { "orchestra/testbench": "^9.15|^10.8|^11.0", - "phpstan/phpstan": "^1.10" + "phpstan/phpstan": "^2.2.6" }, "type": "library", "extra": { @@ -4189,20 +4276,20 @@ "issues": "https://github.com/laravel/fortify/issues", "source": "https://github.com/laravel/fortify" }, - "time": "2026-05-15T22:59:10+00:00" + "time": "2026-08-23T07:46:41+00:00" }, { "name": "laravel/framework", - "version": "v12.60.2", + "version": "v12.69.2", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "b8b55ce32175cc00f834a56eeb6316f18ed6ea39" + "reference": "17d034ef1e209b63a1d3a89c90ce5e89a4eb3fc5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/b8b55ce32175cc00f834a56eeb6316f18ed6ea39", - "reference": "b8b55ce32175cc00f834a56eeb6316f18ed6ea39", + "url": "https://api.github.com/repos/laravel/framework/zipball/17d034ef1e209b63a1d3a89c90ce5e89a4eb3fc5", + "reference": "17d034ef1e209b63a1d3a89c90ce5e89a4eb3fc5", "shasum": "" }, "require": { @@ -4411,20 +4498,20 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2026-05-20T11:48:19+00:00" + "time": "2026-09-08T14:29:09+00:00" }, { "name": "laravel/octane", - "version": "v2.17.4", + "version": "v2.19.1", "source": { "type": "git", "url": "https://github.com/laravel/octane.git", - "reference": "ffeac11324accc6edf8df426ba4541f3171d494e" + "reference": "68a2516a0318baba0de0e4648f61e335c5e69dca" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/octane/zipball/ffeac11324accc6edf8df426ba4541f3171d494e", - "reference": "ffeac11324accc6edf8df426ba4541f3171d494e", + "url": "https://api.github.com/repos/laravel/octane/zipball/68a2516a0318baba0de0e4648f61e335c5e69dca", + "reference": "68a2516a0318baba0de0e4648f61e335c5e69dca", "shasum": "" }, "require": { @@ -4500,7 +4587,7 @@ "issues": "https://github.com/laravel/octane/issues", "source": "https://github.com/laravel/octane" }, - "time": "2026-05-22T11:30:06+00:00" + "time": "2026-08-13T13:58:52+00:00" }, { "name": "laravel/passkeys", @@ -4572,16 +4659,16 @@ }, { "name": "laravel/passport", - "version": "v13.7.5", + "version": "v13.8.0", "source": { "type": "git", "url": "https://github.com/laravel/passport.git", - "reference": "90053dc4ba681c076855779250109bb624f961f6" + "reference": "63118b38b508d5605a0e3b5468d447bf540ea7d2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/passport/zipball/90053dc4ba681c076855779250109bb624f961f6", - "reference": "90053dc4ba681c076855779250109bb624f961f6", + "url": "https://api.github.com/repos/laravel/passport/zipball/63118b38b508d5605a0e3b5468d447bf540ea7d2", + "reference": "63118b38b508d5605a0e3b5468d447bf540ea7d2", "shasum": "" }, "require": { @@ -4600,7 +4687,7 @@ "league/oauth2-server": "^9.2", "php": "^8.2", "php-http/discovery": "^1.20", - "phpseclib/phpseclib": "^3.0", + "phpseclib/phpseclib": "^4.0", "psr/http-factory-implementation": "*", "symfony/console": "^7.1|^8.0", "symfony/psr-http-message-bridge": "^7.1|^8.0" @@ -4643,20 +4730,20 @@ "issues": "https://github.com/laravel/passport/issues", "source": "https://github.com/laravel/passport" }, - "time": "2026-04-16T14:00:29+00:00" + "time": "2026-08-28T14:24:54+00:00" }, { "name": "laravel/prompts", - "version": "v0.3.18", + "version": "v0.3.24", "source": { "type": "git", "url": "https://github.com/laravel/prompts.git", - "reference": "a19af51bb144bf87f08397921fa619f85c7d4e72" + "reference": "5d3cdef29e93ca3b62b1871359db3078cd99908b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/prompts/zipball/a19af51bb144bf87f08397921fa619f85c7d4e72", - "reference": "a19af51bb144bf87f08397921fa619f85c7d4e72", + "url": "https://api.github.com/repos/laravel/prompts/zipball/5d3cdef29e93ca3b62b1871359db3078cd99908b", + "reference": "5d3cdef29e93ca3b62b1871359db3078cd99908b", "shasum": "" }, "require": { @@ -4700,22 +4787,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.18" + "source": "https://github.com/laravel/prompts/tree/v0.3.24" }, - "time": "2026-05-19T00:47:18+00:00" + "time": "2026-08-20T12:55:36+00:00" }, { "name": "laravel/serializable-closure", - "version": "v2.0.13", + "version": "v2.0.16", "source": { "type": "git", "url": "https://github.com/laravel/serializable-closure.git", - "reference": "b566ee0dd251f3c4078bed003a7ce015f5ea6dce" + "reference": "7cfc24e4fa2cca045fb8dd2a797a2b2b13b655ed" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/b566ee0dd251f3c4078bed003a7ce015f5ea6dce", - "reference": "b566ee0dd251f3c4078bed003a7ce015f5ea6dce", + "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/7cfc24e4fa2cca045fb8dd2a797a2b2b13b655ed", + "reference": "7cfc24e4fa2cca045fb8dd2a797a2b2b13b655ed", "shasum": "" }, "require": { @@ -4763,7 +4850,7 @@ "issues": "https://github.com/laravel/serializable-closure/issues", "source": "https://github.com/laravel/serializable-closure" }, - "time": "2026-04-16T14:03:50+00:00" + "time": "2026-08-18T20:28:54+00:00" }, { "name": "laravel/tinker", @@ -4831,70 +4918,6 @@ }, "time": "2026-02-06T14:12:35+00:00" }, - { - "name": "lcobucci/clock", - "version": "3.5.0", - "source": { - "type": "git", - "url": "https://github.com/lcobucci/clock.git", - "reference": "a3139d9e97d47826f27e6a17bb63f13621f86058" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/lcobucci/clock/zipball/a3139d9e97d47826f27e6a17bb63f13621f86058", - "reference": "a3139d9e97d47826f27e6a17bb63f13621f86058", - "shasum": "" - }, - "require": { - "php": "~8.3.0 || ~8.4.0 || ~8.5.0", - "psr/clock": "^1.0" - }, - "provide": { - "psr/clock-implementation": "1.0" - }, - "require-dev": { - "infection/infection": "^0.31", - "lcobucci/coding-standard": "^11.2.0", - "phpstan/extension-installer": "^1.3.1", - "phpstan/phpstan": "^2.0.0", - "phpstan/phpstan-deprecation-rules": "^2.0.0", - "phpstan/phpstan-phpunit": "^2.0.0", - "phpstan/phpstan-strict-rules": "^2.0.0", - "phpunit/phpunit": "^12.0.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Lcobucci\\Clock\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Luís Cobucci", - "email": "lcobucci@gmail.com" - } - ], - "description": "Yet another clock abstraction", - "support": { - "issues": "https://github.com/lcobucci/clock/issues", - "source": "https://github.com/lcobucci/clock/tree/3.5.0" - }, - "funding": [ - { - "url": "https://github.com/lcobucci", - "type": "github" - }, - { - "url": "https://www.patreon.com/lcobucci", - "type": "patreon" - } - ], - "time": "2025-10-27T09:03:17+00:00" - }, { "name": "lcobucci/jwt", "version": "5.6.0", @@ -4970,16 +4993,16 @@ }, { "name": "league/commonmark", - "version": "2.8.2", + "version": "2.10.1", "source": { "type": "git", "url": "https://github.com/thephpleague/commonmark.git", - "reference": "59fb075d2101740c337c7216e3f32b36c204218b" + "reference": "9d489ab67a02960fd8ffe624d93f751daf95439e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/59fb075d2101740c337c7216e3f32b36c204218b", - "reference": "59fb075d2101740c337c7216e3f32b36c204218b", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/9d489ab67a02960fd8ffe624d93f751daf95439e", + "reference": "9d489ab67a02960fd8ffe624d93f751daf95439e", "shasum": "" }, "require": { @@ -5001,8 +5024,8 @@ "github/gfm": "0.29.0", "michelf/php-markdown": "^1.4 || ^2.0", "nyholm/psr7": "^1.5", - "phpstan/phpstan": "^1.8.2", - "phpunit/phpunit": "^9.5.21 || ^10.5.9 || ^11.0.0", + "phpstan/phpstan": "^2.0.0", + "phpunit/phpunit": "^9.5.21 || ^10.5.9 || ^11.0.0 || ^12.0.0 || ^13.0.0", "scrutinizer/ocular": "^1.8.1", "symfony/finder": "^5.3 | ^6.0 | ^7.0 || ^8.0", "symfony/process": "^5.4 | ^6.0 | ^7.0 || ^8.0", @@ -5016,7 +5039,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.9-dev" + "dev-main": "2.11-dev" } }, "autoload": { @@ -5073,7 +5096,7 @@ "type": "tidelift" } ], - "time": "2026-03-19T13:16:38+00:00" + "time": "2026-09-07T13:44:26+00:00" }, { "name": "league/config", @@ -5309,16 +5332,16 @@ }, { "name": "league/flysystem", - "version": "3.34.0", + "version": "3.36.0", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem.git", - "reference": "2daaac3b0d4c83ea7ed5d8586e786f5d00f3540e" + "reference": "f7fb152932f30072d573510cbd4dd657d6475b25" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/2daaac3b0d4c83ea7ed5d8586e786f5d00f3540e", - "reference": "2daaac3b0d4c83ea7ed5d8586e786f5d00f3540e", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/f7fb152932f30072d573510cbd4dd657d6475b25", + "reference": "f7fb152932f30072d573510cbd4dd657d6475b25", "shasum": "" }, "require": { @@ -5386,22 +5409,22 @@ ], "support": { "issues": "https://github.com/thephpleague/flysystem/issues", - "source": "https://github.com/thephpleague/flysystem/tree/3.34.0" + "source": "https://github.com/thephpleague/flysystem/tree/3.36.0" }, - "time": "2026-05-14T10:28:08+00:00" + "time": "2026-09-02T08:00:27+00:00" }, { "name": "league/flysystem-aws-s3-v3", - "version": "3.34.0", + "version": "3.35.3", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem-aws-s3-v3.git", - "reference": "0c62fdac907791d8649ad3c61cb7a77628344fb8" + "reference": "b03780cb97585ee7e48977f40ed599b33b751634" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/0c62fdac907791d8649ad3c61cb7a77628344fb8", - "reference": "0c62fdac907791d8649ad3c61cb7a77628344fb8", + "url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/b03780cb97585ee7e48977f40ed599b33b751634", + "reference": "b03780cb97585ee7e48977f40ed599b33b751634", "shasum": "" }, "require": { @@ -5441,22 +5464,22 @@ "storage" ], "support": { - "source": "https://github.com/thephpleague/flysystem-aws-s3-v3/tree/3.34.0" + "source": "https://github.com/thephpleague/flysystem-aws-s3-v3/tree/3.35.3" }, - "time": "2026-05-04T08:24:00+00:00" + "time": "2026-08-08T16:19:23+00:00" }, { "name": "league/flysystem-local", - "version": "3.31.0", + "version": "3.35.3", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem-local.git", - "reference": "2f669db18a4c20c755c2bb7d3a7b0b2340488079" + "reference": "a099b24dce160f3b2239043d13d47c4a1a214ea4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/2f669db18a4c20c755c2bb7d3a7b0b2340488079", - "reference": "2f669db18a4c20c755c2bb7d3a7b0b2340488079", + "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/a099b24dce160f3b2239043d13d47c4a1a214ea4", + "reference": "a099b24dce160f3b2239043d13d47c4a1a214ea4", "shasum": "" }, "require": { @@ -5490,22 +5513,22 @@ "local" ], "support": { - "source": "https://github.com/thephpleague/flysystem-local/tree/3.31.0" + "source": "https://github.com/thephpleague/flysystem-local/tree/3.35.3" }, - "time": "2026-01-23T15:30:45+00:00" + "time": "2026-08-12T13:29:21+00:00" }, { "name": "league/iso3166", - "version": "4.4.0", + "version": "4.5.0", "source": { "type": "git", "url": "https://github.com/alcohol/iso3166.git", - "reference": "928ac7ecc569db9123a83ef5b1c6efc279e7cb49" + "reference": "d2a202eae724b3e81699996c62985004d5205113" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/alcohol/iso3166/zipball/928ac7ecc569db9123a83ef5b1c6efc279e7cb49", - "reference": "928ac7ecc569db9123a83ef5b1c6efc279e7cb49", + "url": "https://api.github.com/repos/alcohol/iso3166/zipball/d2a202eae724b3e81699996c62985004d5205113", + "reference": "d2a202eae724b3e81699996c62985004d5205113", "shasum": "" }, "require": { @@ -5559,20 +5582,20 @@ "type": "github" } ], - "time": "2026-01-02T09:49:36+00:00" + "time": "2026-08-27T14:33:05+00:00" }, { "name": "league/mime-type-detection", - "version": "1.16.0", + "version": "1.17.0", "source": { "type": "git", "url": "https://github.com/thephpleague/mime-type-detection.git", - "reference": "2d6702ff215bf922936ccc1ad31007edc76451b9" + "reference": "f5f47eff7c48ed1003069a2ca67f316fb4021c76" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/2d6702ff215bf922936ccc1ad31007edc76451b9", - "reference": "2d6702ff215bf922936ccc1ad31007edc76451b9", + "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/f5f47eff7c48ed1003069a2ca67f316fb4021c76", + "reference": "f5f47eff7c48ed1003069a2ca67f316fb4021c76", "shasum": "" }, "require": { @@ -5582,7 +5605,7 @@ "require-dev": { "friendsofphp/php-cs-fixer": "^3.2", "phpstan/phpstan": "^0.12.68", - "phpunit/phpunit": "^8.5.8 || ^9.3 || ^10.0" + "phpunit/phpunit": "^8.5.8 || ^9.3 || ^10.0 || ^11.0 || ^12.0" }, "type": "library", "autoload": { @@ -5603,7 +5626,7 @@ "description": "Mime-type detection for Flysystem", "support": { "issues": "https://github.com/thephpleague/mime-type-detection/issues", - "source": "https://github.com/thephpleague/mime-type-detection/tree/1.16.0" + "source": "https://github.com/thephpleague/mime-type-detection/tree/1.17.0" }, "funding": [ { @@ -5615,31 +5638,31 @@ "type": "tidelift" } ], - "time": "2024-09-21T08:32:55+00:00" + "time": "2026-07-09T11:49:27+00:00" }, { "name": "league/oauth2-server", - "version": "9.3.0", + "version": "9.4.1", "source": { "type": "git", "url": "https://github.com/thephpleague/oauth2-server.git", - "reference": "d8e2f39f645a82b207bbac441694d6e6079357cb" + "reference": "9d2f6fc0a0b5aa1bb02506971d3a4ecff2c6526c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/oauth2-server/zipball/d8e2f39f645a82b207bbac441694d6e6079357cb", - "reference": "d8e2f39f645a82b207bbac441694d6e6079357cb", + "url": "https://api.github.com/repos/thephpleague/oauth2-server/zipball/9d2f6fc0a0b5aa1bb02506971d3a4ecff2c6526c", + "reference": "9d2f6fc0a0b5aa1bb02506971d3a4ecff2c6526c", "shasum": "" }, "require": { "defuse/php-encryption": "^2.4", "ext-json": "*", "ext-openssl": "*", - "lcobucci/clock": "^2.3 || ^3.0", - "lcobucci/jwt": "^5.0", + "lcobucci/jwt": "^5.6", "league/event": "^3.0", - "league/uri": "^7.0", - "php": "~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0", + "league/uri": "^7.8", + "php": "~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0", + "psr/clock": "^1.0", "psr/http-message": "^2.0", "psr/http-server-middleware": "^1.0" }, @@ -5648,17 +5671,18 @@ "lncd/oauth2": "*" }, "require-dev": { - "laminas/laminas-diactoros": "^3.5", - "php-parallel-lint/php-parallel-lint": "^1.3.2", - "phpstan/extension-installer": "^1.3.1", - "phpstan/phpstan": "^1.12|^2.0", - "phpstan/phpstan-deprecation-rules": "^1.1.4|^2.0", - "phpstan/phpstan-phpunit": "^1.3.15|^2.0", - "phpstan/phpstan-strict-rules": "^1.5.2|^2.0", - "phpunit/phpunit": "^10.5|^11.5|^12.0", + "laminas/laminas-diactoros": "^3.8", + "paragonie/random_compat": "^9.99.100", + "php-parallel-lint/php-parallel-lint": "^1.4", + "phpstan/extension-installer": "^1.4.3", + "phpstan/phpstan": "^2.1.38", + "phpstan/phpstan-deprecation-rules": "^2.0", + "phpstan/phpstan-phpunit": "^2.0.12", + "phpstan/phpstan-strict-rules": "^2.0", + "phpunit/phpunit": "^11.5.50", "roave/security-advisories": "dev-master", - "slevomat/coding-standard": "^8.14.1", - "squizlabs/php_codesniffer": "^3.8" + "slevomat/coding-standard": "^8.27.1", + "squizlabs/php_codesniffer": "^4.0" }, "type": "library", "autoload": { @@ -5703,7 +5727,7 @@ ], "support": { "issues": "https://github.com/thephpleague/oauth2-server/issues", - "source": "https://github.com/thephpleague/oauth2-server/tree/9.3.0" + "source": "https://github.com/thephpleague/oauth2-server/tree/9.4.1" }, "funding": [ { @@ -5711,7 +5735,7 @@ "type": "github" } ], - "time": "2025-11-25T22:51:15+00:00" + "time": "2026-06-25T15:24:07+00:00" }, { "name": "league/uri", @@ -5811,6 +5835,90 @@ ], "time": "2026-03-15T20:22:25+00:00" }, + { + "name": "league/uri-components", + "version": "7.8.1", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/uri-components.git", + "reference": "848ff9db2f0be06229d6034b7c2e33d41b4fd675" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/uri-components/zipball/848ff9db2f0be06229d6034b7c2e33d41b4fd675", + "reference": "848ff9db2f0be06229d6034b7c2e33d41b4fd675", + "shasum": "" + }, + "require": { + "league/uri": "^7.8.1", + "php": "^8.1" + }, + "suggest": { + "ext-bcmath": "to improve IPV4 host parsing", + "ext-fileinfo": "to create Data URI from file contennts", + "ext-gmp": "to improve IPV4 host parsing", + "ext-intl": "to handle IDN host with the best performance", + "ext-mbstring": "to use the sorting algorithm of URLSearchParams", + "jeremykendall/php-domain-parser": "to further parse the URI host and resolve its Public Suffix and Top Level Domain", + "league/uri-polyfill": "to backport the PHP URI extension for older versions of PHP", + "php-64bit": "to improve IPV4 host parsing", + "rowbot/url": "to handle URLs using the WHATWG URL Living Standard specification", + "symfony/polyfill-intl-idn": "to handle IDN host via the Symfony polyfill if ext-intl is not present" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "7.x-dev" + } + }, + "autoload": { + "psr-4": { + "League\\Uri\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ignace Nyamagana Butera", + "email": "nyamsprod@gmail.com", + "homepage": "https://nyamsprod.com" + } + ], + "description": "URI components manipulation library", + "homepage": "http://uri.thephpleague.com", + "keywords": [ + "authority", + "components", + "fragment", + "host", + "middleware", + "modifier", + "path", + "port", + "query", + "rfc3986", + "scheme", + "uri", + "url", + "userinfo" + ], + "support": { + "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.1" + }, + "funding": [ + { + "url": "https://github.com/nyamsprod", + "type": "github" + } + ], + "time": "2026-03-15T20:22:25+00:00" + }, { "name": "league/uri-interfaces", "version": "7.8.1", @@ -5897,16 +6005,16 @@ }, { "name": "livewire/livewire", - "version": "v3.8.0", + "version": "v4.4.5", "source": { "type": "git", "url": "https://github.com/livewire/livewire.git", - "reference": "d81d269243c3f18d302663c0ce5672990df08ca1" + "reference": "10aa0b5ee44c99b5bce0f78ad265bbcf0e74abdc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/livewire/livewire/zipball/d81d269243c3f18d302663c0ce5672990df08ca1", - "reference": "d81d269243c3f18d302663c0ce5672990df08ca1", + "url": "https://api.github.com/repos/livewire/livewire/zipball/10aa0b5ee44c99b5bce0f78ad265bbcf0e74abdc", + "reference": "10aa0b5ee44c99b5bce0f78ad265bbcf0e74abdc", "shasum": "" }, "require": { @@ -5961,7 +6069,7 @@ "description": "A front-end framework for Laravel.", "support": { "issues": "https://github.com/livewire/livewire/issues", - "source": "https://github.com/livewire/livewire/tree/v3.8.0" + "source": "https://github.com/livewire/livewire/tree/v4.4.5" }, "funding": [ { @@ -5969,34 +6077,42 @@ "type": "github" } ], - "time": "2026-04-30T23:56:43+00:00" + "time": "2026-09-14T19:27:16+00:00" }, { "name": "maatwebsite/excel", - "version": "3.1.69", + "version": "4.0.3", "source": { "type": "git", "url": "https://github.com/SpartnerNL/Laravel-Excel.git", - "reference": "ae5d65b7c9a2fac43bff4d44f796ac95d7a8e760" + "reference": "050985813424582bf084b93eb8c3fee0fb12c6c4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/SpartnerNL/Laravel-Excel/zipball/ae5d65b7c9a2fac43bff4d44f796ac95d7a8e760", - "reference": "ae5d65b7c9a2fac43bff4d44f796ac95d7a8e760", + "url": "https://api.github.com/repos/SpartnerNL/Laravel-Excel/zipball/050985813424582bf084b93eb8c3fee0fb12c6c4", + "reference": "050985813424582bf084b93eb8c3fee0fb12c6c4", "shasum": "" }, "require": { - "composer/semver": "^3.3", - "ext-json": "*", - "illuminate/support": "5.8.*||^6.0||^7.0||^8.0||^9.0||^10.0||^11.0||^12.0||^13.0", - "php": "^7.0||^8.0", - "phpoffice/phpspreadsheet": "^1.30.4", - "psr/simple-cache": "^1.0||^2.0||^3.0" + "composer/semver": "^3.4", + "illuminate/support": "^12.0 || ^13.0", + "php": "^8.3", + "phpoffice/phpspreadsheet": "^5.9", + "psr/simple-cache": "^1.0 || ^2.0 || ^3.0" }, "require-dev": { - "laravel/scout": "^7.0||^8.0||^9.0||^10.0||^11.0", - "orchestra/testbench": "^6.0||^7.0||^8.0||^9.0||^10.0||^11.0", - "predis/predis": "^1.1" + "brianium/paratest": "^7.20", + "driftingly/rector-laravel": "^2.5", + "ext-sqlite3": "*", + "larastan/larastan": "^3.10", + "laravel/pint": "^1.29", + "laravel/scout": "^10.25 || ^11.2", + "orchestra/testbench": "^10.11 || ^11.1", + "phpstan/extension-installer": "^1.4", + "phpstan/phpstan-mockery": "^2.0", + "phpunit/phpunit": "^12.5 || ~13.1.14", + "predis/predis": "^2.3 || ^3.0", + "rector/rector": "^2.4.2" }, "type": "library", "extra": { @@ -6038,7 +6154,7 @@ ], "support": { "issues": "https://github.com/SpartnerNL/Laravel-Excel/issues", - "source": "https://github.com/SpartnerNL/Laravel-Excel/tree/3.1.69" + "source": "https://github.com/SpartnerNL/Laravel-Excel/tree/4.0.3" }, "funding": [ { @@ -6050,7 +6166,7 @@ "type": "github" } ], - "time": "2026-04-30T20:03:58+00:00" + "time": "2026-09-14T12:30:46+00:00" }, { "name": "maennchen/zipstream-php", @@ -6312,24 +6428,24 @@ }, { "name": "masterminds/html5", - "version": "2.10.0", + "version": "2.11.0", "source": { "type": "git", "url": "https://github.com/Masterminds/html5-php.git", - "reference": "fcf91eb64359852f00d921887b219479b4f21251" + "reference": "a1e7a2f88ee13635d86fc61cfbdf2306a76ddfc7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/fcf91eb64359852f00d921887b219479b4f21251", - "reference": "fcf91eb64359852f00d921887b219479b4f21251", + "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/a1e7a2f88ee13635d86fc61cfbdf2306a76ddfc7", + "reference": "a1e7a2f88ee13635d86fc61cfbdf2306a76ddfc7", "shasum": "" }, "require": { "ext-dom": "*", - "php": ">=5.3.0" + "php": ">=7.4" }, "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7.21 || ^6 || ^7 || ^8 || ^9" + "phpunit/phpunit": "^6 || ^7 || ^8 || ^9 || ^10" }, "type": "library", "extra": { @@ -6373,9 +6489,9 @@ ], "support": { "issues": "https://github.com/Masterminds/html5-php/issues", - "source": "https://github.com/Masterminds/html5-php/tree/2.10.0" + "source": "https://github.com/Masterminds/html5-php/tree/2.11.0" }, - "time": "2025-07-25T09:04:22+00:00" + "time": "2026-08-18T06:18:41+00:00" }, { "name": "mobiledetect/mobiledetectlib", @@ -6443,16 +6559,16 @@ }, { "name": "monolog/monolog", - "version": "3.10.0", + "version": "3.12.0", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "b321dd6749f0bf7189444158a3ce785cc16d69b0" + "reference": "72c534fc0ab181ef52d92a68382318631e301608" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/b321dd6749f0bf7189444158a3ce785cc16d69b0", - "reference": "b321dd6749f0bf7189444158a3ce785cc16d69b0", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/72c534fc0ab181ef52d92a68382318631e301608", + "reference": "72c534fc0ab181ef52d92a68382318631e301608", "shasum": "" }, "require": { @@ -6478,6 +6594,7 @@ "phpstan/phpstan-strict-rules": "^2", "phpunit/phpunit": "^10.5.17 || ^11.0.7", "predis/predis": "^1.1 || ^2", + "psr/clock": "^1.0", "rollbar/rollbar": "^4.0", "ruflin/elastica": "^7 || ^8", "symfony/mailer": "^5.4 || ^6", @@ -6496,6 +6613,7 @@ "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", "mongodb/mongodb": "Allow sending log messages to a MongoDB server (via library)", "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", + "psr/clock": "Required to pass a clock to the Logger and control the timestamp of log records", "rollbar/rollbar": "Allow sending log messages to Rollbar", "ruflin/elastica": "Allow sending log messages to an Elastic Search server" }, @@ -6530,7 +6648,7 @@ ], "support": { "issues": "https://github.com/Seldaek/monolog/issues", - "source": "https://github.com/Seldaek/monolog/tree/3.10.0" + "source": "https://github.com/Seldaek/monolog/tree/3.12.0" }, "funding": [ { @@ -6542,20 +6660,20 @@ "type": "tidelift" } ], - "time": "2026-01-02T08:56:05+00:00" + "time": "2026-09-09T08:34:20+00:00" }, { "name": "mtdowling/jmespath.php", - "version": "2.8.0", + "version": "2.9.2", "source": { "type": "git", "url": "https://github.com/jmespath/jmespath.php.git", - "reference": "a2a865e05d5f420b50cc2f85bb78d565db12a6bc" + "reference": "2157c5e50e813ec6a96c1eed3be7f64a20fb32a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/jmespath/jmespath.php/zipball/a2a865e05d5f420b50cc2f85bb78d565db12a6bc", - "reference": "a2a865e05d5f420b50cc2f85bb78d565db12a6bc", + "url": "https://api.github.com/repos/jmespath/jmespath.php/zipball/2157c5e50e813ec6a96c1eed3be7f64a20fb32a8", + "reference": "2157c5e50e813ec6a96c1eed3be7f64a20fb32a8", "shasum": "" }, "require": { @@ -6564,7 +6682,7 @@ }, "require-dev": { "composer/xdebug-handler": "^3.0.3", - "phpunit/phpunit": "^8.5.33" + "phpunit/phpunit": "^8.5.52" }, "bin": [ "bin/jp.php" @@ -6572,7 +6690,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.8-dev" + "dev-master": "2.9-dev" } }, "autoload": { @@ -6606,26 +6724,26 @@ ], "support": { "issues": "https://github.com/jmespath/jmespath.php/issues", - "source": "https://github.com/jmespath/jmespath.php/tree/2.8.0" + "source": "https://github.com/jmespath/jmespath.php/tree/2.9.2" }, - "time": "2024-09-04T18:46:31+00:00" + "time": "2026-07-06T18:56:19+00:00" }, { "name": "myclabs/deep-copy", - "version": "1.13.4", + "version": "1.14.0", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a" + "reference": "8680aa248f8e07bc8fb43f56f0f5fc77a0c96aae" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/07d290f0c47959fd5eed98c95ee5602db07e0b6a", - "reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/8680aa248f8e07bc8fb43f56f0f5fc77a0c96aae", + "reference": "8680aa248f8e07bc8fb43f56f0f5fc77a0c96aae", "shasum": "" }, "require": { - "php": "^7.1 || ^8.0" + "php": "^8.0" }, "conflict": { "doctrine/collections": "<1.6.8", @@ -6660,28 +6778,28 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.13.4" + "source": "https://github.com/myclabs/DeepCopy/tree/1.14.0" }, "funding": [ { - "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", - "type": "tidelift" + "url": "https://github.com/mnapoli", + "type": "github" } ], - "time": "2025-08-01T08:46:24+00:00" + "time": "2026-08-11T10:17:44+00:00" }, { "name": "nesbot/carbon", - "version": "3.11.4", + "version": "3.14.0", "source": { "type": "git", "url": "https://github.com/CarbonPHP/carbon.git", - "reference": "e890471a3494740f7d9326d72ce6a8c559ffee60" + "reference": "0023eaa2c9110e47446dd512a263c69c40cd41f2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/e890471a3494740f7d9326d72ce6a8c559ffee60", - "reference": "e890471a3494740f7d9326d72ce6a8c559ffee60", + "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/0023eaa2c9110e47446dd512a263c69c40cd41f2", + "reference": "0023eaa2c9110e47446dd512a263c69c40cd41f2", "shasum": "" }, "require": { @@ -6773,20 +6891,94 @@ "type": "tidelift" } ], - "time": "2026-04-07T09:57:54+00:00" + "time": "2026-09-12T20:45:19+00:00" }, { - "name": "nette/schema", - "version": "v1.3.5", + "name": "nette/php-generator", + "version": "v4.2.2", "source": { "type": "git", - "url": "https://github.com/nette/schema.git", - "reference": "f0ab1a3cda782dbc5da270d28545236aa80c4002" + "url": "https://github.com/nette/php-generator.git", + "reference": "0d7060926f5c3e8c488b9b9ced42d857f12a34b5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/schema/zipball/f0ab1a3cda782dbc5da270d28545236aa80c4002", - "reference": "f0ab1a3cda782dbc5da270d28545236aa80c4002", + "url": "https://api.github.com/repos/nette/php-generator/zipball/0d7060926f5c3e8c488b9b9ced42d857f12a34b5", + "reference": "0d7060926f5c3e8c488b9b9ced42d857f12a34b5", + "shasum": "" + }, + "require": { + "nette/utils": "^4.0.6", + "php": "8.1 - 8.5" + }, + "require-dev": { + "jetbrains/phpstorm-attributes": "^1.2", + "nette/phpstan-rules": "^1.0", + "nette/tester": "^2.6", + "nikic/php-parser": "^5.0", + "phpstan/extension-installer": "^1.4@stable", + "phpstan/phpstan": "^2.1.40@stable", + "tracy/tracy": "^2.8" + }, + "suggest": { + "nikic/php-parser": "to use ClassType::from(withBodies: true) & ClassType::fromCode()" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.2-dev" + } + }, + "autoload": { + "psr-4": { + "Nette\\": "src" + }, + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause", + "GPL-2.0-only", + "GPL-3.0-only" + ], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "🐘 Nette PHP Generator: generates neat PHP code for you. Supports new PHP 8.5 features.", + "homepage": "https://nette.org", + "keywords": [ + "code", + "nette", + "php", + "scaffolding" + ], + "support": { + "issues": "https://github.com/nette/php-generator/issues", + "source": "https://github.com/nette/php-generator/tree/v4.2.2" + }, + "time": "2026-02-26T00:58:33+00:00" + }, + { + "name": "nette/schema", + "version": "v1.3.6", + "source": { + "type": "git", + "url": "https://github.com/nette/schema.git", + "reference": "c54350438cd6914616f790a49cb424605f421562" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/schema/zipball/c54350438cd6914616f790a49cb424605f421562", + "reference": "c54350438cd6914616f790a49cb424605f421562", "shasum": "" }, "require": { @@ -6838,22 +7030,22 @@ ], "support": { "issues": "https://github.com/nette/schema/issues", - "source": "https://github.com/nette/schema/tree/v1.3.5" + "source": "https://github.com/nette/schema/tree/v1.3.6" }, - "time": "2026-02-23T03:47:12+00:00" + "time": "2026-08-16T21:58:41+00:00" }, { "name": "nette/utils", - "version": "v4.1.4", + "version": "v4.1.5", "source": { "type": "git", "url": "https://github.com/nette/utils.git", - "reference": "7da6c396d7ebe142bc857c20479d5e70a5e1aac7" + "reference": "b043439dbdf954e6c28b5ea7e34b0100f83165e0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/utils/zipball/7da6c396d7ebe142bc857c20479d5e70a5e1aac7", - "reference": "7da6c396d7ebe142bc857c20479d5e70a5e1aac7", + "url": "https://api.github.com/repos/nette/utils/zipball/b043439dbdf954e6c28b5ea7e34b0100f83165e0", + "reference": "b043439dbdf954e6c28b5ea7e34b0100f83165e0", "shasum": "" }, "require": { @@ -6873,7 +7065,7 @@ }, "suggest": { "ext-gd": "to use Image", - "ext-iconv": "to use Strings::webalize(), toAscii(), chr() and reverse()", + "ext-iconv": "to use Strings::chr(), ord() and reverse()", "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()", "ext-json": "to use Nette\\Utils\\Json", "ext-mbstring": "to use Strings::lower() etc...", @@ -6929,26 +7121,25 @@ ], "support": { "issues": "https://github.com/nette/utils/issues", - "source": "https://github.com/nette/utils/tree/v4.1.4" + "source": "https://github.com/nette/utils/tree/v4.1.5" }, - "time": "2026-05-11T20:49:54+00:00" + "time": "2026-07-17T23:02:45+00:00" }, { "name": "nikic/php-parser", - "version": "v5.7.0", + "version": "v5.9.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "dca41cd15c2ac9d055ad70dbfd011130757d1f82" + "reference": "9e33da9553fe7786f0962b35f4e4ecf01be89def" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/dca41cd15c2ac9d055ad70dbfd011130757d1f82", - "reference": "dca41cd15c2ac9d055ad70dbfd011130757d1f82", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/9e33da9553fe7786f0962b35f4e4ecf01be89def", + "reference": "9e33da9553fe7786f0962b35f4e4ecf01be89def", "shasum": "" }, "require": { - "ext-ctype": "*", "ext-json": "*", "ext-tokenizer": "*", "php": ">=7.4" @@ -6987,29 +7178,29 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v5.7.0" + "source": "https://github.com/nikic/PHP-Parser/tree/v5.9.0" }, - "time": "2025-12-06T11:56:16+00:00" + "time": "2026-09-13T18:51:52+00:00" }, { "name": "novadaemon/filament-pretty-json", - "version": "v2.7.0", + "version": "v4.2.0", "source": { "type": "git", "url": "https://github.com/novadaemon/filament-pretty-json.git", - "reference": "19f0333efd1d142882a0c82d54d88ace465a95dc" + "reference": "c6fdee27c9a421f2ca3bfb2875c2a5c13b2605a2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/novadaemon/filament-pretty-json/zipball/19f0333efd1d142882a0c82d54d88ace465a95dc", - "reference": "19f0333efd1d142882a0c82d54d88ace465a95dc", + "url": "https://api.github.com/repos/novadaemon/filament-pretty-json/zipball/c6fdee27c9a421f2ca3bfb2875c2a5c13b2605a2", + "reference": "c6fdee27c9a421f2ca3bfb2875c2a5c13b2605a2", "shasum": "" }, "require": { - "filament/filament": "^3.0", - "filament/forms": "^3.0", - "illuminate/contracts": "^10.0|^11.0|^12.0", - "php": "^8.1|^8.2", + "filament/filament": "^5.0", + "filament/forms": "^5.0", + "illuminate/contracts": "^11.28|^12.0|^13.0", + "php": "^8.2", "spatie/laravel-package-tools": "^1.15.0" }, "require-dev": { @@ -7061,7 +7252,7 @@ "type": "github" } ], - "time": "2025-08-20T15:45:27+00:00" + "time": "2026-04-09T18:50:51+00:00" }, { "name": "nunomaduro/termwind", @@ -7152,33 +7343,33 @@ }, { "name": "nwidart/laravel-modules", - "version": "v12.0.5", + "version": "v13.0.0", "source": { "type": "git", "url": "https://github.com/nWidart/laravel-modules.git", - "reference": "5fe38e88b66394debeac785278a7e40eb81df51a" + "reference": "6aa5461e57ac89d0dc8377cdda074c10487f92f9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nWidart/laravel-modules/zipball/5fe38e88b66394debeac785278a7e40eb81df51a", - "reference": "5fe38e88b66394debeac785278a7e40eb81df51a", + "url": "https://api.github.com/repos/nWidart/laravel-modules/zipball/6aa5461e57ac89d0dc8377cdda074c10487f92f9", + "reference": "6aa5461e57ac89d0dc8377cdda074c10487f92f9", "shasum": "" }, "require": { "ext-dom": "*", "ext-json": "*", "ext-simplexml": "*", - "php": ">=8.2", + "php": "^8.3", "wikimedia/composer-merge-plugin": "^2.1" }, "require-dev": { "friendsofphp/php-cs-fixer": "^v3.52", - "laravel/framework": "^v12.0", + "laravel/framework": "^13.0", "laravel/pint": "^1.16", "mockery/mockery": "^1.6", - "orchestra/testbench": "^v10.0", + "orchestra/testbench": "^11.0", "phpstan/phpstan": "^2.0", - "phpunit/phpunit": "^11.5.3|^12.0.", + "phpunit/phpunit": "^12.0.", "spatie/phpunit-snapshot-assertions": "^5.0" }, "type": "library", @@ -7192,7 +7383,7 @@ ] }, "branch-alias": { - "dev-master": "12.x-dev" + "dev-master": "13.x-dev" } }, "autoload": { @@ -7225,7 +7416,7 @@ ], "support": { "issues": "https://github.com/nWidart/laravel-modules/issues", - "source": "https://github.com/nWidart/laravel-modules/tree/v12.0.5" + "source": "https://github.com/nWidart/laravel-modules/tree/v13.0.0" }, "funding": [ { @@ -7237,7 +7428,7 @@ "type": "github" } ], - "time": "2026-03-19T18:16:17+00:00" + "time": "2026-03-19T19:16:52+00:00" }, { "name": "openspout/openspout", @@ -7334,16 +7525,16 @@ }, { "name": "owen-it/laravel-auditing", - "version": "v14.0.3", + "version": "v14.0.6", "source": { "type": "git", "url": "https://github.com/owen-it/laravel-auditing.git", - "reference": "34e8a21890082a7a353894a4acdeb2d301dbe0d4" + "reference": "31b73b73e73888bc6a7c307805fb22f7d653639f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/owen-it/laravel-auditing/zipball/34e8a21890082a7a353894a4acdeb2d301dbe0d4", - "reference": "34e8a21890082a7a353894a4acdeb2d301dbe0d4", + "url": "https://api.github.com/repos/owen-it/laravel-auditing/zipball/31b73b73e73888bc6a7c307805fb22f7d653639f", + "reference": "31b73b73e73888bc6a7c307805fb22f7d653639f", "shasum": "" }, "require": { @@ -7356,7 +7547,7 @@ "require-dev": { "mockery/mockery": "^1.5.1", "orchestra/testbench": "^9.0|^10.0|^11.0", - "phpunit/phpunit": "^11.0|^12.5.12" + "phpunit/phpunit": "^11.5|^12.5.12" }, "type": "package", "extra": { @@ -7414,7 +7605,7 @@ "issues": "https://github.com/owen-it/laravel-auditing/issues", "source": "https://github.com/owen-it/laravel-auditing" }, - "time": "2026-03-27T13:27:17+00:00" + "time": "2026-06-20T14:28:21+00:00" }, { "name": "paragonie/constant_time_encoding", @@ -7792,16 +7983,16 @@ }, { "name": "phpoffice/phpspreadsheet", - "version": "1.30.4", + "version": "5.9.0", "source": { "type": "git", "url": "https://github.com/PHPOffice/PhpSpreadsheet.git", - "reference": "02970383cc12e7bf0bc0707ea6e2e8ed23a7aec9" + "reference": "05e99ebf61238a70227b4d9cc02d0030d34f6339" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPOffice/PhpSpreadsheet/zipball/02970383cc12e7bf0bc0707ea6e2e8ed23a7aec9", - "reference": "02970383cc12e7bf0bc0707ea6e2e8ed23a7aec9", + "url": "https://api.github.com/repos/PHPOffice/PhpSpreadsheet/zipball/05e99ebf61238a70227b4d9cc02d0030d34f6339", + "reference": "05e99ebf61238a70227b4d9cc02d0030d34f6339", "shasum": "" }, "require": { @@ -7809,6 +8000,7 @@ "ext-ctype": "*", "ext-dom": "*", "ext-fileinfo": "*", + "ext-filter": "*", "ext-gd": "*", "ext-iconv": "*", "ext-libxml": "*", @@ -7819,30 +8011,30 @@ "ext-xmlwriter": "*", "ext-zip": "*", "ext-zlib": "*", - "ezyang/htmlpurifier": "^4.15", "maennchen/zipstream-php": "^2.1 || ^3.0", "markbaker/complex": "^3.0", "markbaker/matrix": "^3.0", - "php": ">=7.4.0 <8.5.0", + "php": "^8.2", "psr/simple-cache": "^1.0 || ^2.0 || ^3.0" }, "require-dev": { "dealerdirect/phpcodesniffer-composer-installer": "dev-main", - "doctrine/instantiator": "^1.5", - "dompdf/dompdf": "^1.0 || ^2.0 || ^3.0", + "dompdf/dompdf": "^2.0 || ^3.0", + "ext-intl": "*", "friendsofphp/php-cs-fixer": "^3.2", - "mitoteam/jpgraph": "^10.3", + "mitoteam/jpgraph": "^10.5", "mpdf/mpdf": "^8.1.1", "phpcompatibility/php-compatibility": "^9.3", - "phpstan/phpstan": "^1.1", - "phpstan/phpstan-phpunit": "^1.0", - "phpunit/phpunit": "^8.5 || ^9.0", + "phpstan/phpstan": "^1.1 || ^2.0", + "phpstan/phpstan-deprecation-rules": "^1.0 || ^2.0", + "phpstan/phpstan-phpunit": "^1.0 || ^2.0", + "phpunit/phpunit": "^10.5 || ^11.0", "squizlabs/php_codesniffer": "^3.7", "tecnickcom/tcpdf": "^6.5" }, "suggest": { "dompdf/dompdf": "Option for rendering PDF with PDF Writer", - "ext-intl": "PHP Internationalization Functions", + "ext-intl": "PHP Internationalization Functions, required for NumberFormat Wizard and StringHelper::setLocale()", "mitoteam/jpgraph": "Option for rendering charts, or including charts with PDF or HTML Writers", "mpdf/mpdf": "Option for rendering PDF with PDF Writer", "tecnickcom/tcpdf": "Option for rendering PDF with PDF Writer" @@ -7894,22 +8086,22 @@ ], "support": { "issues": "https://github.com/PHPOffice/PhpSpreadsheet/issues", - "source": "https://github.com/PHPOffice/PhpSpreadsheet/tree/1.30.4" + "source": "https://github.com/PHPOffice/PhpSpreadsheet/tree/5.9.0" }, - "time": "2026-04-19T06:00:39+00:00" + "time": "2026-07-12T19:17:39+00:00" }, { "name": "phpoption/phpoption", - "version": "1.9.5", + "version": "1.10.0", "source": { "type": "git", "url": "https://github.com/schmittjoh/php-option.git", - "reference": "75365b91986c2405cf5e1e012c5595cd487a98be" + "reference": "67b192b6a42ec03944b972d6e633ddec78ad2c6d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/75365b91986c2405cf5e1e012c5595cd487a98be", - "reference": "75365b91986c2405cf5e1e012c5595cd487a98be", + "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/67b192b6a42ec03944b972d6e633ddec78ad2c6d", + "reference": "67b192b6a42ec03944b972d6e633ddec78ad2c6d", "shasum": "" }, "require": { @@ -7917,7 +8109,7 @@ }, "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", - "phpunit/phpunit": "^8.5.44 || ^9.6.25 || ^10.5.53 || ^11.5.34" + "phpunit/phpunit": "^8.5.54 || ^9.6.36 || ^10.5.64 || ^11.5.56 || ^12.5.33" }, "type": "library", "extra": { @@ -7959,7 +8151,7 @@ ], "support": { "issues": "https://github.com/schmittjoh/php-option/issues", - "source": "https://github.com/schmittjoh/php-option/tree/1.9.5" + "source": "https://github.com/schmittjoh/php-option/tree/1.10.0" }, "funding": [ { @@ -7971,35 +8163,39 @@ "type": "tidelift" } ], - "time": "2025-12-27T19:41:33+00:00" + "time": "2026-08-24T00:54:40+00:00" }, { "name": "phpseclib/phpseclib", - "version": "3.0.52", + "version": "4.0.1", "source": { "type": "git", "url": "https://github.com/phpseclib/phpseclib.git", - "reference": "2adaefc83df2ec548558307690f376dd7d4f4fce" + "reference": "bb7b959c8159957edae6f5084ebbac765d310e16" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/2adaefc83df2ec548558307690f376dd7d4f4fce", - "reference": "2adaefc83df2ec548558307690f376dd7d4f4fce", + "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/bb7b959c8159957edae6f5084ebbac765d310e16", + "reference": "bb7b959c8159957edae6f5084ebbac765d310e16", "shasum": "" }, "require": { - "paragonie/constant_time_encoding": "^1|^2|^3", - "paragonie/random_compat": "^1.4|^2.0|^9.99.99", - "php": ">=5.6.1" + "paragonie/constant_time_encoding": "^2|^3", + "php": ">=8.1", + "symfony/polyfill-php82": "^1.26" }, "require-dev": { - "phpunit/phpunit": "*" + "brianium/paratest": "^7.22", + "ext-xml": "*", + "php-parallel-lint/php-parallel-lint": "^1.3", + "phpunit/phpunit": "^13", + "squizlabs/php_codesniffer": "^3.7", + "vimeo/psalm": "*" }, "suggest": { "ext-dom": "Install the DOM extension to load XML formatted public keys.", "ext-gmp": "Install the GMP (GNU Multiple Precision) extension in order to speed up arbitrary precision integer arithmetic operations.", "ext-libsodium": "SSH2/SFTP can make use of some algorithms provided by the libsodium-php extension.", - "ext-mcrypt": "Install the Mcrypt extension in order to speed up a few other cryptographic operations.", "ext-openssl": "Install the OpenSSL extension in order to speed up a wide variety of cryptographic operations." }, "type": "library", @@ -8008,7 +8204,7 @@ "phpseclib/bootstrap.php" ], "psr-4": { - "phpseclib3\\": "phpseclib/" + "phpseclib4\\": "phpseclib/" } }, "notification-url": "https://packagist.org/downloads/", @@ -8040,10 +8236,16 @@ "name": "Graham Campbell", "email": "graham@alt-three.com", "role": "Developer" + }, + { + "name": "Jack Worman", + "email": "jack.worman@gmail.com", + "homepage": "https://jackworman.com", + "role": "Developer" } ], "description": "PHP Secure Communications Library - Pure-PHP implementations of RSA, AES, SSH2, SFTP, X.509 etc.", - "homepage": "http://phpseclib.sourceforge.net", + "homepage": "https://phpseclib.com/", "keywords": [ "BigInteger", "aes", @@ -8065,7 +8267,7 @@ ], "support": { "issues": "https://github.com/phpseclib/phpseclib/issues", - "source": "https://github.com/phpseclib/phpseclib/tree/3.0.52" + "source": "https://github.com/phpseclib/phpseclib/tree/4.0.1" }, "funding": [ { @@ -8081,20 +8283,20 @@ "type": "tidelift" } ], - "time": "2026-04-27T07:02:15+00:00" + "time": "2026-08-26T12:15:13+00:00" }, { "name": "phpstan/phpdoc-parser", - "version": "2.3.2", + "version": "2.3.5", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "a004701b11273a26cd7955a61d67a7f1e525a45a" + "reference": "148cefffaf0233e4c08cc13db8a195a56dd6dfe9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/a004701b11273a26cd7955a61d67a7f1e525a45a", - "reference": "a004701b11273a26cd7955a61d67a7f1e525a45a", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/148cefffaf0233e4c08cc13db8a195a56dd6dfe9", + "reference": "148cefffaf0233e4c08cc13db8a195a56dd6dfe9", "shasum": "" }, "require": { @@ -8126,22 +8328,22 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/2.3.2" + "source": "https://github.com/phpstan/phpdoc-parser/tree/2.3.5" }, - "time": "2026-01-25T14:56:51+00:00" + "time": "2026-08-31T16:05:28+00:00" }, { "name": "pragmarx/google2fa", - "version": "v9.0.0", + "version": "v9.1.0", "source": { "type": "git", "url": "https://github.com/antonioribeiro/google2fa.git", - "reference": "e6bc62dd6ae83acc475f57912e27466019a1f2cf" + "reference": "f00bc788c555adfb6765c437ff3538e59cd88af1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/antonioribeiro/google2fa/zipball/e6bc62dd6ae83acc475f57912e27466019a1f2cf", - "reference": "e6bc62dd6ae83acc475f57912e27466019a1f2cf", + "url": "https://api.github.com/repos/antonioribeiro/google2fa/zipball/f00bc788c555adfb6765c437ff3538e59cd88af1", + "reference": "f00bc788c555adfb6765c437ff3538e59cd88af1", "shasum": "" }, "require": { @@ -8149,8 +8351,11 @@ "php": "^7.1|^8.0" }, "require-dev": { - "phpstan/phpstan": "^1.9", - "phpunit/phpunit": "^7.5.15|^8.5|^9.0" + "phpstan/phpstan": "^1.0|^2.0", + "phpstan/phpstan-phpunit": "^1.0|^2.0", + "phpunit/phpunit": "~9|~10|~11|~12|~13", + "psalm/plugin-phpunit": "^0.19|^0.20", + "vimeo/psalm": "^5.26|^6.13" }, "type": "library", "autoload": { @@ -8173,14 +8378,91 @@ "keywords": [ "2fa", "Authentication", + "MFA", "Two Factor Authentication", - "google2fa" + "google-authenticator", + "google2fa", + "hotp", + "otp", + "rfc4226", + "rfc6238", + "totp" ], "support": { + "docs": "https://github.com/antonioribeiro/google2fa#readme", "issues": "https://github.com/antonioribeiro/google2fa/issues", - "source": "https://github.com/antonioribeiro/google2fa/tree/v9.0.0" + "security": "https://github.com/antonioribeiro/google2fa/security/policy", + "source": "https://github.com/antonioribeiro/google2fa" }, - "time": "2025-09-19T22:51:08+00:00" + "time": "2026-08-15T13:22:01+00:00" + }, + { + "name": "pragmarx/google2fa-qrcode", + "version": "v4.0.0", + "source": { + "type": "git", + "url": "https://github.com/antonioribeiro/google2fa-qrcode.git", + "reference": "16159f84fa0838c276f35d46de57fd90dfbb385c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/antonioribeiro/google2fa-qrcode/zipball/16159f84fa0838c276f35d46de57fd90dfbb385c", + "reference": "16159f84fa0838c276f35d46de57fd90dfbb385c", + "shasum": "" + }, + "require": { + "php": "^8.1", + "pragmarx/google2fa": "^8.0|^9.0" + }, + "require-dev": { + "bacon/bacon-qr-code": "^2.0|^3.0", + "chillerlan/php-qrcode": "^5.0|^6.0", + "khanamiryan/qrcode-detector-decoder": "^1.0", + "phpstan/phpstan": "^2.0", + "phpunit/phpunit": "~9|~10|~11|~12|~13" + }, + "suggest": { + "bacon/bacon-qr-code": "For QR Code generation, requires imagick", + "chillerlan/php-qrcode": "For QR Code generation" + }, + "type": "library", + "extra": { + "component": "package", + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-4": { + "PragmaRX\\Google2FAQRCode\\": "src/", + "PragmaRX\\Google2FAQRCode\\Tests\\": "tests/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Antonio Carlos Ribeiro", + "email": "acr@antoniocarlosribeiro.com", + "role": "Creator & Designer" + } + ], + "description": "QR Code package for Google2FA", + "keywords": [ + "2fa", + "Authentication", + "Two Factor Authentication", + "google2fa", + "qr code", + "qrcode" + ], + "support": { + "issues": "https://github.com/antonioribeiro/google2fa-qrcode/issues", + "source": "https://github.com/antonioribeiro/google2fa-qrcode/tree/v4.0.0" + }, + "time": "2026-05-08T19:24:44+00:00" }, { "name": "psr/cache", @@ -8758,16 +9040,16 @@ }, { "name": "psy/psysh", - "version": "v0.12.22", + "version": "v0.12.24", "source": { "type": "git", "url": "https://github.com/bobthecow/psysh.git", - "reference": "3be75d5b9244936dd4ac62ade2bfb004d13acf0f" + "reference": "ca0fdcf8a7617afa3adfdf1b5fef573dffb69ca1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/3be75d5b9244936dd4ac62ade2bfb004d13acf0f", - "reference": "3be75d5b9244936dd4ac62ade2bfb004d13acf0f", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/ca0fdcf8a7617afa3adfdf1b5fef573dffb69ca1", + "reference": "ca0fdcf8a7617afa3adfdf1b5fef573dffb69ca1", "shasum": "" }, "require": { @@ -8831,26 +9113,26 @@ ], "support": { "issues": "https://github.com/bobthecow/psysh/issues", - "source": "https://github.com/bobthecow/psysh/tree/v0.12.22" + "source": "https://github.com/bobthecow/psysh/tree/v0.12.24" }, - "time": "2026-03-22T23:03:24+00:00" + "time": "2026-06-29T15:41:09+00:00" }, { "name": "pxlrbt/filament-environment-indicator", - "version": "v2.2.0", + "version": "v3.6.0", "source": { "type": "git", "url": "https://github.com/pxlrbt/filament-environment-indicator.git", - "reference": "4f2cb470df70b6c261020823309e65047713cbdd" + "reference": "35e9de9c5d56451e4be2b39edb2af2d03170d31b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pxlrbt/filament-environment-indicator/zipball/4f2cb470df70b6c261020823309e65047713cbdd", - "reference": "4f2cb470df70b6c261020823309e65047713cbdd", + "url": "https://api.github.com/repos/pxlrbt/filament-environment-indicator/zipball/35e9de9c5d56451e4be2b39edb2af2d03170d31b", + "reference": "35e9de9c5d56451e4be2b39edb2af2d03170d31b", "shasum": "" }, "require": { - "filament/filament": "^3.0", + "filament/filament": "^4.0|^5.0", "php": "^8.0" }, "require-dev": { @@ -8876,7 +9158,7 @@ "authors": [ { "name": "Dennis Koch", - "email": "info@pixelarbeit.de" + "email": "hey@denniskoch.dev" } ], "description": "Indicator for the current environment inside Filament", @@ -8887,7 +9169,7 @@ ], "support": { "issues": "https://github.com/pxlrbt/filament-environment-indicator/issues", - "source": "https://github.com/pxlrbt/filament-environment-indicator/tree/v2.2.0" + "source": "https://github.com/pxlrbt/filament-environment-indicator/tree/v3.6.0" }, "funding": [ { @@ -8895,7 +9177,7 @@ "type": "github" } ], - "time": "2025-07-25T14:36:56+00:00" + "time": "2026-08-12T16:39:12+00:00" }, { "name": "ralouphie/getallheaders", @@ -9019,20 +9301,20 @@ }, { "name": "ramsey/uuid", - "version": "4.9.2", + "version": "4.9.4", "source": { "type": "git", "url": "https://github.com/ramsey/uuid.git", - "reference": "8429c78ca35a09f27565311b98101e2826affde0" + "reference": "75d73f48d02797c2c285a7e9f348fadc0102ffe2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ramsey/uuid/zipball/8429c78ca35a09f27565311b98101e2826affde0", - "reference": "8429c78ca35a09f27565311b98101e2826affde0", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/75d73f48d02797c2c285a7e9f348fadc0102ffe2", + "reference": "75d73f48d02797c2c285a7e9f348fadc0102ffe2", "shasum": "" }, "require": { - "brick/math": "^0.8.16 || ^0.9 || ^0.10 || ^0.11 || ^0.12 || ^0.13 || ^0.14", + "brick/math": "^0.8.16 || ^0.9 || ^0.10 || ^0.11 || ^0.12 || ^0.13 || ^0.14 || ^0.15 || ^0.16 || ^0.17 || ^0.18 || ^0.19 || ^0.20 || ^1.0", "php": "^8.0", "ramsey/collection": "^1.2 || ^2.0" }, @@ -9091,9 +9373,9 @@ ], "support": { "issues": "https://github.com/ramsey/uuid/issues", - "source": "https://github.com/ramsey/uuid/tree/4.9.2" + "source": "https://github.com/ramsey/uuid/tree/4.9.4" }, - "time": "2025-12-14T04:43:48+00:00" + "time": "2026-09-16T11:39:30+00:00" }, { "name": "react/promise", @@ -9247,17 +9529,95 @@ "time": "2026-03-19T10:36:26+00:00" }, { - "name": "seld/jsonlint", - "version": "1.11.0", + "name": "scrivo/highlight.php", + "version": "v9.18.1.10", "source": { "type": "git", - "url": "https://github.com/Seldaek/jsonlint.git", - "reference": "1748aaf847fc731cfad7725aec413ee46f0cc3a2" + "url": "https://github.com/scrivo/highlight.php.git", + "reference": "850f4b44697a2552e892ffe71490ba2733c2fc6e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/1748aaf847fc731cfad7725aec413ee46f0cc3a2", - "reference": "1748aaf847fc731cfad7725aec413ee46f0cc3a2", + "url": "https://api.github.com/repos/scrivo/highlight.php/zipball/850f4b44697a2552e892ffe71490ba2733c2fc6e", + "reference": "850f4b44697a2552e892ffe71490ba2733c2fc6e", + "shasum": "" + }, + "require": { + "ext-json": "*", + "php": ">=5.4" + }, + "require-dev": { + "phpunit/phpunit": "^4.8|^5.7", + "sabberworm/php-css-parser": "^8.3", + "symfony/finder": "^2.8|^3.4|^5.4", + "symfony/var-dumper": "^2.8|^3.4|^5.4" + }, + "suggest": { + "ext-mbstring": "Allows highlighting code with unicode characters and supports language with unicode keywords" + }, + "type": "library", + "autoload": { + "files": [ + "HighlightUtilities/functions.php" + ], + "psr-0": { + "Highlight\\": "", + "HighlightUtilities\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Geert Bergman", + "homepage": "http://www.scrivo.org/", + "role": "Project Author" + }, + { + "name": "Vladimir Jimenez", + "homepage": "https://allejo.io", + "role": "Maintainer" + }, + { + "name": "Martin Folkers", + "homepage": "https://twobrain.io", + "role": "Contributor" + } + ], + "description": "Server side syntax highlighter that supports 185 languages. It's a PHP port of highlight.js", + "keywords": [ + "code", + "highlight", + "highlight.js", + "highlight.php", + "syntax" + ], + "support": { + "issues": "https://github.com/scrivo/highlight.php/issues", + "source": "https://github.com/scrivo/highlight.php" + }, + "funding": [ + { + "url": "https://github.com/allejo", + "type": "github" + } + ], + "time": "2022-12-17T21:53:22+00:00" + }, + { + "name": "seld/jsonlint", + "version": "1.12.1", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/jsonlint.git", + "reference": "9a90eb5d32d5a500296bf43f946d60246444d5f7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/9a90eb5d32d5a500296bf43f946d60246444d5f7", + "reference": "9a90eb5d32d5a500296bf43f946d60246444d5f7", "shasum": "" }, "require": { @@ -9296,7 +9656,7 @@ ], "support": { "issues": "https://github.com/Seldaek/jsonlint/issues", - "source": "https://github.com/Seldaek/jsonlint/tree/1.11.0" + "source": "https://github.com/Seldaek/jsonlint/tree/1.12.1" }, "funding": [ { @@ -9308,20 +9668,20 @@ "type": "tidelift" } ], - "time": "2024-07-11T14:55:45+00:00" + "time": "2026-06-12T11:32:29+00:00" }, { "name": "seld/phar-utils", - "version": "1.2.1", + "version": "1.2.2", "source": { "type": "git", "url": "https://github.com/Seldaek/phar-utils.git", - "reference": "ea2f4014f163c1be4c601b9b7bd6af81ba8d701c" + "reference": "990bbd0e92caa216d52eca0935f6e35e589bfaa5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/phar-utils/zipball/ea2f4014f163c1be4c601b9b7bd6af81ba8d701c", - "reference": "ea2f4014f163c1be4c601b9b7bd6af81ba8d701c", + "url": "https://api.github.com/repos/Seldaek/phar-utils/zipball/990bbd0e92caa216d52eca0935f6e35e589bfaa5", + "reference": "990bbd0e92caa216d52eca0935f6e35e589bfaa5", "shasum": "" }, "require": { @@ -9354,9 +9714,9 @@ ], "support": { "issues": "https://github.com/Seldaek/phar-utils/issues", - "source": "https://github.com/Seldaek/phar-utils/tree/1.2.1" + "source": "https://github.com/Seldaek/phar-utils/tree/1.2.2" }, - "time": "2022-08-31T10:31:18+00:00" + "time": "2026-08-01T12:48:55+00:00" }, { "name": "seld/signal-handler", @@ -9419,77 +9779,18 @@ }, "time": "2023-09-03T09:24:00+00:00" }, - { - "name": "spatie/color", - "version": "1.8.0", - "source": { - "type": "git", - "url": "https://github.com/spatie/color.git", - "reference": "142af7fec069a420babea80a5412eb2f646dcd8c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/spatie/color/zipball/142af7fec069a420babea80a5412eb2f646dcd8c", - "reference": "142af7fec069a420babea80a5412eb2f646dcd8c", - "shasum": "" - }, - "require": { - "php": "^7.3|^8.0" - }, - "require-dev": { - "pestphp/pest": "^1.22", - "phpunit/phpunit": "^6.5||^9.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Spatie\\Color\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Sebastian De Deyne", - "email": "sebastian@spatie.be", - "homepage": "https://spatie.be", - "role": "Developer" - } - ], - "description": "A little library to handle color conversions", - "homepage": "https://github.com/spatie/color", - "keywords": [ - "color", - "conversion", - "rgb", - "spatie" - ], - "support": { - "issues": "https://github.com/spatie/color/issues", - "source": "https://github.com/spatie/color/tree/1.8.0" - }, - "funding": [ - { - "url": "https://github.com/spatie", - "type": "github" - } - ], - "time": "2025-02-10T09:22:41+00:00" - }, { "name": "spatie/invade", - "version": "2.1.0", + "version": "2.1.1", "source": { "type": "git", "url": "https://github.com/spatie/invade.git", - "reference": "b920f6411d21df4e8610a138e2e87ae4957d7f63" + "reference": "f929c7b6e75fceeefa7b41a491e91274bafb17af" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/invade/zipball/b920f6411d21df4e8610a138e2e87ae4957d7f63", - "reference": "b920f6411d21df4e8610a138e2e87ae4957d7f63", + "url": "https://api.github.com/repos/spatie/invade/zipball/f929c7b6e75fceeefa7b41a491e91274bafb17af", + "reference": "f929c7b6e75fceeefa7b41a491e91274bafb17af", "shasum": "" }, "require": { @@ -9527,7 +9828,7 @@ "spatie" ], "support": { - "source": "https://github.com/spatie/invade/tree/2.1.0" + "source": "https://github.com/spatie/invade/tree/2.1.1" }, "funding": [ { @@ -9535,20 +9836,20 @@ "type": "github" } ], - "time": "2024-05-17T09:06:10+00:00" + "time": "2026-08-24T12:39:05+00:00" }, { "name": "spatie/laravel-package-tools", - "version": "1.93.1", + "version": "1.93.2", "source": { "type": "git", "url": "https://github.com/spatie/laravel-package-tools.git", - "reference": "d5552849801f2642aea710557463234b59ef65eb" + "reference": "e927d5b5b05e9fecae098e559e51918aa608ad02" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/d5552849801f2642aea710557463234b59ef65eb", - "reference": "d5552849801f2642aea710557463234b59ef65eb", + "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/e927d5b5b05e9fecae098e559e51918aa608ad02", + "reference": "e927d5b5b05e9fecae098e559e51918aa608ad02", "shasum": "" }, "require": { @@ -9588,7 +9889,7 @@ ], "support": { "issues": "https://github.com/spatie/laravel-package-tools/issues", - "source": "https://github.com/spatie/laravel-package-tools/tree/1.93.1" + "source": "https://github.com/spatie/laravel-package-tools/tree/1.93.2" }, "funding": [ { @@ -9596,7 +9897,7 @@ "type": "github" } ], - "time": "2026-05-19T14:06:37+00:00" + "time": "2026-08-26T09:13:25+00:00" }, { "name": "spatie/regex", @@ -9662,17 +9963,82 @@ "time": "2021-11-30T21:13:59+00:00" }, { - "name": "spatie/temporary-directory", - "version": "2.3.1", + "name": "spatie/shiki-php", + "version": "2.4.0", "source": { "type": "git", - "url": "https://github.com/spatie/temporary-directory.git", - "reference": "662e481d6ec07ef29fd05010433428851a42cd07" + "url": "https://github.com/spatie/shiki-php.git", + "reference": "b8b0ca32d3a82bc5c533e68ffab96c5d4ec1b9ba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/temporary-directory/zipball/662e481d6ec07ef29fd05010433428851a42cd07", - "reference": "662e481d6ec07ef29fd05010433428851a42cd07", + "url": "https://api.github.com/repos/spatie/shiki-php/zipball/b8b0ca32d3a82bc5c533e68ffab96c5d4ec1b9ba", + "reference": "b8b0ca32d3a82bc5c533e68ffab96c5d4ec1b9ba", + "shasum": "" + }, + "require": { + "ext-json": "*", + "php": "^8.0", + "symfony/process": "^5.4|^6.4|^7.1|^8.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^v3.0", + "pestphp/pest": "^1.8", + "phpunit/phpunit": "^9.5", + "spatie/pest-plugin-snapshots": "^1.1", + "spatie/ray": "^1.10" + }, + "type": "library", + "autoload": { + "psr-4": { + "Spatie\\ShikiPhp\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Rias Van der Veken", + "email": "rias@spatie.be", + "role": "Developer" + }, + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "role": "Developer" + } + ], + "description": "Highlight code using Shiki in PHP", + "homepage": "https://github.com/spatie/shiki-php", + "keywords": [ + "shiki", + "spatie" + ], + "support": { + "source": "https://github.com/spatie/shiki-php/tree/2.4.0" + }, + "funding": [ + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2026-04-27T14:27:52+00:00" + }, + { + "name": "spatie/temporary-directory", + "version": "2.4.0", + "source": { + "type": "git", + "url": "https://github.com/spatie/temporary-directory.git", + "reference": "32cbb9645b28839cf4f476708e99a2c70e6802c9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/temporary-directory/zipball/32cbb9645b28839cf4f476708e99a2c70e6802c9", + "reference": "32cbb9645b28839cf4f476708e99a2c70e6802c9", "shasum": "" }, "require": { @@ -9708,7 +10074,7 @@ ], "support": { "issues": "https://github.com/spatie/temporary-directory/issues", - "source": "https://github.com/spatie/temporary-directory/tree/2.3.1" + "source": "https://github.com/spatie/temporary-directory/tree/2.4.0" }, "funding": [ { @@ -9720,26 +10086,27 @@ "type": "github" } ], - "time": "2026-01-12T07:42:22+00:00" + "time": "2026-06-22T07:55:44+00:00" }, { "name": "spomky-labs/cbor-php", - "version": "3.2.3", + "version": "3.4.2", "source": { "type": "git", "url": "https://github.com/Spomky-Labs/cbor-php.git", - "reference": "dd6eb84e6d92f7b8bd0da56b4b4dd7235aed0c32" + "reference": "8f5ea00a07ad529d20886505cdbeb2b9ac7bb2d6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Spomky-Labs/cbor-php/zipball/dd6eb84e6d92f7b8bd0da56b4b4dd7235aed0c32", - "reference": "dd6eb84e6d92f7b8bd0da56b4b4dd7235aed0c32", + "url": "https://api.github.com/repos/Spomky-Labs/cbor-php/zipball/8f5ea00a07ad529d20886505cdbeb2b9ac7bb2d6", + "reference": "8f5ea00a07ad529d20886505cdbeb2b9ac7bb2d6", "shasum": "" }, "require": { - "brick/math": "^0.9|^0.10|^0.11|^0.12|^0.13|^0.14|^0.15|^0.16|^0.17", + "brick/math": "^0.9|^0.10|^0.11|^0.12|^0.13|^0.14|^0.15|^0.16|^0.17|^0.18|^0.19|^0.20|^1.0", "ext-mbstring": "*", - "php": ">=8.0" + "php": ">=8.0", + "symfony/polyfill-php81": "^1.32" }, "require-dev": { "ext-json": "*", @@ -9748,8 +10115,8 @@ "symfony/var-dumper": "^6.4|^7.1|^8.0" }, "suggest": { - "ext-bcmath": "GMP or BCMath extensions will drastically improve the library performance. BCMath extension needed to handle the Big Float and Decimal Fraction Tags", - "ext-gmp": "GMP or BCMath extensions will drastically improve the library performance" + "ext-bcmath": "Improves the library performance when ext-gmp is missing, and is required to handle the Big Float and Decimal Fraction Tags (4 and 5)", + "ext-gmp": "Strongly recommended when decoding untrusted input: without it, converting the byte string of a Big Number Tag (2 and 3) is quadratic in its length. Also improves the library performance overall" }, "type": "library", "autoload": { @@ -9779,7 +10146,7 @@ ], "support": { "issues": "https://github.com/Spomky-Labs/cbor-php/issues", - "source": "https://github.com/Spomky-Labs/cbor-php/tree/3.2.3" + "source": "https://github.com/Spomky-Labs/cbor-php/tree/3.4.2" }, "funding": [ { @@ -9791,50 +10158,50 @@ "type": "patreon" } ], - "time": "2026-04-01T12:15:20+00:00" + "time": "2026-09-15T06:55:29+00:00" }, { "name": "spomky-labs/pki-framework", - "version": "1.4.2", + "version": "1.6.3", "source": { "type": "git", "url": "https://github.com/Spomky-Labs/pki-framework.git", - "reference": "aa576cbd07128075bef97ac2f8af9854e67513d8" + "reference": "792e909d4e387adffe3c4f404451c7d57a3d2022" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Spomky-Labs/pki-framework/zipball/aa576cbd07128075bef97ac2f8af9854e67513d8", - "reference": "aa576cbd07128075bef97ac2f8af9854e67513d8", + "url": "https://api.github.com/repos/Spomky-Labs/pki-framework/zipball/792e909d4e387adffe3c4f404451c7d57a3d2022", + "reference": "792e909d4e387adffe3c4f404451c7d57a3d2022", "shasum": "" }, "require": { - "brick/math": "^0.10|^0.11|^0.12|^0.13|^0.14|^0.15|^0.16|^0.17", + "brick/math": "^0.10|^0.11|^0.12|^0.13|^0.14|^0.15|^0.16|^0.17|^0.18|^0.19|^0.20|^1.0", "ext-mbstring": "*", - "php": ">=8.1", - "psr/clock": "^1.0" + "php": ">=8.1" }, "require-dev": { "ekino/phpstan-banned-code": "^1.0|^2.0|^3.0", "ext-gmp": "*", "ext-openssl": "*", - "infection/infection": "^0.28|^0.29|^0.31|^0.32", + "infection/infection": "^0.28|^0.29|^0.31", "php-parallel-lint/php-parallel-lint": "^1.3", "phpstan/extension-installer": "^1.3|^2.0", "phpstan/phpstan": "^1.8|^2.0", "phpstan/phpstan-deprecation-rules": "^1.0|^2.0", "phpstan/phpstan-phpunit": "^1.1|^2.0", "phpstan/phpstan-strict-rules": "^1.3|^2.0", - "phpunit/phpunit": "^10.1|^11.0|^12.0|^13.0", + "phpunit/phpunit": "^10.1|^11.0|^12.0", "rector/rector": "^1.0|^2.0", "roave/security-advisories": "dev-latest", "symfony/string": "^6.4|^7.0|^8.0", "symfony/var-dumper": "^6.4|^7.0|^8.0", - "symplify/easy-coding-standard": "^12.0|^13.0" + "symplify/easy-coding-standard": "^12.0 || ^13.0" }, "suggest": { "ext-bcmath": "For better performance (or GMP)", "ext-gmp": "For better performance (or BCMath)", - "ext-openssl": "For OpenSSL based cyphering" + "ext-openssl": "For OpenSSL based cyphering", + "ext-sodium": "To verify Ed25519 signatures where the OpenSSL extension has no EdDSA" }, "type": "library", "autoload": { @@ -9889,7 +10256,7 @@ ], "support": { "issues": "https://github.com/Spomky-Labs/pki-framework/issues", - "source": "https://github.com/Spomky-Labs/pki-framework/tree/1.4.2" + "source": "https://github.com/Spomky-Labs/pki-framework/tree/1.6.3" }, "funding": [ { @@ -9901,7 +10268,7 @@ "type": "patreon" } ], - "time": "2026-03-23T22:56:56+00:00" + "time": "2026-09-12T19:02:49+00:00" }, { "name": "staudenmeir/eloquent-has-many-deep-contracts", @@ -10010,21 +10377,25 @@ }, { "name": "stechstudio/filament-impersonate", - "version": "3.16", + "version": "v5.6.0", "source": { "type": "git", "url": "https://github.com/stechstudio/filament-impersonate.git", - "reference": "0035ca0b6ebd945ec1b1b2cd409282f56be5c74f" + "reference": "2f6357e3d4564dabfdec4c1c2c636edafe83d944" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/stechstudio/filament-impersonate/zipball/0035ca0b6ebd945ec1b1b2cd409282f56be5c74f", - "reference": "0035ca0b6ebd945ec1b1b2cd409282f56be5c74f", + "url": "https://api.github.com/repos/stechstudio/filament-impersonate/zipball/2f6357e3d4564dabfdec4c1c2c636edafe83d944", + "reference": "2f6357e3d4564dabfdec4c1c2c636edafe83d944", "shasum": "" }, "require": { - "filament/filament": "^3.0", - "lab404/laravel-impersonate": "^1.7" + "filament/filament": "^4.0|^5.0" + }, + "require-dev": { + "orchestra/testbench": "^10.0", + "pestphp/pest": "^3.0", + "pestphp/pest-plugin-laravel": "^3.0" }, "type": "library", "extra": { @@ -10046,9 +10417,9 @@ "description": "A Filament package to impersonate your users.", "support": { "issues": "https://github.com/stechstudio/filament-impersonate/issues", - "source": "https://github.com/stechstudio/filament-impersonate/tree/3.16" + "source": "https://github.com/stechstudio/filament-impersonate/tree/v5.6.0" }, - "time": "2025-04-15T23:12:37+00:00" + "time": "2026-07-06T12:39:32+00:00" }, { "name": "symfony/clock", @@ -10130,16 +10501,16 @@ }, { "name": "symfony/console", - "version": "v7.4.11", + "version": "v7.4.19", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "ed0107e43ab452aa77ae99e005b95e56b556e075" + "reference": "3a1973458b153f566a8d7499bc06ece323d60063" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/ed0107e43ab452aa77ae99e005b95e56b556e075", - "reference": "ed0107e43ab452aa77ae99e005b95e56b556e075", + "url": "https://api.github.com/repos/symfony/console/zipball/3a1973458b153f566a8d7499bc06ece323d60063", + "reference": "3a1973458b153f566a8d7499bc06ece323d60063", "shasum": "" }, "require": { @@ -10204,7 +10575,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v7.4.11" + "source": "https://github.com/symfony/console/tree/v7.4.19" }, "funding": [ { @@ -10224,20 +10595,20 @@ "type": "tidelift" } ], - "time": "2026-05-13T12:04:42+00:00" + "time": "2026-09-13T10:38:41+00:00" }, { "name": "symfony/css-selector", - "version": "v7.4.9", + "version": "v7.4.18", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "b75663ed96cf4756e28e3105476f220f92886cc4" + "reference": "fecf40067fc8d8880ea87b8ac227600b9aadd1d0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/b75663ed96cf4756e28e3105476f220f92886cc4", - "reference": "b75663ed96cf4756e28e3105476f220f92886cc4", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/fecf40067fc8d8880ea87b8ac227600b9aadd1d0", + "reference": "fecf40067fc8d8880ea87b8ac227600b9aadd1d0", "shasum": "" }, "require": { @@ -10273,7 +10644,7 @@ "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/css-selector/tree/v7.4.9" + "source": "https://github.com/symfony/css-selector/tree/v7.4.18" }, "funding": [ { @@ -10293,20 +10664,20 @@ "type": "tidelift" } ], - "time": "2026-04-18T13:18:21+00:00" + "time": "2026-08-23T10:03:40+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v3.7.0", + "version": "v3.7.1", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "50f59d1f3ca46d41ac911f97a78626b6756af35b" + "reference": "f3202fa1b5097b0af062dc978b32ecf63404e31d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/50f59d1f3ca46d41ac911f97a78626b6756af35b", - "reference": "50f59d1f3ca46d41ac911f97a78626b6756af35b", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/f3202fa1b5097b0af062dc978b32ecf63404e31d", + "reference": "f3202fa1b5097b0af062dc978b32ecf63404e31d", "shasum": "" }, "require": { @@ -10344,7 +10715,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.7.0" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.7.1" }, "funding": [ { @@ -10364,20 +10735,20 @@ "type": "tidelift" } ], - "time": "2026-04-13T15:52:40+00:00" + "time": "2026-06-05T06:23:12+00:00" }, { "name": "symfony/error-handler", - "version": "v7.4.8", + "version": "v7.4.17", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "8dd79d8af777ee6cba2fd4d98da6ffb839f3c0fa" + "reference": "8373921e231e190a88e2ad526951bbaa791576fa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/8dd79d8af777ee6cba2fd4d98da6ffb839f3c0fa", - "reference": "8dd79d8af777ee6cba2fd4d98da6ffb839f3c0fa", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/8373921e231e190a88e2ad526951bbaa791576fa", + "reference": "8373921e231e190a88e2ad526951bbaa791576fa", "shasum": "" }, "require": { @@ -10426,7 +10797,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.8" + "source": "https://github.com/symfony/error-handler/tree/v7.4.17" }, "funding": [ { @@ -10446,20 +10817,20 @@ "type": "tidelift" } ], - "time": "2026-03-24T13:12:05+00:00" + "time": "2026-08-21T17:40:08+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v7.4.9", + "version": "v7.4.17", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "e4a2e29753c7801f7a8340e066cfa788f3bc8101" + "reference": "d269974ee93c61d03620ffee358355bfdb471d66" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/e4a2e29753c7801f7a8340e066cfa788f3bc8101", - "reference": "e4a2e29753c7801f7a8340e066cfa788f3bc8101", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/d269974ee93c61d03620ffee358355bfdb471d66", + "reference": "d269974ee93c61d03620ffee358355bfdb471d66", "shasum": "" }, "require": { @@ -10511,7 +10882,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.9" + "source": "https://github.com/symfony/event-dispatcher/tree/v7.4.17" }, "funding": [ { @@ -10531,20 +10902,20 @@ "type": "tidelift" } ], - "time": "2026-04-18T13:18:21+00:00" + "time": "2026-08-21T17:40:08+00:00" }, { "name": "symfony/event-dispatcher-contracts", - "version": "v3.7.0", + "version": "v3.7.1", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "ccba7060602b7fed0b03c85bf025257f76d9ef32" + "reference": "c7de7a00ffb67842132da02ea92988a39ccd9f4e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/ccba7060602b7fed0b03c85bf025257f76d9ef32", - "reference": "ccba7060602b7fed0b03c85bf025257f76d9ef32", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/c7de7a00ffb67842132da02ea92988a39ccd9f4e", + "reference": "c7de7a00ffb67842132da02ea92988a39ccd9f4e", "shasum": "" }, "require": { @@ -10591,7 +10962,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.7.0" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.7.1" }, "funding": [ { @@ -10611,20 +10982,20 @@ "type": "tidelift" } ], - "time": "2026-01-05T13:30:16+00:00" + "time": "2026-06-05T06:23:12+00:00" }, { "name": "symfony/filesystem", - "version": "v7.4.11", + "version": "v7.4.18", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "d721ea61b4a5fba8c5b6e7c1feda19efea144b50" + "reference": "90d412aa5277c6819db39e7605aa46b1019e3232" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/d721ea61b4a5fba8c5b6e7c1feda19efea144b50", - "reference": "d721ea61b4a5fba8c5b6e7c1feda19efea144b50", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/90d412aa5277c6819db39e7605aa46b1019e3232", + "reference": "90d412aa5277c6819db39e7605aa46b1019e3232", "shasum": "" }, "require": { @@ -10661,7 +11032,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v7.4.11" + "source": "https://github.com/symfony/filesystem/tree/v7.4.18" }, "funding": [ { @@ -10681,20 +11052,20 @@ "type": "tidelift" } ], - "time": "2026-05-11T16:38:44+00:00" + "time": "2026-08-23T10:03:40+00:00" }, { "name": "symfony/finder", - "version": "v7.4.8", + "version": "v7.4.19", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "e0be088d22278583a82da281886e8c3592fbf149" + "reference": "1b900bc6ae5ba60c5eee69c11ba44566190576fe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/e0be088d22278583a82da281886e8c3592fbf149", - "reference": "e0be088d22278583a82da281886e8c3592fbf149", + "url": "https://api.github.com/repos/symfony/finder/zipball/1b900bc6ae5ba60c5eee69c11ba44566190576fe", + "reference": "1b900bc6ae5ba60c5eee69c11ba44566190576fe", "shasum": "" }, "require": { @@ -10729,7 +11100,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.8" + "source": "https://github.com/symfony/finder/tree/v7.4.19" }, "funding": [ { @@ -10749,20 +11120,20 @@ "type": "tidelift" } ], - "time": "2026-03-24T13:12:05+00:00" + "time": "2026-09-10T19:14:10+00:00" }, { "name": "symfony/html-sanitizer", - "version": "v7.4.12", + "version": "v7.4.19", "source": { "type": "git", "url": "https://github.com/symfony/html-sanitizer.git", - "reference": "51cb4f68195883f7ac403abb58ecf7adc74e0f9e" + "reference": "d49c351e24d38604466e5a51ab20cbc99f9493c7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/html-sanitizer/zipball/51cb4f68195883f7ac403abb58ecf7adc74e0f9e", - "reference": "51cb4f68195883f7ac403abb58ecf7adc74e0f9e", + "url": "https://api.github.com/repos/symfony/html-sanitizer/zipball/d49c351e24d38604466e5a51ab20cbc99f9493c7", + "reference": "d49c351e24d38604466e5a51ab20cbc99f9493c7", "shasum": "" }, "require": { @@ -10803,7 +11174,7 @@ "sanitizer" ], "support": { - "source": "https://github.com/symfony/html-sanitizer/tree/v7.4.12" + "source": "https://github.com/symfony/html-sanitizer/tree/v7.4.19" }, "funding": [ { @@ -10823,20 +11194,20 @@ "type": "tidelift" } ], - "time": "2026-05-20T07:20:23+00:00" + "time": "2026-09-04T10:11:42+00:00" }, { "name": "symfony/http-foundation", - "version": "v7.4.8", + "version": "v7.4.19", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "9381209597ec66c25be154cbf2289076e64d1eab" + "reference": "f7b953be7801974a5a0685e1228bbc3b12b35936" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/9381209597ec66c25be154cbf2289076e64d1eab", - "reference": "9381209597ec66c25be154cbf2289076e64d1eab", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/f7b953be7801974a5a0685e1228bbc3b12b35936", + "reference": "f7b953be7801974a5a0685e1228bbc3b12b35936", "shasum": "" }, "require": { @@ -10885,7 +11256,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.8" + "source": "https://github.com/symfony/http-foundation/tree/v7.4.19" }, "funding": [ { @@ -10905,20 +11276,20 @@ "type": "tidelift" } ], - "time": "2026-03-24T13:12:05+00:00" + "time": "2026-09-14T17:41:17+00:00" }, { "name": "symfony/http-kernel", - "version": "v7.4.12", + "version": "v7.4.19", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "7922b53e70d2ba2027af8bb6a59d91eb3541ea4d" + "reference": "683507424cc84ca85ac1551adb609b6b98216667" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/7922b53e70d2ba2027af8bb6a59d91eb3541ea4d", - "reference": "7922b53e70d2ba2027af8bb6a59d91eb3541ea4d", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/683507424cc84ca85ac1551adb609b6b98216667", + "reference": "683507424cc84ca85ac1551adb609b6b98216667", "shasum": "" }, "require": { @@ -10976,7 +11347,7 @@ "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" + "twig/twig": "^3.12|^4.0" }, "type": "library", "autoload": { @@ -11004,7 +11375,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.12" + "source": "https://github.com/symfony/http-kernel/tree/v7.4.19" }, "funding": [ { @@ -11024,20 +11395,20 @@ "type": "tidelift" } ], - "time": "2026-05-20T09:27:11+00:00" + "time": "2026-09-15T07:09:35+00:00" }, { "name": "symfony/mailer", - "version": "v7.4.12", + "version": "v7.4.19", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "5cefb712a25f320579615ba9e1942abaeade7dff" + "reference": "6f6f2441bef07a42d2617b9b3aadf04a321aa514" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/5cefb712a25f320579615ba9e1942abaeade7dff", - "reference": "5cefb712a25f320579615ba9e1942abaeade7dff", + "url": "https://api.github.com/repos/symfony/mailer/zipball/6f6f2441bef07a42d2617b9b3aadf04a321aa514", + "reference": "6f6f2441bef07a42d2617b9b3aadf04a321aa514", "shasum": "" }, "require": { @@ -11088,7 +11459,7 @@ "description": "Helps sending emails", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailer/tree/v7.4.12" + "source": "https://github.com/symfony/mailer/tree/v7.4.19" }, "funding": [ { @@ -11108,20 +11479,20 @@ "type": "tidelift" } ], - "time": "2026-05-20T07:20:23+00:00" + "time": "2026-09-15T06:01:15+00:00" }, { "name": "symfony/mime", - "version": "v7.4.12", + "version": "v7.4.19", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "b198dd66c211c97119bcaaff7c13431dbbb5e470" + "reference": "f8ac7d0a800bcabbcd1f7de56594cf05e6cd5693" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/b198dd66c211c97119bcaaff7c13431dbbb5e470", - "reference": "b198dd66c211c97119bcaaff7c13431dbbb5e470", + "url": "https://api.github.com/repos/symfony/mime/zipball/f8ac7d0a800bcabbcd1f7de56594cf05e6cd5693", + "reference": "f8ac7d0a800bcabbcd1f7de56594cf05e6cd5693", "shasum": "" }, "require": { @@ -11145,7 +11516,7 @@ "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/serializer": "^6.4.44|^7.4.17|^8.1.5" }, "type": "library", "autoload": { @@ -11177,7 +11548,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v7.4.12" + "source": "https://github.com/symfony/mime/tree/v7.4.19" }, "funding": [ { @@ -11197,7 +11568,7 @@ "type": "tidelift" } ], - "time": "2026-05-20T07:20:23+00:00" + "time": "2026-09-04T10:45:44+00:00" }, { "name": "symfony/polyfill-ctype", @@ -11284,16 +11655,16 @@ }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.37.0", + "version": "v1.41.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "4864388bfbd3001ce88e234fab652acd91fdc57e" + "reference": "bb899c1db0aa8127dc3afe8cda4a67eb24915f8d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/4864388bfbd3001ce88e234fab652acd91fdc57e", - "reference": "4864388bfbd3001ce88e234fab652acd91fdc57e", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/bb899c1db0aa8127dc3afe8cda4a67eb24915f8d", + "reference": "bb899c1db0aa8127dc3afe8cda4a67eb24915f8d", "shasum": "" }, "require": { @@ -11342,7 +11713,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.37.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.41.0" }, "funding": [ { @@ -11362,20 +11733,20 @@ "type": "tidelift" } ], - "time": "2026-04-26T13:13:48+00:00" + "time": "2026-07-28T08:25:59+00:00" }, { "name": "symfony/polyfill-intl-idn", - "version": "v1.37.0", + "version": "v1.42.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "9614ac4d8061dc257ecc64cba1b140873dce8ad3" + "reference": "51b5ff5ba85452b31ec6f55490b08148612339d9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/9614ac4d8061dc257ecc64cba1b140873dce8ad3", - "reference": "9614ac4d8061dc257ecc64cba1b140873dce8ad3", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/51b5ff5ba85452b31ec6f55490b08148612339d9", + "reference": "51b5ff5ba85452b31ec6f55490b08148612339d9", "shasum": "" }, "require": { @@ -11429,7 +11800,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.37.0" + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.42.0" }, "funding": [ { @@ -11449,20 +11820,20 @@ "type": "tidelift" } ], - "time": "2024-09-10T14:38:51+00:00" + "time": "2026-08-24T10:51:20+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.37.0", + "version": "v1.42.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "3833d7255cc303546435cb650316bff708a1c75c" + "reference": "aa20edea75bd9c48cfecc8360922e5a6e5c44502" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/3833d7255cc303546435cb650316bff708a1c75c", - "reference": "3833d7255cc303546435cb650316bff708a1c75c", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/aa20edea75bd9c48cfecc8360922e5a6e5c44502", + "reference": "aa20edea75bd9c48cfecc8360922e5a6e5c44502", "shasum": "" }, "require": { @@ -11514,7 +11885,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.37.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.42.0" }, "funding": [ { @@ -11534,20 +11905,20 @@ "type": "tidelift" } ], - "time": "2024-09-09T11:45:10+00:00" + "time": "2026-08-07T06:33:24+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.37.0", + "version": "v1.38.2", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "6a21eb99c6973357967f6ce3708cd55a6bec6315" + "reference": "d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/6a21eb99c6973357967f6ce3708cd55a6bec6315", - "reference": "6a21eb99c6973357967f6ce3708cd55a6bec6315", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6", + "reference": "d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6", "shasum": "" }, "require": { @@ -11599,7 +11970,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.37.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.38.2" }, "funding": [ { @@ -11619,7 +11990,7 @@ "type": "tidelift" } ], - "time": "2026-04-10T17:25:58+00:00" + "time": "2026-05-27T06:59:30+00:00" }, { "name": "symfony/polyfill-php73", @@ -11787,16 +12158,16 @@ }, { "name": "symfony/polyfill-php81", - "version": "v1.37.0", + "version": "v1.38.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php81.git", - "reference": "4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c" + "reference": "6bfb9c766cacffbc8e118cb87217d08ed84e5cd7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c", - "reference": "4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/6bfb9c766cacffbc8e118cb87217d08ed84e5cd7", + "reference": "6bfb9c766cacffbc8e118cb87217d08ed84e5cd7", "shasum": "" }, "require": { @@ -11843,7 +12214,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php81/tree/v1.37.0" + "source": "https://github.com/symfony/polyfill-php81/tree/v1.38.1" }, "funding": [ { @@ -11863,20 +12234,100 @@ "type": "tidelift" } ], - "time": "2024-09-09T11:45:10+00:00" + "time": "2026-05-26T12:45:58+00:00" }, { - "name": "symfony/polyfill-php83", - "version": "v1.37.0", + "name": "symfony/polyfill-php82", + "version": "v1.38.1", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php83.git", - "reference": "3600c2cb22399e25bb226e4a135ce91eeb2a6149" + "url": "https://github.com/symfony/polyfill-php82.git", + "reference": "002dc0cfe5fd4ed6033d48f27d4f19a486c4b04b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/3600c2cb22399e25bb226e4a135ce91eeb2a6149", - "reference": "3600c2cb22399e25bb226e4a135ce91eeb2a6149", + "url": "https://api.github.com/repos/symfony/polyfill-php82/zipball/002dc0cfe5fd4ed6033d48f27d4f19a486c4b04b", + "reference": "002dc0cfe5fd4ed6033d48f27d4f19a486c4b04b", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php82\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.2+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php82/tree/v1.38.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2026-05-26T12:45:58+00:00" + }, + { + "name": "symfony/polyfill-php83", + "version": "v1.41.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php83.git", + "reference": "5ea99087fb99c273a9b9236ed4c31e78b16103c6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/5ea99087fb99c273a9b9236ed4c31e78b16103c6", + "reference": "5ea99087fb99c273a9b9236ed4c31e78b16103c6", "shasum": "" }, "require": { @@ -11923,7 +12374,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php83/tree/v1.37.0" + "source": "https://github.com/symfony/polyfill-php83/tree/v1.41.0" }, "funding": [ { @@ -11943,20 +12394,20 @@ "type": "tidelift" } ], - "time": "2026-04-10T17:25:58+00:00" + "time": "2026-07-01T12:47:55+00:00" }, { "name": "symfony/polyfill-php84", - "version": "v1.37.0", + "version": "v1.38.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php84.git", - "reference": "88486db2c389b290bf87ff1de7ebc1e13e42bb06" + "reference": "f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php84/zipball/88486db2c389b290bf87ff1de7ebc1e13e42bb06", - "reference": "88486db2c389b290bf87ff1de7ebc1e13e42bb06", + "url": "https://api.github.com/repos/symfony/polyfill-php84/zipball/f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa", + "reference": "f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa", "shasum": "" }, "require": { @@ -12003,7 +12454,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php84/tree/v1.37.0" + "source": "https://github.com/symfony/polyfill-php84/tree/v1.38.1" }, "funding": [ { @@ -12023,20 +12474,20 @@ "type": "tidelift" } ], - "time": "2026-04-10T18:47:49+00:00" + "time": "2026-05-26T12:51:13+00:00" }, { "name": "symfony/polyfill-php85", - "version": "v1.37.0", + "version": "v1.41.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php85.git", - "reference": "fcfa4973a9917cef23f2e38774da74a2b7d115ee" + "reference": "255fab485aaa1006ed411040c42aecd7b5302d7a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php85/zipball/fcfa4973a9917cef23f2e38774da74a2b7d115ee", - "reference": "fcfa4973a9917cef23f2e38774da74a2b7d115ee", + "url": "https://api.github.com/repos/symfony/polyfill-php85/zipball/255fab485aaa1006ed411040c42aecd7b5302d7a", + "reference": "255fab485aaa1006ed411040c42aecd7b5302d7a", "shasum": "" }, "require": { @@ -12083,7 +12534,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php85/tree/v1.37.0" + "source": "https://github.com/symfony/polyfill-php85/tree/v1.41.0" }, "funding": [ { @@ -12103,7 +12554,7 @@ "type": "tidelift" } ], - "time": "2026-04-26T13:10:57+00:00" + "time": "2026-07-01T12:47:55+00:00" }, { "name": "symfony/polyfill-uuid", @@ -12190,16 +12641,16 @@ }, { "name": "symfony/process", - "version": "v7.4.11", + "version": "v7.4.19", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "d9593c9efa40499eb078b81144de42cbc28a31f0" + "reference": "ed0ae095b86994d370d5791612e55984f15aa30e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/d9593c9efa40499eb078b81144de42cbc28a31f0", - "reference": "d9593c9efa40499eb078b81144de42cbc28a31f0", + "url": "https://api.github.com/repos/symfony/process/zipball/ed0ae095b86994d370d5791612e55984f15aa30e", + "reference": "ed0ae095b86994d370d5791612e55984f15aa30e", "shasum": "" }, "require": { @@ -12231,7 +12682,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v7.4.11" + "source": "https://github.com/symfony/process/tree/v7.4.19" }, "funding": [ { @@ -12251,20 +12702,20 @@ "type": "tidelift" } ], - "time": "2026-05-11T16:55:21+00:00" + "time": "2026-09-02T12:38:34+00:00" }, { "name": "symfony/property-access", - "version": "v7.4.8", + "version": "v7.4.16", "source": { "type": "git", "url": "https://github.com/symfony/property-access.git", - "reference": "b7dad9dae8b8a47ef7ecc76c8569e7d8c7d90cfc" + "reference": "c3dce76a6697c6428f7d80d5cd1cf0aa5d9679f3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-access/zipball/b7dad9dae8b8a47ef7ecc76c8569e7d8c7d90cfc", - "reference": "b7dad9dae8b8a47ef7ecc76c8569e7d8c7d90cfc", + "url": "https://api.github.com/repos/symfony/property-access/zipball/c3dce76a6697c6428f7d80d5cd1cf0aa5d9679f3", + "reference": "c3dce76a6697c6428f7d80d5cd1cf0aa5d9679f3", "shasum": "" }, "require": { @@ -12312,7 +12763,7 @@ "reflection" ], "support": { - "source": "https://github.com/symfony/property-access/tree/v7.4.8" + "source": "https://github.com/symfony/property-access/tree/v7.4.16" }, "funding": [ { @@ -12332,20 +12783,20 @@ "type": "tidelift" } ], - "time": "2026-03-24T13:12:05+00:00" + "time": "2026-07-30T12:37:26+00:00" }, { "name": "symfony/property-info", - "version": "v7.4.8", + "version": "v7.4.19", "source": { "type": "git", "url": "https://github.com/symfony/property-info.git", - "reference": "ac5e82528b986c4f7cfccbf7764b5d2e824d6175" + "reference": "547d2acbe865d511809b96ab653304fd632abbaa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-info/zipball/ac5e82528b986c4f7cfccbf7764b5d2e824d6175", - "reference": "ac5e82528b986c4f7cfccbf7764b5d2e824d6175", + "url": "https://api.github.com/repos/symfony/property-info/zipball/547d2acbe865d511809b96ab653304fd632abbaa", + "reference": "547d2acbe865d511809b96ab653304fd632abbaa", "shasum": "" }, "require": { @@ -12402,7 +12853,7 @@ "validator" ], "support": { - "source": "https://github.com/symfony/property-info/tree/v7.4.8" + "source": "https://github.com/symfony/property-info/tree/v7.4.19" }, "funding": [ { @@ -12422,7 +12873,7 @@ "type": "tidelift" } ], - "time": "2026-03-24T13:12:05+00:00" + "time": "2026-09-04T10:11:42+00:00" }, { "name": "symfony/psr-http-message-bridge", @@ -12514,16 +12965,16 @@ }, { "name": "symfony/routing", - "version": "v7.4.12", + "version": "v7.4.18", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "3b04a5ec4887a8135a12ebf0f4cbc5b8fc8ee204" + "reference": "ddd558991e98f693ae6bf5063cc1b0362c6bbec3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/3b04a5ec4887a8135a12ebf0f4cbc5b8fc8ee204", - "reference": "3b04a5ec4887a8135a12ebf0f4cbc5b8fc8ee204", + "url": "https://api.github.com/repos/symfony/routing/zipball/ddd558991e98f693ae6bf5063cc1b0362c6bbec3", + "reference": "ddd558991e98f693ae6bf5063cc1b0362c6bbec3", "shasum": "" }, "require": { @@ -12575,7 +13026,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v7.4.12" + "source": "https://github.com/symfony/routing/tree/v7.4.18" }, "funding": [ { @@ -12595,20 +13046,20 @@ "type": "tidelift" } ], - "time": "2026-05-20T07:20:23+00:00" + "time": "2026-08-17T13:12:36+00:00" }, { "name": "symfony/serializer", - "version": "v7.4.10", + "version": "v7.4.19", "source": { "type": "git", "url": "https://github.com/symfony/serializer.git", - "reference": "268c5aa6c4bd675eddd89348e7ecac292a843ddd" + "reference": "d631b82e0db971444651c4e6a076040d20878caa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/serializer/zipball/268c5aa6c4bd675eddd89348e7ecac292a843ddd", - "reference": "268c5aa6c4bd675eddd89348e7ecac292a843ddd", + "url": "https://api.github.com/repos/symfony/serializer/zipball/d631b82e0db971444651c4e6a076040d20878caa", + "reference": "d631b82e0db971444651c4e6a076040d20878caa", "shasum": "" }, "require": { @@ -12622,7 +13073,7 @@ "phpdocumentor/type-resolver": "<1.5.1", "symfony/dependency-injection": "<6.4", "symfony/property-access": "<6.4.31|>=7.0,<7.4.2|>=8.0,<8.0.2", - "symfony/property-info": "<6.4", + "symfony/property-info": "<6.4.43", "symfony/type-info": "<7.2.5", "symfony/uid": "<6.4", "symfony/validator": "<6.4", @@ -12644,7 +13095,7 @@ "symfony/messenger": "^6.4|^7.0|^8.0", "symfony/mime": "^6.4|^7.0|^8.0", "symfony/property-access": "^6.4.31|^7.4.2|^8.0.2", - "symfony/property-info": "^6.4|^7.0|^8.0", + "symfony/property-info": "^6.4.43|^7.4.15|^8.0.15", "symfony/translation-contracts": "^2.5|^3", "symfony/type-info": "^7.2.5|^8.0", "symfony/uid": "^6.4|^7.0|^8.0", @@ -12679,7 +13130,7 @@ "description": "Handles serializing and deserializing data structures, including object graphs, into array structures or other formats like XML and JSON.", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/serializer/tree/v7.4.10" + "source": "https://github.com/symfony/serializer/tree/v7.4.19" }, "funding": [ { @@ -12699,20 +13150,20 @@ "type": "tidelift" } ], - "time": "2026-05-03T13:03:28+00:00" + "time": "2026-09-08T13:28:43+00:00" }, { "name": "symfony/service-contracts", - "version": "v3.7.0", + "version": "v3.7.3", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "d25d82433a80eba6aa0e6c24b61d7370d99e444a" + "reference": "15e6a07ec2a2c75ceb1b21dd98105ee8456d2257" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/d25d82433a80eba6aa0e6c24b61d7370d99e444a", - "reference": "d25d82433a80eba6aa0e6c24b61d7370d99e444a", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/15e6a07ec2a2c75ceb1b21dd98105ee8456d2257", + "reference": "15e6a07ec2a2c75ceb1b21dd98105ee8456d2257", "shasum": "" }, "require": { @@ -12766,7 +13217,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.7.0" + "source": "https://github.com/symfony/service-contracts/tree/v3.7.3" }, "funding": [ { @@ -12786,20 +13237,20 @@ "type": "tidelift" } ], - "time": "2026-03-28T09:44:51+00:00" + "time": "2026-07-27T15:39:01+00:00" }, { "name": "symfony/string", - "version": "v7.4.11", + "version": "v7.4.19", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "965f7306a43383d02c6aca1e3f3bd2f0ea5dee15" + "reference": "02731ce2bd26514bec9efc0baef2cd0b0cf67f46" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/965f7306a43383d02c6aca1e3f3bd2f0ea5dee15", - "reference": "965f7306a43383d02c6aca1e3f3bd2f0ea5dee15", + "url": "https://api.github.com/repos/symfony/string/zipball/02731ce2bd26514bec9efc0baef2cd0b0cf67f46", + "reference": "02731ce2bd26514bec9efc0baef2cd0b0cf67f46", "shasum": "" }, "require": { @@ -12857,7 +13308,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v7.4.11" + "source": "https://github.com/symfony/string/tree/v7.4.19" }, "funding": [ { @@ -12877,20 +13328,20 @@ "type": "tidelift" } ], - "time": "2026-05-13T12:04:42+00:00" + "time": "2026-09-11T14:46:58+00:00" }, { "name": "symfony/translation", - "version": "v7.4.10", + "version": "v7.4.17", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "ada7578c30dd5feaa8259cff3e885069ea81ddde" + "reference": "2ee1e4a3b32a528a642babe041ff7c440b213b4b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/ada7578c30dd5feaa8259cff3e885069ea81ddde", - "reference": "ada7578c30dd5feaa8259cff3e885069ea81ddde", + "url": "https://api.github.com/repos/symfony/translation/zipball/2ee1e4a3b32a528a642babe041ff7c440b213b4b", + "reference": "2ee1e4a3b32a528a642babe041ff7c440b213b4b", "shasum": "" }, "require": { @@ -12957,7 +13408,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v7.4.10" + "source": "https://github.com/symfony/translation/tree/v7.4.17" }, "funding": [ { @@ -12977,20 +13428,20 @@ "type": "tidelift" } ], - "time": "2026-05-06T11:19:24+00:00" + "time": "2026-08-21T17:40:08+00:00" }, { "name": "symfony/translation-contracts", - "version": "v3.7.0", + "version": "v3.7.1", "source": { "type": "git", "url": "https://github.com/symfony/translation-contracts.git", - "reference": "0ab302977a952b42fd51475c4ebac81f8da0a95d" + "reference": "ccb206b98faccc511ebae8e5fad50f2dc0b30621" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/0ab302977a952b42fd51475c4ebac81f8da0a95d", - "reference": "0ab302977a952b42fd51475c4ebac81f8da0a95d", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/ccb206b98faccc511ebae8e5fad50f2dc0b30621", + "reference": "ccb206b98faccc511ebae8e5fad50f2dc0b30621", "shasum": "" }, "require": { @@ -13039,7 +13490,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v3.7.0" + "source": "https://github.com/symfony/translation-contracts/tree/v3.7.1" }, "funding": [ { @@ -13059,20 +13510,20 @@ "type": "tidelift" } ], - "time": "2026-01-05T13:30:16+00:00" + "time": "2026-06-05T06:23:12+00:00" }, { "name": "symfony/type-info", - "version": "v7.4.9", + "version": "v7.4.17", "source": { "type": "git", "url": "https://github.com/symfony/type-info.git", - "reference": "cafeedbf157b890e94ac5b83eaed85595106d5d6" + "reference": "62d0ad6995630a4f7ea8fd270aadb3e2545c8e31" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/type-info/zipball/cafeedbf157b890e94ac5b83eaed85595106d5d6", - "reference": "cafeedbf157b890e94ac5b83eaed85595106d5d6", + "url": "https://api.github.com/repos/symfony/type-info/zipball/62d0ad6995630a4f7ea8fd270aadb3e2545c8e31", + "reference": "62d0ad6995630a4f7ea8fd270aadb3e2545c8e31", "shasum": "" }, "require": { @@ -13122,7 +13573,7 @@ "type" ], "support": { - "source": "https://github.com/symfony/type-info/tree/v7.4.9" + "source": "https://github.com/symfony/type-info/tree/v7.4.17" }, "funding": [ { @@ -13142,20 +13593,20 @@ "type": "tidelift" } ], - "time": "2026-04-22T15:21:55+00:00" + "time": "2026-08-21T15:52:48+00:00" }, { "name": "symfony/uid", - "version": "v7.4.9", + "version": "v7.4.17", "source": { "type": "git", "url": "https://github.com/symfony/uid.git", - "reference": "2676b524340abcfe4d6151ec698463cebafee439" + "reference": "69d732355a139c6f8881337d28515aa01f12b8be" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/uid/zipball/2676b524340abcfe4d6151ec698463cebafee439", - "reference": "2676b524340abcfe4d6151ec698463cebafee439", + "url": "https://api.github.com/repos/symfony/uid/zipball/69d732355a139c6f8881337d28515aa01f12b8be", + "reference": "69d732355a139c6f8881337d28515aa01f12b8be", "shasum": "" }, "require": { @@ -13200,7 +13651,7 @@ "uuid" ], "support": { - "source": "https://github.com/symfony/uid/tree/v7.4.9" + "source": "https://github.com/symfony/uid/tree/v7.4.17" }, "funding": [ { @@ -13220,20 +13671,20 @@ "type": "tidelift" } ], - "time": "2026-04-30T15:19:22+00:00" + "time": "2026-08-11T07:38:58+00:00" }, { "name": "symfony/var-dumper", - "version": "v7.4.8", + "version": "v7.4.18", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "9510c3966f749a1d1ff0059e1eabef6cc621e7fd" + "reference": "e088da50b813f32473a76871616cbb8fa54653a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/9510c3966f749a1d1ff0059e1eabef6cc621e7fd", - "reference": "9510c3966f749a1d1ff0059e1eabef6cc621e7fd", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/e088da50b813f32473a76871616cbb8fa54653a8", + "reference": "e088da50b813f32473a76871616cbb8fa54653a8", "shasum": "" }, "require": { @@ -13249,7 +13700,7 @@ "symfony/http-kernel": "^6.4|^7.0|^8.0", "symfony/process": "^6.4|^7.0|^8.0", "symfony/uid": "^6.4|^7.0|^8.0", - "twig/twig": "^3.12" + "twig/twig": "^3.12|^4.0" }, "bin": [ "Resources/bin/var-dump-server" @@ -13287,7 +13738,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v7.4.8" + "source": "https://github.com/symfony/var-dumper/tree/v7.4.18" }, "funding": [ { @@ -13307,20 +13758,20 @@ "type": "tidelift" } ], - "time": "2026-03-30T13:44:50+00:00" + "time": "2026-08-30T20:10:52+00:00" }, { "name": "tightenco/ziggy", - "version": "v2.6.2", + "version": "v2.6.4", "source": { "type": "git", "url": "https://github.com/tighten/ziggy.git", - "reference": "8a0b645921623f77dceaf543d61ecd51a391d96e" + "reference": "c32a3eaad1574df8b953281680bba89bd3217dc2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/tighten/ziggy/zipball/8a0b645921623f77dceaf543d61ecd51a391d96e", - "reference": "8a0b645921623f77dceaf543d61ecd51a391d96e", + "url": "https://api.github.com/repos/tighten/ziggy/zipball/c32a3eaad1574df8b953281680bba89bd3217dc2", + "reference": "c32a3eaad1574df8b953281680bba89bd3217dc2", "shasum": "" }, "require": { @@ -13330,7 +13781,7 @@ }, "require-dev": { "laravel/folio": "^1.1", - "orchestra/testbench": "^8.0 || ^9.0 || ^10.0", + "orchestra/testbench": "^8.0 || ^9.0 || ^10.0 || ^11.0", "pestphp/pest": "^2.0 || ^3.0 || ^4.0", "pestphp/pest-plugin-laravel": "^2.0 || ^3.0 || ^4.0" }, @@ -13375,9 +13826,9 @@ ], "support": { "issues": "https://github.com/tighten/ziggy/issues", - "source": "https://github.com/tighten/ziggy/tree/v2.6.2" + "source": "https://github.com/tighten/ziggy/tree/v2.6.4" }, - "time": "2026-03-05T14:41:19+00:00" + "time": "2026-08-18T17:28:45+00:00" }, { "name": "tijsverkoyen/css-to-inline-styles", @@ -13507,24 +13958,93 @@ "time": "2026-05-17T10:02:20+00:00" }, { - "name": "vlucas/phpdotenv", - "version": "v5.6.3", + "name": "ueberdosis/tiptap-php", + "version": "2.2.0", "source": { "type": "git", - "url": "https://github.com/vlucas/phpdotenv.git", - "reference": "955e7815d677a3eaa7075231212f2110983adecc" + "url": "https://github.com/ueberdosis/tiptap-php.git", + "reference": "5a2e8155c5b09c9ad4efd480550270a6924865b9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/955e7815d677a3eaa7075231212f2110983adecc", - "reference": "955e7815d677a3eaa7075231212f2110983adecc", + "url": "https://api.github.com/repos/ueberdosis/tiptap-php/zipball/5a2e8155c5b09c9ad4efd480550270a6924865b9", + "reference": "5a2e8155c5b09c9ad4efd480550270a6924865b9", + "shasum": "" + }, + "require": { + "php": "^8.0", + "scrivo/highlight.php": "^9.18", + "spatie/shiki-php": "^2.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^3.5", + "pestphp/pest": "^1.21", + "phpunit/phpunit": "^9.5", + "vimeo/psalm": "^4.3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Tiptap\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Hans Pagel", + "email": "humans@tiptap.dev", + "role": "Developer" + } + ], + "description": "A PHP package to work with Tiptap output", + "homepage": "https://github.com/ueberdosis/tiptap-php", + "keywords": [ + "prosemirror", + "tiptap", + "ueberdosis" + ], + "support": { + "issues": "https://github.com/ueberdosis/tiptap-php/issues", + "source": "https://github.com/ueberdosis/tiptap-php/tree/2.2.0" + }, + "funding": [ + { + "url": "https://tiptap.dev/pricing", + "type": "custom" + }, + { + "url": "https://github.com/ueberdosis", + "type": "github" + }, + { + "url": "https://opencollective.com/tiptap", + "type": "open_collective" + } + ], + "time": "2026-08-31T07:00:09+00:00" + }, + { + "name": "vlucas/phpdotenv", + "version": "v5.7.0", + "source": { + "type": "git", + "url": "https://github.com/vlucas/phpdotenv.git", + "reference": "301c07936b16d88628b126b01d082ba153cf4c40" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/301c07936b16d88628b126b01d082ba153cf4c40", + "reference": "301c07936b16d88628b126b01d082ba153cf4c40", "shasum": "" }, "require": { "ext-pcre": "*", - "graham-campbell/result-type": "^1.1.4", + "graham-campbell/result-type": "^1.2", "php": "^7.2.5 || ^8.0", - "phpoption/phpoption": "^1.9.5", + "phpoption/phpoption": "^1.10", "symfony/polyfill-ctype": "^1.26", "symfony/polyfill-mbstring": "^1.26", "symfony/polyfill-php80": "^1.26" @@ -13568,7 +14088,7 @@ "homepage": "https://github.com/vlucas" } ], - "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.", + "description": "Loads environment variables from `.env` to `$_ENV` and `$_SERVER` automagically, and optionally to `getenv()`.", "keywords": [ "dotenv", "env", @@ -13576,7 +14096,7 @@ ], "support": { "issues": "https://github.com/vlucas/phpdotenv/issues", - "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.3" + "source": "https://github.com/vlucas/phpdotenv/tree/v5.7.0" }, "funding": [ { @@ -13588,7 +14108,7 @@ "type": "tidelift" } ], - "time": "2025-12-27T19:49:13+00:00" + "time": "2026-08-24T18:07:49+00:00" }, { "name": "voku/portable-ascii", @@ -13666,32 +14186,36 @@ }, { "name": "web-auth/cose-lib", - "version": "4.5.2", + "version": "4.8.2", "source": { "type": "git", "url": "https://github.com/web-auth/cose-lib.git", - "reference": "5b38660f90070a8e45f3dbc9528ade3b608dd77d" + "reference": "8849e8bf043a2d42d0bec5bda5db2469ad376148" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/web-auth/cose-lib/zipball/5b38660f90070a8e45f3dbc9528ade3b608dd77d", - "reference": "5b38660f90070a8e45f3dbc9528ade3b608dd77d", + "url": "https://api.github.com/repos/web-auth/cose-lib/zipball/8849e8bf043a2d42d0bec5bda5db2469ad376148", + "reference": "8849e8bf043a2d42d0bec5bda5db2469ad376148", "shasum": "" }, "require": { - "brick/math": "^0.9|^0.10|^0.11|^0.12|^0.13|^0.14|^0.15|^0.16|^0.17", + "brick/math": "^0.9 || ^0.10 || ^0.11 || ^0.12 || ^0.13 || ^0.14 || ^0.15 || ^0.16 || ^0.17 || ^0.18 || ^0.19 || ^0.20 || ^1.0", "ext-json": "*", "ext-openssl": "*", "php": ">=8.1", "spomky-labs/pki-framework": "^1.0" }, + "conflict": { + "spomky-labs/cbor-php": "<3.4.0" + }, "require-dev": { - "spomky-labs/cbor-php": "^3.2.2" + "spomky-labs/cbor-php": "^3.4" }, "suggest": { - "ext-bcmath": "For better performance, please install either GMP (recommended) or BCMath extension", - "ext-gmp": "For better performance, please install either GMP (recommended) or BCMath extension", - "spomky-labs/cbor-php": "For COSE Signature support" + "ext-bcmath": "Recommended: without GMP or BCMath, signing with RSASSA-PSS (PS256/PS384/PS512) blinds its private exponentiation in pure PHP", + "ext-gmp": "Recommended: without GMP or BCMath, signing with RSASSA-PSS (PS256/PS384/PS512) blinds its private exponentiation in pure PHP", + "ext-sodium": "Required by the EdDSA/Ed25519 signature algorithms (-8, -19, -260, -261) and to recompute an OKP public key from its private key", + "spomky-labs/cbor-php": "Required by the RFC 9052 header reader and cryptographic structures. 3.4.0 or later: it ships the six COSE message classes (CBOR\\Tag\\CoseSign1Tag and its siblings) that replace the deprecated Cose\\...Tag classes, and its decoder is what enforces the RFC 9052 label uniqueness and nesting bounds this library relies on" }, "type": "library", "autoload": { @@ -13721,7 +14245,7 @@ ], "support": { "issues": "https://github.com/web-auth/cose-lib/issues", - "source": "https://github.com/web-auth/cose-lib/tree/4.5.2" + "source": "https://github.com/web-auth/cose-lib/tree/4.8.2" }, "funding": [ { @@ -13733,20 +14257,20 @@ "type": "patreon" } ], - "time": "2026-05-03T09:49:50+00:00" + "time": "2026-09-15T17:30:33+00:00" }, { "name": "web-auth/webauthn-lib", - "version": "5.3.5", + "version": "5.3.9", "source": { "type": "git", "url": "https://github.com/web-auth/webauthn-lib.git", - "reference": "9e0986d999f4102e24ac8a598d3a80d98b56c19f" + "reference": "727e378fb7a36c26be5c911e4a0120c146741ce7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/web-auth/webauthn-lib/zipball/9e0986d999f4102e24ac8a598d3a80d98b56c19f", - "reference": "9e0986d999f4102e24ac8a598d3a80d98b56c19f", + "url": "https://api.github.com/repos/web-auth/webauthn-lib/zipball/727e378fb7a36c26be5c911e4a0120c146741ce7", + "reference": "727e378fb7a36c26be5c911e4a0120c146741ce7", "shasum": "" }, "require": { @@ -13758,7 +14282,7 @@ "psr/clock": "^1.0", "psr/event-dispatcher": "^1.0", "psr/log": "^1.0|^2.0|^3.0", - "spomky-labs/cbor-php": "^3.0", + "spomky-labs/cbor-php": "^3.4", "spomky-labs/pki-framework": "^1.0", "symfony/clock": "^6.4|^7.0|^8.0", "symfony/deprecation-contracts": "^3.2", @@ -13766,7 +14290,7 @@ "symfony/property-info": "^6.4|^7.0|^8.0", "symfony/serializer": "^6.4|^7.0|^8.0", "symfony/uid": "^6.4|^7.0|^8.0", - "web-auth/cose-lib": "^4.2.3" + "web-auth/cose-lib": "^4.8" }, "suggest": { "psr/log-implementation": "Recommended to receive logs from the library", @@ -13807,7 +14331,7 @@ "webauthn" ], "support": { - "source": "https://github.com/web-auth/webauthn-lib/tree/5.3.5" + "source": "https://github.com/web-auth/webauthn-lib/tree/5.3.9" }, "funding": [ { @@ -13819,20 +14343,20 @@ "type": "patreon" } ], - "time": "2026-05-31T15:00:08+00:00" + "time": "2026-09-10T21:10:45+00:00" }, { "name": "webmozart/assert", - "version": "2.4.0", + "version": "2.4.1", "source": { "type": "git", "url": "https://github.com/webmozarts/assert.git", - "reference": "9007ea6f45ecf352a9422b36644e4bfc039b9155" + "reference": "2ccb7c2e821038c03a3e6e1700c570c158c55f70" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozarts/assert/zipball/9007ea6f45ecf352a9422b36644e4bfc039b9155", - "reference": "9007ea6f45ecf352a9422b36644e4bfc039b9155", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/2ccb7c2e821038c03a3e6e1700c570c158c55f70", + "reference": "2ccb7c2e821038c03a3e6e1700c570c158c55f70", "shasum": "" }, "require": { @@ -13883,9 +14407,9 @@ ], "support": { "issues": "https://github.com/webmozarts/assert/issues", - "source": "https://github.com/webmozarts/assert/tree/2.4.0" + "source": "https://github.com/webmozarts/assert/tree/2.4.1" }, - "time": "2026-05-20T13:07:01+00:00" + "time": "2026-06-15T15:31:57+00:00" }, { "name": "wikimedia/composer-merge-plugin", @@ -14382,16 +14906,16 @@ }, { "name": "fumeapp/modeltyper", - "version": "v3.10.0", + "version": "v3.13.0", "source": { "type": "git", "url": "https://github.com/fumeapp/modeltyper.git", - "reference": "421f809db4c244253002385a93ff7d94e3264244" + "reference": "f06dc8df1607cbf716d1c9d5ccef998545278012" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/fumeapp/modeltyper/zipball/421f809db4c244253002385a93ff7d94e3264244", - "reference": "421f809db4c244253002385a93ff7d94e3264244", + "url": "https://api.github.com/repos/fumeapp/modeltyper/zipball/f06dc8df1607cbf716d1c9d5ccef998545278012", + "reference": "f06dc8df1607cbf716d1c9d5ccef998545278012", "shasum": "" }, "require": { @@ -14440,25 +14964,27 @@ "description": "Generate TypeScript interfaces from Laravel Models", "support": { "issues": "https://github.com/fumeapp/modeltyper/issues", - "source": "https://github.com/fumeapp/modeltyper/tree/v3.10.0" + "source": "https://github.com/fumeapp/modeltyper/tree/v3.13.0" }, - "time": "2026-03-27T15:48:22+00:00" + "time": "2026-08-01T04:02:40+00:00" }, { "name": "hamcrest/hamcrest-php", - "version": "v2.1.1", + "version": "v3.0.0", "source": { "type": "git", "url": "https://github.com/hamcrest/hamcrest-php.git", - "reference": "f8b1c0173b22fa6ec77a81fe63e5b01eba7e6487" + "reference": "b61cd040da1a4925bc90a51c074f5297e7c0fa52" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/f8b1c0173b22fa6ec77a81fe63e5b01eba7e6487", - "reference": "f8b1c0173b22fa6ec77a81fe63e5b01eba7e6487", + "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/b61cd040da1a4925bc90a51c074f5297e7c0fa52", + "reference": "b61cd040da1a4925bc90a51c074f5297e7c0fa52", "shasum": "" }, "require": { + "ext-ctype": "*", + "ext-dom": "*", "php": "^7.4|^8.0" }, "replace": { @@ -14467,13 +14993,15 @@ "kodova/hamcrest-php": "*" }, "require-dev": { + "phpstan/phpstan": "^2.1", + "phpstan/phpstan-phpunit": "^2.0", "phpunit/php-file-iterator": "^1.4 || ^2.0 || ^3.0", "phpunit/phpunit": "^4.8.36 || ^5.7 || ^6.5 || ^7.0 || ^8.0 || ^9.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.1-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -14491,9 +15019,9 @@ ], "support": { "issues": "https://github.com/hamcrest/hamcrest-php/issues", - "source": "https://github.com/hamcrest/hamcrest-php/tree/v2.1.1" + "source": "https://github.com/hamcrest/hamcrest-php/tree/v3.0.0" }, - "time": "2025-04-30T06:54:44+00:00" + "time": "2026-03-17T11:56:53+00:00" }, { "name": "iamcal/sql-parser", @@ -14598,20 +15126,19 @@ }, { "name": "larastan/larastan", - "version": "v3.9.6", + "version": "v3.12.1", "source": { "type": "git", "url": "https://github.com/larastan/larastan.git", - "reference": "9ad17e83e96b63536cb6ac39c3d40d29ff9cf636" + "reference": "168fd3b955e723c51dbf81709849b0c3ac4ac5f6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/larastan/larastan/zipball/9ad17e83e96b63536cb6ac39c3d40d29ff9cf636", - "reference": "9ad17e83e96b63536cb6ac39c3d40d29ff9cf636", + "url": "https://api.github.com/repos/larastan/larastan/zipball/168fd3b955e723c51dbf81709849b0c3ac4ac5f6", + "reference": "168fd3b955e723c51dbf81709849b0c3ac4ac5f6", "shasum": "" }, "require": { - "ext-json": "*", "iamcal/sql-parser": "^0.7.0", "illuminate/console": "^11.44.2 || ^12.4.1 || ^13", "illuminate/container": "^11.44.2 || ^12.4.1 || ^13", @@ -14621,17 +15148,17 @@ "illuminate/pipeline": "^11.44.2 || ^12.4.1 || ^13", "illuminate/support": "^11.44.2 || ^12.4.1 || ^13", "php": "^8.2", - "phpstan/phpstan": "^2.1.44" + "phpstan/phpstan": "^2.2.14" }, "require-dev": { - "doctrine/coding-standard": "^13", + "doctrine/coding-standard": "^14", "laravel/framework": "^11.44.2 || ^12.7.2 || ^13", "mockery/mockery": "^1.6.12", "nikic/php-parser": "^5.4", "orchestra/canvas": "^v9.2.2 || ^10.0.1 || ^11", "orchestra/testbench-core": "^9.12.0 || ^10.1 || ^11", "phpstan/phpstan-deprecation-rules": "^2.0.1", - "phpunit/phpunit": "^10.5.35 || ^11.5.15 || ^12.5.8" + "phpunit/phpunit": "^10.5.35 || ^11.5.15 || ^12.5.8 || ^13.3.0" }, "suggest": { "orchestra/testbench": "Using Larastan for analysing a package needs Testbench", @@ -14676,7 +15203,7 @@ ], "support": { "issues": "https://github.com/larastan/larastan/issues", - "source": "https://github.com/larastan/larastan/tree/v3.9.6" + "source": "https://github.com/larastan/larastan/tree/v3.12.1" }, "funding": [ { @@ -14684,20 +15211,20 @@ "type": "github" } ], - "time": "2026-04-16T10:02:43+00:00" + "time": "2026-09-13T15:17:35+00:00" }, { "name": "laravel/pint", - "version": "v1.29.1", + "version": "v1.32.1", "source": { "type": "git", "url": "https://github.com/laravel/pint.git", - "reference": "0770e9b7fafd50d4586881d456d6eb41c9247a80" + "reference": "006bd7825eb01daf92959d060b89cd9514fe4253" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/pint/zipball/0770e9b7fafd50d4586881d456d6eb41c9247a80", - "reference": "0770e9b7fafd50d4586881d456d6eb41c9247a80", + "url": "https://api.github.com/repos/laravel/pint/zipball/006bd7825eb01daf92959d060b89cd9514fe4253", + "reference": "006bd7825eb01daf92959d060b89cd9514fe4253", "shasum": "" }, "require": { @@ -14705,17 +15232,19 @@ "ext-mbstring": "*", "ext-tokenizer": "*", "ext-xml": "*", - "php": "^8.2.0" + "php": "^8.3.0" }, "require-dev": { - "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", + "composer/semver": "^3.4.4", + "friendsofphp/php-cs-fixer": "^3.95.25", + "illuminate/view": "^13.31.0", + "larastan/larastan": "^3.11.0", + "laravel-zero/framework": "^13.0.0", + "laravel/agent-detector": "^2.0.2", + "laravel/prompts": "^0.3.24", + "mockery/mockery": "^1.6.15", "nunomaduro/termwind": "^2.4.0", - "pestphp/pest": "^3.8.6", - "shipfastlabs/agent-detector": "^1.1.3" + "pestphp/pest": "^4.7.8" }, "bin": [ "builds/pint" @@ -14752,20 +15281,20 @@ "issues": "https://github.com/laravel/pint/issues", "source": "https://github.com/laravel/pint" }, - "time": "2026-04-20T15:26:14+00:00" + "time": "2026-09-10T10:47:55+00:00" }, { "name": "laravel/sail", - "version": "v1.60.0", + "version": "v1.67.0", "source": { "type": "git", "url": "https://github.com/laravel/sail.git", - "reference": "2a1538ed22eed4210ac1e17904235032571bd89c" + "reference": "639e03ac12cf23def171770bcab05758045b2642" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/sail/zipball/2a1538ed22eed4210ac1e17904235032571bd89c", - "reference": "2a1538ed22eed4210ac1e17904235032571bd89c", + "url": "https://api.github.com/repos/laravel/sail/zipball/639e03ac12cf23def171770bcab05758045b2642", + "reference": "639e03ac12cf23def171770bcab05758045b2642", "shasum": "" }, "require": { @@ -14815,7 +15344,7 @@ "issues": "https://github.com/laravel/sail/issues", "source": "https://github.com/laravel/sail" }, - "time": "2026-05-14T17:29:51+00:00" + "time": "2026-08-12T13:55:56+00:00" }, { "name": "laravel/sentinel", @@ -14875,16 +15404,16 @@ }, { "name": "laravel/telescope", - "version": "v5.20.0", + "version": "v5.24.0", "source": { "type": "git", "url": "https://github.com/laravel/telescope.git", - "reference": "38ec6e6006a67e05e0c476c5f8ef3550b72e43d8" + "reference": "50cbcf4553ddfd8d4bd456b04f97dfed923007d9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/telescope/zipball/38ec6e6006a67e05e0c476c5f8ef3550b72e43d8", - "reference": "38ec6e6006a67e05e0c476c5f8ef3550b72e43d8", + "url": "https://api.github.com/repos/laravel/telescope/zipball/50cbcf4553ddfd8d4bd456b04f97dfed923007d9", + "reference": "50cbcf4553ddfd8d4bd456b04f97dfed923007d9", "shasum": "" }, "require": { @@ -14897,10 +15426,10 @@ }, "require-dev": { "ext-gd": "*", - "guzzlehttp/guzzle": "^6.0|^7.0", + "guzzlehttp/guzzle": "^6.0|^7.0|^8.0", "laravel/octane": "^1.4|^2.0", - "orchestra/testbench": "^6.47.1|^7.55|^8.36|^9.15|^10.8|^11.0", - "phpstan/phpstan": "^1.10" + "orchestra/testbench": "^6.48|^7.57|^8.38|^9.15|^10.8|^11.0", + "phpstan/phpstan": "^2.2.9" }, "type": "library", "extra": { @@ -14937,36 +15466,34 @@ "monitoring" ], "support": { - "issues": "https://github.com/laravel/telescope/issues", - "source": "https://github.com/laravel/telescope/tree/v5.20.0" + "source": "https://github.com/laravel/telescope/tree/v5.24.0" }, - "time": "2026-04-06T12:52:26+00:00" + "time": "2026-09-08T16:15:16+00:00" }, { "name": "mockery/mockery", - "version": "1.6.12", + "version": "1.6.15", "source": { "type": "git", "url": "https://github.com/mockery/mockery.git", - "reference": "1f4efdd7d3beafe9807b08156dfcb176d18f1699" + "reference": "967a801bd188989a5669bd280f252d51c0fdc9ee" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mockery/mockery/zipball/1f4efdd7d3beafe9807b08156dfcb176d18f1699", - "reference": "1f4efdd7d3beafe9807b08156dfcb176d18f1699", + "url": "https://api.github.com/repos/mockery/mockery/zipball/967a801bd188989a5669bd280f252d51c0fdc9ee", + "reference": "967a801bd188989a5669bd280f252d51c0fdc9ee", "shasum": "" }, "require": { - "hamcrest/hamcrest-php": "^2.0.1", - "lib-pcre": ">=7.0", + "hamcrest/hamcrest-php": "^2.0 || ^3.0", "php": ">=7.3" }, "conflict": { "phpunit/phpunit": "<8.0" }, "require-dev": { - "phpunit/phpunit": "^8.5 || ^9.6.17", - "symplify/easy-coding-standard": "^12.1.14" + "phpunit/phpunit": "^9.6.36", + "symplify/easy-coding-standard": "^13.2.17" }, "type": "library", "autoload": { @@ -15023,27 +15550,27 @@ "security": "https://github.com/mockery/mockery/security/advisories", "source": "https://github.com/mockery/mockery" }, - "time": "2024-05-16T03:13:13+00:00" + "time": "2026-08-19T19:37:52+00:00" }, { "name": "nunomaduro/collision", - "version": "v8.9.4", + "version": "v8.9.5", "source": { "type": "git", "url": "https://github.com/nunomaduro/collision.git", - "reference": "716af8f95a470e9094cfca09ed897b023be191a5" + "reference": "fb53eacd509a1d303858e2d20cfebf2d630254ec" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/collision/zipball/716af8f95a470e9094cfca09ed897b023be191a5", - "reference": "716af8f95a470e9094cfca09ed897b023be191a5", + "url": "https://api.github.com/repos/nunomaduro/collision/zipball/fb53eacd509a1d303858e2d20cfebf2d630254ec", + "reference": "fb53eacd509a1d303858e2d20cfebf2d630254ec", "shasum": "" }, "require": { "filp/whoops": "^2.18.4", "nunomaduro/termwind": "^2.4.0", "php": "^8.2.0", - "symfony/console": "^7.4.8 || ^8.0.8" + "symfony/console": "^7.4.14 || ^8.1.1" }, "conflict": { "laravel/framework": "<11.48.0 || >=14.0.0", @@ -15051,12 +15578,12 @@ }, "require-dev": { "brianium/paratest": "^7.8.5", - "larastan/larastan": "^3.9.6", - "laravel/framework": "^11.48.0 || ^12.56.0 || ^13.5.0", - "laravel/pint": "^1.29.1", - "orchestra/testbench-core": "^9.12.0 || ^10.12.1 || ^11.2.1", - "pestphp/pest": "^3.8.5 || ^4.4.3 || ^5.0.0", - "sebastian/environment": "^7.2.1 || ^8.0.4 || ^9.3.0" + "larastan/larastan": "^3.10.0", + "laravel/framework": "^11.48.0 || ^12.56.0 || ^13.20.0", + "laravel/pint": "^1.29.3", + "orchestra/testbench-core": "^9.12.0 || ^10.12.1 || ^11.3.5", + "pestphp/pest": "^3.8.5 || ^4.7.5 || ^5.0.0", + "sebastian/environment": "^7.2.1 || ^8.1.2 || ^9.3.2" }, "type": "library", "extra": { @@ -15119,7 +15646,7 @@ "type": "patreon" } ], - "time": "2026-04-21T14:04:20+00:00" + "time": "2026-07-15T19:09:14+00:00" }, { "name": "phar-io/manifest", @@ -15241,11 +15768,11 @@ }, { "name": "phpstan/phpstan", - "version": "2.1.55", + "version": "2.2.14", "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/9eaac3826ed5e9b8427350a43cac825eeca3f566", - "reference": "9eaac3826ed5e9b8427350a43cac825eeca3f566", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/9c672e7a8e791dfc3d30e55f683e73fc0b63a3ac", + "reference": "9c672e7a8e791dfc3d30e55f683e73fc0b63a3ac", "shasum": "" }, "require": { @@ -15268,6 +15795,17 @@ "license": [ "MIT" ], + "authors": [ + { + "name": "Ondřej Mirtes" + }, + { + "name": "Markus Staab" + }, + { + "name": "Vincent Langlet" + } + ], "description": "PHPStan - PHP Static Analysis Tool", "keywords": [ "dev", @@ -15290,20 +15828,20 @@ "type": "github" } ], - "time": "2026-05-18T11:57:34+00:00" + "time": "2026-09-12T21:39:33+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "12.5.6", + "version": "12.5.7", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "876099a072646c7745f673d7aeab5382c4439691" + "reference": "186dab580576598076de6818596d12b61801880e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/876099a072646c7745f673d7aeab5382c4439691", - "reference": "876099a072646c7745f673d7aeab5382c4439691", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/186dab580576598076de6818596d12b61801880e", + "reference": "186dab580576598076de6818596d12b61801880e", "shasum": "" }, "require": { @@ -15314,13 +15852,13 @@ "php": ">=8.3", "phpunit/php-text-template": "^5.0", "sebastian/complexity": "^5.0", - "sebastian/environment": "^8.0.3", - "sebastian/lines-of-code": "^4.0", + "sebastian/environment": "^8.1.2", + "sebastian/lines-of-code": "^4.0.1", "sebastian/version": "^6.0", "theseer/tokenizer": "^2.0.1" }, "require-dev": { - "phpunit/phpunit": "^12.5.1" + "phpunit/phpunit": "^12.5.28" }, "suggest": { "ext-pcov": "PHP extension that provides line coverage", @@ -15358,7 +15896,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/12.5.6" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/12.5.7" }, "funding": [ { @@ -15378,27 +15916,27 @@ "type": "tidelift" } ], - "time": "2026-04-15T08:23:17+00:00" + "time": "2026-06-01T13:24:19+00:00" }, { "name": "phpunit/php-file-iterator", - "version": "6.0.1", + "version": "6.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "3d1cd096ef6bea4bf2762ba586e35dbd317cbfd5" + "reference": "a248d1640ab059b075f53a2ef0f9856e864e06b5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/3d1cd096ef6bea4bf2762ba586e35dbd317cbfd5", - "reference": "3d1cd096ef6bea4bf2762ba586e35dbd317cbfd5", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/a248d1640ab059b075f53a2ef0f9856e864e06b5", + "reference": "a248d1640ab059b075f53a2ef0f9856e864e06b5", "shasum": "" }, "require": { "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^12.0" + "phpunit/phpunit": "^12.5.33" }, "type": "library", "extra": { @@ -15431,7 +15969,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", "security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy", - "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/6.0.1" + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/6.0.2" }, "funding": [ { @@ -15451,7 +15989,7 @@ "type": "tidelift" } ], - "time": "2026-02-02T14:04:18+00:00" + "time": "2026-08-25T14:40:53+00:00" }, { "name": "phpunit/php-invoker", @@ -15639,40 +16177,40 @@ }, { "name": "phpunit/phpunit", - "version": "12.5.26", + "version": "12.5.35", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "e78c9ad74f73fd3642a23e65ace83746dc8df26d" + "reference": "345ac22e42cb14cdc7aa8428655d8bb8c82a4aab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/e78c9ad74f73fd3642a23e65ace83746dc8df26d", - "reference": "e78c9ad74f73fd3642a23e65ace83746dc8df26d", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/345ac22e42cb14cdc7aa8428655d8bb8c82a4aab", + "reference": "345ac22e42cb14cdc7aa8428655d8bb8c82a4aab", "shasum": "" }, "require": { "ext-dom": "*", + "ext-filter": "*", "ext-json": "*", "ext-libxml": "*", "ext-mbstring": "*", - "ext-xml": "*", "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.13.4", + "myclabs/deep-copy": "^1.14.0", "phar-io/manifest": "^2.0.4", "phar-io/version": "^3.2.1", "php": ">=8.3", - "phpunit/php-code-coverage": "^12.5.6", - "phpunit/php-file-iterator": "^6.0.1", + "phpunit/php-code-coverage": "^12.5.7", + "phpunit/php-file-iterator": "^6.0.2", "phpunit/php-invoker": "^6.0.0", "phpunit/php-text-template": "^5.0.0", "phpunit/php-timer": "^8.0.0", "sebastian/cli-parser": "^4.2.1", "sebastian/comparator": "^7.1.8", - "sebastian/diff": "^7.0.0", - "sebastian/environment": "^8.1.1", + "sebastian/diff": "^7.0.1", + "sebastian/environment": "^8.1.2", "sebastian/exporter": "^7.0.3", - "sebastian/global-state": "^8.0.2", + "sebastian/global-state": "^8.0.3", "sebastian/object-enumerator": "^7.0.0", "sebastian/recursion-context": "^7.0.1", "sebastian/type": "^6.0.4", @@ -15717,7 +16255,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/12.5.26" + "source": "https://github.com/sebastianbergmann/phpunit/tree/12.5.35" }, "funding": [ { @@ -15725,7 +16263,7 @@ "type": "other" } ], - "time": "2026-05-21T12:36:53+00:00" + "time": "2026-09-09T04:48:50+00:00" }, { "name": "sebastian/cli-parser", @@ -15948,24 +16486,24 @@ }, { "name": "sebastian/diff", - "version": "7.0.0", + "version": "7.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "7ab1ea946c012266ca32390913653d844ecd085f" + "reference": "cd4cabe39f8a4e8ee6818ba99f10a05561ea4ad6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/7ab1ea946c012266ca32390913653d844ecd085f", - "reference": "7ab1ea946c012266ca32390913653d844ecd085f", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/cd4cabe39f8a4e8ee6818ba99f10a05561ea4ad6", + "reference": "cd4cabe39f8a4e8ee6818ba99f10a05561ea4ad6", "shasum": "" }, "require": { "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^12.0", - "symfony/process": "^7.2" + "phpunit/phpunit": "^12.5.33", + "symfony/process": "^7.4.17" }, "type": "library", "extra": { @@ -16003,35 +16541,47 @@ "support": { "issues": "https://github.com/sebastianbergmann/diff/issues", "security": "https://github.com/sebastianbergmann/diff/security/policy", - "source": "https://github.com/sebastianbergmann/diff/tree/7.0.0" + "source": "https://github.com/sebastianbergmann/diff/tree/7.0.1" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/diff", + "type": "tidelift" } ], - "time": "2025-02-07T04:55:46+00:00" + "time": "2026-08-25T15:35:54+00:00" }, { "name": "sebastian/environment", - "version": "8.1.1", + "version": "8.1.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "334bc42a97ec6fc44c59001dc3467e0d739a20e9" + "reference": "9d32c685773823b1983e256ae4ecd48a10d6e439" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/334bc42a97ec6fc44c59001dc3467e0d739a20e9", - "reference": "334bc42a97ec6fc44c59001dc3467e0d739a20e9", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/9d32c685773823b1983e256ae4ecd48a10d6e439", + "reference": "9d32c685773823b1983e256ae4ecd48a10d6e439", "shasum": "" }, "require": { "php": ">=8.3" }, "require-dev": { - "phpunit/phpunit": "^12.5.25" + "phpunit/phpunit": "^12.5.26" }, "suggest": { "ext-posix": "*" @@ -16067,7 +16617,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/environment/issues", "security": "https://github.com/sebastianbergmann/environment/security/policy", - "source": "https://github.com/sebastianbergmann/environment/tree/8.1.1" + "source": "https://github.com/sebastianbergmann/environment/tree/8.1.2" }, "funding": [ { @@ -16087,7 +16637,7 @@ "type": "tidelift" } ], - "time": "2026-05-21T08:45:32+00:00" + "time": "2026-05-25T13:40:20+00:00" }, { "name": "sebastian/exporter", @@ -16181,26 +16731,26 @@ }, { "name": "sebastian/global-state", - "version": "8.0.2", + "version": "8.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "ef1377171613d09edd25b7816f05be8313f9115d" + "reference": "b164d3274d6537ab462591c5755f76a8f5b1aae9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/ef1377171613d09edd25b7816f05be8313f9115d", - "reference": "ef1377171613d09edd25b7816f05be8313f9115d", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/b164d3274d6537ab462591c5755f76a8f5b1aae9", + "reference": "b164d3274d6537ab462591c5755f76a8f5b1aae9", "shasum": "" }, "require": { "php": ">=8.3", "sebastian/object-reflector": "^5.0", - "sebastian/recursion-context": "^7.0" + "sebastian/recursion-context": "^7.0.1" }, "require-dev": { "ext-dom": "*", - "phpunit/phpunit": "^12.0" + "phpunit/phpunit": "^12.5.28" }, "type": "library", "extra": { @@ -16231,7 +16781,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/global-state/issues", "security": "https://github.com/sebastianbergmann/global-state/security/policy", - "source": "https://github.com/sebastianbergmann/global-state/tree/8.0.2" + "source": "https://github.com/sebastianbergmann/global-state/tree/8.0.3" }, "funding": [ { @@ -16251,7 +16801,7 @@ "type": "tidelift" } ], - "time": "2025-08-29T11:29:25+00:00" + "time": "2026-06-01T15:10:33+00:00" }, { "name": "sebastian/lines-of-code", @@ -17075,16 +17625,16 @@ }, { "name": "symfony/yaml", - "version": "v7.4.12", + "version": "v7.4.18", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "8b6952b56ca6417f25f7a65758cadd0ce02edc51" + "reference": "4cef939e55b8a21c5780418de0d98ab00d0736e1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/8b6952b56ca6417f25f7a65758cadd0ce02edc51", - "reference": "8b6952b56ca6417f25f7a65758cadd0ce02edc51", + "url": "https://api.github.com/repos/symfony/yaml/zipball/4cef939e55b8a21c5780418de0d98ab00d0736e1", + "reference": "4cef939e55b8a21c5780418de0d98ab00d0736e1", "shasum": "" }, "require": { @@ -17127,7 +17677,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v7.4.12" + "source": "https://github.com/symfony/yaml/tree/v7.4.18" }, "funding": [ { @@ -17147,7 +17697,7 @@ "type": "tidelift" } ], - "time": "2026-05-20T07:20:23+00:00" + "time": "2026-08-30T00:47:26+00:00" }, { "name": "theseer/tokenizer", diff --git a/public/fonts/filament/filament/inter/index.css b/public/fonts/filament/filament/inter/index.css new file mode 100644 index 00000000..62736da2 --- /dev/null +++ b/public/fonts/filament/filament/inter/index.css @@ -0,0 +1 @@ +@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url("./inter-cyrillic-ext-wght-normal-SP7Z6XGK.woff2") format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url("./inter-cyrillic-wght-normal-DR6K5BQD.woff2") format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url("./inter-greek-ext-wght-normal-A2J6H3EX.woff2") format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url("./inter-greek-wght-normal-ZABHMKQG.woff2") format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url("./inter-vietnamese-wght-normal-VWEHJHBA.woff2") format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url("./inter-latin-ext-wght-normal-ZIT2UBIY.woff2") format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url("./inter-latin-wght-normal-DIHYUR35.woff2") format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD} \ No newline at end of file diff --git a/public/fonts/filament/filament/inter/inter-cyrillic-ext-wght-normal-SP7Z6XGK.woff2 b/public/fonts/filament/filament/inter/inter-cyrillic-ext-wght-normal-SP7Z6XGK.woff2 new file mode 100644 index 00000000..c33b4fb7 Binary files /dev/null and b/public/fonts/filament/filament/inter/inter-cyrillic-ext-wght-normal-SP7Z6XGK.woff2 differ diff --git a/public/fonts/filament/filament/inter/inter-cyrillic-wght-normal-DR6K5BQD.woff2 b/public/fonts/filament/filament/inter/inter-cyrillic-wght-normal-DR6K5BQD.woff2 new file mode 100644 index 00000000..d9898185 Binary files /dev/null and b/public/fonts/filament/filament/inter/inter-cyrillic-wght-normal-DR6K5BQD.woff2 differ diff --git a/public/fonts/filament/filament/inter/inter-greek-ext-wght-normal-A2J6H3EX.woff2 b/public/fonts/filament/filament/inter/inter-greek-ext-wght-normal-A2J6H3EX.woff2 new file mode 100644 index 00000000..f3ac9dd7 Binary files /dev/null and b/public/fonts/filament/filament/inter/inter-greek-ext-wght-normal-A2J6H3EX.woff2 differ diff --git a/public/fonts/filament/filament/inter/inter-greek-wght-normal-ZABHMKQG.woff2 b/public/fonts/filament/filament/inter/inter-greek-wght-normal-ZABHMKQG.woff2 new file mode 100644 index 00000000..0d96bfa9 Binary files /dev/null and b/public/fonts/filament/filament/inter/inter-greek-wght-normal-ZABHMKQG.woff2 differ diff --git a/public/fonts/filament/filament/inter/inter-latin-ext-wght-normal-ZIT2UBIY.woff2 b/public/fonts/filament/filament/inter/inter-latin-ext-wght-normal-ZIT2UBIY.woff2 new file mode 100644 index 00000000..bef4cf53 Binary files /dev/null and b/public/fonts/filament/filament/inter/inter-latin-ext-wght-normal-ZIT2UBIY.woff2 differ diff --git a/public/fonts/filament/filament/inter/inter-latin-wght-normal-DIHYUR35.woff2 b/public/fonts/filament/filament/inter/inter-latin-wght-normal-DIHYUR35.woff2 new file mode 100644 index 00000000..ceb9aba8 Binary files /dev/null and b/public/fonts/filament/filament/inter/inter-latin-wght-normal-DIHYUR35.woff2 differ diff --git a/public/fonts/filament/filament/inter/inter-vietnamese-wght-normal-VWEHJHBA.woff2 b/public/fonts/filament/filament/inter/inter-vietnamese-wght-normal-VWEHJHBA.woff2 new file mode 100644 index 00000000..6974b16a Binary files /dev/null and b/public/fonts/filament/filament/inter/inter-vietnamese-wght-normal-VWEHJHBA.woff2 differ diff --git a/tests/Unit/Endpoint/Api/V1/CurrencyEndpointTest.php b/tests/Unit/Endpoint/Api/V1/CurrencyEndpointTest.php index 0a59bcf8..4e2521a8 100644 --- a/tests/Unit/Endpoint/Api/V1/CurrencyEndpointTest.php +++ b/tests/Unit/Endpoint/Api/V1/CurrencyEndpointTest.php @@ -21,7 +21,7 @@ class CurrencyEndpointTest extends ApiEndpointTestAbstract // Assert $response->assertOk(); - $response->assertJsonCount(166); + $response->assertJsonCount(214); $responseObj = collect($response->json()); $this->assertSame([ 'code' => 'EUR',