From 37579b1e5c09a2c3de0971c3a7264daa122517af Mon Sep 17 00:00:00 2001 From: Constantin Graf Date: Wed, 16 Sep 2026 23:01:42 +0200 Subject: [PATCH] Updated compose dependencies --- .env.ci | 3 + .env.example | 3 + .env.production | 2 + app/Auth/ActiveUserProvider.php | 3 +- .../SelfHost/SelfHostDatabaseConsistency.php | 3 +- .../SelfHost/SelfHostGenerateKeysCommand.php | 2 +- .../Api/EntityStillInUseApiException.php | 4 +- app/Filament/Resources/AuditResource.php | 64 +- app/Filament/Resources/ClientResource.php | 45 +- .../ClientResource/Pages/EditClient.php | 4 +- .../ClientResource/Pages/ListClients.php | 4 +- app/Filament/Resources/FailedJobResource.php | 26 +- .../OrganizationInvitationResource.php | 59 +- .../Pages/EditOrganizationInvitation.php | 4 +- .../Resources/OrganizationResource.php | 65 +- .../Pages/EditOrganization.php | 3 +- .../Pages/ListOrganizations.php | 4 +- .../InvitationsRelationManager.php | 37 +- .../RelationManagers/UsersRelationManager.php | 27 +- .../Resources/ProjectMemberResource.php | 57 +- .../Pages/EditProjectMember.php | 4 +- .../Pages/ListProjectMembers.php | 4 +- app/Filament/Resources/ProjectResource.php | 45 +- .../ProjectResource/Pages/EditProject.php | 4 +- .../ProjectResource/Pages/ListProjects.php | 4 +- .../ProjectMembersRelationManager.php | 20 +- app/Filament/Resources/ReportResource.php | 49 +- .../ReportResource/Pages/EditReport.php | 4 +- app/Filament/Resources/TagResource.php | 49 +- .../Resources/TagResource/Pages/EditTag.php | 4 +- .../Resources/TagResource/Pages/ListTags.php | 4 +- app/Filament/Resources/TaskResource.php | 51 +- .../Resources/TaskResource/Pages/EditTask.php | 4 +- .../TaskResource/Pages/ListTasks.php | 4 +- app/Filament/Resources/TimeEntryResource.php | 36 +- .../TimeEntryResource/Pages/EditTimeEntry.php | 4 +- .../Pages/ListTimeEntries.php | 4 +- app/Filament/Resources/TokenResource.php | 66 +- app/Filament/Resources/UserResource.php | 77 +- .../UserResource/Pages/CreateUser.php | 2 +- .../Resources/UserResource/Pages/EditUser.php | 5 +- .../UserResource/Pages/ListUsers.php | 4 +- .../Resources/UserResource/Pages/ViewUser.php | 2 +- .../OrganizationsRelationManager.php | 23 +- .../OwnedOrganizationsRelationManager.php | 18 +- app/Filament/Widgets/ServerOverview.php | 2 +- app/Filament/Widgets/TimeEntriesCreated.php | 4 +- app/Filament/Widgets/TimeEntriesImported.php | 4 +- app/Filament/Widgets/UserRegistrations.php | 4 +- .../Controllers/Api/V1/ApiTokenController.php | 3 +- .../Controllers/Api/V1/MemberController.php | 3 +- .../Api/V1/TimeEntryController.php | 9 +- .../Controllers/Web/UserProfileController.php | 3 +- .../Middleware/CheckOrganizationBlocked.php | 3 +- app/Http/Middleware/TrustHosts.php | 3 +- .../Requests/V1/Report/ReportStoreRequest.php | 16 +- .../TimeEntryAggregateExportRequest.php | 16 +- .../TimeEntry/TimeEntryAggregateRequest.php | 11 +- .../TimeEntry/TimeEntryIndexExportRequest.php | 16 +- .../V1/TimeEntry/TimeEntryIndexRequest.php | 11 +- .../V1/TimeEntry/TimeEntryStoreRequest.php | 5 +- .../V1/TimeEntry/TimeEntryUpdateRequest.php | 5 +- app/Providers/AppServiceProvider.php | 2 +- app/Providers/Filament/AdminPanelProvider.php | 5 +- app/Service/ApiService.php | 3 +- app/Service/DashboardService.php | 3 +- app/Service/Dto/ReportPropertiesDto.php | 15 +- app/Service/Import/ImportDatabaseHelper.php | 5 +- .../Importers/ClockifyProjectsImporter.php | 7 +- .../Importers/ClockifyTimeEntriesImporter.php | 7 +- .../Import/Importers/DefaultImporter.php | 3 +- .../Importers/GenericTimeEntriesImporter.php | 7 +- .../Importers/HarvestClientsImporter.php | 7 +- .../Importers/HarvestProjectsImporter.php | 7 +- .../Import/Importers/ImportException.php | 4 +- .../Import/Importers/ImporterProvider.php | 4 +- .../Importers/TogglTimeEntriesImporter.php | 7 +- app/Service/ReportExport/CsvExport.php | 3 +- app/Service/TimeEntryAggregationService.php | 5 +- app/Service/TimezoneService.php | 3 +- app/Service/UserService.php | 3 +- app/Support/Base64File.php | 3 +- composer.json | 20 +- composer.lock | 3120 ++++++++++------- config/inertia.php | 208 ++ extensions/manifest.json | 6 +- .../fonts/filament/filament/inter/index.css | 1 + ...er-cyrillic-ext-wght-normal-SP7Z6XGK.woff2 | Bin 0 -> 25668 bytes .../inter-cyrillic-wght-normal-DR6K5BQD.woff2 | Bin 0 -> 18860 bytes ...inter-greek-ext-wght-normal-A2J6H3EX.woff2 | Bin 0 -> 11180 bytes .../inter-greek-wght-normal-ZABHMKQG.woff2 | Bin 0 -> 18688 bytes ...inter-latin-ext-wght-normal-ZIT2UBIY.woff2 | Bin 0 -> 89876 bytes .../inter-latin-wght-normal-DIHYUR35.woff2 | Bin 0 -> 68332 bytes ...nter-vietnamese-wght-normal-VWEHJHBA.woff2 | Bin 0 -> 11376 bytes .../css/filament/admin/tailwind.config.js | 10 - resources/css/filament/admin/theme.css | 3 - .../Endpoint/Api/V1/CurrencyEndpointTest.php | 2 +- vite.config.js | 6 +- 98 files changed, 2688 insertions(+), 1819 deletions(-) create mode 100644 config/inertia.php create mode 100644 public/fonts/filament/filament/inter/index.css create mode 100644 public/fonts/filament/filament/inter/inter-cyrillic-ext-wght-normal-SP7Z6XGK.woff2 create mode 100644 public/fonts/filament/filament/inter/inter-cyrillic-wght-normal-DR6K5BQD.woff2 create mode 100644 public/fonts/filament/filament/inter/inter-greek-ext-wght-normal-A2J6H3EX.woff2 create mode 100644 public/fonts/filament/filament/inter/inter-greek-wght-normal-ZABHMKQG.woff2 create mode 100644 public/fonts/filament/filament/inter/inter-latin-ext-wght-normal-ZIT2UBIY.woff2 create mode 100644 public/fonts/filament/filament/inter/inter-latin-wght-normal-DIHYUR35.woff2 create mode 100644 public/fonts/filament/filament/inter/inter-vietnamese-wght-normal-VWEHJHBA.woff2 delete mode 100644 resources/css/filament/admin/tailwind.config.js delete mode 100644 resources/css/filament/admin/theme.css 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..26956a08 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([ @@ -51,7 +51,6 @@ class AdminPanelProvider extends PanelProvider TimeEntriesCreated::class, TimeEntriesImported::class, ]) - ->viteTheme('resources/css/filament/admin/theme.css') ->plugins([ EnvironmentIndicatorPlugin::make() ->color(fn () => match (App::environment()) { 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 dd3da285..6c9ebbba 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 9c4860db..f74919b2 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 8cda78dd..78d836fb 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 { @@ -193,7 +194,7 @@ abstract class DefaultImporter implements ImporterContract } } - #[\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 f5745ac7..bb19ac0e 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 { @@ -195,13 +196,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 7b56f89d..e18cf606 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 { @@ -193,13 +194,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/config/inertia.php b/config/inertia.php new file mode 100644 index 00000000..80e0cd10 --- /dev/null +++ b/config/inertia.php @@ -0,0 +1,208 @@ + [ + + 'enabled' => (bool) env('INERTIA_SSR_ENABLED', true), + + 'runtime' => env('INERTIA_SSR_RUNTIME', 'node'), + + 'ensure_runtime_exists' => (bool) env('INERTIA_SSR_ENSURE_RUNTIME_EXISTS', false), + + 'url' => env('INERTIA_SSR_URL', 'http://127.0.0.1:13714'), + + 'hot_url' => env('INERTIA_SSR_HOT_URL'), + + 'ensure_bundle_exists' => (bool) env('INERTIA_SSR_ENSURE_BUNDLE_EXISTS', true), + + // 'bundle' => base_path('bootstrap/ssr/ssr.mjs'), + + /* + |-------------------------------------------------------------------------- + | SSR Error Handling + |-------------------------------------------------------------------------- + | + | When SSR rendering fails, Inertia gracefully falls back to client-side + | rendering. Set throw_on_error to true to throw an exception instead. + | This is useful for E2E testing where you want SSR errors to fail loudly. + | + | You can also listen for the Inertia\Ssr\SsrRenderFailed event to handle + | failures in your own way (e.g., logging, error tracking service). + | + */ + + 'throw_on_error' => (bool) env('INERTIA_SSR_THROW_ON_ERROR', false), + + ], + + /* + |-------------------------------------------------------------------------- + | Pages + |-------------------------------------------------------------------------- + | + | Set `ensure_pages_exist` to true if you want to enforce that Inertia page + | components exist on disk when rendering a page. This is useful for + | catching missing or misnamed components. + | + | The `paths` and `extensions` options define where to look for page + | components and which file extensions to consider. + | + */ + + 'pages' => [ + + 'ensure_pages_exist' => false, + + 'paths' => [ + + resource_path('js/Pages'), + base_path('extensions/Invoicing/resources/js/Pages'), + + ], + + 'extensions' => [ + + 'js', + 'jsx', + 'svelte', + 'ts', + 'tsx', + 'vue', + + ], + + ], + + /* + |-------------------------------------------------------------------------- + | Testing + |-------------------------------------------------------------------------- + | + | When using `assertInertia`, the assertion attempts to locate the + | component as a file relative to the `pages.paths` AND with any of + | the `pages.extensions` specified above. + | + | You can disable this behavior by setting `ensure_pages_exist` + | to false. + | + */ + + 'testing' => [ + + 'ensure_pages_exist' => true, + + ], + + /* + |-------------------------------------------------------------------------- + | Expose Shared Prop Keys + |-------------------------------------------------------------------------- + | + | When enabled, each page response includes a `sharedProps` metadata key + | listing the top-level prop keys that were registered via `Inertia::share`. + | The frontend can use this to carry shared props over during instant visits. + | + */ + + 'expose_shared_prop_keys' => true, + + /* + |-------------------------------------------------------------------------- + | History + |-------------------------------------------------------------------------- + | + | Enable `encrypt` to encrypt page data before it is stored in the + | browser's history state, preventing sensitive information from + | being accessible after logout. Can also be enabled per-request + | or via the `inertia.encrypt` middleware. + | + */ + + 'history' => [ + + 'encrypt' => (bool) env('INERTIA_ENCRYPT_HISTORY', false), + + ], + + /* + |-------------------------------------------------------------------------- + | DevTools + |-------------------------------------------------------------------------- + | + | Records one entry per request to disk so the DevTools Chrome extension may + | read it back over HTTP. Recording is limited to your local environment. + | See https://inertiajs.com/docs/devtools for the gate and storage options. + | + */ + + 'devtools' => [ + + 'enabled' => env('INERTIA_DEVTOOLS_ENABLED'), + + 'except' => ['telescope*', 'horizon*', '_inertia/devtools*'], + + 'storage' => [ + + 'path' => storage_path('inertia-devtools'), + + 'ttl' => (int) env('INERTIA_DEVTOOLS_TTL_HOURS', 24), + + 'prune_interval' => (int) env('INERTIA_DEVTOOLS_PRUNE_INTERVAL_SECONDS', 300), + + 'limit' => (int) env('INERTIA_DEVTOOLS_LIMIT', 100), + + ], + + 'middleware' => ['web'], + + 'gate' => env('INERTIA_DEVTOOLS_GATE'), + + 'redact' => [ + + 'keys' => [ + 'password', + 'password_confirmation', + 'current_password', + 'token', + '_token', + 'access_token', + 'refresh_token', + 'secret', + 'client_secret', + 'api_key', + ], + + 'headers' => [ + 'cookie', + 'set-cookie', + 'authorization', + 'proxy-authorization', + 'x-xsrf-token', + 'x-csrf-token', + ], + + ], + + ], + +]; diff --git a/extensions/manifest.json b/extensions/manifest.json index 6323bf39..2dadb287 100644 --- a/extensions/manifest.json +++ b/extensions/manifest.json @@ -1,14 +1,14 @@ { "Billing": { "repository": "solidtime-io/extension-billing", - "ref": "main" + "ref": "feature/composer-update" }, "Services": { "repository": "solidtime-io/extension-services", - "ref": "v0.0.2" + "ref": "feature/composer-update" }, "Invoicing": { "repository": "solidtime-io/extension-invoicing", - "ref": "v0.0.6" + "ref": "feature/composer-update" } } 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 0000000000000000000000000000000000000000..c33b4fb7d5be949318d367586607fbd96898280f GIT binary patch literal 25668 zcmV({K+?Z=Pew8T0RR910Axe}6951J0I+lb0Atet0RR9100000000000000000000 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..d98981852ace846c1f571ba416cb6be56f079ad5 GIT binary patch literal 18860 zcmV)8K*qm!Pew8T0RR91076951J0EmPD07*Ll0RR9100000000000000000000 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..f3ac9dd725147ea13dc5b69c62594e18ad41f525 GIT binary patch literal 11180 zcmV;dD^t{WPew8T0RR9104uBj6951J0CFS%04qBH0RR9100000000000000000000 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..bef4cf5361c503ecf210e418df0a78ee0a419181 GIT binary patch literal 89876 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%0A<#{*SSilQ>nw~|XnyAsrCX>!EUs2{anT`6S z*9;0przcrRJ|8jwu>Qv^YQ@P(L#mmI^9@OHV4Ve~<}rlil}PL569vDnx?KfoG8P6zP<-#>Du6urLOvZrN#4D=iC!q_o__GJ6jHp~9jh;C=SZB< z5uR_zH{|DzY&5z(jL!8)OTDINLGvcPd_ZaFH&N^|Gm*jQ!Ks5v(PCJ8YiTeReR@IU zPld@kd43%d5)-AQP`b%%l`Njz;ufv561AXH7y;9?_yjh zX$*Pqklf=y%SyTOVxNDboU;;OWOBSoK}Q=RLHhmxaOv8!yUOlajb<7Q`Y8D%mJkoc z;!`oxeFDy$*;)lM2XNqEgIhk_l>EI}Q_ zx4=m2Ga!gQR<=M8IuX%x`OOp;$Gc=xRSKOsb*`vjfHs|4 z+7y;bp)r#-uRK#nG^bTjbc)m_ML`{H&XmwZNKK*~xCmQE`WL^D-hm z@LGFyy`KSeaWZjt$wWa}s&>t~VC!Kel7fMrUFVZo45;;WB9iIUZ(if(Ok}zPK@%6j~5bctN0$A1q&y0$JvMv)X2Viug&m~a1SgKm_ z`l_K409_hq-E(7hkLbOhVq`s}g+YQu9l1ja&)?QsUAsnItk~`@UKto-V7w_Mh8(Fl zvD-+{vRh=dnYpUWDznP0GONrgv&zhTe#l|igF5-Z8$NTKaA-pqqNlfX^+B=wJYM4A z7()A`cIzI@?(ov%C#}=gA+H9^L7yFz?rJ*s>lEP*h>zEjzs@>bCMq6ae#djkKV}Im9#sxZV}l$MYS8OF zf`0HY15OadHAXp!u~>?8J@M|V7^rPHWZ6w0BP}2$v#{x~18JW)stPUvk__ZvwKg#= ztvuqpt@rF6%x)I+>DJk1ZXO{%$=Aw_%+#-=j{%~rNpYc;xt}LOMTVFY1ihG}9-m`Q zK@jF>pjM=Ti(%2krt5Ue6t4wV9ALEW@VN46wx z-8z*}V-heol*vyAMNu@gVYD6ut;WXZIgw4z@r#}#nV#d^RD=t#7+E(p=22l1qHoK3 z&PKY@ExaChCH}TtPXR&d3mIJ9XnFv2aq@F_$&{l_;;Kc(?6h@J4An{jFY5!P{>Cin zfmKL%8MBDyisO%%x|w~s&>n{I1Z!LDp_|%#6~t!r(1-FTG4M?IlMcW880bEu)CXah z8DfPsZW-)r*KCK1fm$ZjT0FQv95M=mu9%04`eSJ{ddwC!CWVUQZH7&PO4+dU_HBi( zi_P2u0Hfl$G{kZ2yKG%A{ZIz^EuVPJ1yYx4P1g!p^ji0l&QqIgIiwn?cxcNXW6_1Y zqb2KVLW$UwNLG%1BBMo;MUiAN3Xu^{WE>ze?n|;bh{(t$aSd^Z0(_7OHYpwpE!n&+fjEXO%(RP zLbq@I-$ z=Dj`3ScZG&feGCZwDGags5Tmz_h`cw=QscsiaLP z+IZBB%!5wReBUxOQ*+1mJA=E}LPAiI!JlTbZS?+^$F+`dbjADlZc4&-^l zV#u&C4ALZK^om5ixLfy5-9~d44qK-43%%W?+8=&k*_KUvIzT&c)A+lo!&B2PlI%@w z_ubhK;|}LZ{_p~0W_V;6jD3R8z^zKnsWXsk}IhqdHG8&1@Npw(F59~)BP4X$$(38q|W8XJWC z6$6$^hXzN7oo3zjlpfeRywsn6I3}89!Z9)fkY-{bG6OWFun%O017wCaGQ;(m-EY}? z)&ciU_Z~cPnNJzWo{$4C_8bt6?K_y!339r}N#hnUb14sWja03;xzq=c`svOyV@=%y zEVoV9WE=WBH{Y{OdrF(8u|XRcPOyR_nqm$Z=mWs|C2jSVWG<0G@{~v`GE=H>=w(DM zxB*wGNqb@ljS}0L-?ZyEh8O%l)wqXHU=t= zj0~Fug_W76_AOhxrwJeSd!aiGpG*NP(dgS^;XXnB*K0=?h>B}tGb8gwMD=S{t@s|{ z3c{5w_uX;63Gm-tQqf&%6%Wk#%_u1Pp+;X!Xm~C^>xa9|1c^~aY4D{Se5XcaQ;U%7 zsu&Jgc`wgC{z2A@N#dgb(8tD(4eb=T9m9)FYcup02LNCCUv!l}R>jy)UI8a2BXuI2 z-XPRQSeOxNGTyBNAtgxK6*@-lNQ<5cfP+t$OEJAqqyd`_p=ETtB|{5Lq}Yw=yb(AtnvUkoF8rfZn`Gj;cQVYLG#GE zU_=Vvbbqoe0D0@r>Jzf=&|B0zeoOj+GC6k4RZ8-2j*i3|8^T%vyJ* zLyQDR5jKuXN;H6R+Bj{Twn^&`oPA%nYkVCL-%-JXkL<$uF+62Hk!p5UCxXPdMrqhf zIhdhF6jMu`1&@Y1?lS)orAue@0q~_U3-63eVKLtsZ73#u)spu`)INVThoOsP&W6(X zJ1FG8(;}bk&~7E;$3M6zh6=IJfP@_m^wPw|&cq)%x<_{7<+#_6MW2ukZl)c4OfD^Q zl+O_PTNnJF0flxKxN2YfHmpu;_YmUcZ93F3|Ee@$8LC6+N6Gjl zMG1fN%sziZANyZyzA_89_0`azZLeS;R8M-MLe!K3z_ez+_^BKm!%~2!OOTgiZ|Ij;>6+Uo2a^G#PLrZaHQYu79Gn##6To|;Wtl0iyX=VOWRh}7$gD%-Tv z3lZHe7*Hqr+j7_I@CG(l;n#V9P1AO(BLJIo*07C7qjd^))2St?BJLWD)u&(@h-6D> zm$KI7S3(V+9s^{$>%hnqJ~S^TJ6##iSS{%aS#4rem&2Lgea9I7-Ij=11purafrZK@ zah(RllyCt@8re9;L7m4sAum-;RNO@c#3qQ~EnNG1*W5s7@=-+wTw)UfZ}l9eBq;-j zn%LS15aQIvatLaRF4{DLOz(JC8f+F4FTa@%AJ9s&%kL%a+~D3eBvqIOIf$E9!fKNL zO)1e3C7I&oWHg{53{qk=R1nRmwTL%NM z%I45i#fNXGnW7cG=B3HnW=L=2B$RTd!{-rtdQuVAD*lo(wR$52ujv-bJ#Lls0yKil1rjCl$>mFd2d2zDkB@`QkwNG&| zs_~^*Q{Yq+7O2+Bz8SFsGIvlL%qU9vAyZkzBosf$jv*XXGYovDlbS%51#>7z0A;;p zeF$hUAk-kv6e@(h3w&RS(2A6a2ce2ID~J1Xz=TBiq8I1sR^udhqwc2bbK<&B9Fr8L zToZkAcmgm09Zb|JdMa1ET4Vp{Giy=h=~_!%H)h5WX@cVFotdbWKq=o=+~L7u!Z%+c zc=_oN&v8_Y1xs2zj&cmMLli(jL)uQeAe5$}QaVACoWgUYuB3(>_$lfVfM4R%CQyW0 z=gupMwaYrUjI}C^nY>hn&(RPSl-^83^Chewk(rF5Y8W`T1#gy(Oj64@%97-RoDzYS zzEpt!XrHDDG}Its*c@V^>Sq_s?>QI(8fs~oY=PLyfcgy(YZw$Aze*aU%!}QbN{;9I zW;PadJ2tkeE+4qqwmb>_&!;d3)hB&4p|z}D$NDVi$jE}>p-i-}CNFrHDluxf#3~_% zEr2y&G^B{I)nrN#Q%MRU)qruC07ehE>|Qj%z2y>s9swV2^&`vtx+kUn6`QQgh|x|f zvd>t35kn;iLCe~!rpoZeNG){YP`uKi_h@P5zl`>DDOSK_#Zf4=e#>1@KQ; zeT{(_D&aFzysWo(0(xOsJ17+pNT2;gm0fRf^_C=(PmS-!$*Lf48yW*K29w6n7?g1= zT4P&O#8Am8p}eA6$QG1ZJS1-;Ye&GCJH*qNh+$hFKf}88A+;4SQy3JSkOHg-dXSuv zEU=}3TqM;lCBR;C&#dVPnyHBd>EYRFhhX5DXiET@L7vg9At~Z-;?~4xCaFihZ;rST z?kP^K3j{K({Ud!mzZv~Texni{k*4L5DW5y@L~a)63LRDJ5<=z(t#Sf^vr&B~2n0erZB8VW7R zC#iMs9J2YYvRaPyBFm~yb<~ElM44*hn@az)!vP|tL1>DTS41+|zM#sPDad5F8>33a*37i2^P@x5HO%~2Uptv1VOpy{{aG6 zgk9_*mP5!Xrka~PrkBAuC|;?OYrG(AU>3I8)b8Pry~hW9bOPuxLKUz50vun?_8Coz2H*E1*1h~#tq z{5FZiED1@vB|~R_IeX;nrL*XU3k~-g>Kn$k&2MW;Zn)YMgaG0)}=r(j` zx@#R%r_wofFUPdMK|g9Qw8I94!E6W^It?49MyIZs`r#DQ{+ISg+h1w_sQs%0Cl4$f zs2#+OJFfn2&jWj2+UqdIOu6YT)0a9gcYXEL&e z6v4b3@jfy-@@FIv2b+Ssz@>0Kyd2&Hr@@=xUGRQ{8R8V;J>qYCZsKoFI^;=|HfjvjhLWMi zQMXagP%Ef4XZNJABzO`oiJhcMDotumq9-*cbterbT}_%#dWF_Q2ch9;0$PZ+p+BJi zadk-cNsda+O1_*tll&lgIr*F0fs~{aYKk}|C#5Xq3`Pl~!Bk>w7zT!qkzr;q^O(0- zODqCQ!b-8vu%EF1csisWPKBhVr*c!(sg~65(<;(_c&PBtUQkkRBD5NAp&g+;mLdW>2{U89b>-gbTL`oVS8%g)W02BD?V zYG_yJHuUR^5JnE8jM2d8WpEiCi~+_Kk2#OGp25r+mX4R0_0XHfe&A!nL38LF87H4p z$LZ(rIa1DNUtexEw}fluc5@rK67C51hM%^dAFqtJ!@K48$nU-1-@8EmUi?r#jGxYD z@#XwHzJ=e(=kUe+UjC{#T_6?c1yzC;0aL&iTojB5ZUov0Q9`0nAk+v;h4sQ7AxGFH zoC^Y?X+fc)K2f7sBiLIUE=Gtm#C)+zyeu9RUkfpkj7Z*xtoqwSeWa06l$0u!NcGY+ z>9bJ1(11*3=Cd$6S(1z-6UfxEGMP=T9^N4TGq^tM&yWg5qvD^?`fOBoP4=ovAC{|n z9Al?$Q$K<0!2>nrnoX^Nc0{`rN6J}=kJCL#aMQnw&_xCsjv9XL!{#yaw)1YIee)Od z`wQ#}ItxY$W-+fYzoQ(mNF&u)WZWp+Qdn4cxkxQBv#7V|R}8FJSv*~QGie!rvZSTt zezIC}LFw_*#T4ZfMcK)+52*&GU{jna*+eq&Ocka^)38Zo8Z<4Xex}4tG{ay+9%x9& z#YZV2CG(C zF#;e^rqbEMD6{Nxi6^`wlX6-arI#`0xTT?yR|yShs8t>7S~N*yQb_e8RW-LVhqYO+ z^=!$G?baA3GqZ)Q&T!-1+}-YB@9|-u^8-(RcA*>G>!lv?wAZ7B!XE9hE@opp7>~gT zO*kSye36K1K9%jcH8+!am&R;wiuSY%+f}o)iRxA5s#s;KQwz0MUXR5oRoN=Pd{w_V zE6ze`LvBMw!^=hPjnc;3#e0g=iWf_)OOPe_5TXz zBCVgko?c3SMt{#RVe~UqhL|i@)~T9ZHAZ$Yd$QK7wzLj3)>WU^z;Bps=xTV!N#?9^ zCODtCXzmA%gvJk>yqiXv6wRlbHO)oMEzQj4w&o`-mM!L%r>#22BU>N0{wxdTF?c1s z9-f4Eh4+g0<2*3$GJlZI=bQM$e7QjB#JUsaf;d5uU|66K%nSaMhYHEUa^ZlmTX;?Q zrcLG4*0%JvlD2E@cJ0U8e^w@nvP3na3DJz$K#UbviO-84idU;ZXEt;Mbr3pq9m^e0 zJFPp5JGZ-(mV&zGx~98+T#o53>Aowmkqk@b33y^}Hhaun=25eo|9!8e-7;i3vZUqJ zqP2uAjsA>Z2|8~_-do;y_*j2x{fe}0z7KvlV3s~;#GU|=|#veaWCL5Rir zgE=t3f)A)I*Y=3r4m_n~DufT49`3qbBT6ET`1z~MXSy)4!&)&4+8{?85%Ci$_GR!e zIGzPfiUp@j%^6YHx0d(b=a5Rp**j>^*_-m8vE{XI&;ko>ME;&J&(M9NE3hC!DZ42i zUk$BRLNEATF0XZwp18W}nca%4azm$hCh_Qij&Of^d;{U&do(MqVF(*QqaGOe%h zHabOkp+4^g8H}n?!=Q2MaWRHtQk@)Oc!a>*OMp#7L23~efD&%mI^y+jgJ13 zUHmW*WVs19mM#azfAQ4hc|MNIQ=TPTOHmJZ4UN_Z>#)P-O9Ccj&P*!Bi6&mt79<{(3ny=JjS=q)BnMFo^cpf4}F!4mh2oW<$359h}2>g=n^cw z$T;VUo=z)x;FB74Ed=lO1IwCBq(L3q^!k9|#+Wdu!H}_Mvw7pw0khR=TCB`M8WrK} zW>8pPLau{-her1&w=Sq}lDEXG-2eJleeo@3dQlgN?H~iY`EBUbU}Oxme(k$ zW^7F~Xam0L11l{Zle7VjpF&d}%W=r#l4urdD-j@NOu%a1vrB*(96^b)aoJ$J=;x=k zvm3h_;|0)~`(fXW(*FeNQZ?i#wl_dk8i|;0LW@PE-ugF-z3-Spl?|&l^&oWQl*3{@ zpcfSQ!%AMR11*t-2-q5|KYUV%J}x-{He4f~wPh>{tQEm|>l&$0X z(EJWOiq~mX-q44Q>4MvX=2DO|0xyD}!ZMn8%wu!-SUp5UYgkaM z&O)rEBTUZ6d)yfu@a_LV>>kf_CDEe6pibH=%XQ$Qgq#o4)L{_%8Th@xpIiq4Xq*E9 zPaFz|YfWG&yrL0E;7NzG5+Jc3Px1JFO%sVFXMgUX4|JXA-TmJCPq)8EO*W)|X>va$8-Bitb!4sJnHG_6HBJp}w}~z=p!p z^X(!jd=Y69PN>JMi*34`mCbIz*eRc`5WX6Getb@Qw^!0<1=3v$#;#16u9&(6ga@QR z=qN*>NUAFm4|(R!X9n$<y2E&gOs~SkTggbniOkeH{K?I6W6OrdiVmJahm5F{@=4 zLrfn?i16GI<&~kyyR}?9t?)D$#h&uA`!I%Vl-QdV>Jq)h(pnX2WZ})P92M7&t-6ny z#S1O4!|9!lje|j#+9TQiOIF6fi$ho9#b^a23|{)N{N9P&i{7)ev9PP zsalC$6xn{drDL61IboKzix*o)Y%f4k(5u$u3#U1LpacI2_xNyj&j^MXk&^SWNW@B3 z%X8_p^}ih^?w_ck#hvM1kltp8%8A2~$j7HF(8w5O8~VVAw;i~;4QRlmacC&KkqPhG z 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ceb9aba88693cb89b06e1fc05b681ca91eef4c98 GIT binary patch literal 68332 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 bjOk{jFd0cl6V>ciu2TKjT_<-cHUt0w7M?ej literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..6974b16a7ece1f5b6de03d6b2fdbcaf97b32a081 GIT binary patch literal 11376 zcmV-$ERWN7Pew8T0RR9104#6-6951J0B_6y04x0f0RR9100000000000000000000 z0000QgEt$c8XSi-KS)+VQi5kcO;$ltUIt)4Q&d4zflenT0D@#MehRr{v>pqC6aX;Q zMgcYgBm;&d1Rw>80tX-)BWeTgFgOoDsC4$mnMh&dFdOWcPWI2kn8ppE*drvd^N5hZdw z|8>vKeY+oX3h+1co2imOB8oK8gaX_L|8~2DUe^k#kiIvpfYq;k+TX7~?eRMRRH+Da z**Yu!zPE?7|A6-}M63yfiLm6rMPd2)#Ix~{2n`?bcYg_cI>i3NUP=wxS3}_f?Kns@>Os6~V2Ou8 zHVjyU|9+ot?qiGgVN*!MWDY_6(#lu$wTGcn8l6TJV>A$Sh9K|=BhVS4-IKib_5QC4 z7#;wx20jm^0L6mf5$_B#DVu+=@Abf;Cgb9a;5D$@H4Mei75E*hI z^6ZDmcL?H$6EG*;gD6)HQ=tOlp@%S)Dq#>Pa1LM-g5rpyjybN}LzNJS6A<86FyJS^ zmw`hofCSnPLEw)g}#Y=6ZIzcUE=?V9}+(rd@}hO+u-^w_FMe7#76U` zh2L#|TK}^9-TB+Lid*Z%Kf z89EDM2AL%Z2p|ZxTWT$86MR{K4Fu%$xks;kZ|R@F$PE73T~+}KfkJ=}e_-Di5a<_G z16+#;1hCHEarpIa;O!4K`?ihAV03JZUkgU}=(JQ&h684q0s;o#xjrBs=F>^{eblD) zu;>=QF%_)74H)ZaIp{vt<~5)J0_qbAvoVIiygBH5U!~odniXLn<3JD)$W$f+GFdrZ zC&DsI7*oT7<*ErK`y-&x6}zHKCufq|l1RgdPFA*SqPu_gDMo1&P6|%>DcYDxKm?`h z1NofMIEYYRa?wxh@vCe zl|S-}0+bx|1s-lH$)Y^I-f@3sWpaimSwXYzxrFL0Q#<*6xK_njv{CpaUdUMTkorqj zobEq}&WZKUit2*;(OGy#-KfwKWMYLsa(9VZV$*H@xj%bn{L(VMjkoLirjTD6x_q7p zmOHx?0VM14x1A74DxA?NrhaDy(9__1CoH_)|Bs1sA?>j7PH%auJp%hnwh zF+DFI*2ngYtlp_2`ugqUGE|T;PzK`3O2CRh1s2eyaObc|p$BI8y2B!-duL32YyLLh7Y|YScdBUV%5d26&gcz>ttk|S+I=RmzCw@icI#dL;)8qOW z{Pfx4fkA}<<7iHvDPt!MG{$aPAfJ31V-1aQT8uy7Ar-^>i})IbQEsn>0uG$TUZj!5 zKZxrrfPYK}@o0>yKc!2{6KIX&L^Ui7uoudS`I>`($3j}@SXs(Gt~)I2ileT+zR1wr zs!Q7}NXCn-LTw5JD|{;CvI!R0)(0Cgrbzb6)+Ke_VOiIHNUN`JUu1Y6z91R|Ui>y) z+RDJDXUmfI&?oxN`PYk7F10}QIw}@>+fjI%0A1Je1`%Jyvc9E7-M4mWixb39Xdaq) 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∋C^^`I6_765LOQ6 z*U;c6L1wBQ5C(kjO>2DZT>f!_J#wu!7JhyXu*HJr7(wRM~&it*Z)SD!B!nxFh8bo9~l3X0Y(7C_6OR2kCzSdcmH3xT@Z5vgSLm6P`SV`AYa)4av zt+W)-!L%dXLfKlYFx!5_QRdg(2`-zP{X4f?0H}b0am&*3*|Xx}nwrl?_TdA3AGwr_ zjK`0ytak3q!%9n6tT_W$ifd-63uhm5jV^`s0##d5w z?=&<_LJf=)t151~hg3qJE;Jnc5g3Cm80%dq#IT*_B3reQwf;-S8ku4 z1R4b#=IwLYD(wb^m5z{`Q-Mm*^WL9-I**w9^abS={e6vSeDavT`+ToRoDV}FMmO((n47G7OXw)OVrZTT8(9blJRqG1DM8!tCJ zJc4lKXwHdxv&NbyM=D=YIuYBJ0fA2kdojhrCx)pN5fYG>QAbOQ$LF>d-+_u-tF#!? zukSWZ)z*2y{-*;=OzEh)#Z<^=4; zR6Sc6mF6Pz&fdT|F1fDYWB8?VoS%(`0YxXk5>q>>ii$=|D!6w9-XBIENPX(?zVrY{ z@j!-8KOniiRNx)r1~kw#T46?!EPM4ziAeJl!lg1i!3LJcZvcHT{nMISS}c)l%~t8P z@<-z{6tY|K;lpre@rd@M%N{>sASu(%Y5#Iai>q-Q# zMh+AYin@hMY^;-sx)_R|npp_}cQoV=becSnJh&X(5q_mogK0}L)DBNrB4ofG{i^+c z7<>=ztNB71p5@==%$H}+Z=X8C$A7+h-PTl=Z(Vb_iqyWA+Ak9r2o(!!&G&~6Q1JOm zC?6UqIyW&?bMI;6&!)EFQ4>+*M&qU@`Wevvpf5)6Z<2#p!P8Thh8{XpPVo#1SmC$K z%TW`V{(19|g#Y?gZG#2BeNvPVTecUt4<#y9Ha;;jOUQHSTm>e*<=S3;9k0B6d++*} zT&(p&r>ao8rtvNcr!W6Q9_{{hRvhHa){M0G%`h3_J>5D7-$+& z(N$GFc~U6URUZBIrJeLB3v2!I=Gq}%gnwT_^$^nuCXD_aMN#DE}F#$5BY0}_q$nmQ}2>HVz}M~bhWKcAIVRCM*yk<&(VPm8Vl>c2*j&T!t7 z?r9Zf1UL^eK}?ULLWNw6MGOu~a5{Z>f^ay)x~)y~q5fr#vJ_<3=^rp}ttcR8=Eb3U zkj-~hs>}`b0boygu7AUgzUGWSCMzjge`r7MMnHfPUXxp4TD zvF!O3&pewmj>cJZ$nzQ5f-N|{f6n}5M1yRoN3o~@dW##zolf8ntMm(x;e2Ir1(ea* z@wP9GJ$N7t54R$Xw%0S_$WELn8&Gm~ft^aa7e}(Oggf=& z_SNuEcU>?QlX3j-Uor*HRqbnR9{%-9TiX~f-wF4@47ZNzzkQ?D`B<2!GjK`eeG8!H zuq(jSs|7uiXam!kQg(uX47K$`bG^I3s}%2H*Xx^ ziYqHfor&?iL-2MIc95D{<+*`OMmr5vc-#KRPe{efjP^%?ynO&%AUu8UendxEe5Akr z*<;|1`a2&UdU6#VP&dS?G&(*rgQDonG)||%f#+Rr#El}-t%+6h@y5#s zBs}5V^DkLH=Y+Na5p)w^EBtxVQI^qdr=9#M4047uDi&9t$sj;#dDe7G!f`~F+hxcm z<)A=i=c==l2j6`iS$dCE@_VxC-9=EK8(0n7^~?MR`uabU{Q{>7=j_h^pL)jr9o9VB ziUgTtIseBEDhurF7kf{|NK-vKonTXjwv~2txLbPi-mx=BQE`He+KJ)8(?LPZ(4Bdp zzBE~K^?Z6zH|eKf*(hEi)V1sbOWe(TZ?2CPxE|ZJ=|NrmnN%UMmjlg*(E@g=8VTNI zguFgD0XK*4H8o-1+c7vZ-7URdGV>Q5Ie&u0=+FdJ$LLpmLyv*;(#S%PL~=<}?sY^<#p7%f@2&_ICyMdtpHDN|=xmop|sO$E@Y zDJJH@N#sS*Fl>BMb!;==4$NVxekKd^1^Q4I1C4*>?fnX?sqyew>|+DNqvqz&(FQT4 z=FVQrK6Cw+1pEE_XO^UYuB~}P+7YgFS<^<3`D0R24ser4HnlZ>{4oMsh8SgY=fvT( z!3l~NAJd*#VJJb_>;-vR@RDJ;)DgCT8-(lURZ*F@OjPq|4beyV>1i6^c>?prRF#FE zo@33Jn=9}o5-+-#%teIz*qLq+IWb`O39O6XYX9B6I}g0fK64nJ^e}8`a8*B3nx%lI zl?b7!7Qs`KJ&a)lUm5)fSPVJL5r`^=V5W&e&?kaEz@_aO)A9z_Jnx?-n{?@#H_c1Y zLuFmHV(QDvOZmo2l`q9uZI=vBC3fn)jFZ99X|+AKFZw5g6b1)vhj-hLD zeBDu3kvSUii}4uh@JWSbEe`i@NH1kTI=De}|L4(>m5B@>eQRY(WRuqvsSrP%`Hp2C z(>2k9LkcLJk5|oS0aEx)=M#e&L-sT7Ve}(lFl1I_+O(x2NCz8O`943}%#W|Ff9Na= z<1=+1K7XQ6=p@ngvzHz;j*uD9G$@oKM|Twz6-|j3doKL{{rmq#d&KDHj+tG{CX%k1 zwaQpcoe1tPL;amZwpP{)+nwR5pMH9)petTqihUuU+=!I!BV&0Zz$p8(dsA zI6#3@19e!co(p72HeOX|f=;t0U>m}M@nA-U)xbT>beKOdfWeL0+FYm|SzEW}A>Q6s z@E&jX?mPytx7+xdM{i0nIhpL>wB{c}fi0)llt3^g`OqF$J5+d13-}Ij$pv5oBX#XL zGaKXcX9@Pv)b!)QUt3#LbeX}24+aF5VEKJ^#&F*_$Oaqk-U5s|1+wXhS=M~>j_9~rCT51a8XFHE{?s*1q2eS3b(Oey{ZN1XTKc=s1MTnLu`N7?Lb>_%&CJGM zmlCMyVaG#^OT;3$`I`7UL>@hii!*pH!r6FT(c36wzXJSsUA(32CBh7Z_D6xdLODJ| zXxOC^jPV!Yc}8J(@h8^KW<Tk7ZyvlqJO@F_^2%$V8P$p}Xohj|-*E9~!u#+S z-FWlpIuk#yp8jnv*IACd3b3bhJTrJ~8UgK(0(ng_oTlcJvalBHK{9VXyf96I_D6xd z!Z~cSu$|8eh7WBFwlEB3-lE4$Kd{Z=Vfc$%JX89!33zq%4>PgoZ4}5Wl;g98;X`YK zbcUhawUyTfd{Dfng_BcNm4(I4n-YrBn>R{d>?EYFuGOn~JO?-p7-HGDpEdOPn*TGR?%`KQ z+8&0sNfh1P)u8oLGqi%5`&O4w{A?7-vGGfEguR`^*l#7Xv9c_gh;3z z9jyXE>p}f41hm1R(4D5%!O6)BZ+hJ{C@)`C_3E>P{pZhQe^2tmzaIN=d{O!*{zx{$ z7O}?1U0nRbqSvi+gr}bR*S1sk_wT(Zhoh`POqui1o~WP!8U^<2lnE~HhnVz3T6yEj zRS8p0u1Cp3l+3m*Su6=Dh{mTY=(aezzU$XVhv`#OlO6R?g3IyV?=2aEF)SSDk;IK; z3kyo1ddLZ#H6oLR*lzkZd)35D5M9CW<3}IH<*I1D!`?R`xP0hz2w-wBa7yJooQkq4cW4x=9Om^#AN5&^-W;(+=@7$JWN4Nxw;L_?7 zznAKh<|rT#;_NT{t8;jA^77l>{~A+KvAg=v*#4_~Y_#?Lzr|ydvwi2n`g?{@b=}5K zU!ZzmJRXZI#(SQ*U5{9q%;Kr58(KSBz*b9(G3aS;sC`6@U0pKuQ+kw$Gd}L&5fZgJ zJ>5yxD{xEB{-(&FRnft|4i3}PHoj4*>((a!;|x3Hdgr}@@f!8o+D7Qg$~yBE(>WUG zBW(i%V>2=W`KMuJZI7mkfSPwDG9ZDfgJJcy8t+2S^518mA!f|Y{Xx+`hlELGFkMou z;nq+Gxa`5{vKgJ7ZAwaQN&a#488h7I1XwP6T1!ROPEhT0s3NdN@D0qtl|AFjJyu}q z8;mO|jKXATTH|>+xLcxvgO(;&#`A9v}11Ns-nvG$4{K$QpVby zLeC!^d{7DQu(J9*0_0z;R(+u4nbn7M}}B*w*W&dzj%7hc-ku^M`R|LF9b z0?5#i(maobvLdB*9`tJzmVo0x&(?-t=S>=@2)hWPtKspDI}+i|5igo~TYi08+mc*8 zmU@MUgoJO|lCVaia^o~D7_fl#TsoCnS_)+YGnPt?C8V*jtSneRuy1;L-zp4TU}na( zWj;B%60NWOz^vZBwUUT2FE8*K*e4T{PZEFtP~iBnrkJQm_M&krMg_nx?|#&LNQ-54 ze<}Aqsr3LFpa2Mf{|YEMsWsfQp#WIF^?$325O>lJu>5icUqM-YC`w(IY{(7Cr#RJi zL3q%l1{sqeQZ)fVP#=S`KENLn8aUKcusrec?GSp@c0l4DEb+$>6uM-%VFhFbXV-g3 ztXGk~7kbt55fs8Wwk3l9NO&&lo@h3gVug;z6@Yib%i;SA{2~TrXr)grsJCmX)KIAr zGFYkmEX4pP@>Ara)L2<7WZQtaF!1sW?Si-8_#oV#0uO-uy6!jNzMFC9VThuOrrmFa z_Kzgy5a3%p;9}qqeKdQWBdP17XaH_iFJ3_i>nap0Ps4=Ql8pP2SQWLCDQ93q5MV?L zpg@gA7-**)4*Xn10@G|n1|kwsKsSzwD&<9JX$n!T&_O>e4B(i<1S3)`pn8i9+OFW> zIf~2JYCMGSCPx=T0&3=?Qm_C6A@s@_BY@jjCq=YW9@0chmL!(Hcw43MwO-l|a%vh@ zUbPJIeO;$Y6K|tHb-YoMXfcwt1suzK(PFKAWu2RFNuq5OP35|E5OF(}LluACJbk5j zDM^81=Nkq-5H~@(l&y7srFS)df<$TS{L9b>7u(H0T=SP$SEmkB8YDg>5$Jg3Hc7Hh zDh-y5nKEU@UVassertOk(); - $response->assertJsonCount(166); + $response->assertJsonCount(214); $responseObj = collect($response->json()); $this->assertSame([ 'code' => 'EUR', diff --git a/vite.config.js b/vite.config.js index 5456a370..33fc318d 100644 --- a/vite.config.js +++ b/vite.config.js @@ -5,11 +5,7 @@ import checker from 'vite-plugin-checker'; import { collectModuleAssetsPaths, collectModulePlugins } from './vite-module-loader.js'; async function getConfig() { - const paths = [ - 'resources/js/app.ts', - 'resources/css/app.css', - 'resources/css/filament/admin/theme.css', - ]; + const paths = ['resources/js/app.ts', 'resources/css/app.css']; const modulePaths = await collectModuleAssetsPaths('extensions'); const additionalPlugins = await collectModulePlugins('extensions');