From bcf99d637ff7131cfbd518d0f4e30035b73202c1 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Mon, 14 Oct 2024 23:21:10 -0600 Subject: [PATCH 01/18] Add ModeratedProfile model --- app/Models/ModeratedProfile.php | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 app/Models/ModeratedProfile.php diff --git a/app/Models/ModeratedProfile.php b/app/Models/ModeratedProfile.php new file mode 100644 index 000000000..e9bc2fbf1 --- /dev/null +++ b/app/Models/ModeratedProfile.php @@ -0,0 +1,13 @@ + Date: Tue, 15 Oct 2024 00:13:08 -0600 Subject: [PATCH 02/18] Add migration --- ...044935_create_moderated_profiles_table.php | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 database/migrations/2024_10_15_044935_create_moderated_profiles_table.php diff --git a/database/migrations/2024_10_15_044935_create_moderated_profiles_table.php b/database/migrations/2024_10_15_044935_create_moderated_profiles_table.php new file mode 100644 index 000000000..2aa9580a5 --- /dev/null +++ b/database/migrations/2024_10_15_044935_create_moderated_profiles_table.php @@ -0,0 +1,56 @@ +id(); + $table->string('profile_url')->unique()->nullable()->index(); + $table->unsignedBigInteger('profile_id')->unique()->nullable(); + $table->string('domain')->nullable(); + $table->text('note')->nullable(); + $table->boolean('is_banned')->default(false); + $table->boolean('is_nsfw')->default(false); + $table->boolean('is_unlisted')->default(false); + $table->boolean('is_noautolink')->default(false); + $table->boolean('is_nodms')->default(false); + $table->boolean('is_notrending')->default(false); + $table->timestamps(); + }); + + $logs = ModLog::whereObjectType('App\Profile::class')->whereAction('admin.user.delete')->get(); + + foreach($logs as $log) { + $profile = Profile::withTrashed()->find($log->object_id); + if(!$profile || $profile->private_key) { + continue; + } + ModeratedProfile::updateOrCreate([ + 'profile_url' => $profile->remote_url, + 'profile_id' => $profile->id, + ], [ + 'is_banned' => true, + 'domain' => $profile->domain, + ]); + } + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('moderated_profiles'); + } +}; From 03ad41e2c454b536127900d73e94dfda53160c92 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Tue, 15 Oct 2024 00:13:45 -0600 Subject: [PATCH 03/18] Update AP Helpers --- app/Util/ActivityPub/Helpers.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/Util/ActivityPub/Helpers.php b/app/Util/ActivityPub/Helpers.php index 2111e3b30..782404836 100644 --- a/app/Util/ActivityPub/Helpers.php +++ b/app/Util/ActivityPub/Helpers.php @@ -9,6 +9,7 @@ use App\Jobs\MediaPipeline\MediaStoragePipeline; use App\Jobs\StatusPipeline\StatusReplyPipeline; use App\Jobs\StatusPipeline\StatusTagsPipeline; use App\Media; +use App\Models\ModeratedProfile; use App\Models\Poll; use App\Profile; use App\Services\Account\AccountStatService; @@ -814,6 +815,11 @@ class Helpers if (! self::validateUrl($res['id'])) { return; } + + if (ModeratedProfile::whereProfileUrl($res['id'])->whereIsBanned(true)->exists()) { + return; + } + $urlDomain = parse_url($url, PHP_URL_HOST); $domain = parse_url($res['id'], PHP_URL_HOST); if (strtolower($urlDomain) !== strtolower($domain)) { From 06ebb514d73aa008fe1d1e772c32702e362a6f4f Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Tue, 15 Oct 2024 00:16:41 -0600 Subject: [PATCH 04/18] Update AdminReportController --- .../Admin/AdminReportController.php | 115 ++++++++++++------ 1 file changed, 77 insertions(+), 38 deletions(-) diff --git a/app/Http/Controllers/Admin/AdminReportController.php b/app/Http/Controllers/Admin/AdminReportController.php index 8695a5003..3982d1d54 100644 --- a/app/Http/Controllers/Admin/AdminReportController.php +++ b/app/Http/Controllers/Admin/AdminReportController.php @@ -3,18 +3,19 @@ namespace App\Http\Controllers\Admin; use App\AccountInterstitial; -use App\Http\Resources\AdminReport; use App\Http\Resources\AdminRemoteReport; +use App\Http\Resources\AdminReport; use App\Http\Resources\AdminSpamReport; use App\Jobs\DeletePipeline\DeleteAccountPipeline; use App\Jobs\DeletePipeline\DeleteRemoteProfilePipeline; use App\Jobs\StatusPipeline\RemoteStatusDelete; use App\Jobs\StatusPipeline\StatusDelete; use App\Jobs\StoryPipeline\StoryDelete; +use App\Models\ModeratedProfile; +use App\Models\RemoteReport; use App\Notification; use App\Profile; use App\Report; -use App\Models\RemoteReport; use App\Services\AccountService; use App\Services\ModLogService; use App\Services\NetworkTimelineService; @@ -25,11 +26,11 @@ use App\Status; use App\Story; use App\User; use Cache; -use Storage; use Carbon\Carbon; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Redis; +use Storage; trait AdminReportController { @@ -201,10 +202,7 @@ trait AdminReportController return 0; } - public function render() - { - - } + public function render() {} }; } @@ -829,6 +827,16 @@ trait AdminReportController $profile->cw = true; $profile->save(); + if ($profile->remote_url) { + ModeratedProfile::updateOrCreate([ + 'profile_url' => $profile->remote_url, + 'profile_id' => $profile->id, + ], [ + 'is_nsfw' => true, + 'domain' => $profile->domain, + ]); + } + foreach (Status::whereProfileId($profile->id)->cursor() as $status) { $status->is_nsfw = true; $status->save(); @@ -879,6 +887,16 @@ trait AdminReportController $profile->unlisted = true; $profile->save(); + if ($profile->remote_url) { + ModeratedProfile::updateOrCreate([ + 'profile_url' => $profile->remote_url, + 'profile_id' => $profile->id, + ], [ + 'is_unlisted' => true, + 'domain' => $profile->domain, + ]); + } + foreach (Status::whereProfileId($profile->id)->whereScope('public')->cursor() as $status) { $status->scope = 'unlisted'; $status->visibility = 'unlisted'; @@ -929,6 +947,16 @@ trait AdminReportController $profile->unlisted = true; $profile->save(); + if ($profile->remote_url) { + ModeratedProfile::updateOrCreate([ + 'profile_url' => $profile->remote_url, + 'profile_id' => $profile->id, + ], [ + 'is_unlisted' => true, + 'domain' => $profile->domain, + ]); + } + foreach (Status::whereProfileId($profile->id)->cursor() as $status) { $status->scope = 'private'; $status->visibility = 'private'; @@ -982,6 +1010,16 @@ trait AdminReportController $ts = now()->addMonth(); + if ($profile->remote_url) { + ModeratedProfile::updateOrCreate([ + 'profile_url' => $profile->remote_url, + 'profile_id' => $profile->id, + ], [ + 'is_banned' => true, + 'domain' => $profile->domain, + ]); + } + if ($profile->user_id) { $user = $profile->user; abort_if($user->is_admin, 403, 'You cannot delete admin accounts.'); @@ -1354,7 +1392,7 @@ trait AdminReportController { $this->validate($request, [ 'id' => 'required|exists:remote_reports,id', - 'action' => 'required|in:mark-read,cw-posts,unlist-posts,delete-posts,private-posts,mark-all-read-by-domain,mark-all-read-by-username,cw-all-posts,private-all-posts,unlist-all-posts' + 'action' => 'required|in:mark-read,cw-posts,unlist-posts,delete-posts,private-posts,mark-all-read-by-domain,mark-all-read-by-username,cw-all-posts,private-all-posts,unlist-all-posts', ]); $report = RemoteReport::findOrFail($request->input('id')); @@ -1373,11 +1411,11 @@ trait AdminReportController break; case 'cw-posts': $statuses = Status::find($report->status_ids); - foreach($statuses as $status) { - if($report->account_id != $status->profile_id) { + foreach ($statuses as $status) { + if ($report->account_id != $status->profile_id) { continue; } - if(!$status->is_nsfw) { + if (! $status->is_nsfw) { $ogNonCwStatuses[] = $status->id; } $status->is_nsfw = true; @@ -1388,11 +1426,11 @@ trait AdminReportController $report->save(); break; case 'cw-all-posts': - foreach(Status::whereProfileId($report->account_id)->lazyById(50, 'id') as $status) { - if($status->is_nsfw || $status->reblog_of_id) { + foreach (Status::whereProfileId($report->account_id)->lazyById(50, 'id') as $status) { + if ($status->is_nsfw || $status->reblog_of_id) { continue; } - if(!$status->is_nsfw) { + if (! $status->is_nsfw) { $ogNonCwStatuses[] = $status->id; } $status->is_nsfw = true; @@ -1402,11 +1440,11 @@ trait AdminReportController break; case 'unlist-posts': $statuses = Status::find($report->status_ids); - foreach($statuses as $status) { - if($report->account_id != $status->profile_id) { + foreach ($statuses as $status) { + if ($report->account_id != $status->profile_id) { continue; } - if($status->scope === 'public') { + if ($status->scope === 'public') { $ogPublicStatuses[] = $status->id; $status->scope = 'unlisted'; $status->visibility = 'unlisted'; @@ -1418,8 +1456,8 @@ trait AdminReportController $report->save(); break; case 'unlist-all-posts': - foreach(Status::whereProfileId($report->account_id)->lazyById(50, 'id') as $status) { - if($status->visibility !== 'public' || $status->reblog_of_id) { + foreach (Status::whereProfileId($report->account_id)->lazyById(50, 'id') as $status) { + if ($status->visibility !== 'public' || $status->reblog_of_id) { continue; } $ogPublicStatuses[] = $status->id; @@ -1431,12 +1469,12 @@ trait AdminReportController break; case 'private-posts': $statuses = Status::find($report->status_ids); - foreach($statuses as $status) { - if($report->account_id != $status->profile_id) { + foreach ($statuses as $status) { + if ($report->account_id != $status->profile_id) { continue; } - if(in_array($status->scope, ['public', 'unlisted', 'private'])) { - if($status->scope === 'public') { + if (in_array($status->scope, ['public', 'unlisted', 'private'])) { + if ($status->scope === 'public') { $ogPublicStatuses[] = $status->id; } $status->scope = 'private'; @@ -1449,13 +1487,13 @@ trait AdminReportController $report->save(); break; case 'private-all-posts': - foreach(Status::whereProfileId($report->account_id)->lazyById(50, 'id') as $status) { - if(!in_array($status->visibility, ['public', 'unlisted']) || $status->reblog_of_id) { + foreach (Status::whereProfileId($report->account_id)->lazyById(50, 'id') as $status) { + if (! in_array($status->visibility, ['public', 'unlisted']) || $status->reblog_of_id) { continue; } - if($status->visibility === 'public') { + if ($status->visibility === 'public') { $ogPublicStatuses[] = $status->id; - } else if($status->visibility === 'unlisted') { + } elseif ($status->visibility === 'unlisted') { $ogUnlistedStatuses[] = $status->id; } $status->visibility = 'private'; @@ -1466,8 +1504,8 @@ trait AdminReportController break; case 'delete-posts': $statuses = Status::find($report->status_ids); - foreach($statuses as $status) { - if($report->account_id != $status->profile_id) { + foreach ($statuses as $status) { + if ($report->account_id != $status->profile_id) { continue; } StatusDelete::dispatch($status); @@ -1484,16 +1522,16 @@ trait AdminReportController break; } - if($ogPublicStatuses && count($ogPublicStatuses)) { - Storage::disk('local')->put('mod-log-cache/' . $report->account_id . '/' . now()->format('Y-m-d') . '-og-public-statuses.json', json_encode($ogPublicStatuses, JSON_PRETTY_PRINT|JSON_UNESCAPED_SLASHES)); + if ($ogPublicStatuses && count($ogPublicStatuses)) { + Storage::disk('local')->put('mod-log-cache/'.$report->account_id.'/'.now()->format('Y-m-d').'-og-public-statuses.json', json_encode($ogPublicStatuses, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES)); } - if($ogNonCwStatuses && count($ogNonCwStatuses)) { - Storage::disk('local')->put('mod-log-cache/' . $report->account_id . '/' . now()->format('Y-m-d') . '-og-noncw-statuses.json', json_encode($ogNonCwStatuses, JSON_PRETTY_PRINT|JSON_UNESCAPED_SLASHES)); + if ($ogNonCwStatuses && count($ogNonCwStatuses)) { + Storage::disk('local')->put('mod-log-cache/'.$report->account_id.'/'.now()->format('Y-m-d').'-og-noncw-statuses.json', json_encode($ogNonCwStatuses, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES)); } - if($ogUnlistedStatuses && count($ogUnlistedStatuses)) { - Storage::disk('local')->put('mod-log-cache/' . $report->account_id . '/' . now()->format('Y-m-d') . '-og-unlisted-statuses.json', json_encode($ogUnlistedStatuses, JSON_PRETTY_PRINT|JSON_UNESCAPED_SLASHES)); + if ($ogUnlistedStatuses && count($ogUnlistedStatuses)) { + Storage::disk('local')->put('mod-log-cache/'.$report->account_id.'/'.now()->format('Y-m-d').'-og-unlisted-statuses.json', json_encode($ogUnlistedStatuses, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES)); } ModLogService::boot() @@ -1504,18 +1542,19 @@ trait AdminReportController ->action('admin.report.moderate') ->metadata([ 'action' => $request->input('action'), - 'duration_active' => now()->parse($report->created_at)->diffForHumans() + 'duration_active' => now()->parse($report->created_at)->diffForHumans(), ]) ->accessLevel('admin') ->save(); - if($report->status_ids) { - foreach($report->status_ids as $sid) { + if ($report->status_ids) { + foreach ($report->status_ids as $sid) { RemoteReport::whereNull('action_taken_at') ->whereJsonContains('status_ids', [$sid]) ->update(['action_taken_at' => now()]); } } + return [200]; } } From 6fc2dd07d4eb679e0401d12510c0c961305071c7 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Tue, 15 Oct 2024 04:31:09 -0600 Subject: [PATCH 05/18] Add AdminModeratedProfileResource.php --- .../Admin/AdminModeratedProfileResource.php | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 app/Http/Resources/Admin/AdminModeratedProfileResource.php diff --git a/app/Http/Resources/Admin/AdminModeratedProfileResource.php b/app/Http/Resources/Admin/AdminModeratedProfileResource.php new file mode 100644 index 000000000..370145b08 --- /dev/null +++ b/app/Http/Resources/Admin/AdminModeratedProfileResource.php @@ -0,0 +1,41 @@ + + */ + public function toArray(Request $request): array + { + $profileObj = []; + $profile = Profile::withTrashed()->find($this->profile_id); + if($profile) { + $profileObj = [ + 'username' => $profile->username, + ]; + } + return [ + 'id' => $this->id, + 'domain' => $this->domain, + 'profile' => $profileObj, + 'profile_id' => $this->profile_id, + 'profile_url' => $this->profile_url, + 'note' => $this->note, + 'is_banned' => (bool) $this->is_banned, + 'is_nsfw' => (bool) $this->is_nsfw, + 'is_unlisted' => (bool) $this->is_unlisted, + 'is_noautolink' => (bool) $this->is_noautolink, + 'is_nodms' => (bool) $this->is_nodms, + 'is_notrending' => (bool) $this->is_notrending, + 'created_at' => $this->created_at, + ]; + } +} From dcddc72c861d83a19cc2f87cea3bdecde4f1a5d2 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Tue, 15 Oct 2024 04:31:40 -0600 Subject: [PATCH 06/18] Update AdminModeratedProfileResource --- app/Http/Resources/Admin/AdminModeratedProfileResource.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/Http/Resources/Admin/AdminModeratedProfileResource.php b/app/Http/Resources/Admin/AdminModeratedProfileResource.php index 370145b08..fd9bf85d1 100644 --- a/app/Http/Resources/Admin/AdminModeratedProfileResource.php +++ b/app/Http/Resources/Admin/AdminModeratedProfileResource.php @@ -2,9 +2,9 @@ namespace App\Http\Resources\Admin; +use App\Profile; use Illuminate\Http\Request; use Illuminate\Http\Resources\Json\JsonResource; -use App\Profile; class AdminModeratedProfileResource extends JsonResource { @@ -17,11 +17,12 @@ class AdminModeratedProfileResource extends JsonResource { $profileObj = []; $profile = Profile::withTrashed()->find($this->profile_id); - if($profile) { + if ($profile) { $profileObj = [ 'username' => $profile->username, ]; } + return [ 'id' => $this->id, 'domain' => $this->domain, From c0478f5f8f069556bb6cb76e9dec5c41de44a4ec Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Fri, 18 Oct 2024 02:42:28 -0600 Subject: [PATCH 07/18] Update AdminReportController --- .../Admin/AdminReportController.php | 174 ++++++++++++++++++ 1 file changed, 174 insertions(+) diff --git a/app/Http/Controllers/Admin/AdminReportController.php b/app/Http/Controllers/Admin/AdminReportController.php index 3982d1d54..5226da78c 100644 --- a/app/Http/Controllers/Admin/AdminReportController.php +++ b/app/Http/Controllers/Admin/AdminReportController.php @@ -3,6 +3,7 @@ namespace App\Http\Controllers\Admin; use App\AccountInterstitial; +use App\Http\Resources\Admin\AdminModeratedProfileResource; use App\Http\Resources\AdminRemoteReport; use App\Http\Resources\AdminReport; use App\Http\Resources\AdminSpamReport; @@ -25,6 +26,7 @@ use App\Services\StatusService; use App\Status; use App\Story; use App\User; +use App\Util\ActivityPub\Helpers; use Cache; use Carbon\Carbon; use Illuminate\Http\Request; @@ -1557,4 +1559,176 @@ trait AdminReportController return [200]; } + + public function getModeratedProfiles(Request $request) + { + $this->validate($request, [ + 'search' => 'sometimes|string|min:3|max:120', + ]); + + if ($request->filled('search')) { + $query = '%'.$request->input('search').'%'; + $profiles = DB::table('moderated_profiles') + ->join('profiles', 'moderated_profiles.profile_id', '=', 'profiles.id') + ->where('profiles.username', 'LIKE', $query) + ->select('moderated_profiles.*', 'profiles.username') + ->orderByDesc('moderated_profiles.id') + ->cursorPaginate(5); + + return AdminModeratedProfileResource::collection($profiles); + } + $profiles = ModeratedProfile::orderByDesc('id')->cursorPaginate(10); + + return AdminModeratedProfileResource::collection($profiles); + } + + public function getModeratedProfile(Request $request) + { + $this->validate($request, [ + 'id' => 'required', + ]); + + $profile = ModeratedProfile::findOrFail($request->input('id')); + + return new AdminModeratedProfileResource($profile); + } + + public function deleteModeratedProfile(Request $request) + { + $this->validate($request, [ + 'id' => 'required', + ]); + + $profile = ModeratedProfile::findOrFail($request->input('id')); + + ModLogService::boot() + ->objectUid($profile->profile_id) + ->objectId($profile->id) + ->objectType('App\Models\ModeratedProfile::class') + ->user(request()->user()) + ->action('admin.moderated-profiles.delete') + ->metadata([ + 'profile_url' => $profile->profile_url, + 'profile_id' => $profile->profile_id, + 'domain' => $profile->domain, + 'note' => $profile->note, + 'is_banned' => $profile->is_banned, + 'is_nsfw' => $profile->is_nsfw, + 'is_unlisted' => $profile->is_unlisted, + 'is_noautolink' => $profile->is_noautolink, + 'is_nodms' => $profile->is_nodms, + 'is_notrending' => $profile->is_notrending, + ]) + ->accessLevel('admin') + ->save(); + + $profile->delete(); + + return ['status' => 200, 'message' => 'Successfully deleted moderated profile!']; + } + + public function updateModeratedProfile(Request $request) + { + $this->validate($request, [ + 'id' => 'required|exists:moderated_profiles', + 'note' => 'sometimes|nullable|string|max:500', + 'is_banned' => 'required|boolean', + 'is_noautolink' => 'required|boolean', + 'is_nodms' => 'required|boolean', + 'is_notrending' => 'required|boolean', + 'is_nsfw' => 'required|boolean', + 'is_unlisted' => 'required|boolean', + ]); + + $fields = [ + 'note', + 'is_banned', + 'is_noautolink', + 'is_nodms', + 'is_notrending', + 'is_nsfw', + 'is_unlisted', + ]; + + $profile = ModeratedProfile::findOrFail($request->input('id')); + $profile->update($request->only($fields)); + + ModLogService::boot() + ->objectUid($profile->profile_id) + ->objectId($profile->id) + ->objectType('App\Models\ModeratedProfile::class') + ->user(request()->user()) + ->action('admin.moderated-profiles.update') + ->metadata($request->only($fields)) + ->accessLevel('admin') + ->save(); + + return [200]; + } + + public function createModeratedProfile(Request $request) + { + $this->validate($request, [ + 'url' => 'required|url|starts_with:https://', + ]); + + $url = $request->input('url'); + $host = parse_url($url, PHP_URL_HOST); + + abort_if($host === config('pixelfed.domain.app'), 400, 'You cannot add local users!'); + + $exists = ModeratedProfile::whereProfileUrl($url)->exists(); + abort_if($exists, 400, 'Moderated profile already exists!'); + + $profile = Profile::whereRemoteUrl($url)->first(); + + if ($profile) { + $rec = ModeratedProfile::updateOrCreate([ + 'profile_id' => $profile->id, + ], [ + 'profile_url' => $profile->remote_url, + 'domain' => $profile->domain, + ]); + + ModLogService::boot() + ->objectUid($rec->profile_id) + ->objectId($rec->id) + ->objectType('App\Models\ModeratedProfile::class') + ->user(request()->user()) + ->action('admin.moderated-profiles.create') + ->metadata([ + 'profile_existed' => true, + ]) + ->accessLevel('admin') + ->save(); + + return $rec; + } + + $remoteSearch = Helpers::profileFetch($url); + + if ($remoteSearch) { + $rec = ModeratedProfile::updateOrCreate([ + 'profile_id' => $remoteSearch->id, + ], [ + 'profile_url' => $remoteSearch->remote_url, + 'domain' => $remoteSearch->domain, + ]); + + ModLogService::boot() + ->objectUid($rec->profile_id) + ->objectId($rec->id) + ->objectType('App\Models\ModeratedProfile::class') + ->user(request()->user()) + ->action('admin.moderated-profiles.create') + ->metadata([ + 'profile_existed' => false, + ]) + ->accessLevel('admin') + ->save(); + + return $rec; + } + abort(400, 'Invalid account'); + } } From 80ee8a741403c20c1b42bd587e6d0efedfbdbacc Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Fri, 18 Oct 2024 02:43:09 -0600 Subject: [PATCH 08/18] Update AdminModeratedProfileResource --- app/Http/Resources/Admin/AdminModeratedProfileResource.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/Http/Resources/Admin/AdminModeratedProfileResource.php b/app/Http/Resources/Admin/AdminModeratedProfileResource.php index fd9bf85d1..47b75496f 100644 --- a/app/Http/Resources/Admin/AdminModeratedProfileResource.php +++ b/app/Http/Resources/Admin/AdminModeratedProfileResource.php @@ -19,7 +19,10 @@ class AdminModeratedProfileResource extends JsonResource $profile = Profile::withTrashed()->find($this->profile_id); if ($profile) { $profileObj = [ + 'name' => $profile->name, 'username' => $profile->username, + 'username_str' => explode('@', $profile->username)[1], + 'remote_url' => $profile->remote_url, ]; } From c4b5148b178257ffb32ed40c43b62207ec5f17fa Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Fri, 18 Oct 2024 02:43:49 -0600 Subject: [PATCH 09/18] Update AdminReport --- app/Http/Resources/AdminReport.php | 42 ++++++++++++++++++------------ 1 file changed, 25 insertions(+), 17 deletions(-) diff --git a/app/Http/Resources/AdminReport.php b/app/Http/Resources/AdminReport.php index c541e58cd..9b9681bcc 100644 --- a/app/Http/Resources/AdminReport.php +++ b/app/Http/Resources/AdminReport.php @@ -2,10 +2,11 @@ namespace App\Http\Resources; -use Illuminate\Http\Request; -use Illuminate\Http\Resources\Json\JsonResource; use App\Services\AccountService; use App\Services\StatusService; +use App\Story; +use Illuminate\Http\Request; +use Illuminate\Http\Resources\Json\JsonResource; class AdminReport extends JsonResource { @@ -16,22 +17,29 @@ class AdminReport extends JsonResource */ public function toArray(Request $request): array { - $res = [ - 'id' => $this->id, - 'reporter' => AccountService::get($this->profile_id, true), - 'type' => $this->type, - 'object_id' => (string) $this->object_id, - 'object_type' => $this->object_type, - 'reported' => AccountService::get($this->reported_profile_id, true), - 'status' => null, - 'reporter_message' => $this->message, - 'admin_seen_at' => $this->admin_seen, - 'created_at' => $this->created_at, - ]; + $res = [ + 'id' => $this->id, + 'reporter' => AccountService::get($this->profile_id, true), + 'type' => $this->type, + 'object_id' => (string) $this->object_id, + 'object_type' => $this->object_type, + 'reported' => AccountService::get($this->reported_profile_id, true), + 'status' => null, + 'reporter_message' => $this->message, + 'admin_seen_at' => $this->admin_seen, + 'created_at' => $this->created_at, + ]; - if($this->object_id && $this->object_type === 'App\Status') { - $res['status'] = StatusService::get($this->object_id, false); - } + if ($this->object_id && $this->object_type === 'App\Status') { + $res['status'] = StatusService::get($this->object_id, false); + } + + if ($this->object_id && $this->object_type === 'App\Story') { + $story = Story::find($this->object_id); + if ($story) { + $res['story'] = $story->toAdminEntity(); + } + } return $res; } From 956b14cf6982e69c88b843dc31526f5e503a54bf Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Fri, 18 Oct 2024 03:14:35 -0600 Subject: [PATCH 10/18] Update web-admin routes --- routes/web-admin.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/routes/web-admin.php b/routes/web-admin.php index 3d5b1cfd9..776150f62 100644 --- a/routes/web-admin.php +++ b/routes/web-admin.php @@ -148,6 +148,11 @@ Route::domain(config('pixelfed.domain.admin'))->prefix('i/admin')->group(functio Route::post('instances/refresh-stats', 'AdminController@postInstanceRefreshStatsApi'); Route::get('instances/download-backup', 'AdminController@downloadBackup'); Route::post('instances/import-data', 'AdminController@importBackup'); + Route::get('reports/moderated-profiles', 'AdminController@getModeratedProfiles'); + Route::post('reports/moderated-profiles/update', 'AdminController@updateModeratedProfile'); + Route::post('reports/moderated-profiles/create', 'AdminController@createModeratedProfile'); + Route::get('reports/moderated-profiles/show', 'AdminController@getModeratedProfile'); + Route::post('reports/moderated-profiles/delete', 'AdminController@deleteModeratedProfile'); Route::get('reports/stats', 'AdminController@reportsStats'); Route::get('reports/all', 'AdminController@reportsApiAll'); Route::get('reports/remote', 'AdminController@reportsApiRemote'); From 1a972e8ddf348e9b34fb203df3a35e852d3df88e Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Fri, 18 Oct 2024 03:49:35 -0600 Subject: [PATCH 11/18] Update AdminModeratedProfile resource --- app/Http/Resources/Admin/AdminModeratedProfileResource.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Http/Resources/Admin/AdminModeratedProfileResource.php b/app/Http/Resources/Admin/AdminModeratedProfileResource.php index 47b75496f..7c24bce94 100644 --- a/app/Http/Resources/Admin/AdminModeratedProfileResource.php +++ b/app/Http/Resources/Admin/AdminModeratedProfileResource.php @@ -39,7 +39,7 @@ class AdminModeratedProfileResource extends JsonResource 'is_noautolink' => (bool) $this->is_noautolink, 'is_nodms' => (bool) $this->is_nodms, 'is_notrending' => (bool) $this->is_notrending, - 'created_at' => $this->created_at, + 'created_at' => $this->created_at->format('c'), ]; } } From ed9f2fbb09c60a0371bd6c43f09ab1a784caa8d1 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Fri, 18 Oct 2024 03:54:00 -0600 Subject: [PATCH 12/18] Update AdminReportController --- app/Http/Controllers/Admin/AdminReportController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Http/Controllers/Admin/AdminReportController.php b/app/Http/Controllers/Admin/AdminReportController.php index 5226da78c..3f7899f05 100644 --- a/app/Http/Controllers/Admin/AdminReportController.php +++ b/app/Http/Controllers/Admin/AdminReportController.php @@ -1573,7 +1573,7 @@ trait AdminReportController ->where('profiles.username', 'LIKE', $query) ->select('moderated_profiles.*', 'profiles.username') ->orderByDesc('moderated_profiles.id') - ->cursorPaginate(5); + ->cursorPaginate(10); return AdminModeratedProfileResource::collection($profiles); } From b464eee966ae237a67be786e61a48c5faaee5db5 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Fri, 18 Oct 2024 03:54:20 -0600 Subject: [PATCH 13/18] Update AdminModeratedProfileResource --- app/Http/Resources/Admin/AdminModeratedProfileResource.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Http/Resources/Admin/AdminModeratedProfileResource.php b/app/Http/Resources/Admin/AdminModeratedProfileResource.php index 7c24bce94..d0ce5a617 100644 --- a/app/Http/Resources/Admin/AdminModeratedProfileResource.php +++ b/app/Http/Resources/Admin/AdminModeratedProfileResource.php @@ -39,7 +39,7 @@ class AdminModeratedProfileResource extends JsonResource 'is_noautolink' => (bool) $this->is_noautolink, 'is_nodms' => (bool) $this->is_nodms, 'is_notrending' => (bool) $this->is_notrending, - 'created_at' => $this->created_at->format('c'), + 'created_at' => now()->parse($this->created_at)->format('c'), ]; } } From 28990280ef5349540e586b3cac5aae7386f0d175 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Fri, 18 Oct 2024 04:34:35 -0600 Subject: [PATCH 14/18] Update AdminReportController --- .../Admin/AdminReportController.php | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/app/Http/Controllers/Admin/AdminReportController.php b/app/Http/Controllers/Admin/AdminReportController.php index 3f7899f05..bdd1c33a4 100644 --- a/app/Http/Controllers/Admin/AdminReportController.php +++ b/app/Http/Controllers/Admin/AdminReportController.php @@ -1593,6 +1593,25 @@ trait AdminReportController return new AdminModeratedProfileResource($profile); } + public function exportModeratedProfiles(Request $request) + { + return response()->streamDownload(function () { + $profiles = ModeratedProfile::get(); + $res = AdminModeratedProfileResource::collection($profiles); + echo json_encode([ + '_pixelfed_export' => true, + 'meta' => [ + 'ns' => 'https://pixelfed.org', + 'origin' => config('pixelfed.domain.app'), + 'date' => now()->format('c'), + 'type' => 'moderated-profiles', + 'version' => "1.0" + ], + 'data' => $res + ], JSON_PRETTY_PRINT|JSON_UNESCAPED_SLASHES); + }, 'data-export.json'); + } + public function deleteModeratedProfile(Request $request) { $this->validate($request, [ From 838cec458b7ff2ec4f4b6ff357cf2c9d3390a66f Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Fri, 18 Oct 2024 04:35:21 -0600 Subject: [PATCH 15/18] Update admin routes --- routes/web-admin.php | 1 + 1 file changed, 1 insertion(+) diff --git a/routes/web-admin.php b/routes/web-admin.php index 776150f62..b37a967cc 100644 --- a/routes/web-admin.php +++ b/routes/web-admin.php @@ -153,6 +153,7 @@ Route::domain(config('pixelfed.domain.admin'))->prefix('i/admin')->group(functio Route::post('reports/moderated-profiles/create', 'AdminController@createModeratedProfile'); Route::get('reports/moderated-profiles/show', 'AdminController@getModeratedProfile'); Route::post('reports/moderated-profiles/delete', 'AdminController@deleteModeratedProfile'); + Route::get('reports/moderated-profiles/export', 'AdminController@exportModeratedProfiles'); Route::get('reports/stats', 'AdminController@reportsStats'); Route::get('reports/all', 'AdminController@reportsApiAll'); Route::get('reports/remote', 'AdminController@reportsApiRemote'); From 25bc552465a9f3fe5a410cd6a982903a1fb486f0 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Fri, 18 Oct 2024 04:42:44 -0600 Subject: [PATCH 16/18] Update AdminReports component --- .../assets/components/admin/AdminReports.vue | 555 +++++++++++++++++- 1 file changed, 543 insertions(+), 12 deletions(-) diff --git a/resources/assets/components/admin/AdminReports.vue b/resources/assets/components/admin/AdminReports.vue index e43f8af62..20fa386a2 100644 --- a/resources/assets/components/admin/AdminReports.vue +++ b/resources/assets/components/admin/AdminReports.vue @@ -147,15 +147,10 @@ @@ -418,6 +413,114 @@ Next + +
+
+ +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + +
IDUsernameModerationCommentCreated
+ + +

+ {{ truncateText(report.profile.name, 40) }} +

+

+ {{ truncateText(report.profile.username, 40) }} +

+
+

+
+

{{ truncateText(report.note, 140) }}

+
+ + {{ timeAgo(report.created_at) }} + +
+ +
+
+
+ + + + +
+
+
+ +
+ + +
+
@@ -756,6 +859,165 @@ v-on:close="handleCloseRemoteReportModal()" v-on:refresh="refreshRemoteReports()" /> + + @@ -792,13 +1054,34 @@ viewingSpamReportLoading: false, remoteReportsLoaded: false, showRemoteReportModal: undefined, - remoteReportModalModel: {} + remoteReportModalModel: {}, + moderatedProfiles: [], + moderatedProfilesPagination: {}, + moderatedProfilesSearchInput: undefined, + modModalData: undefined, + modModalModel: {}, } }, mounted() { let u = new URLSearchParams(window.location.search); - if(u.has('tab') && u.has('id') && u.get('tab') === 'autospam') { + if(u.has('tab') && u.get('tab') === 'moderated-profiles' && u.has('action') && u.has('id') && u.get('action') === 'view') { + this.tabIndex = 4; + this.fetchModeratedAccounts(); + this.fetchModeratedProfile(u.get('id')); + } else if(u.has('tab') && u.get('tab') === 'autospam' && !u.has('id')) { + this.tabIndex = 2; + this.fetchStats(null, '/i/admin/api/reports/spam/all'); + } else if(u.has('tab') && u.get('tab') === 'closed') { + this.tabIndex = 1; + this.fetchStats('/i/admin/api/reports/all?filter=closed') + } else if(u.has('tab') && u.get('tab') === 'closed') { + this.tabIndex = 3; + this.fetchStats('/i/admin/api/reports/all?filter=remote') + } else if(u.has('tab') && u.get('tab') === 'moderated-profiles') { + this.tabIndex = 4; + this.fetchModeratedAccounts(); + } else if(u.has('tab') && u.has('id') && u.get('tab') === 'autospam') { this.fetchStats(null, '/i/admin/api/reports/spam/all'); this.fetchSpamReport(u.get('id')); } else if(u.has('tab') && u.has('id') && u.get('tab') === 'report') { @@ -819,21 +1102,29 @@ switch(idx) { case 0: this.fetchStats('/i/admin/api/reports/all'); + window.history.pushState(null, null, '/i/admin/reports'); break; case 1: this.fetchStats('/i/admin/api/reports/all?filter=closed') + window.history.pushState(null, null, '/i/admin/reports?tab=closed'); break; case 2: this.fetchStats(null, '/i/admin/api/reports/spam/all'); + window.history.pushState(null, null, '/i/admin/reports?tab=autospam'); break; case 3: this.fetchRemoteReports(); + window.history.pushState(null, null, '/i/admin/reports?tab=remote'); + break; + + case 4: + this.fetchModeratedAccounts(); + window.history.pushState(null, null, '/i/admin/reports?tab=moderated-profiles'); break; } - window.history.pushState(null, null, '/i/admin/reports'); this.tabIndex = idx; }, @@ -891,6 +1182,27 @@ }); }, + fetchModeratedAccounts(apiUrl = '/i/admin/api/reports/moderated-profiles') { + axios.get(apiUrl) + .then(res => { + this.moderatedProfiles = res.data.data; + this.moderatedProfilesPagination = { + prev: res.data.links.prev, + next: res.data.links.next + }; + }) + .finally(() => { + this.loaded = true; + $('[data-toggle="tooltip"]').tooltip() + }) + }, + + paginateModeratedAccounts(dir) { + event.currentTarget.blur(); + let url = dir == 'next' ? this.moderatedProfilesPagination.next : this.moderatedProfilesPagination.prev; + this.fetchModeratedAccounts(url); + }, + fetchReports(url = '/i/admin/api/reports/all') { axios.get(url) .then(res => { @@ -1149,7 +1461,226 @@ this.fetchStats(); window.history.pushState(null, null, '/i/admin/reports'); }) + }, + + truncateText(text, maxLength, appendEllipsis = true) { + if(!text || !text.length) { + return + } + + if (text.length <= maxLength) { + return text; + } + + const truncated = text.slice(0, maxLength).trim(); + return appendEllipsis ? truncated + '...' : truncated; + }, + + getModerationLabels(acct) { + if(acct.is_banned) { + return `Banned` + } + + let labels = []; + + if(acct.is_banned) labels.push('Banned') + if(acct.is_noautolink) labels.push('No Autolink') + if(acct.is_nodms) labels.push('No DMS') + if(acct.is_notrending) labels.push('No Trending') + if(acct.is_nsfw) labels.push('NSFW') + if(acct.is_unlisted) labels.push('Unlisted') + + return labels.map((item, index) => { + const colorClass = item === 'Banned' ? 'danger' : 'primary'; + return `${item}`; + }).join(' '); + }, + + handleModeratedProfileSearch(event) { + event.currentTarget.blur() + let url = `/i/admin/api/reports/moderated-profiles?search=${this.moderatedProfilesSearchInput}` + this.fetchModeratedAccounts(url) + }, + + clearModeratedProfileSearch() { + this.moderatedProfilesSearchInput = undefined; + this.fetchModeratedAccounts(); + }, + + openModeratedProfileModal(report) { + this.modModalData = report; + this.modModalModel = { + is_banned: report.is_banned, + is_noautolink: report.is_noautolink, + is_nodms: report.is_nodms, + is_notrending: report.is_notrending, + is_nsfw: report.is_nsfw, + is_unlisted: report.is_unlisted, + } + $(this.$refs.moderatedProfileModal).modal('show'); + window.history.pushState(null, null, `/i/admin/reports?tab=moderated-profiles&action=view&id=${report.id}`) + }, + + handleModProfileModalUpdate() { + axios.post( + '/i/admin/api/reports/moderated-profiles/update', + {...this.modModalData, ...this.modModalModel} + ).then(res => { + window.history.pushState(null, null, `/i/admin/reports?tab=moderated-profiles`) + window.location.reload(); + }).catch(error => { + let errorMessage = 'An error occurred'; + if (error.response) { + errorMessage = `Error ${error.response.status}: ${error.response.data.error || error.response.data.message || error.response.statusText}`; + } else if (error.request) { + errorMessage = 'No response received from server'; + } else { + errorMessage = error.message; + } + swal('Error', errorMessage, 'error') + }).finally(() => { + $(this.$refs.moderatedProfileModal).modal('hide'); + }) + }, + + handleModProfileModalDelete() { + swal({ + title: 'Confirm Delete', + text: 'Are you sure you want to delete this moderated profile ruleset?', + buttons: { + cancel: "Cancel", + danger: { + text: "Delete", + value: 'delete', + } + } + }).then((val) => { + if(val === 'delete') { + axios.post('/i/admin/api/reports/moderated-profiles/delete', { id: this.modModalData.id}) + .then(res => { + window.history.pushState(null, null, '/i/admin/reports?tab=moderated-profiles'); + window.location.reload(); + }) + } + $(this.$refs.moderatedProfileModal).modal('hide'); + swal.close() + }) + }, + + fetchModeratedProfile(id) { + axios.get(`/i/admin/api/reports/moderated-profiles/show?id=${id}`) + .then(res => { + this.modModalData = res.data.data; + let report = res.data.data; + + this.modModalModel = { + is_banned: report.is_banned, + is_noautolink: report.is_noautolink, + is_nodms: report.is_nodms, + is_notrending: report.is_notrending, + is_nsfw: report.is_nsfw, + is_unlisted: report.is_unlisted, + } + + $(this.$refs.moderatedProfileModal).modal('show'); + }).catch(err => { + window.history.pushState(null, null, '/i/admin/reports?tab=moderated-profiles'); + swal('Error', 'Invalid moderated profile id!', 'error'); + }) + }, + + addModeratedProfile() { + swal({ + text: 'Enter profile URL (ie: https://mastodon.social/@Mastodon)', + content: "input", + button: { + text: "Add", + closeModal: false, + }, + }).then(val => { + if (!val) throw null; + + if(val.startsWith('@')) { + swal('Error', 'Invalid URL, webfinger is not supported yet.', 'error'); + throw null; + } + + if(!val.startsWith('http')) { + swal('Error', 'Invalid URL', 'error'); + throw null; + } + + if(val.indexOf('.') === -1) { + swal('Error', 'Invalid URL', 'error'); + throw null; + } + + let params = { + url: val + } + + return axios.post('/i/admin/api/reports/moderated-profiles/create', params); + }).then(json => { + if(json && json.data && json.data?.id) { + window.location.href = `/i/admin/reports?tab=moderated-profiles&action=view&id=${json.data?.id}` + return; + } + swal.stopLoading(); + swal.close(); + }).catch(err => { + if (err) { + if(err?.response?.data?.error) { + swal("Error", err?.response?.data?.error, "error"); + } else { + swal("Error", "Something went wrong!", "error"); + } + } else { + swal.stopLoading(); + swal.close(); + } + }); + }, + + closeModeratedProfileModal() { + window.history.pushState(null, null, '/i/admin/reports?tab=moderated-profiles'); + }, + + exportModeratedProfiles() { + axios.get('/i/admin/api/reports/moderated-profiles/export', { + responseType: "blob" + }) + .then(res => { + let host = new URL(window.location.href) + let date = new Date(); + let dateStamp = `${date.getMonth()}-${date.getDate()}-${date.getFullYear()}-${Date.now()}`; + let filename = host.host + '-moderated-profiles-' + dateStamp + '.json'; + let el = document.createElement('a'); + el.setAttribute('download', filename) + const href = URL.createObjectURL(res.data); + el.href = href; + el.setAttribute('target', '_blank'); + el.click(); + + swal( + 'Success!', + 'You have successfully exported the moderated profile backup.', + 'success' + ) + }) } } } + + From 39f163216c9d0e152823a74c5ab8c96d89deb637 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Fri, 18 Oct 2024 04:43:34 -0600 Subject: [PATCH 17/18] Update compiled assets --- public/js/admin.js | Bin 300024 -> 324447 bytes public/mix-manifest.json | Bin 6583 -> 6583 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/public/js/admin.js b/public/js/admin.js index 8b9abbf2b718afcda6f116491429246c82987b76..c369fbe1490b1893deb9b0823b451de97a28a847 100644 GIT binary patch delta 23081 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 AwEzGB delta 9666 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 P=92gb9h&(s{L1oQLC29s diff --git a/public/mix-manifest.json b/public/mix-manifest.json index 86204d8f13ba040e4e6cc9ec1c1adbcc311241e1..ee11d513f729a7039a1a82d14f43c987b2aa4974 100644 GIT binary patch delta 45 zcmdmPyxn+1GpmAGl7)d`ijirenWdq*af(H%IgqqWF*mkIHa4~}O5MDeRYU{;Jzfm- delta 45 zcmdmPyxn+1Gpj;Ms)3o2g^_WZiK$_Vu~}krlBuPsr9o<{p=qjlnn}v$#jGMC07cvl AcK`qY From 3892ae7760cfe086d3e92c6d0f4041569cb4e3f9 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Thu, 7 Nov 2024 01:29:22 -0700 Subject: [PATCH 18/18] Update composer.lock --- composer.lock | 678 ++++++++++++++++++++++++++------------------------ 1 file changed, 348 insertions(+), 330 deletions(-) diff --git a/composer.lock b/composer.lock index a45ba803c..c01559f17 100644 --- a/composer.lock +++ b/composer.lock @@ -8,16 +8,16 @@ "packages": [ { "name": "aws/aws-crt-php", - "version": "v1.2.6", + "version": "v1.2.7", "source": { "type": "git", "url": "https://github.com/awslabs/aws-crt-php.git", - "reference": "a63485b65b6b3367039306496d49737cf1995408" + "reference": "d71d9906c7bb63a28295447ba12e74723bd3730e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/awslabs/aws-crt-php/zipball/a63485b65b6b3367039306496d49737cf1995408", - "reference": "a63485b65b6b3367039306496d49737cf1995408", + "url": "https://api.github.com/repos/awslabs/aws-crt-php/zipball/d71d9906c7bb63a28295447ba12e74723bd3730e", + "reference": "d71d9906c7bb63a28295447ba12e74723bd3730e", "shasum": "" }, "require": { @@ -56,22 +56,22 @@ ], "support": { "issues": "https://github.com/awslabs/aws-crt-php/issues", - "source": "https://github.com/awslabs/aws-crt-php/tree/v1.2.6" + "source": "https://github.com/awslabs/aws-crt-php/tree/v1.2.7" }, - "time": "2024-06-13T17:21:28+00:00" + "time": "2024-10-18T22:15:13+00:00" }, { "name": "aws/aws-sdk-php", - "version": "3.323.1", + "version": "3.325.3", "source": { "type": "git", "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "1b393c41a73e1ef4c493c60c5eee0bb4b0632264" + "reference": "de0b289c7260fb19301ffa2eb724de2076daad74" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/1b393c41a73e1ef4c493c60c5eee0bb4b0632264", - "reference": "1b393c41a73e1ef4c493c60c5eee0bb4b0632264", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/de0b289c7260fb19301ffa2eb724de2076daad74", + "reference": "de0b289c7260fb19301ffa2eb724de2076daad74", "shasum": "" }, "require": { @@ -154,9 +154,9 @@ "support": { "forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80", "issues": "https://github.com/aws/aws-sdk-php/issues", - "source": "https://github.com/aws/aws-sdk-php/tree/3.323.1" + "source": "https://github.com/aws/aws-sdk-php/tree/3.325.3" }, - "time": "2024-10-04T18:07:17+00:00" + "time": "2024-11-06T19:05:22+00:00" }, { "name": "bacon/bacon-qr-code", @@ -695,16 +695,16 @@ }, { "name": "doctrine/dbal", - "version": "3.9.1", + "version": "3.9.3", "source": { "type": "git", "url": "https://github.com/doctrine/dbal.git", - "reference": "d7dc08f98cba352b2bab5d32c5e58f7e745c11a7" + "reference": "61446f07fcb522414d6cfd8b1c3e5f9e18c579ba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/d7dc08f98cba352b2bab5d32c5e58f7e745c11a7", - "reference": "d7dc08f98cba352b2bab5d32c5e58f7e745c11a7", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/61446f07fcb522414d6cfd8b1c3e5f9e18c579ba", + "reference": "61446f07fcb522414d6cfd8b1c3e5f9e18c579ba", "shasum": "" }, "require": { @@ -720,7 +720,7 @@ "doctrine/coding-standard": "12.0.0", "fig/log-test": "^1", "jetbrains/phpstorm-stubs": "2023.1", - "phpstan/phpstan": "1.12.0", + "phpstan/phpstan": "1.12.6", "phpstan/phpstan-strict-rules": "^1.6", "phpunit/phpunit": "9.6.20", "psalm/plugin-phpunit": "0.18.4", @@ -788,7 +788,7 @@ ], "support": { "issues": "https://github.com/doctrine/dbal/issues", - "source": "https://github.com/doctrine/dbal/tree/3.9.1" + "source": "https://github.com/doctrine/dbal/tree/3.9.3" }, "funding": [ { @@ -804,7 +804,7 @@ "type": "tidelift" } ], - "time": "2024-09-01T13:49:23+00:00" + "time": "2024-10-10T17:56:43+00:00" }, { "name": "doctrine/deprecations", @@ -1114,16 +1114,16 @@ }, { "name": "dragonmantank/cron-expression", - "version": "v3.3.3", + "version": "v3.4.0", "source": { "type": "git", "url": "https://github.com/dragonmantank/cron-expression.git", - "reference": "adfb1f505deb6384dc8b39804c5065dd3c8c8c0a" + "reference": "8c784d071debd117328803d86b2097615b457500" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/adfb1f505deb6384dc8b39804c5065dd3c8c8c0a", - "reference": "adfb1f505deb6384dc8b39804c5065dd3c8c8c0a", + "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/8c784d071debd117328803d86b2097615b457500", + "reference": "8c784d071debd117328803d86b2097615b457500", "shasum": "" }, "require": { @@ -1136,10 +1136,14 @@ "require-dev": { "phpstan/extension-installer": "^1.0", "phpstan/phpstan": "^1.0", - "phpstan/phpstan-webmozart-assert": "^1.0", "phpunit/phpunit": "^7.0|^8.0|^9.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, "autoload": { "psr-4": { "Cron\\": "src/Cron/" @@ -1163,7 +1167,7 @@ ], "support": { "issues": "https://github.com/dragonmantank/cron-expression/issues", - "source": "https://github.com/dragonmantank/cron-expression/tree/v3.3.3" + "source": "https://github.com/dragonmantank/cron-expression/tree/v3.4.0" }, "funding": [ { @@ -1171,7 +1175,7 @@ "type": "github" } ], - "time": "2023-08-10T19:36:49+00:00" + "time": "2024-10-09T13:47:03+00:00" }, { "name": "egulias/email-validator", @@ -1289,20 +1293,20 @@ }, { "name": "ezyang/htmlpurifier", - "version": "v4.17.0", + "version": "v4.18.0", "source": { "type": "git", "url": "https://github.com/ezyang/htmlpurifier.git", - "reference": "bbc513d79acf6691fa9cf10f192c90dd2957f18c" + "reference": "cb56001e54359df7ae76dc522d08845dc741621b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/bbc513d79acf6691fa9cf10f192c90dd2957f18c", - "reference": "bbc513d79acf6691fa9cf10f192c90dd2957f18c", + "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/cb56001e54359df7ae76dc522d08845dc741621b", + "reference": "cb56001e54359df7ae76dc522d08845dc741621b", "shasum": "" }, "require": { - "php": "~5.6.0 || ~7.0.0 || ~7.1.0 || ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0" + "php": "~5.6.0 || ~7.0.0 || ~7.1.0 || ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0" }, "require-dev": { "cerdic/css-tidy": "^1.7 || ^2.0", @@ -1344,9 +1348,9 @@ ], "support": { "issues": "https://github.com/ezyang/htmlpurifier/issues", - "source": "https://github.com/ezyang/htmlpurifier/tree/v4.17.0" + "source": "https://github.com/ezyang/htmlpurifier/tree/v4.18.0" }, - "time": "2023-11-17T15:01:25+00:00" + "time": "2024-11-01T03:51:45+00:00" }, { "name": "fgrosse/phpasn1", @@ -1748,16 +1752,16 @@ }, { "name": "guzzlehttp/promises", - "version": "2.0.3", + "version": "2.0.4", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8" + "reference": "f9c436286ab2892c7db7be8c8da4ef61ccf7b455" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8", - "reference": "6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8", + "url": "https://api.github.com/repos/guzzle/promises/zipball/f9c436286ab2892c7db7be8c8da4ef61ccf7b455", + "reference": "f9c436286ab2892c7db7be8c8da4ef61ccf7b455", "shasum": "" }, "require": { @@ -1811,7 +1815,7 @@ ], "support": { "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/2.0.3" + "source": "https://github.com/guzzle/promises/tree/2.0.4" }, "funding": [ { @@ -1827,7 +1831,7 @@ "type": "tidelift" } ], - "time": "2024-07-18T10:29:17+00:00" + "time": "2024-10-17T10:06:22+00:00" }, { "name": "guzzlehttp/psr7", @@ -2117,16 +2121,16 @@ }, { "name": "jaybizzle/crawler-detect", - "version": "v1.2.120", + "version": "v1.2.121", "source": { "type": "git", "url": "https://github.com/JayBizzle/Crawler-Detect.git", - "reference": "2b325bdce46bbb8a2e96dc740ad37c743c9d8617" + "reference": "40ecda6322d4163fe2c6e1dd47c574f580b8487f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/JayBizzle/Crawler-Detect/zipball/2b325bdce46bbb8a2e96dc740ad37c743c9d8617", - "reference": "2b325bdce46bbb8a2e96dc740ad37c743c9d8617", + "url": "https://api.github.com/repos/JayBizzle/Crawler-Detect/zipball/40ecda6322d4163fe2c6e1dd47c574f580b8487f", + "reference": "40ecda6322d4163fe2c6e1dd47c574f580b8487f", "shasum": "" }, "require": { @@ -2163,9 +2167,9 @@ ], "support": { "issues": "https://github.com/JayBizzle/Crawler-Detect/issues", - "source": "https://github.com/JayBizzle/Crawler-Detect/tree/v1.2.120" + "source": "https://github.com/JayBizzle/Crawler-Detect/tree/v1.2.121" }, - "time": "2024-09-15T14:31:21+00:00" + "time": "2024-10-20T21:42:39+00:00" }, { "name": "jenssegers/agent", @@ -2374,16 +2378,16 @@ }, { "name": "laravel/framework", - "version": "v11.26.0", + "version": "v11.30.0", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "b8cb8998701d5b3cfe68539d3c3da1fc59ddd82b" + "reference": "dff716442d9c229d716be82ccc9a7de52eb97193" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/b8cb8998701d5b3cfe68539d3c3da1fc59ddd82b", - "reference": "b8cb8998701d5b3cfe68539d3c3da1fc59ddd82b", + "url": "https://api.github.com/repos/laravel/framework/zipball/dff716442d9c229d716be82ccc9a7de52eb97193", + "reference": "dff716442d9c229d716be82ccc9a7de52eb97193", "shasum": "" }, "require": { @@ -2579,7 +2583,7 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2024-10-01T14:29:34+00:00" + "time": "2024-10-30T15:00:34+00:00" }, { "name": "laravel/helpers", @@ -2640,16 +2644,16 @@ }, { "name": "laravel/horizon", - "version": "v5.29.0", + "version": "v5.29.2", "source": { "type": "git", "url": "https://github.com/laravel/horizon.git", - "reference": "1d97f94412e89ff48683acd58d4a702d6bee7b88" + "reference": "d9c39ce4e9050b33a2ff9d2cee21646a18d4cc92" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/horizon/zipball/1d97f94412e89ff48683acd58d4a702d6bee7b88", - "reference": "1d97f94412e89ff48683acd58d4a702d6bee7b88", + "url": "https://api.github.com/repos/laravel/horizon/zipball/d9c39ce4e9050b33a2ff9d2cee21646a18d4cc92", + "reference": "d9c39ce4e9050b33a2ff9d2cee21646a18d4cc92", "shasum": "" }, "require": { @@ -2664,6 +2668,7 @@ "ramsey/uuid": "^4.0", "symfony/console": "^6.0|^7.0", "symfony/error-handler": "^6.0|^7.0", + "symfony/polyfill-php83": "^1.28", "symfony/process": "^6.0|^7.0" }, "require-dev": { @@ -2713,9 +2718,9 @@ ], "support": { "issues": "https://github.com/laravel/horizon/issues", - "source": "https://github.com/laravel/horizon/tree/v5.29.0" + "source": "https://github.com/laravel/horizon/tree/v5.29.2" }, - "time": "2024-09-24T13:38:25+00:00" + "time": "2024-10-16T21:36:57+00:00" }, { "name": "laravel/passport", @@ -2795,16 +2800,16 @@ }, { "name": "laravel/prompts", - "version": "v0.3.0", + "version": "v0.3.1", "source": { "type": "git", "url": "https://github.com/laravel/prompts.git", - "reference": "ea57a2261093986721d4a5f4f9524d76f21f9fa0" + "reference": "0f3848a445562dac376b27968f753c65e7e1036e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/prompts/zipball/ea57a2261093986721d4a5f4f9524d76f21f9fa0", - "reference": "ea57a2261093986721d4a5f4f9524d76f21f9fa0", + "url": "https://api.github.com/repos/laravel/prompts/zipball/0f3848a445562dac376b27968f753c65e7e1036e", + "reference": "0f3848a445562dac376b27968f753c65e7e1036e", "shasum": "" }, "require": { @@ -2848,9 +2853,9 @@ "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.0" + "source": "https://github.com/laravel/prompts/tree/v0.3.1" }, - "time": "2024-09-30T14:27:51+00:00" + "time": "2024-10-09T19:42:26+00:00" }, { "name": "laravel/serializable-closure", @@ -3108,38 +3113,38 @@ }, { "name": "lcobucci/jwt", - "version": "5.3.0", + "version": "5.4.1", "source": { "type": "git", "url": "https://github.com/lcobucci/jwt.git", - "reference": "08071d8d2c7f4b00222cc4b1fb6aa46990a80f83" + "reference": "848815d2287abd5d3c285482f8e1f501b289a2e7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/lcobucci/jwt/zipball/08071d8d2c7f4b00222cc4b1fb6aa46990a80f83", - "reference": "08071d8d2c7f4b00222cc4b1fb6aa46990a80f83", + "url": "https://api.github.com/repos/lcobucci/jwt/zipball/848815d2287abd5d3c285482f8e1f501b289a2e7", + "reference": "848815d2287abd5d3c285482f8e1f501b289a2e7", "shasum": "" }, "require": { "ext-openssl": "*", "ext-sodium": "*", - "php": "~8.1.0 || ~8.2.0 || ~8.3.0", + "php": "~8.2.0 || ~8.3.0 || ~8.4.0", "psr/clock": "^1.0" }, "require-dev": { - "infection/infection": "^0.27.0", - "lcobucci/clock": "^3.0", + "infection/infection": "^0.29", + "lcobucci/clock": "^3.2", "lcobucci/coding-standard": "^11.0", - "phpbench/phpbench": "^1.2.9", + "phpbench/phpbench": "^1.2", "phpstan/extension-installer": "^1.2", "phpstan/phpstan": "^1.10.7", "phpstan/phpstan-deprecation-rules": "^1.1.3", "phpstan/phpstan-phpunit": "^1.3.10", "phpstan/phpstan-strict-rules": "^1.5.0", - "phpunit/phpunit": "^10.2.6" + "phpunit/phpunit": "^11.1" }, "suggest": { - "lcobucci/clock": ">= 3.0" + "lcobucci/clock": ">= 3.2" }, "type": "library", "autoload": { @@ -3165,7 +3170,7 @@ ], "support": { "issues": "https://github.com/lcobucci/jwt/issues", - "source": "https://github.com/lcobucci/jwt/tree/5.3.0" + "source": "https://github.com/lcobucci/jwt/tree/5.4.1" }, "funding": [ { @@ -3177,7 +3182,7 @@ "type": "patreon" } ], - "time": "2024-04-11T23:07:54+00:00" + "time": "2024-11-06T06:16:04+00:00" }, { "name": "league/commonmark", @@ -3423,16 +3428,16 @@ }, { "name": "league/flysystem", - "version": "3.29.0", + "version": "3.29.1", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem.git", - "reference": "0adc0d9a51852e170e0028a60bd271726626d3f0" + "reference": "edc1bb7c86fab0776c3287dbd19b5fa278347319" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/0adc0d9a51852e170e0028a60bd271726626d3f0", - "reference": "0adc0d9a51852e170e0028a60bd271726626d3f0", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/edc1bb7c86fab0776c3287dbd19b5fa278347319", + "reference": "edc1bb7c86fab0776c3287dbd19b5fa278347319", "shasum": "" }, "require": { @@ -3500,9 +3505,9 @@ ], "support": { "issues": "https://github.com/thephpleague/flysystem/issues", - "source": "https://github.com/thephpleague/flysystem/tree/3.29.0" + "source": "https://github.com/thephpleague/flysystem/tree/3.29.1" }, - "time": "2024-09-29T11:59:11+00:00" + "time": "2024-10-08T08:58:34+00:00" }, { "name": "league/flysystem-aws-s3-v3", @@ -3610,29 +3615,32 @@ }, { "name": "league/iso3166", - "version": "4.3.1", + "version": "4.3.2", "source": { "type": "git", - "url": "https://github.com/thephpleague/iso3166.git", - "reference": "11703e0313f34920add11c0228f0dd43ebd10f9a" + "url": "https://github.com/alcohol/iso3166.git", + "reference": "5133fed7d54728222f4058702487dccedda20472" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/iso3166/zipball/11703e0313f34920add11c0228f0dd43ebd10f9a", - "reference": "11703e0313f34920add11c0228f0dd43ebd10f9a", + "url": "https://api.github.com/repos/alcohol/iso3166/zipball/5133fed7d54728222f4058702487dccedda20472", + "reference": "5133fed7d54728222f4058702487dccedda20472", "shasum": "" }, "require": { "ext-mbstring": "*", - "php": "^7.3|^8.0" + "php": "^7.4 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "^9.5" + "phpstan/phpstan": "^1.12.6", + "phpstan/phpstan-deprecation-rules": "^1.2.1", + "phpstan/phpstan-strict-rules": "^1.6.1", + "phpunit/phpunit": "^9.6.21" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.x-dev" + "dev-master": "4.x-dev" } }, "autoload": { @@ -3651,7 +3659,7 @@ } ], "description": "ISO 3166-1 PHP Library", - "homepage": "https://github.com/thephpleague/iso3166", + "homepage": "https://github.com/alcohol/iso3166", "keywords": [ "3166", "3166-1", @@ -3661,10 +3669,16 @@ "library" ], "support": { - "issues": "https://github.com/thephpleague/iso3166/issues", - "source": "https://github.com/thephpleague/iso3166" + "issues": "https://github.com/alcohol/iso3166/issues", + "source": "https://github.com/alcohol/iso3166" }, - "time": "2023-09-11T07:59:36+00:00" + "funding": [ + { + "url": "https://github.com/alcohol", + "type": "github" + } + ], + "time": "2024-10-10T07:39:24+00:00" }, { "name": "league/mime-type-detection", @@ -4282,20 +4296,20 @@ }, { "name": "nesbot/carbon", - "version": "3.8.0", + "version": "3.8.1", "source": { "type": "git", "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "bbd3eef89af8ba66a3aa7952b5439168fbcc529f" + "reference": "10ac0aa86b8062219ce21e8189123d611ca3ecd9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/bbd3eef89af8ba66a3aa7952b5439168fbcc529f", - "reference": "bbd3eef89af8ba66a3aa7952b5439168fbcc529f", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/10ac0aa86b8062219ce21e8189123d611ca3ecd9", + "reference": "10ac0aa86b8062219ce21e8189123d611ca3ecd9", "shasum": "" }, "require": { - "carbonphp/carbon-doctrine-types": "*", + "carbonphp/carbon-doctrine-types": "<100.0", "ext-json": "*", "php": "^8.1", "psr/clock": "^1.0", @@ -4384,20 +4398,20 @@ "type": "tidelift" } ], - "time": "2024-08-19T06:22:39+00:00" + "time": "2024-11-03T16:02:24+00:00" }, { "name": "nette/schema", - "version": "v1.3.1", + "version": "v1.3.2", "source": { "type": "git", "url": "https://github.com/nette/schema.git", - "reference": "9522dad6211c4d995a01a9ac529da88d0b0ba7b5" + "reference": "da801d52f0354f70a638673c4a0f04e16529431d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/schema/zipball/9522dad6211c4d995a01a9ac529da88d0b0ba7b5", - "reference": "9522dad6211c4d995a01a9ac529da88d0b0ba7b5", + "url": "https://api.github.com/repos/nette/schema/zipball/da801d52f0354f70a638673c4a0f04e16529431d", + "reference": "da801d52f0354f70a638673c4a0f04e16529431d", "shasum": "" }, "require": { @@ -4444,9 +4458,9 @@ ], "support": { "issues": "https://github.com/nette/schema/issues", - "source": "https://github.com/nette/schema/tree/v1.3.1" + "source": "https://github.com/nette/schema/tree/v1.3.2" }, - "time": "2024-10-05T03:01:50+00:00" + "time": "2024-10-06T23:10:23+00:00" }, { "name": "nette/utils", @@ -4536,16 +4550,16 @@ }, { "name": "nikic/php-parser", - "version": "v5.3.0", + "version": "v5.3.1", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "3abf7425cd284141dc5d8d14a9ee444de3345d1a" + "reference": "8eea230464783aa9671db8eea6f8c6ac5285794b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/3abf7425cd284141dc5d8d14a9ee444de3345d1a", - "reference": "3abf7425cd284141dc5d8d14a9ee444de3345d1a", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/8eea230464783aa9671db8eea6f8c6ac5285794b", + "reference": "8eea230464783aa9671db8eea6f8c6ac5285794b", "shasum": "" }, "require": { @@ -4588,38 +4602,37 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v5.3.0" + "source": "https://github.com/nikic/PHP-Parser/tree/v5.3.1" }, - "time": "2024-09-29T13:56:26+00:00" + "time": "2024-10-08T18:51:32+00:00" }, { "name": "nunomaduro/termwind", - "version": "v2.1.0", + "version": "v2.2.0", "source": { "type": "git", "url": "https://github.com/nunomaduro/termwind.git", - "reference": "e5f21eade88689536c0cdad4c3cd75f3ed26e01a" + "reference": "42c84e4e8090766bbd6445d06cd6e57650626ea3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/e5f21eade88689536c0cdad4c3cd75f3ed26e01a", - "reference": "e5f21eade88689536c0cdad4c3cd75f3ed26e01a", + "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/42c84e4e8090766bbd6445d06cd6e57650626ea3", + "reference": "42c84e4e8090766bbd6445d06cd6e57650626ea3", "shasum": "" }, "require": { "ext-mbstring": "*", "php": "^8.2", - "symfony/console": "^7.0.4" + "symfony/console": "^7.1.5" }, "require-dev": { - "ergebnis/phpstan-rules": "^2.2.0", - "illuminate/console": "^11.1.1", - "laravel/pint": "^1.15.0", - "mockery/mockery": "^1.6.11", - "pestphp/pest": "^2.34.6", - "phpstan/phpstan": "^1.10.66", - "phpstan/phpstan-strict-rules": "^1.5.2", - "symfony/var-dumper": "^7.0.4", + "illuminate/console": "^11.28.0", + "laravel/pint": "^1.18.1", + "mockery/mockery": "^1.6.12", + "pestphp/pest": "^2.36.0", + "phpstan/phpstan": "^1.12.6", + "phpstan/phpstan-strict-rules": "^1.6.1", + "symfony/var-dumper": "^7.1.5", "thecodingmachine/phpstan-strict-rules": "^1.0.0" }, "type": "library", @@ -4662,7 +4675,7 @@ ], "support": { "issues": "https://github.com/nunomaduro/termwind/issues", - "source": "https://github.com/nunomaduro/termwind/tree/v2.1.0" + "source": "https://github.com/nunomaduro/termwind/tree/v2.2.0" }, "funding": [ { @@ -4678,7 +4691,7 @@ "type": "github" } ], - "time": "2024-09-05T15:25:50+00:00" + "time": "2024-10-15T16:15:16+00:00" }, { "name": "nyholm/psr7", @@ -4877,30 +4890,35 @@ }, { "name": "paragonie/sodium_compat", - "version": "v1.21.1", + "version": "v2.1.0", "source": { "type": "git", "url": "https://github.com/paragonie/sodium_compat.git", - "reference": "bb312875dcdd20680419564fe42ba1d9564b9e37" + "reference": "a673d5f310477027cead2e2f2b6db5d8368157cb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/paragonie/sodium_compat/zipball/bb312875dcdd20680419564fe42ba1d9564b9e37", - "reference": "bb312875dcdd20680419564fe42ba1d9564b9e37", + "url": "https://api.github.com/repos/paragonie/sodium_compat/zipball/a673d5f310477027cead2e2f2b6db5d8368157cb", + "reference": "a673d5f310477027cead2e2f2b6db5d8368157cb", "shasum": "" }, "require": { - "paragonie/random_compat": ">=1", - "php": "^5.2.4|^5.3|^5.4|^5.5|^5.6|^7|^8" + "php": "^8.1", + "php-64bit": "*" }, "require-dev": { - "phpunit/phpunit": "^3|^4|^5|^6|^7|^8|^9" + "phpunit/phpunit": "^7|^8|^9", + "vimeo/psalm": "^4|^5" }, "suggest": { - "ext-libsodium": "PHP < 7.0: Better performance, password hashing (Argon2i), secure memory management (memzero), and better security.", - "ext-sodium": "PHP >= 7.0: Better performance, password hashing (Argon2i), secure memory management (memzero), and better security." + "ext-sodium": "Better performance, password hashing (Argon2i), secure memory management (memzero), and better security." }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, "autoload": { "files": [ "autoload.php" @@ -4957,9 +4975,9 @@ ], "support": { "issues": "https://github.com/paragonie/sodium_compat/issues", - "source": "https://github.com/paragonie/sodium_compat/tree/v1.21.1" + "source": "https://github.com/paragonie/sodium_compat/tree/v2.1.0" }, - "time": "2024-04-22T22:05:04+00:00" + "time": "2024-09-04T12:51:01+00:00" }, { "name": "pbmedia/laravel-ffmpeg", @@ -6094,23 +6112,23 @@ }, { "name": "pusher/pusher-php-server", - "version": "7.2.4", + "version": "7.2.6", "source": { "type": "git", "url": "https://github.com/pusher/pusher-http-php.git", - "reference": "de2f72296808f9cafa6a4462b15a768ff130cddb" + "reference": "d89e9997191d18fb0fe03a956fa3ccfe0af524ea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pusher/pusher-http-php/zipball/de2f72296808f9cafa6a4462b15a768ff130cddb", - "reference": "de2f72296808f9cafa6a4462b15a768ff130cddb", + "url": "https://api.github.com/repos/pusher/pusher-http-php/zipball/d89e9997191d18fb0fe03a956fa3ccfe0af524ea", + "reference": "d89e9997191d18fb0fe03a956fa3ccfe0af524ea", "shasum": "" }, "require": { "ext-curl": "*", "ext-json": "*", "guzzlehttp/guzzle": "^7.2", - "paragonie/sodium_compat": "^1.6", + "paragonie/sodium_compat": "^1.6|^2.0", "php": "^7.3|^8.0", "psr/log": "^1.0|^2.0|^3.0" }, @@ -6149,9 +6167,9 @@ ], "support": { "issues": "https://github.com/pusher/pusher-http-php/issues", - "source": "https://github.com/pusher/pusher-http-php/tree/7.2.4" + "source": "https://github.com/pusher/pusher-http-php/tree/7.2.6" }, - "time": "2023-12-15T10:58:53+00:00" + "time": "2024-10-18T12:04:31+00:00" }, { "name": "ralouphie/getallheaders", @@ -6500,16 +6518,16 @@ }, { "name": "spatie/image-optimizer", - "version": "1.7.5", + "version": "1.8.0", "source": { "type": "git", "url": "https://github.com/spatie/image-optimizer.git", - "reference": "43aff6725cd87bb78ccd8532633cfa8bdc962505" + "reference": "4fd22035e81d98fffced65a8c20d9ec4daa9671c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/image-optimizer/zipball/43aff6725cd87bb78ccd8532633cfa8bdc962505", - "reference": "43aff6725cd87bb78ccd8532633cfa8bdc962505", + "url": "https://api.github.com/repos/spatie/image-optimizer/zipball/4fd22035e81d98fffced65a8c20d9ec4daa9671c", + "reference": "4fd22035e81d98fffced65a8c20d9ec4daa9671c", "shasum": "" }, "require": { @@ -6549,9 +6567,9 @@ ], "support": { "issues": "https://github.com/spatie/image-optimizer/issues", - "source": "https://github.com/spatie/image-optimizer/tree/1.7.5" + "source": "https://github.com/spatie/image-optimizer/tree/1.8.0" }, - "time": "2024-05-16T08:48:33+00:00" + "time": "2024-11-04T08:24:54+00:00" }, { "name": "spatie/laravel-backup", @@ -7049,16 +7067,16 @@ }, { "name": "symfony/cache", - "version": "v7.1.5", + "version": "v7.1.7", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "86e5296b10e4dec8c8441056ca606aedb8a3be0a" + "reference": "23b61c9592ee72233c31625f0ae805dd1571e928" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/86e5296b10e4dec8c8441056ca606aedb8a3be0a", - "reference": "86e5296b10e4dec8c8441056ca606aedb8a3be0a", + "url": "https://api.github.com/repos/symfony/cache/zipball/23b61c9592ee72233c31625f0ae805dd1571e928", + "reference": "23b61c9592ee72233c31625f0ae805dd1571e928", "shasum": "" }, "require": { @@ -7126,7 +7144,7 @@ "psr6" ], "support": { - "source": "https://github.com/symfony/cache/tree/v7.1.5" + "source": "https://github.com/symfony/cache/tree/v7.1.7" }, "funding": [ { @@ -7142,7 +7160,7 @@ "type": "tidelift" } ], - "time": "2024-09-17T09:16:35+00:00" + "time": "2024-11-05T15:34:55+00:00" }, { "name": "symfony/cache-contracts", @@ -7222,16 +7240,16 @@ }, { "name": "symfony/clock", - "version": "v7.1.1", + "version": "v7.1.6", "source": { "type": "git", "url": "https://github.com/symfony/clock.git", - "reference": "3dfc8b084853586de51dd1441c6242c76a28cbe7" + "reference": "97bebc53548684c17ed696bc8af016880f0f098d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/clock/zipball/3dfc8b084853586de51dd1441c6242c76a28cbe7", - "reference": "3dfc8b084853586de51dd1441c6242c76a28cbe7", + "url": "https://api.github.com/repos/symfony/clock/zipball/97bebc53548684c17ed696bc8af016880f0f098d", + "reference": "97bebc53548684c17ed696bc8af016880f0f098d", "shasum": "" }, "require": { @@ -7276,7 +7294,7 @@ "time" ], "support": { - "source": "https://github.com/symfony/clock/tree/v7.1.1" + "source": "https://github.com/symfony/clock/tree/v7.1.6" }, "funding": [ { @@ -7292,20 +7310,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+00:00" + "time": "2024-09-25T14:20:29+00:00" }, { "name": "symfony/console", - "version": "v7.1.5", + "version": "v7.1.7", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "0fa539d12b3ccf068a722bbbffa07ca7079af9ee" + "reference": "3284aafcac338b6e86fd955ee4d794cbe434151a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/0fa539d12b3ccf068a722bbbffa07ca7079af9ee", - "reference": "0fa539d12b3ccf068a722bbbffa07ca7079af9ee", + "url": "https://api.github.com/repos/symfony/console/zipball/3284aafcac338b6e86fd955ee4d794cbe434151a", + "reference": "3284aafcac338b6e86fd955ee4d794cbe434151a", "shasum": "" }, "require": { @@ -7369,7 +7387,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v7.1.5" + "source": "https://github.com/symfony/console/tree/v7.1.7" }, "funding": [ { @@ -7385,20 +7403,20 @@ "type": "tidelift" } ], - "time": "2024-09-20T08:28:38+00:00" + "time": "2024-11-05T15:34:55+00:00" }, { "name": "symfony/css-selector", - "version": "v7.1.1", + "version": "v7.1.6", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "1c7cee86c6f812896af54434f8ce29c8d94f9ff4" + "reference": "4aa4f6b3d6749c14d3aa815eef8226632e7bbc66" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/1c7cee86c6f812896af54434f8ce29c8d94f9ff4", - "reference": "1c7cee86c6f812896af54434f8ce29c8d94f9ff4", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/4aa4f6b3d6749c14d3aa815eef8226632e7bbc66", + "reference": "4aa4f6b3d6749c14d3aa815eef8226632e7bbc66", "shasum": "" }, "require": { @@ -7434,7 +7452,7 @@ "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/css-selector/tree/v7.1.1" + "source": "https://github.com/symfony/css-selector/tree/v7.1.6" }, "funding": [ { @@ -7450,7 +7468,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+00:00" + "time": "2024-09-25T14:20:29+00:00" }, { "name": "symfony/deprecation-contracts", @@ -7521,16 +7539,16 @@ }, { "name": "symfony/error-handler", - "version": "v7.1.3", + "version": "v7.1.7", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "432bb369952795c61ca1def65e078c4a80dad13c" + "reference": "010e44661f4c6babaf8c4862fe68c24a53903342" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/432bb369952795c61ca1def65e078c4a80dad13c", - "reference": "432bb369952795c61ca1def65e078c4a80dad13c", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/010e44661f4c6babaf8c4862fe68c24a53903342", + "reference": "010e44661f4c6babaf8c4862fe68c24a53903342", "shasum": "" }, "require": { @@ -7576,7 +7594,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.1.3" + "source": "https://github.com/symfony/error-handler/tree/v7.1.7" }, "funding": [ { @@ -7592,20 +7610,20 @@ "type": "tidelift" } ], - "time": "2024-07-26T13:02:51+00:00" + "time": "2024-11-05T15:34:55+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v7.1.1", + "version": "v7.1.6", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "9fa7f7a21beb22a39a8f3f28618b29e50d7a55a7" + "reference": "87254c78dd50721cfd015b62277a8281c5589702" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/9fa7f7a21beb22a39a8f3f28618b29e50d7a55a7", - "reference": "9fa7f7a21beb22a39a8f3f28618b29e50d7a55a7", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/87254c78dd50721cfd015b62277a8281c5589702", + "reference": "87254c78dd50721cfd015b62277a8281c5589702", "shasum": "" }, "require": { @@ -7656,7 +7674,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.1.1" + "source": "https://github.com/symfony/event-dispatcher/tree/v7.1.6" }, "funding": [ { @@ -7672,7 +7690,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+00:00" + "time": "2024-09-25T14:20:29+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -7752,16 +7770,16 @@ }, { "name": "symfony/finder", - "version": "v7.1.4", + "version": "v7.1.6", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "d95bbf319f7d052082fb7af147e0f835a695e823" + "reference": "2cb89664897be33f78c65d3d2845954c8d7a43b8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/d95bbf319f7d052082fb7af147e0f835a695e823", - "reference": "d95bbf319f7d052082fb7af147e0f835a695e823", + "url": "https://api.github.com/repos/symfony/finder/zipball/2cb89664897be33f78c65d3d2845954c8d7a43b8", + "reference": "2cb89664897be33f78c65d3d2845954c8d7a43b8", "shasum": "" }, "require": { @@ -7796,7 +7814,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v7.1.4" + "source": "https://github.com/symfony/finder/tree/v7.1.6" }, "funding": [ { @@ -7812,20 +7830,20 @@ "type": "tidelift" } ], - "time": "2024-08-13T14:28:19+00:00" + "time": "2024-10-01T08:31:23+00:00" }, { "name": "symfony/http-client", - "version": "v6.4.12", + "version": "v6.4.14", "source": { "type": "git", "url": "https://github.com/symfony/http-client.git", - "reference": "fbebfcce21084d3e91ea987ae5bdd8c71ff0fd56" + "reference": "05d88cbd816ad6e0202edd9a9963cb9d615b8826" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client/zipball/fbebfcce21084d3e91ea987ae5bdd8c71ff0fd56", - "reference": "fbebfcce21084d3e91ea987ae5bdd8c71ff0fd56", + "url": "https://api.github.com/repos/symfony/http-client/zipball/05d88cbd816ad6e0202edd9a9963cb9d615b8826", + "reference": "05d88cbd816ad6e0202edd9a9963cb9d615b8826", "shasum": "" }, "require": { @@ -7889,7 +7907,7 @@ "http" ], "support": { - "source": "https://github.com/symfony/http-client/tree/v6.4.12" + "source": "https://github.com/symfony/http-client/tree/v6.4.14" }, "funding": [ { @@ -7905,7 +7923,7 @@ "type": "tidelift" } ], - "time": "2024-09-20T08:21:33+00:00" + "time": "2024-11-05T16:39:55+00:00" }, { "name": "symfony/http-client-contracts", @@ -7987,16 +8005,16 @@ }, { "name": "symfony/http-foundation", - "version": "v7.1.5", + "version": "v7.1.7", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "e30ef73b1e44eea7eb37ba69600a354e553f694b" + "reference": "5183b61657807099d98f3367bcccb850238b17a9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/e30ef73b1e44eea7eb37ba69600a354e553f694b", - "reference": "e30ef73b1e44eea7eb37ba69600a354e553f694b", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/5183b61657807099d98f3367bcccb850238b17a9", + "reference": "5183b61657807099d98f3367bcccb850238b17a9", "shasum": "" }, "require": { @@ -8044,7 +8062,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.1.5" + "source": "https://github.com/symfony/http-foundation/tree/v7.1.7" }, "funding": [ { @@ -8060,20 +8078,20 @@ "type": "tidelift" } ], - "time": "2024-09-20T08:28:38+00:00" + "time": "2024-11-06T09:02:46+00:00" }, { "name": "symfony/http-kernel", - "version": "v7.1.5", + "version": "v7.1.7", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "44204d96150a9df1fc57601ec933d23fefc2d65b" + "reference": "7f137cda31fd41e422edcdc01915f2c095b84399" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/44204d96150a9df1fc57601ec933d23fefc2d65b", - "reference": "44204d96150a9df1fc57601ec933d23fefc2d65b", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/7f137cda31fd41e422edcdc01915f2c095b84399", + "reference": "7f137cda31fd41e422edcdc01915f2c095b84399", "shasum": "" }, "require": { @@ -8158,7 +8176,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.1.5" + "source": "https://github.com/symfony/http-kernel/tree/v7.1.7" }, "funding": [ { @@ -8174,20 +8192,20 @@ "type": "tidelift" } ], - "time": "2024-09-21T06:09:21+00:00" + "time": "2024-11-06T09:54:34+00:00" }, { "name": "symfony/mailer", - "version": "v7.1.5", + "version": "v7.1.6", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "bbf21460c56f29810da3df3e206e38dfbb01e80b" + "reference": "69c9948451fb3a6a4d47dc8261d1794734e76cdd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/bbf21460c56f29810da3df3e206e38dfbb01e80b", - "reference": "bbf21460c56f29810da3df3e206e38dfbb01e80b", + "url": "https://api.github.com/repos/symfony/mailer/zipball/69c9948451fb3a6a4d47dc8261d1794734e76cdd", + "reference": "69c9948451fb3a6a4d47dc8261d1794734e76cdd", "shasum": "" }, "require": { @@ -8238,7 +8256,7 @@ "description": "Helps sending emails", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailer/tree/v7.1.5" + "source": "https://github.com/symfony/mailer/tree/v7.1.6" }, "funding": [ { @@ -8254,20 +8272,20 @@ "type": "tidelift" } ], - "time": "2024-09-08T12:32:26+00:00" + "time": "2024-09-25T14:20:29+00:00" }, { "name": "symfony/mailgun-mailer", - "version": "v6.4.10", + "version": "v6.4.13", "source": { "type": "git", "url": "https://github.com/symfony/mailgun-mailer.git", - "reference": "3eb7c7b644179a766f5d816620b7b6d4a4e7ec43" + "reference": "ad4e79798a5eb80af99004a4871b4fe5effe33a3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailgun-mailer/zipball/3eb7c7b644179a766f5d816620b7b6d4a4e7ec43", - "reference": "3eb7c7b644179a766f5d816620b7b6d4a4e7ec43", + "url": "https://api.github.com/repos/symfony/mailgun-mailer/zipball/ad4e79798a5eb80af99004a4871b4fe5effe33a3", + "reference": "ad4e79798a5eb80af99004a4871b4fe5effe33a3", "shasum": "" }, "require": { @@ -8307,7 +8325,7 @@ "description": "Symfony Mailgun Mailer Bridge", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailgun-mailer/tree/v6.4.10" + "source": "https://github.com/symfony/mailgun-mailer/tree/v6.4.13" }, "funding": [ { @@ -8323,20 +8341,20 @@ "type": "tidelift" } ], - "time": "2024-07-04T11:16:22+00:00" + "time": "2024-09-25T14:18:03+00:00" }, { "name": "symfony/mime", - "version": "v7.1.5", + "version": "v7.1.6", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "711d2e167e8ce65b05aea6b258c449671cdd38ff" + "reference": "caa1e521edb2650b8470918dfe51708c237f0598" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/711d2e167e8ce65b05aea6b258c449671cdd38ff", - "reference": "711d2e167e8ce65b05aea6b258c449671cdd38ff", + "url": "https://api.github.com/repos/symfony/mime/zipball/caa1e521edb2650b8470918dfe51708c237f0598", + "reference": "caa1e521edb2650b8470918dfe51708c237f0598", "shasum": "" }, "require": { @@ -8391,7 +8409,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v7.1.5" + "source": "https://github.com/symfony/mime/tree/v7.1.6" }, "funding": [ { @@ -8407,7 +8425,7 @@ "type": "tidelift" } ], - "time": "2024-09-20T08:28:38+00:00" + "time": "2024-10-25T15:11:02+00:00" }, { "name": "symfony/polyfill-ctype", @@ -9047,16 +9065,16 @@ }, { "name": "symfony/process", - "version": "v7.1.5", + "version": "v7.1.7", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "5c03ee6369281177f07f7c68252a280beccba847" + "reference": "9b8a40b7289767aa7117e957573c2a535efe6585" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/5c03ee6369281177f07f7c68252a280beccba847", - "reference": "5c03ee6369281177f07f7c68252a280beccba847", + "url": "https://api.github.com/repos/symfony/process/zipball/9b8a40b7289767aa7117e957573c2a535efe6585", + "reference": "9b8a40b7289767aa7117e957573c2a535efe6585", "shasum": "" }, "require": { @@ -9088,7 +9106,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v7.1.5" + "source": "https://github.com/symfony/process/tree/v7.1.7" }, "funding": [ { @@ -9104,20 +9122,20 @@ "type": "tidelift" } ], - "time": "2024-09-19T21:48:23+00:00" + "time": "2024-11-06T09:25:12+00:00" }, { "name": "symfony/psr-http-message-bridge", - "version": "v7.1.4", + "version": "v7.1.6", "source": { "type": "git", "url": "https://github.com/symfony/psr-http-message-bridge.git", - "reference": "405a7bcd872f1563966f64be19f1362d94ce71ab" + "reference": "f16471bb19f6685b9ccf0a2c03c213840ae68cd6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/405a7bcd872f1563966f64be19f1362d94ce71ab", - "reference": "405a7bcd872f1563966f64be19f1362d94ce71ab", + "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/f16471bb19f6685b9ccf0a2c03c213840ae68cd6", + "reference": "f16471bb19f6685b9ccf0a2c03c213840ae68cd6", "shasum": "" }, "require": { @@ -9171,7 +9189,7 @@ "psr-7" ], "support": { - "source": "https://github.com/symfony/psr-http-message-bridge/tree/v7.1.4" + "source": "https://github.com/symfony/psr-http-message-bridge/tree/v7.1.6" }, "funding": [ { @@ -9187,20 +9205,20 @@ "type": "tidelift" } ], - "time": "2024-08-15T22:48:53+00:00" + "time": "2024-09-25T14:20:29+00:00" }, { "name": "symfony/routing", - "version": "v7.1.4", + "version": "v7.1.6", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "1500aee0094a3ce1c92626ed8cf3c2037e86f5a7" + "reference": "66a2c469f6c22d08603235c46a20007c0701ea0a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/1500aee0094a3ce1c92626ed8cf3c2037e86f5a7", - "reference": "1500aee0094a3ce1c92626ed8cf3c2037e86f5a7", + "url": "https://api.github.com/repos/symfony/routing/zipball/66a2c469f6c22d08603235c46a20007c0701ea0a", + "reference": "66a2c469f6c22d08603235c46a20007c0701ea0a", "shasum": "" }, "require": { @@ -9252,7 +9270,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v7.1.4" + "source": "https://github.com/symfony/routing/tree/v7.1.6" }, "funding": [ { @@ -9268,7 +9286,7 @@ "type": "tidelift" } ], - "time": "2024-08-29T08:16:25+00:00" + "time": "2024-10-01T08:31:23+00:00" }, { "name": "symfony/service-contracts", @@ -9355,16 +9373,16 @@ }, { "name": "symfony/string", - "version": "v7.1.5", + "version": "v7.1.6", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "d66f9c343fa894ec2037cc928381df90a7ad4306" + "reference": "61b72d66bf96c360a727ae6232df5ac83c71f626" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/d66f9c343fa894ec2037cc928381df90a7ad4306", - "reference": "d66f9c343fa894ec2037cc928381df90a7ad4306", + "url": "https://api.github.com/repos/symfony/string/zipball/61b72d66bf96c360a727ae6232df5ac83c71f626", + "reference": "61b72d66bf96c360a727ae6232df5ac83c71f626", "shasum": "" }, "require": { @@ -9422,7 +9440,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v7.1.5" + "source": "https://github.com/symfony/string/tree/v7.1.6" }, "funding": [ { @@ -9438,20 +9456,20 @@ "type": "tidelift" } ], - "time": "2024-09-20T08:28:38+00:00" + "time": "2024-09-25T14:20:29+00:00" }, { "name": "symfony/translation", - "version": "v7.1.5", + "version": "v7.1.6", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "235535e3f84f3dfbdbde0208ede6ca75c3a489ea" + "reference": "b9f72ab14efdb6b772f85041fa12f820dee8d55f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/235535e3f84f3dfbdbde0208ede6ca75c3a489ea", - "reference": "235535e3f84f3dfbdbde0208ede6ca75c3a489ea", + "url": "https://api.github.com/repos/symfony/translation/zipball/b9f72ab14efdb6b772f85041fa12f820dee8d55f", + "reference": "b9f72ab14efdb6b772f85041fa12f820dee8d55f", "shasum": "" }, "require": { @@ -9516,7 +9534,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v7.1.5" + "source": "https://github.com/symfony/translation/tree/v7.1.6" }, "funding": [ { @@ -9532,7 +9550,7 @@ "type": "tidelift" } ], - "time": "2024-09-16T06:30:38+00:00" + "time": "2024-09-28T12:35:13+00:00" }, { "name": "symfony/translation-contracts", @@ -9614,16 +9632,16 @@ }, { "name": "symfony/uid", - "version": "v7.1.5", + "version": "v7.1.6", "source": { "type": "git", "url": "https://github.com/symfony/uid.git", - "reference": "8c7bb8acb933964055215d89f9a9871df0239317" + "reference": "65befb3bb2d503bbffbd08c815aa38b472999917" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/uid/zipball/8c7bb8acb933964055215d89f9a9871df0239317", - "reference": "8c7bb8acb933964055215d89f9a9871df0239317", + "url": "https://api.github.com/repos/symfony/uid/zipball/65befb3bb2d503bbffbd08c815aa38b472999917", + "reference": "65befb3bb2d503bbffbd08c815aa38b472999917", "shasum": "" }, "require": { @@ -9668,7 +9686,7 @@ "uuid" ], "support": { - "source": "https://github.com/symfony/uid/tree/v7.1.5" + "source": "https://github.com/symfony/uid/tree/v7.1.6" }, "funding": [ { @@ -9684,20 +9702,20 @@ "type": "tidelift" } ], - "time": "2024-09-17T09:16:35+00:00" + "time": "2024-09-25T14:20:29+00:00" }, { "name": "symfony/var-dumper", - "version": "v7.1.5", + "version": "v7.1.7", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "e20e03889539fd4e4211e14d2179226c513c010d" + "reference": "f6ea51f669760cacd7464bf7eaa0be87b8072db1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/e20e03889539fd4e4211e14d2179226c513c010d", - "reference": "e20e03889539fd4e4211e14d2179226c513c010d", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/f6ea51f669760cacd7464bf7eaa0be87b8072db1", + "reference": "f6ea51f669760cacd7464bf7eaa0be87b8072db1", "shasum": "" }, "require": { @@ -9751,7 +9769,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v7.1.5" + "source": "https://github.com/symfony/var-dumper/tree/v7.1.7" }, "funding": [ { @@ -9767,20 +9785,20 @@ "type": "tidelift" } ], - "time": "2024-09-16T10:07:02+00:00" + "time": "2024-11-05T15:34:55+00:00" }, { "name": "symfony/var-exporter", - "version": "v7.1.2", + "version": "v7.1.6", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "b80a669a2264609f07f1667f891dbfca25eba44c" + "reference": "90173ef89c40e7c8c616653241048705f84130ef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/b80a669a2264609f07f1667f891dbfca25eba44c", - "reference": "b80a669a2264609f07f1667f891dbfca25eba44c", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/90173ef89c40e7c8c616653241048705f84130ef", + "reference": "90173ef89c40e7c8c616653241048705f84130ef", "shasum": "" }, "require": { @@ -9827,7 +9845,7 @@ "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v7.1.2" + "source": "https://github.com/symfony/var-exporter/tree/v7.1.6" }, "funding": [ { @@ -9843,7 +9861,7 @@ "type": "tidelift" } ], - "time": "2024-06-28T08:00:31+00:00" + "time": "2024-09-25T14:20:29+00:00" }, { "name": "tijsverkoyen/css-to-inline-styles", @@ -10748,16 +10766,16 @@ }, { "name": "laravel/telescope", - "version": "v5.2.2", + "version": "v5.2.4", "source": { "type": "git", "url": "https://github.com/laravel/telescope.git", - "reference": "daaf95dee9fab2dd80f59b5f6611c6c0eff44878" + "reference": "749369e996611d803e7c1b57929b482dd676008d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/telescope/zipball/daaf95dee9fab2dd80f59b5f6611c6c0eff44878", - "reference": "daaf95dee9fab2dd80f59b5f6611c6c0eff44878", + "url": "https://api.github.com/repos/laravel/telescope/zipball/749369e996611d803e7c1b57929b482dd676008d", + "reference": "749369e996611d803e7c1b57929b482dd676008d", "shasum": "" }, "require": { @@ -10811,9 +10829,9 @@ ], "support": { "issues": "https://github.com/laravel/telescope/issues", - "source": "https://github.com/laravel/telescope/tree/v5.2.2" + "source": "https://github.com/laravel/telescope/tree/v5.2.4" }, - "time": "2024-08-26T12:40:52+00:00" + "time": "2024-10-29T15:35:13+00:00" }, { "name": "mockery/mockery", @@ -10960,23 +10978,23 @@ }, { "name": "nunomaduro/collision", - "version": "v8.4.0", + "version": "v8.5.0", "source": { "type": "git", "url": "https://github.com/nunomaduro/collision.git", - "reference": "e7d1aa8ed753f63fa816932bbc89678238843b4a" + "reference": "f5c101b929c958e849a633283adff296ed5f38f5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/collision/zipball/e7d1aa8ed753f63fa816932bbc89678238843b4a", - "reference": "e7d1aa8ed753f63fa816932bbc89678238843b4a", + "url": "https://api.github.com/repos/nunomaduro/collision/zipball/f5c101b929c958e849a633283adff296ed5f38f5", + "reference": "f5c101b929c958e849a633283adff296ed5f38f5", "shasum": "" }, "require": { - "filp/whoops": "^2.15.4", - "nunomaduro/termwind": "^2.0.1", + "filp/whoops": "^2.16.0", + "nunomaduro/termwind": "^2.1.0", "php": "^8.2.0", - "symfony/console": "^7.1.3" + "symfony/console": "^7.1.5" }, "conflict": { "laravel/framework": "<11.0.0 || >=12.0.0", @@ -10984,14 +11002,14 @@ }, "require-dev": { "larastan/larastan": "^2.9.8", - "laravel/framework": "^11.19.0", - "laravel/pint": "^1.17.1", - "laravel/sail": "^1.31.0", - "laravel/sanctum": "^4.0.2", - "laravel/tinker": "^2.9.0", - "orchestra/testbench-core": "^9.2.3", - "pestphp/pest": "^2.35.0 || ^3.0.0", - "sebastian/environment": "^6.1.0 || ^7.0.0" + "laravel/framework": "^11.28.0", + "laravel/pint": "^1.18.1", + "laravel/sail": "^1.36.0", + "laravel/sanctum": "^4.0.3", + "laravel/tinker": "^2.10.0", + "orchestra/testbench-core": "^9.5.3", + "pestphp/pest": "^2.36.0 || ^3.4.0", + "sebastian/environment": "^6.1.0 || ^7.2.0" }, "type": "library", "extra": { @@ -11053,7 +11071,7 @@ "type": "patreon" } ], - "time": "2024-08-03T15:32:23+00:00" + "time": "2024-10-15T16:06:32+00:00" }, { "name": "phar-io/manifest", @@ -11175,35 +11193,35 @@ }, { "name": "phpunit/php-code-coverage", - "version": "11.0.6", + "version": "11.0.7", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "ebdffc9e09585dafa71b9bffcdb0a229d4704c45" + "reference": "f7f08030e8811582cc459871d28d6f5a1a4d35ca" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/ebdffc9e09585dafa71b9bffcdb0a229d4704c45", - "reference": "ebdffc9e09585dafa71b9bffcdb0a229d4704c45", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/f7f08030e8811582cc459871d28d6f5a1a4d35ca", + "reference": "f7f08030e8811582cc459871d28d6f5a1a4d35ca", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "ext-xmlwriter": "*", - "nikic/php-parser": "^5.1.0", + "nikic/php-parser": "^5.3.1", "php": ">=8.2", - "phpunit/php-file-iterator": "^5.0.1", + "phpunit/php-file-iterator": "^5.1.0", "phpunit/php-text-template": "^4.0.1", "sebastian/code-unit-reverse-lookup": "^4.0.1", "sebastian/complexity": "^4.0.1", "sebastian/environment": "^7.2.0", "sebastian/lines-of-code": "^3.0.1", - "sebastian/version": "^5.0.1", + "sebastian/version": "^5.0.2", "theseer/tokenizer": "^1.2.3" }, "require-dev": { - "phpunit/phpunit": "^11.0" + "phpunit/phpunit": "^11.4.1" }, "suggest": { "ext-pcov": "PHP extension that provides line coverage", @@ -11241,7 +11259,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/11.0.6" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/11.0.7" }, "funding": [ { @@ -11249,7 +11267,7 @@ "type": "github" } ], - "time": "2024-08-22T04:37:56+00:00" + "time": "2024-10-09T06:21:38+00:00" }, { "name": "phpunit/php-file-iterator", @@ -11498,16 +11516,16 @@ }, { "name": "phpunit/phpunit", - "version": "11.4.0", + "version": "11.4.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "89fe0c530133c08f7fff89d3d727154e4e504925" + "reference": "e8e8ed1854de5d36c088ec1833beae40d2dedd76" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/89fe0c530133c08f7fff89d3d727154e4e504925", - "reference": "89fe0c530133c08f7fff89d3d727154e4e504925", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/e8e8ed1854de5d36c088ec1833beae40d2dedd76", + "reference": "e8e8ed1854de5d36c088ec1833beae40d2dedd76", "shasum": "" }, "require": { @@ -11521,21 +11539,21 @@ "phar-io/manifest": "^2.0.4", "phar-io/version": "^3.2.1", "php": ">=8.2", - "phpunit/php-code-coverage": "^11.0.6", + "phpunit/php-code-coverage": "^11.0.7", "phpunit/php-file-iterator": "^5.1.0", "phpunit/php-invoker": "^5.0.1", "phpunit/php-text-template": "^4.0.1", "phpunit/php-timer": "^7.0.1", "sebastian/cli-parser": "^3.0.2", "sebastian/code-unit": "^3.0.1", - "sebastian/comparator": "^6.1.0", + "sebastian/comparator": "^6.1.1", "sebastian/diff": "^6.0.2", "sebastian/environment": "^7.2.0", "sebastian/exporter": "^6.1.3", "sebastian/global-state": "^7.0.2", "sebastian/object-enumerator": "^6.0.1", "sebastian/type": "^5.1.0", - "sebastian/version": "^5.0.1" + "sebastian/version": "^5.0.2" }, "suggest": { "ext-soap": "To be able to generate mocks based on WSDL files" @@ -11578,7 +11596,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/11.4.0" + "source": "https://github.com/sebastianbergmann/phpunit/tree/11.4.3" }, "funding": [ { @@ -11594,7 +11612,7 @@ "type": "tidelift" } ], - "time": "2024-10-05T08:39:03+00:00" + "time": "2024-10-28T13:07:50+00:00" }, { "name": "sebastian/cli-parser", @@ -11768,16 +11786,16 @@ }, { "name": "sebastian/comparator", - "version": "6.1.0", + "version": "6.2.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "fa37b9e2ca618cb051d71b60120952ee8ca8b03d" + "reference": "43d129d6a0f81c78bee378b46688293eb7ea3739" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa37b9e2ca618cb051d71b60120952ee8ca8b03d", - "reference": "fa37b9e2ca618cb051d71b60120952ee8ca8b03d", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/43d129d6a0f81c78bee378b46688293eb7ea3739", + "reference": "43d129d6a0f81c78bee378b46688293eb7ea3739", "shasum": "" }, "require": { @@ -11788,12 +11806,12 @@ "sebastian/exporter": "^6.0" }, "require-dev": { - "phpunit/phpunit": "^11.3" + "phpunit/phpunit": "^11.4" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "6.1-dev" + "dev-main": "6.2-dev" } }, "autoload": { @@ -11833,7 +11851,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/comparator/issues", "security": "https://github.com/sebastianbergmann/comparator/security/policy", - "source": "https://github.com/sebastianbergmann/comparator/tree/6.1.0" + "source": "https://github.com/sebastianbergmann/comparator/tree/6.2.1" }, "funding": [ { @@ -11841,7 +11859,7 @@ "type": "github" } ], - "time": "2024-09-11T15:42:56+00:00" + "time": "2024-10-31T05:30:08+00:00" }, { "name": "sebastian/complexity", @@ -12467,16 +12485,16 @@ }, { "name": "sebastian/version", - "version": "5.0.1", + "version": "5.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/version.git", - "reference": "45c9debb7d039ce9b97de2f749c2cf5832a06ac4" + "reference": "c687e3387b99f5b03b6caa64c74b63e2936ff874" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/45c9debb7d039ce9b97de2f749c2cf5832a06ac4", - "reference": "45c9debb7d039ce9b97de2f749c2cf5832a06ac4", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c687e3387b99f5b03b6caa64c74b63e2936ff874", + "reference": "c687e3387b99f5b03b6caa64c74b63e2936ff874", "shasum": "" }, "require": { @@ -12509,7 +12527,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/version/issues", "security": "https://github.com/sebastianbergmann/version/security/policy", - "source": "https://github.com/sebastianbergmann/version/tree/5.0.1" + "source": "https://github.com/sebastianbergmann/version/tree/5.0.2" }, "funding": [ { @@ -12517,7 +12535,7 @@ "type": "github" } ], - "time": "2024-07-03T05:13:08+00:00" + "time": "2024-10-09T05:16:32+00:00" }, { "name": "theseer/tokenizer",