diff --git a/app/Filament/Pages/Statistic.php b/app/Filament/Pages/Statistic.php index 28d39f58..cd49a557 100644 --- a/app/Filament/Pages/Statistic.php +++ b/app/Filament/Pages/Statistic.php @@ -140,10 +140,10 @@ class Statistic extends BaseDashboard ->live() ->preload() ->searchable(false) - ->prefixIconColor(fn(Get $get): string => $get('sofascore_category_id') ? 'success' : 'danger') + ->prefixIconColor(fn (Get $get): string => $get('sofascore_category_id') ? 'success' : 'danger') ->prefixIcon('phosphor-globe') ->hiddenLabel() - ->options(fn() => LoadSofaScoreCategory::load()) + ->options(fn () => LoadSofaScoreCategory::load()) ->placeholder('Select Country') ->afterStateUpdated(function (callable $set, $state) { $set('seasonmode', SofaScoreCategory::where('id', $state)->value('season_mode')); @@ -156,10 +156,10 @@ class Statistic extends BaseDashboard Select::make('league_id') ->live() ->preload() - ->prefixIconColor(fn(Get $get): string => $get('league_id') ? 'success' : 'danger') + ->prefixIconColor(fn (Get $get): string => $get('league_id') ? 'success' : 'danger') ->prefixIcon('phosphor-trophy') ->hiddenLabel() - ->options(fn(Get $get) => LoadStatisticFixturesLeaguesOptions::load($get('sofascore_category_id'))) + ->options(fn (Get $get) => LoadStatisticFixturesLeaguesOptions::load($get('sofascore_category_id'))) ->placeholder('Select League') ->afterStateUpdated(function (callable $set) { $set('match_id', null); @@ -170,8 +170,8 @@ class Statistic extends BaseDashboard Select::make('match_id') ->live() ->hiddenLabel() - ->columnSpan(fn(Get $get) => $get('similar_past_matches') != 'none' ? 2 : 1) - ->prefixIconColor(fn(Get $get): string => $get('match_id') ? 'success' : 'danger') + ->columnSpan(fn (Get $get) => $get('similar_past_matches') != 'none' ? 2 : 1) + ->prefixIconColor(fn (Get $get): string => $get('match_id') ? 'success' : 'danger') ->prefixIcon('phosphor-calendar-check') ->options(function (Get $get) { return LoadStatisticFixturesMatchOptions::load($get('league_id')); @@ -184,7 +184,7 @@ class Statistic extends BaseDashboard ->placeholder('Select Event'), Action::make('esc') ->hiddenLabel() - ->visible(fn(Get $get) => $get('similar_past_matches') != 'none') + ->visible(fn (Get $get) => $get('similar_past_matches') != 'none') ->tooltip('Clear All (esc)') ->icon('phosphor-x-circle') ->color('danger') @@ -209,9 +209,9 @@ class Statistic extends BaseDashboard ->suffixAction(Action::make('reset') ->icon('phosphor-x-circle') ->tooltip('Clear Team') - ->action(fn(callable $set) => $set('team_id', null)) - ->color(fn(Get $get): string => $get('team_id') != 0 ? 'danger' : 'gray')) - ->hidden(fn(Get $get) => $get('similar_past_matches') != 'none') + ->action(fn (callable $set) => $set('team_id', null)) + ->color(fn (Get $get): string => $get('team_id') != 0 ? 'danger' : 'gray')) + ->hidden(fn (Get $get) => $get('similar_past_matches') != 'none') ->options(function (Get $get) { if ($get('match_id')) { $res = StatisticFixtures::where('id', $get('match_id'))->first(); @@ -247,9 +247,9 @@ class Statistic extends BaseDashboard Action::make('iconInfo') ->color('success') ->icon('phosphor-question') - ->tooltip(fn() => 'Team Position') + ->tooltip(fn () => 'Team Position') ) - ->hidden(fn(Get $get) => $get('similar_past_matches') != 'none') + ->hidden(fn (Get $get) => $get('similar_past_matches') != 'none') ->default('all') ->selectablePlaceholder(false) ->options([ @@ -296,21 +296,21 @@ class Statistic extends BaseDashboard ->live() // ->columnSpan(2) ->hiddenLabel() - ->hidden(fn(Get $get) => $get('team_id') != null) - ->columnSpan(fn(Get $get) => $get('similar_past_matches') != 'none' ? 2 : 1) + ->hidden(fn (Get $get) => $get('team_id') != null) + ->columnSpan(fn (Get $get) => $get('similar_past_matches') != 'none' ? 2 : 1) ->suffixAction(Action::make('reset') ->icon('phosphor-x-circle') ->tooltip('Clear SMP') - ->action(fn(callable $set) => $set('similar_past_matches', 'none')) - ->color(fn(Get $get): string => $get('similar_past_matches') != 'none' ? 'danger' : 'gray')) + ->action(fn (callable $set) => $set('similar_past_matches', 'none')) + ->color(fn (Get $get): string => $get('similar_past_matches') != 'none' ? 'danger' : 'gray')) ->placeholder('Similar Past Matches') - ->suffix(fn(Get $get): string|HtmlString => $get('similar_past_matches') != 'none' ? new HtmlString('
± ' . $get('accuracy') . '
') : '') + ->suffix(fn (Get $get): string|HtmlString => $get('similar_past_matches') != 'none' ? new HtmlString('
± '.$get('accuracy').'
') : '') ->prefix('SPM') ->prefixAction( Action::make('iconInfo') ->icon('phosphor-question') - ->color(fn(Get $get): string => $get('similar_past_matches') != 'none' ? 'success' : 'danger') - ->tooltip(fn() => $this->tooltip_similar_past_matches()) + ->color(fn (Get $get): string => $get('similar_past_matches') != 'none' ? 'success' : 'danger') + ->tooltip(fn () => $this->tooltip_similar_past_matches()) ) ->default('none') ->selectablePlaceholder(false) @@ -330,7 +330,7 @@ class Statistic extends BaseDashboard Slider::make('accuracy') ->live() ->hiddenLabel() - ->hidden(fn(Get $get) => $get('similar_past_matches') == 'none') + ->hidden(fn (Get $get) => $get('similar_past_matches') == 'none') ->fillTrack() ->minValue(0) ->maxValue(0.25) @@ -350,13 +350,13 @@ class Statistic extends BaseDashboard ->allowHtml() ->columnSpan(2) ->placeholder('Player') - ->visible(fn(Get $get) => $get('team_id')) - ->hidden(fn(Get $get) => $get('similar_past_matches') != 'none') - ->prefixIconColor(fn(Get $get): string => $get('similar_past_matches') == 'none' ? 'success' : '') + ->visible(fn (Get $get) => $get('team_id')) + ->hidden(fn (Get $get) => $get('similar_past_matches') != 'none') + ->prefixIconColor(fn (Get $get): string => $get('similar_past_matches') == 'none' ? 'success' : '') ->prefixIcon('icon-player') ->preload() ->searchable() - ->extraAttributes(fn() => [ + ->extraAttributes(fn () => [ 'id' => 'player_selector', 'style' => 'width: 100%;', ]) @@ -364,7 +364,7 @@ class Statistic extends BaseDashboard Action::make('iconInfo') ->icon('phosphor-question') ->color('success') - ->tooltip(fn() => $this->tooltip_player_info()) + ->tooltip(fn () => $this->tooltip_player_info()) ) ->options(function (Get $get) { $team_id = $get('team_id'); @@ -381,7 +381,7 @@ class Statistic extends BaseDashboard ->placeholder('Time on field') ->prefixIcon('phosphor-watch') ->default('all') - ->hidden(fn(Get $get) => ! $get('ss_player_id')) + ->hidden(fn (Get $get) => ! $get('ss_player_id')) ->prefixIconColor('success') ->selectablePlaceholder(false) ->options([ @@ -402,7 +402,7 @@ class Statistic extends BaseDashboard ->extraAttributes([ 'class' => 'radio-statistic-group', ]) - ->hidden(fn(Get $get) => $get('similar_past_matches') != 'none') + ->hidden(fn (Get $get) => $get('similar_past_matches') != 'none') ->columnSpan(2) ->inline() ->default('season') @@ -421,8 +421,8 @@ class Statistic extends BaseDashboard ->multiple() ->placeholder('Current Season') ->prefixIconColor('success') - ->visible(fn(Get $get) => $get('seasonmode')) - ->hidden(fn(Get $get) => $get('seasonmode') == 'halfyear' || $get('season_or_date') == 'date' || $get('similar_past_matches') != 'none') + ->visible(fn (Get $get) => $get('seasonmode')) + ->hidden(fn (Get $get) => $get('seasonmode') == 'halfyear' || $get('season_or_date') == 'date' || $get('similar_past_matches') != 'none') ->prefixIcon('phosphor-calendar-star') ->options([ '2026' => '2026', @@ -442,8 +442,8 @@ class Statistic extends BaseDashboard ->multiple() ->placeholder('Current Season') ->prefixIconColor('success') - ->visible(fn(Get $get) => $get('seasonmode')) - ->hidden(fn(Get $get) => $get('seasonmode') == 'fullyear' || $get('season_or_date') == 'date' || $get('similar_past_matches') != 'none') + ->visible(fn (Get $get) => $get('seasonmode')) + ->hidden(fn (Get $get) => $get('seasonmode') == 'fullyear' || $get('season_or_date') == 'date' || $get('similar_past_matches') != 'none') ->prefixIcon('phosphor-calendar-star') ->options([ '26/27' => '26/27', @@ -459,46 +459,46 @@ class Statistic extends BaseDashboard DatePicker::make('start_date') ->live() ->hiddenLabel() - ->hidden(fn(Get $get) => $get('season_or_date') == 'season') + ->hidden(fn (Get $get) => $get('season_or_date') == 'season') ->native(false) - ->prefixIconColor(fn(Get $get): string => $get('start_date') ? 'success' : 'primary') + ->prefixIconColor(fn (Get $get): string => $get('start_date') ? 'success' : 'primary') ->prefixIcon('phosphor-calendar') ->prefix('Start') ->suffixAction( Action::make('clear_start') ->icon('phosphor-x') ->color('gray') - ->action(fn(Set $set) => $set('start_date', null)) + ->action(fn (Set $set) => $set('start_date', null)) ), DatePicker::make('end_date') ->live() ->hiddenLabel() - ->hidden(fn(Get $get) => $get('season_or_date') == 'season') + ->hidden(fn (Get $get) => $get('season_or_date') == 'season') ->native(false) - ->prefixIconColor(fn(Get $get): string => $get('end_date') ? 'success' : 'primary') + ->prefixIconColor(fn (Get $get): string => $get('end_date') ? 'success' : 'primary') ->prefixIcon('phosphor-calendar') ->prefix('End') ->suffixAction( Action::make('clear_end') ->icon('phosphor-x') ->color('gray') - ->action(fn(Set $set) => $set('end_date', null)) + ->action(fn (Set $set) => $set('end_date', null)) ), Actions::make([ Action::make('esc') ->hiddenLabel() - ->hidden(fn(Get $get) => $get('similar_past_matches') != 'none') + ->hidden(fn (Get $get) => $get('similar_past_matches') != 'none') ->tooltip('Clear All (esc)') ->icon('phosphor-x-circle') - ->color(fn(Get $get) => $get('sofascore_category_id') ? 'danger' : 'gray') + ->color(fn (Get $get) => $get('sofascore_category_id') ? 'danger' : 'gray') ->keyBindings(['esc']) ->outlined() ->size(Size::Medium) ->action('resetFilters'), Action::make('copy') ->hiddenLabel() - ->hidden(fn(Get $get) => $get('similar_past_matches') != 'none') - ->visible(fn(Get $get) => $get('team_id')) + ->hidden(fn (Get $get) => $get('similar_past_matches') != 'none') + ->visible(fn (Get $get) => $get('team_id')) ->tooltip('Copy data for pasting into spreadsheet') ->color('success') ->size(Size::Medium) @@ -521,12 +521,15 @@ class Statistic extends BaseDashboard ]); } + /** + * Summary of generateDynamicPayload + */ public function generateDynamicPayload(): string { $data = LoadEventsBoxes::load($this->filters, false); $header = ['Team', 'Event', 'Odd 1', 'Odd X', 'Odd 2', 'Category', 'EXP H', 'EXP A', 'AGV+', 'AGV-', 'AGV Team Season H', 'AGV Team Season A', 'AGV League H', 'AGV League A']; - $copystring = implode(';', $header) . "\n"; + $copystring = implode(';', $header)."\n"; $row = []; $row[] = $data['active_team']; $row[] = $data['count_events']; @@ -542,7 +545,7 @@ class Statistic extends BaseDashboard $row[] = $data['gls_team_season']['away']; $row[] = $data['gls_liga_season']['home']; $row[] = $data['gls_liga_season']['away']; - $copystring .= implode(';', $row) . "\n"; + $copystring .= implode(';', $row)."\n"; $row = []; $row = array_fill(0, 5, ''); $row[] = 'Fouls'; @@ -554,7 +557,7 @@ class Statistic extends BaseDashboard $row[] = $data['fls_team_season']['away']; $row[] = $data['fls_liga_season']['home']; $row[] = $data['fls_liga_season']['away']; - $copystring .= implode(';', $row) . "\n"; + $copystring .= implode(';', $row)."\n"; $row = []; $row = array_fill(0, 5, ''); $row[] = 'Offside'; @@ -566,7 +569,7 @@ class Statistic extends BaseDashboard $row[] = $data['ofs_team_season']['away']; $row[] = $data['ofs_liga_season']['home']; $row[] = $data['ofs_liga_season']['away']; - $copystring .= implode(';', $row) . "\n"; + $copystring .= implode(';', $row)."\n"; $row = []; $row = array_fill(0, 5, ''); $row[] = 'Cards'; @@ -578,7 +581,7 @@ class Statistic extends BaseDashboard $row[] = $data['crd_team_season']['away']; $row[] = $data['crd_liga_season']['home']; $row[] = $data['crd_liga_season']['away']; - $copystring .= implode(';', $row) . "\n"; + $copystring .= implode(';', $row)."\n"; $row = []; $row = array_fill(0, 5, ''); $row[] = 'Shots on traget'; @@ -590,7 +593,7 @@ class Statistic extends BaseDashboard $row[] = $data['snt_team_season']['away']; $row[] = $data['snt_liga_season']['home']; $row[] = $data['snt_liga_season']['away']; - $copystring .= implode(';', $row) . "\n"; + $copystring .= implode(';', $row)."\n"; $row = []; $row = array_fill(0, 5, ''); $row[] = 'Total Shots'; @@ -602,7 +605,7 @@ class Statistic extends BaseDashboard $row[] = $data['tsh_team_season']['away']; $row[] = $data['tsh_liga_season']['home']; $row[] = $data['tsh_liga_season']['away']; - $copystring .= implode(';', $row) . "\n"; + $copystring .= implode(';', $row)."\n"; return $copystring; } diff --git a/app/Filament/Widgets/Boxes/ExpectationsTeam.php b/app/Filament/Widgets/Boxes/ExpectationsTeam.php index 66f90e1a..f2d437fc 100644 --- a/app/Filament/Widgets/Boxes/ExpectationsTeam.php +++ b/app/Filament/Widgets/Boxes/ExpectationsTeam.php @@ -6,6 +6,7 @@ use App\Filament\Widgets\Boxes\Helper\ExpectationCalculation; use App\Filament\Widgets\Boxes\Helper\ExpectationCollecting; use App\Filament\Widgets\Charts\LoadEvents\LoadEventsQueryAll; use App\Utilities\Round; +use Illuminate\Support\Facades\Log; class ExpectationsTeam { @@ -29,20 +30,24 @@ class ExpectationsTeam } $res = LoadEventsQueryAll::load($filter, $match); + $count_events = $res->count(); if (! $res) { return []; } $tmp = []; foreach ($res as $value) { - ExpectationCollecting::sort($tmp, 'gls', $value->home_id, $value->away_id, $value->gls_h, $value->gls_a, $match); - ExpectationCollecting::sort($tmp, 'fls', $value->home_id, $value->away_id, $value->fls_h, $value->fls_a, $match); - ExpectationCollecting::sort($tmp, 'ofs', $value->home_id, $value->away_id, $value->ofs_h, $value->ofs_a, $match); - ExpectationCollecting::sort($tmp, 'crd', $value->home_id, $value->away_id, $value->crd_h, $value->crd_a, $match); - ExpectationCollecting::sort($tmp, 'snt', $value->home_id, $value->away_id, $value->snt_h, $value->snt_a, $match); - ExpectationCollecting::sort($tmp, 'tsh', $value->home_id, $value->away_id, $value->tsh_h, $value->tsh_a, $match); - ExpectationCollecting::sort($tmp, 'crn', $value->home_id, $value->away_id, $value->crn_h, $value->crn_a, $match); + ExpectationCollecting::sort($similar_past_matches, $tmp, 'gls', $value->home_id, $value->away_id, $value->gls_h, $value->gls_a, $match); + ExpectationCollecting::sort($similar_past_matches, $tmp, 'fls', $value->home_id, $value->away_id, $value->fls_h, $value->fls_a, $match); + ExpectationCollecting::sort($similar_past_matches, $tmp, 'ofs', $value->home_id, $value->away_id, $value->ofs_h, $value->ofs_a, $match); + ExpectationCollecting::sort($similar_past_matches, $tmp, 'crd', $value->home_id, $value->away_id, $value->crd_h, $value->crd_a, $match); + ExpectationCollecting::sort($similar_past_matches, $tmp, 'snt', $value->home_id, $value->away_id, $value->snt_h, $value->snt_a, $match); + ExpectationCollecting::sort($similar_past_matches, $tmp, 'tsh', $value->home_id, $value->away_id, $value->tsh_h, $value->tsh_a, $match); + ExpectationCollecting::sort($similar_past_matches, $tmp, 'crn', $value->home_id, $value->away_id, $value->crn_h, $value->crn_a, $match); } + + // Log::debug('expectations '.$count_events, $tmp); + $expectations = ExpectationCalculation::calc($tmp); $expectations['gls']['name'] = 'Goals'; $expectations['fls']['name'] = 'Fouls'; @@ -53,6 +58,8 @@ class ExpectationsTeam $expectations['home'] = $home_team; $expectations['away'] = $away_team; + // Log::debug('expectations '.$count_events, $expectations); + $expectations += ['win_count' => 0, 'draw_count' => 0, 'lost_count' => 0]; foreach ($res as $value) { if ($team_id && $team_position == 'home') { diff --git a/app/Filament/Widgets/Boxes/Helper/ExpectationCollecting.php b/app/Filament/Widgets/Boxes/Helper/ExpectationCollecting.php index 0f54948c..40462581 100644 --- a/app/Filament/Widgets/Boxes/Helper/ExpectationCollecting.php +++ b/app/Filament/Widgets/Boxes/Helper/ExpectationCollecting.php @@ -4,43 +4,47 @@ namespace App\Filament\Widgets\Boxes\Helper; class ExpectationCollecting { - public static function sort(array &$result, string $type, int $home_id, int $away_id, float $val_home, float $val_away, object $match) + public static function sort(string $similar_past_matches, array &$result, string $type, int $home_id, int $away_id, float $val_home, float $val_away, object $match) { - - if ($home_id == $match->home_id) { + if ($similar_past_matches != 'none') { $result[$type.'_home_made_total'][] = $val_home; - $result[$type.'_home_made_home'][] = $val_home; - $result[$type.'_home_got_total'][] = $val_away; - $result[$type.'_home_got_home'][] = $val_away; - } elseif ($away_id == $match->home_id) { - $result[$type.'_home_made_total'][] = $val_away; - $result[$type.'_home_got_total'][] = $val_away; - } elseif ($home_id == $match->away_id) { - $result[$type.'_home_made_total'][] = $val_away; - $result[$type.'_home_got_total'][] = $val_away; - } elseif ($away_id == $match->away_id) { - $result[$type.'_home_made_total'][] = $val_home; - $result[$type.'_home_made_home'][] = $val_home; - $result[$type.'_home_got_total'][] = $val_away; - $result[$type.'_home_got_home'][] = $val_home; - } + $result[$type.'_away_made_total'][] = $val_away; + } else { + if ($home_id == $match->home_id) { + $result[$type.'_home_made_total'][] = $val_home; + $result[$type.'_home_made_home'][] = $val_home; + $result[$type.'_home_got_total'][] = $val_away; + $result[$type.'_home_got_home'][] = $val_away; + } elseif ($away_id == $match->home_id) { + $result[$type.'_home_made_total'][] = $val_away; + $result[$type.'_home_got_total'][] = $val_away; + } elseif ($home_id == $match->away_id) { + $result[$type.'_home_made_total'][] = $val_away; + $result[$type.'_home_got_total'][] = $val_away; + } elseif ($away_id == $match->away_id) { + $result[$type.'_home_made_total'][] = $val_home; + $result[$type.'_home_made_home'][] = $val_home; + $result[$type.'_home_got_total'][] = $val_away; + $result[$type.'_home_got_home'][] = $val_home; + } - if ($away_id == $match->away_id) { - $result[$type.'_away_made_total'][] = $val_away; - $result[$type.'_away_made_home'][] = $val_away; - $result[$type.'_away_got_total'][] = $val_home; - $result[$type.'_away_got_home'][] = $val_home; - } elseif ($home_id == $match->away_id) { - $result[$type.'_away_made_total'][] = $val_home; - $result[$type.'_away_got_total'][] = $val_home; - } elseif ($away_id == $match->home_id) { - $result[$type.'_away_made_total'][] = $val_home; - $result[$type.'_away_got_total'][] = $val_home; - } elseif ($home_id == $match->home_id) { - $result[$type.'_away_made_total'][] = $val_away; - $result[$type.'_away_made_home'][] = $val_away; - $result[$type.'_away_got_total'][] = $val_home; - $result[$type.'_away_got_home'][] = $val_away; + if ($away_id == $match->away_id) { + $result[$type.'_away_made_total'][] = $val_away; + $result[$type.'_away_made_home'][] = $val_away; + $result[$type.'_away_got_total'][] = $val_home; + $result[$type.'_away_got_home'][] = $val_home; + } elseif ($home_id == $match->away_id) { + $result[$type.'_away_made_total'][] = $val_home; + $result[$type.'_away_got_total'][] = $val_home; + } elseif ($away_id == $match->home_id) { + $result[$type.'_away_made_total'][] = $val_home; + $result[$type.'_away_got_total'][] = $val_home; + } elseif ($home_id == $match->home_id) { + $result[$type.'_away_made_total'][] = $val_away; + $result[$type.'_away_made_home'][] = $val_away; + $result[$type.'_away_got_total'][] = $val_home; + $result[$type.'_away_got_home'][] = $val_away; + } } } } diff --git a/app/Filament/Widgets/BoxesBettypeAll.php b/app/Filament/Widgets/BoxesBettypeAll.php index 6da0d0ef..a057dbe0 100644 --- a/app/Filament/Widgets/BoxesBettypeAll.php +++ b/app/Filament/Widgets/BoxesBettypeAll.php @@ -15,6 +15,7 @@ class BoxesBettypeAll extends StatsOverviewWidget { use InteractsWithPageFilters; + // Within your Widget class: protected ?string $pollingInterval = null; protected int|array|null $columns = null; @@ -33,6 +34,8 @@ class BoxesBettypeAll extends StatsOverviewWidget { $data = LoadEventsBoxes::load($this->filters, false); + // dd($data); + $similar_past_matches = $this->filters['similar_past_matches']; $team_position = $this->filters['team_position']; @@ -48,7 +51,7 @@ class BoxesBettypeAll extends StatsOverviewWidget $count_events = $data['count_events']; $boxes = []; $boxes[] = Stat::make('Total', self::template_total($count_events)) - ->description(fn() => $similar_past_matches == 'none' ? 'Team Selected' : 'Similar Past Matches') + ->description(fn () => $similar_past_matches == 'none' ? 'Team Selected' : 'Similar Past Matches') ->extraAttributes(['x-init' => "animate('number-of-events', $count_events);", 'class' => 'box-success justify-center']); // BOX 1X2 @@ -68,22 +71,22 @@ class BoxesBettypeAll extends StatsOverviewWidget // BOX AVERAGE if (isset($data['gls_team'])) { - $boxes[] = Stat::make('Average ' . $data['active_team'], self::template_tabelle_2($data)) + $boxes[] = Stat::make('Average '.$data['active_team'], self::template_tabelle_2($data)) ->extraAttributes(['class' => 'box-blank']) ->description($team_position); } // BOX AVERAGE WITH TEAM FIXED TO ACTIVE SEASON if (isset($data['gls_team_season'])) { - $boxes[] = Stat::make('Average ' . $data['active_team'], self::template_tabelle_3($data)) + $boxes[] = Stat::make('Average '.$data['active_team'], self::template_tabelle_3($data)) ->extraAttributes(['class' => 'box-blank']) - ->description('Season ' . $data['active_season']); + ->description('Season '.$data['active_season']); } // BOX AVERAGE ALL LEAGUE FIXED TO ACTIVE SEASON if (isset($data['gls_liga_season'])) { $boxes[] = Stat::make('League Average', self::template_tabelle_4($data)) ->extraAttributes(['class' => 'box-blank']) - ->description('Season ' . $data['active_season']); + ->description('Season '.$data['active_season']); } $this->columns = [ @@ -100,7 +103,7 @@ class BoxesBettypeAll extends StatsOverviewWidget protected function template_total(float $total_home): HtmlString { return new HtmlString('
- ' . $total_home . ' + '.$total_home.' Events
'); } @@ -109,22 +112,22 @@ class BoxesBettypeAll extends StatsOverviewWidget protected function template_odds(array &$data, float $win, float $draw, float $lost): HtmlString { if ($this->filters['similar_past_matches'] != 'none') { - $name_win = '1 (' . $data['win_count'] . ')'; - $name_draw = 'X (' . $data['draw_count'] . ')'; - $name_lost = '2 (' . $data['lost_count'] . ')'; + $name_win = '1 ('.$data['win_count'].')'; + $name_draw = 'X ('.$data['draw_count'].')'; + $name_lost = '2 ('.$data['lost_count'].')'; } else { - $name_win = 'Win (' . $data['win_count'] . ')'; - $name_draw = 'Draw (' . $data['draw_count'] . ')'; - $name_lost = 'Lost (' . $data['lost_count'] . ')'; + $name_win = 'Win ('.$data['win_count'].')'; + $name_draw = 'Draw ('.$data['draw_count'].')'; + $name_lost = 'Lost ('.$data['lost_count'].')'; } return new HtmlString('
- ' . number_format($win, 2) . ' - ' . number_format($draw, 2) . ' - ' . number_format($lost, 2) . ' - ' . $name_win . ' - ' . $name_draw . ' - ' . $name_lost . ' + '.number_format($win, 2).' + '.number_format($draw, 2).' + '.number_format($lost, 2).' + '.$name_win.' + '.$name_draw.' + '.$name_lost.'
'); } @@ -135,9 +138,9 @@ class BoxesBettypeAll extends StatsOverviewWidget $str = '
'; // $str .= '
Home
Away
'; foreach ($bets as $name) { - $str .= '
' . $data[$name]['name'] . '
'; - $str .= '
' . number_format($data[$name]['home'], 1) . '
'; - $str .= '
' . number_format($data[$name]['away'], 1) . '
'; + $str .= '
'.$data[$name]['name'].'
'; + $str .= '
'.number_format($data[$name]['home'], 1).'
'; + $str .= '
'.number_format($data[$name]['away'], 1).'
'; } $str .= '
'; @@ -150,9 +153,9 @@ class BoxesBettypeAll extends StatsOverviewWidget $str = '
'; // $str .= '
Home
Away
'; foreach ($bets as $name) { - $str .= '
' . $data[$name]['name'] . '
'; - $str .= '
' . number_format($data[$name]['home'], 1) . '
'; - $str .= '
' . number_format($data[$name]['away'], 1) . '
'; + $str .= '
'.$data[$name]['name'].'
'; + $str .= '
'.number_format($data[$name]['home'], 1).'
'; + $str .= '
'.number_format($data[$name]['away'], 1).'
'; } $str .= '
'; @@ -165,9 +168,9 @@ class BoxesBettypeAll extends StatsOverviewWidget $str = '
'; // $str .= '
Home
Away
'; foreach ($bets as $name) { - $str .= '
' . $data[$name]['name'] . '
'; - $str .= '
' . number_format($data[$name]['home'], 1) . '
'; - $str .= '
' . number_format($data[$name]['away'], 1) . '
'; + $str .= '
'.$data[$name]['name'].'
'; + $str .= '
'.number_format($data[$name]['home'], 1).'
'; + $str .= '
'.number_format($data[$name]['away'], 1).'
'; } $str .= '
'; @@ -180,9 +183,9 @@ class BoxesBettypeAll extends StatsOverviewWidget $str = '
'; // $str .= '
Home
Away
'; foreach ($bets as $name) { - $str .= '
' . $data[$name]['name'] . '
'; - $str .= '
' . number_format($data[$name]['home'], 1) . '
'; - $str .= '
' . number_format($data[$name]['away'], 1) . '
'; + $str .= '
'.$data[$name]['name'].'
'; + $str .= '
'.number_format($data[$name]['home'], 1).'
'; + $str .= '
'.number_format($data[$name]['away'], 1).'
'; } $str .= '
'; diff --git a/app/Filament/Widgets/Charts/LoadEvents/LoadEventsQuery.php b/app/Filament/Widgets/Charts/LoadEvents/LoadEventsQuery.php index d9aa8441..c8edcbac 100644 --- a/app/Filament/Widgets/Charts/LoadEvents/LoadEventsQuery.php +++ b/app/Filament/Widgets/Charts/LoadEvents/LoadEventsQuery.php @@ -6,7 +6,6 @@ use App\Filament\Pages\Selections\Helper\GetSeason; use App\Models\SofaScoreRosa; use App\Models\StatistikoEvent; use App\Models\StatistikoPlayer; -use Illuminate\Support\Facades\Log; class LoadEventsQuery { @@ -137,10 +136,6 @@ class LoadEventsQuery ->orderBy('starttime', 'ASC') ->get(); - // dd($res); - // dd($season, $league_id, $res); - Log::info('season', $season); - $arr = []; foreach ($res as $value) { diff --git a/app/Filament/Widgets/Charts/LoadEvents/LoadEventsQueryAll.php b/app/Filament/Widgets/Charts/LoadEvents/LoadEventsQueryAll.php index 1ad1617f..463a7ae9 100644 --- a/app/Filament/Widgets/Charts/LoadEvents/LoadEventsQueryAll.php +++ b/app/Filament/Widgets/Charts/LoadEvents/LoadEventsQueryAll.php @@ -33,6 +33,7 @@ class LoadEventsQueryAll $total_range = []; if ($similar_past_matches != 'none') { $team_id = 0; + $ss_player_id = 0; $team_position = ''; $exp_handicap = $match->exp_away - $match->exp_home; $exp_total = $match->exp_away + $match->exp_home; @@ -40,12 +41,6 @@ class LoadEventsQueryAll $total_range = [$exp_total - $accuracy, $exp_total + $accuracy]; } - if ($similar_past_matches != 'none') { - $team_position = ''; - $team_id = 0; - $ss_player_id = 0; - } - // dd($season); $season = GetSeason::load($season, $seasonmode); @@ -98,6 +93,8 @@ class LoadEventsQueryAll /** * STATTISTIC DATA */ + // Log::debug('result', [$similar_past_matches, $home_id, $away_id, $team_id]); + return StatistikoEvent::with('home')->with('away') ->where(function ($query) use ($league_id, $similar_past_matches) { switch ($similar_past_matches) { diff --git a/app/Filament/Widgets/Charts/LoadEvents/LoadEventsQuerySPM.php b/app/Filament/Widgets/Charts/LoadEvents/LoadEventsQuerySPM.php new file mode 100644 index 00000000..466d293b --- /dev/null +++ b/app/Filament/Widgets/Charts/LoadEvents/LoadEventsQuerySPM.php @@ -0,0 +1,141 @@ +home_id; + $away_id = $match->away_id; + + $handicap_range = []; + $total_range = []; + if ($similar_past_matches != 'none') { + $team_id = 0; + $ss_player_id = 0; + $team_position = ''; + $exp_handicap = $match->exp_away - $match->exp_home; + $exp_total = $match->exp_away + $match->exp_home; + $handicap_range = [$exp_handicap - $accuracy, $exp_handicap + $accuracy]; + $total_range = [$exp_total - $accuracy, $exp_total + $accuracy]; + } + + // dd($season); + $season = GetSeason::load($season, $seasonmode); + + /** + * IF WITH PLAYER + */ + $matches_played = []; + + if ($ss_player_id) { + $matches_season = StatistikoEvent::whereIn('season', $season) + ->where(function ($query) use ($team_id, $team_position) { + switch ($team_position) { + case 'home': + return $query->where('home_id', '=', $team_id); + case 'away': + return $query->where('away_id', '=', $team_id); + default: + return $query->where('home_id', '=', $team_id) + ->orWhere('away_id', '=', $team_id); + } + })->pluck('match_id')->toArray(); + + $matches_played = StatistikoPlayer::query() + ->whereIn('match_id', $matches_season) + ->where('ss_player_id', $ss_player_id) + ->when($player_on_field, function ($query) use ($player_on_field) { + // 'all' => 'All', + // 'lineup' => 'Lineup', + // 'substituted' => 'Substituted', + // 'notplayed' => 'Not Played', + switch ($player_on_field) { + case 'all': + return $query->where('minutes_played', '>', 0); + case 'lineup': + return $query->where('lineup', 'T')->where('minutes_played', '>', 0); + case 'substituted': + return $query->where('lineup', 'P')->where('minutes_played', '>', 0); + default: + return $query->where('minutes_played', '>', 0); + } + }) + ->pluck('match_id')->toArray(); + + if (! $matches_played) { + $matches_played[] = -1; + } + } + + // dd($handicap_range, $total_range); + /** + * STATTISTIC DATA + */ + // Log::debug('result', [$similar_past_matches, $home_id, $away_id, $team_id]); + + return StatistikoEvent::with('home')->with('away') + ->where(function ($query) use ($league_id, $similar_past_matches) { + switch ($similar_past_matches) { + case 'none': + case 'league': + return $query->where('league_id', $league_id); + } + }) + ->where(function ($query) use ($team_id, $home_id, $away_id, $similar_past_matches) { + if ($similar_past_matches == 'none') { + if ($team_id) { + return $query->orWhere('home_id', $team_id) + ->orWhere('away_id', '=', $team_id); + } else { + return $query->whereIn('home_id', [$home_id, $away_id])->orWhereIn('away_id', [$home_id, $away_id]); + } + } + }) + ->when($matches_played, function ($query) use ($matches_played, $player_on_field) { + if ($player_on_field == 'notplayed') { + return $query->whereNotIn('match_id', $matches_played); + } else { + return $query->whereIn('match_id', $matches_played); + } + }) + ->when($handicap_range, function ($query) use ($handicap_range) { + return $query->whereBetween('exp_handicap', $handicap_range); + })->when($total_range, function ($query) use ($total_range) { + return $query->whereBetween('exp_total', $total_range); + }) + ->when($start, function ($query) use ($start) { + return $query->whereDate('starttime', '>=', $start); + })->when($end, function ($query) use ($end) { + return $query->whereDate('starttime', '<=', $end); + }) + ->when($season, function ($query) use ($season, $season_or_date, $similar_past_matches) { + if ($similar_past_matches == 'none' && $season_or_date == 'season') { + return $query->whereIn('season', $season); + } + }) + ->orderBy('starttime', 'ASC') + ->get(); + } +} diff --git a/app/Services/CloudflareSolverService.php b/app/Services/CloudflareSolverService.php index 4c432ea7..f1607a2a 100644 --- a/app/Services/CloudflareSolverService.php +++ b/app/Services/CloudflareSolverService.php @@ -31,7 +31,7 @@ class CloudflareSolverService ]); if ($response->failed()) { - Log::error('FlareSolverr Verbindungsfehler. Status: ' . $response->status()); + // Log::error('FlareSolverr Verbindungsfehler. Status: ' . $response->status()); return null; } @@ -56,15 +56,15 @@ class CloudflareSolverService return $decoded; } - Log::error('Extrahiertes Textfragment ist kein gültiges JSON.'); + // Log::error('Extrahiertes Textfragment ist kein gültiges JSON.'); } else { - Log::error('Kein JSON-Muster { ... } im HTML gefunden.'); + // Log::error('Kein JSON-Muster { ... } im HTML gefunden.'); } } else { - Log::error('FlareSolverr konnte die Seite nicht umgehen: ' . json_encode($data)); + // Log::error('FlareSolverr konnte die Seite nicht umgehen: '.json_encode($data)); } } catch (\Exception $e) { - Log::error('PHP Exception im CloudflareSolverService: ' . $e->getMessage()); + // Log::error('PHP Exception im CloudflareSolverService: '.$e->getMessage()); } Notice::note('ERROR connecting FLARESOLVERR_IP_DOCKER', 'br', 1); diff --git a/composer.lock b/composer.lock index a48dd35c..af1050ed 100644 --- a/composer.lock +++ b/composer.lock @@ -1445,16 +1445,16 @@ }, { "name": "doctrine/lexer", - "version": "3.0.2", + "version": "3.0.3", "source": { "type": "git", "url": "https://github.com/doctrine/lexer.git", - "reference": "e96fe45e92a54233726014a7cc7340abf29bb14c" + "reference": "71d305eaa6480d3d3460c7d053d1da7749fa9cca" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/e96fe45e92a54233726014a7cc7340abf29bb14c", - "reference": "e96fe45e92a54233726014a7cc7340abf29bb14c", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/71d305eaa6480d3d3460c7d053d1da7749fa9cca", + "reference": "71d305eaa6480d3d3460c7d053d1da7749fa9cca", "shasum": "" }, "require": { @@ -1500,7 +1500,7 @@ ], "support": { "issues": "https://github.com/doctrine/lexer/issues", - "source": "https://github.com/doctrine/lexer/tree/3.0.2" + "source": "https://github.com/doctrine/lexer/tree/3.0.3" }, "funding": [ { @@ -1516,7 +1516,7 @@ "type": "tidelift" } ], - "time": "2026-06-14T20:44:06+00:00" + "time": "2026-10-01T06:59:29+00:00" }, { "name": "dragonmantank/cron-expression", @@ -3023,16 +3023,16 @@ }, { "name": "laravel/framework", - "version": "v12.69.2", + "version": "v12.69.3", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "17d034ef1e209b63a1d3a89c90ce5e89a4eb3fc5" + "reference": "58ea544a2a80dc03c168e13a5dc9a1d176a88717" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/17d034ef1e209b63a1d3a89c90ce5e89a4eb3fc5", - "reference": "17d034ef1e209b63a1d3a89c90ce5e89a4eb3fc5", + "url": "https://api.github.com/repos/laravel/framework/zipball/58ea544a2a80dc03c168e13a5dc9a1d176a88717", + "reference": "58ea544a2a80dc03c168e13a5dc9a1d176a88717", "shasum": "" }, "require": { @@ -3241,7 +3241,7 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2026-09-08T14:29:09+00:00" + "time": "2026-09-29T12:53:25+00:00" }, { "name": "laravel/prompts", @@ -4168,16 +4168,16 @@ }, { "name": "livewire/livewire", - "version": "v4.4.6", + "version": "v4.4.7", "source": { "type": "git", "url": "https://github.com/livewire/livewire.git", - "reference": "c6b7db7a92103ac2738e8fdc926cecc93eb67853" + "reference": "5976d18b1c808287017a17337d9e68dc1ca64ca2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/livewire/livewire/zipball/c6b7db7a92103ac2738e8fdc926cecc93eb67853", - "reference": "c6b7db7a92103ac2738e8fdc926cecc93eb67853", + "url": "https://api.github.com/repos/livewire/livewire/zipball/5976d18b1c808287017a17337d9e68dc1ca64ca2", + "reference": "5976d18b1c808287017a17337d9e68dc1ca64ca2", "shasum": "" }, "require": { @@ -4232,7 +4232,7 @@ "description": "A front-end framework for Laravel.", "support": { "issues": "https://github.com/livewire/livewire/issues", - "source": "https://github.com/livewire/livewire/tree/v4.4.6" + "source": "https://github.com/livewire/livewire/tree/v4.4.7" }, "funding": [ { @@ -4240,7 +4240,7 @@ "type": "github" } ], - "time": "2026-09-21T18:51:23+00:00" + "time": "2026-09-28T18:12:51+00:00" }, { "name": "maennchen/zipstream-php", @@ -4783,23 +4783,24 @@ }, { "name": "mongodb/mongodb", - "version": "2.4.2", + "version": "2.5.0", "source": { "type": "git", "url": "https://github.com/mongodb/mongo-php-library", - "reference": "1fbdc2ffff18a1ad6d92043b40060e4f546982ff" + "reference": "d70875dbb897a1cc7de15b6d21ceed43706f1937" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mongodb/mongo-php-library/zipball/1fbdc2ffff18a1ad6d92043b40060e4f546982ff", - "reference": "1fbdc2ffff18a1ad6d92043b40060e4f546982ff", + "url": "https://api.github.com/repos/mongodb/mongo-php-library/zipball/d70875dbb897a1cc7de15b6d21ceed43706f1937", + "reference": "d70875dbb897a1cc7de15b6d21ceed43706f1937", "shasum": "" }, "require": { "composer-runtime-api": "^2.0", - "ext-mongodb": "^2.4", + "ext-mongodb": "^2.5", "php": "^8.1", "psr/log": "^1.1.4|^2|^3", + "symfony/polyfill-php84": "^1.38", "symfony/polyfill-php85": "^1.33" }, "replace": { @@ -4808,7 +4809,7 @@ "require-dev": { "doctrine/coding-standard": "^12.0", "phpunit/phpunit": "^10.5.35", - "rector/rector": "~2.5.9", + "rector/rector": "~2.6.4", "squizlabs/php_codesniffer": "^3.7", "vimeo/psalm": "~6.14.2" }, @@ -4852,20 +4853,20 @@ "mongodb", "persistence" ], - "time": "2026-09-10T15:46:23+00:00" + "time": "2026-09-29T12:27:47+00:00" }, { "name": "monolog/monolog", - "version": "3.12.0", + "version": "3.12.1", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "72c534fc0ab181ef52d92a68382318631e301608" + "reference": "d7059e4c691d05ea1222b5124bed0f961be46e15" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/72c534fc0ab181ef52d92a68382318631e301608", - "reference": "72c534fc0ab181ef52d92a68382318631e301608", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/d7059e4c691d05ea1222b5124bed0f961be46e15", + "reference": "d7059e4c691d05ea1222b5124bed0f961be46e15", "shasum": "" }, "require": { @@ -4945,7 +4946,7 @@ ], "support": { "issues": "https://github.com/Seldaek/monolog/issues", - "source": "https://github.com/Seldaek/monolog/tree/3.12.0" + "source": "https://github.com/Seldaek/monolog/tree/3.12.1" }, "funding": [ { @@ -4957,7 +4958,7 @@ "type": "tidelift" } ], - "time": "2026-09-09T08:34:20+00:00" + "time": "2026-09-29T19:21:12+00:00" }, { "name": "neitanod/forceutf8", @@ -5002,16 +5003,16 @@ }, { "name": "nesbot/carbon", - "version": "3.14.0", + "version": "3.14.2", "source": { "type": "git", "url": "https://github.com/CarbonPHP/carbon.git", - "reference": "0023eaa2c9110e47446dd512a263c69c40cd41f2" + "reference": "94cfc34887f07ab5c0efa07914c8f527544e3224" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/0023eaa2c9110e47446dd512a263c69c40cd41f2", - "reference": "0023eaa2c9110e47446dd512a263c69c40cd41f2", + "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/94cfc34887f07ab5c0efa07914c8f527544e3224", + "reference": "94cfc34887f07ab5c0efa07914c8f527544e3224", "shasum": "" }, "require": { @@ -5031,7 +5032,7 @@ "doctrine/orm": "^2.15.2 || ^3.0", "friendsofphp/php-cs-fixer": "^v3.87.1", "kylekatarnls/multi-tester": "^2.5.3", - "phpmd/phpmd": "^2.15.0", + "phpmd/phpmd": "^3.0@dev", "phpstan/extension-installer": "^1.4.3", "phpstan/phpstan": "^2.1.22", "phpunit/phpunit": "^10.5.53", @@ -5103,7 +5104,7 @@ "type": "tidelift" } ], - "time": "2026-09-12T20:45:19+00:00" + "time": "2026-10-02T07:26:52+00:00" }, { "name": "nette/php-generator", @@ -6936,16 +6937,16 @@ }, { "name": "spatie/laravel-package-tools", - "version": "1.93.2", + "version": "1.93.3", "source": { "type": "git", "url": "https://github.com/spatie/laravel-package-tools.git", - "reference": "e927d5b5b05e9fecae098e559e51918aa608ad02" + "reference": "7aeef26bd8d4909bec744dbf47aee7d1395588c1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/e927d5b5b05e9fecae098e559e51918aa608ad02", - "reference": "e927d5b5b05e9fecae098e559e51918aa608ad02", + "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/7aeef26bd8d4909bec744dbf47aee7d1395588c1", + "reference": "7aeef26bd8d4909bec744dbf47aee7d1395588c1", "shasum": "" }, "require": { @@ -6985,7 +6986,7 @@ ], "support": { "issues": "https://github.com/spatie/laravel-package-tools/issues", - "source": "https://github.com/spatie/laravel-package-tools/tree/1.93.2" + "source": "https://github.com/spatie/laravel-package-tools/tree/1.93.3" }, "funding": [ { @@ -6993,7 +6994,7 @@ "type": "github" } ], - "time": "2026-08-26T09:13:25+00:00" + "time": "2026-09-28T07:16:50+00:00" }, { "name": "spatie/laravel-permission", @@ -7433,16 +7434,16 @@ }, { "name": "symfony/console", - "version": "v7.4.19", + "version": "v7.4.20", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "3a1973458b153f566a8d7499bc06ece323d60063" + "reference": "d7bca2fe05241dc7732d0c8b6d551b879f5d0a7d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/3a1973458b153f566a8d7499bc06ece323d60063", - "reference": "3a1973458b153f566a8d7499bc06ece323d60063", + "url": "https://api.github.com/repos/symfony/console/zipball/d7bca2fe05241dc7732d0c8b6d551b879f5d0a7d", + "reference": "d7bca2fe05241dc7732d0c8b6d551b879f5d0a7d", "shasum": "" }, "require": { @@ -7507,7 +7508,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v7.4.19" + "source": "https://github.com/symfony/console/tree/v7.4.20" }, "funding": [ { @@ -7527,7 +7528,7 @@ "type": "tidelift" } ], - "time": "2026-09-13T10:38:41+00:00" + "time": "2026-09-18T15:55:00+00:00" }, { "name": "symfony/css-selector", @@ -7671,16 +7672,16 @@ }, { "name": "symfony/error-handler", - "version": "v7.4.17", + "version": "v7.4.20", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "8373921e231e190a88e2ad526951bbaa791576fa" + "reference": "82239fe00f7cdc9f17c4166fff4ebdc22bd26ec0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/8373921e231e190a88e2ad526951bbaa791576fa", - "reference": "8373921e231e190a88e2ad526951bbaa791576fa", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/82239fe00f7cdc9f17c4166fff4ebdc22bd26ec0", + "reference": "82239fe00f7cdc9f17c4166fff4ebdc22bd26ec0", "shasum": "" }, "require": { @@ -7729,7 +7730,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v7.4.17" + "source": "https://github.com/symfony/error-handler/tree/v7.4.20" }, "funding": [ { @@ -7749,7 +7750,7 @@ "type": "tidelift" } ], - "time": "2026-08-21T17:40:08+00:00" + "time": "2026-09-22T18:56:40+00:00" }, { "name": "symfony/event-dispatcher", @@ -7918,16 +7919,16 @@ }, { "name": "symfony/finder", - "version": "v7.4.19", + "version": "v7.4.20", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "1b900bc6ae5ba60c5eee69c11ba44566190576fe" + "reference": "2dd31e5208db7a0fda7bfc998ad727b79c2e4d1e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/1b900bc6ae5ba60c5eee69c11ba44566190576fe", - "reference": "1b900bc6ae5ba60c5eee69c11ba44566190576fe", + "url": "https://api.github.com/repos/symfony/finder/zipball/2dd31e5208db7a0fda7bfc998ad727b79c2e4d1e", + "reference": "2dd31e5208db7a0fda7bfc998ad727b79c2e4d1e", "shasum": "" }, "require": { @@ -7962,7 +7963,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v7.4.19" + "source": "https://github.com/symfony/finder/tree/v7.4.20" }, "funding": [ { @@ -7982,20 +7983,20 @@ "type": "tidelift" } ], - "time": "2026-09-10T19:14:10+00:00" + "time": "2026-09-26T06:31:10+00:00" }, { "name": "symfony/html-sanitizer", - "version": "v7.4.19", + "version": "v7.4.20", "source": { "type": "git", "url": "https://github.com/symfony/html-sanitizer.git", - "reference": "d49c351e24d38604466e5a51ab20cbc99f9493c7" + "reference": "0b7605debddc90c7c9d4e9c1b6eb520a248f26dc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/html-sanitizer/zipball/d49c351e24d38604466e5a51ab20cbc99f9493c7", - "reference": "d49c351e24d38604466e5a51ab20cbc99f9493c7", + "url": "https://api.github.com/repos/symfony/html-sanitizer/zipball/0b7605debddc90c7c9d4e9c1b6eb520a248f26dc", + "reference": "0b7605debddc90c7c9d4e9c1b6eb520a248f26dc", "shasum": "" }, "require": { @@ -8036,7 +8037,7 @@ "sanitizer" ], "support": { - "source": "https://github.com/symfony/html-sanitizer/tree/v7.4.19" + "source": "https://github.com/symfony/html-sanitizer/tree/v7.4.20" }, "funding": [ { @@ -8056,20 +8057,20 @@ "type": "tidelift" } ], - "time": "2026-09-04T10:11:42+00:00" + "time": "2026-09-28T05:21:23+00:00" }, { "name": "symfony/http-foundation", - "version": "v7.4.19", + "version": "v7.4.20", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "f7b953be7801974a5a0685e1228bbc3b12b35936" + "reference": "9d0761c0da6bd5b801b401666834901a9a1ffc33" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/f7b953be7801974a5a0685e1228bbc3b12b35936", - "reference": "f7b953be7801974a5a0685e1228bbc3b12b35936", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/9d0761c0da6bd5b801b401666834901a9a1ffc33", + "reference": "9d0761c0da6bd5b801b401666834901a9a1ffc33", "shasum": "" }, "require": { @@ -8118,7 +8119,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v7.4.19" + "source": "https://github.com/symfony/http-foundation/tree/v7.4.20" }, "funding": [ { @@ -8138,20 +8139,20 @@ "type": "tidelift" } ], - "time": "2026-09-14T17:41:17+00:00" + "time": "2026-09-24T07:12:44+00:00" }, { "name": "symfony/http-kernel", - "version": "v7.4.19", + "version": "v7.4.20", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "683507424cc84ca85ac1551adb609b6b98216667" + "reference": "392784b5d7b959b8d872542a2530c50c540a788f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/683507424cc84ca85ac1551adb609b6b98216667", - "reference": "683507424cc84ca85ac1551adb609b6b98216667", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/392784b5d7b959b8d872542a2530c50c540a788f", + "reference": "392784b5d7b959b8d872542a2530c50c540a788f", "shasum": "" }, "require": { @@ -8237,7 +8238,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v7.4.19" + "source": "https://github.com/symfony/http-kernel/tree/v7.4.20" }, "funding": [ { @@ -8257,7 +8258,7 @@ "type": "tidelift" } ], - "time": "2026-09-15T07:09:35+00:00" + "time": "2026-09-29T14:05:16+00:00" }, { "name": "symfony/mailer", @@ -8517,16 +8518,16 @@ }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.41.0", + "version": "v1.43.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "bb899c1db0aa8127dc3afe8cda4a67eb24915f8d" + "reference": "5cac8f4db97208823aa353f59a01faad2da52c75" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/bb899c1db0aa8127dc3afe8cda4a67eb24915f8d", - "reference": "bb899c1db0aa8127dc3afe8cda4a67eb24915f8d", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/5cac8f4db97208823aa353f59a01faad2da52c75", + "reference": "5cac8f4db97208823aa353f59a01faad2da52c75", "shasum": "" }, "require": { @@ -8575,7 +8576,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.41.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.43.0" }, "funding": [ { @@ -8595,20 +8596,20 @@ "type": "tidelift" } ], - "time": "2026-07-28T08:25:59+00:00" + "time": "2026-09-25T15:46:47+00:00" }, { "name": "symfony/polyfill-intl-idn", - "version": "v1.42.0", + "version": "v1.43.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "51b5ff5ba85452b31ec6f55490b08148612339d9" + "reference": "533d68cf99c8f8ee2e8893c59ed59192e92cfd74" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/51b5ff5ba85452b31ec6f55490b08148612339d9", - "reference": "51b5ff5ba85452b31ec6f55490b08148612339d9", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/533d68cf99c8f8ee2e8893c59ed59192e92cfd74", + "reference": "533d68cf99c8f8ee2e8893c59ed59192e92cfd74", "shasum": "" }, "require": { @@ -8662,7 +8663,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.42.0" + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.43.0" }, "funding": [ { @@ -8682,20 +8683,20 @@ "type": "tidelift" } ], - "time": "2026-08-24T10:51:20+00:00" + "time": "2026-09-23T14:40:04+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.42.0", + "version": "v1.43.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "aa20edea75bd9c48cfecc8360922e5a6e5c44502" + "reference": "ebd57ccc7edb93d632e184efbe7693d2517bab3b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/aa20edea75bd9c48cfecc8360922e5a6e5c44502", - "reference": "aa20edea75bd9c48cfecc8360922e5a6e5c44502", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/ebd57ccc7edb93d632e184efbe7693d2517bab3b", + "reference": "ebd57ccc7edb93d632e184efbe7693d2517bab3b", "shasum": "" }, "require": { @@ -8747,7 +8748,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.42.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.43.0" }, "funding": [ { @@ -8767,20 +8768,20 @@ "type": "tidelift" } ], - "time": "2026-08-07T06:33:24+00:00" + "time": "2026-09-23T22:02:09+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.38.2", + "version": "v1.43.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6" + "reference": "4d5d331bf731e0aedbc6b2f5e61135b7b7996a72" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6", - "reference": "d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/4d5d331bf731e0aedbc6b2f5e61135b7b7996a72", + "reference": "4d5d331bf731e0aedbc6b2f5e61135b7b7996a72", "shasum": "" }, "require": { @@ -8832,7 +8833,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.38.2" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.43.0" }, "funding": [ { @@ -8852,20 +8853,20 @@ "type": "tidelift" } ], - "time": "2026-05-27T06:59:30+00:00" + "time": "2026-09-24T15:19:04+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.37.0", + "version": "v1.43.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "dfb55726c3a76ea3b6459fcfda1ec2d80a682411" + "reference": "9c6a5d6b01ca51d486c813e9a9c0ed55f208bb74" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/dfb55726c3a76ea3b6459fcfda1ec2d80a682411", - "reference": "dfb55726c3a76ea3b6459fcfda1ec2d80a682411", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/9c6a5d6b01ca51d486c813e9a9c0ed55f208bb74", + "reference": "9c6a5d6b01ca51d486c813e9a9c0ed55f208bb74", "shasum": "" }, "require": { @@ -8916,7 +8917,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.37.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.43.0" }, "funding": [ { @@ -8936,20 +8937,20 @@ "type": "tidelift" } ], - "time": "2026-04-10T16:19:22+00:00" + "time": "2026-09-25T15:50:05+00:00" }, { "name": "symfony/polyfill-php83", - "version": "v1.41.0", + "version": "v1.43.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php83.git", - "reference": "5ea99087fb99c273a9b9236ed4c31e78b16103c6" + "reference": "80ccff923a8d61f73ebe9da0aa94e25232f004ce" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/5ea99087fb99c273a9b9236ed4c31e78b16103c6", - "reference": "5ea99087fb99c273a9b9236ed4c31e78b16103c6", + "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/80ccff923a8d61f73ebe9da0aa94e25232f004ce", + "reference": "80ccff923a8d61f73ebe9da0aa94e25232f004ce", "shasum": "" }, "require": { @@ -8996,7 +8997,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php83/tree/v1.41.0" + "source": "https://github.com/symfony/polyfill-php83/tree/v1.43.0" }, "funding": [ { @@ -9016,20 +9017,20 @@ "type": "tidelift" } ], - "time": "2026-07-01T12:47:55+00:00" + "time": "2026-09-25T15:50:05+00:00" }, { "name": "symfony/polyfill-php84", - "version": "v1.38.1", + "version": "v1.43.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php84.git", - "reference": "f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa" + "reference": "22c6548499cbe5c5bb072fc0c42312dff062a015" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php84/zipball/f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa", - "reference": "f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa", + "url": "https://api.github.com/repos/symfony/polyfill-php84/zipball/22c6548499cbe5c5bb072fc0c42312dff062a015", + "reference": "22c6548499cbe5c5bb072fc0c42312dff062a015", "shasum": "" }, "require": { @@ -9076,7 +9077,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php84/tree/v1.38.1" + "source": "https://github.com/symfony/polyfill-php84/tree/v1.43.0" }, "funding": [ { @@ -9096,20 +9097,20 @@ "type": "tidelift" } ], - "time": "2026-05-26T12:51:13+00:00" + "time": "2026-09-23T22:01:09+00:00" }, { "name": "symfony/polyfill-php85", - "version": "v1.41.0", + "version": "v1.43.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php85.git", - "reference": "255fab485aaa1006ed411040c42aecd7b5302d7a" + "reference": "86a42cbcc07adc331481a5ab310a4024bfc227f6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php85/zipball/255fab485aaa1006ed411040c42aecd7b5302d7a", - "reference": "255fab485aaa1006ed411040c42aecd7b5302d7a", + "url": "https://api.github.com/repos/symfony/polyfill-php85/zipball/86a42cbcc07adc331481a5ab310a4024bfc227f6", + "reference": "86a42cbcc07adc331481a5ab310a4024bfc227f6", "shasum": "" }, "require": { @@ -9156,7 +9157,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php85/tree/v1.41.0" + "source": "https://github.com/symfony/polyfill-php85/tree/v1.43.0" }, "funding": [ { @@ -9176,20 +9177,20 @@ "type": "tidelift" } ], - "time": "2026-07-01T12:47:55+00:00" + "time": "2026-09-25T15:46:47+00:00" }, { "name": "symfony/polyfill-php86", - "version": "v1.41.0", + "version": "v1.43.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php86.git", - "reference": "6bc356ed3d8dbfeea8f0de235e34d670704e880e" + "reference": "8840df45b24f33a49dc419fa18dc0057231ae1d8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php86/zipball/6bc356ed3d8dbfeea8f0de235e34d670704e880e", - "reference": "6bc356ed3d8dbfeea8f0de235e34d670704e880e", + "url": "https://api.github.com/repos/symfony/polyfill-php86/zipball/8840df45b24f33a49dc419fa18dc0057231ae1d8", + "reference": "8840df45b24f33a49dc419fa18dc0057231ae1d8", "shasum": "" }, "require": { @@ -9236,7 +9237,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php86/tree/v1.41.0" + "source": "https://github.com/symfony/polyfill-php86/tree/v1.43.0" }, "funding": [ { @@ -9256,20 +9257,20 @@ "type": "tidelift" } ], - "time": "2026-07-02T13:42:24+00:00" + "time": "2026-09-25T15:46:47+00:00" }, { "name": "symfony/polyfill-uuid", - "version": "v1.37.0", + "version": "v1.43.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-uuid.git", - "reference": "26dfec253c4cf3e51b541b52ddf7e42cb0908e94" + "reference": "b23ff8245cc5c4479ea2be3d0132d2e6dd433993" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/26dfec253c4cf3e51b541b52ddf7e42cb0908e94", - "reference": "26dfec253c4cf3e51b541b52ddf7e42cb0908e94", + "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/b23ff8245cc5c4479ea2be3d0132d2e6dd433993", + "reference": "b23ff8245cc5c4479ea2be3d0132d2e6dd433993", "shasum": "" }, "require": { @@ -9319,7 +9320,7 @@ "uuid" ], "support": { - "source": "https://github.com/symfony/polyfill-uuid/tree/v1.37.0" + "source": "https://github.com/symfony/polyfill-uuid/tree/v1.43.0" }, "funding": [ { @@ -9339,7 +9340,7 @@ "type": "tidelift" } ], - "time": "2026-04-10T16:19:22+00:00" + "time": "2026-09-24T05:20:52+00:00" }, { "name": "symfony/process", @@ -9408,16 +9409,16 @@ }, { "name": "symfony/routing", - "version": "v7.4.18", + "version": "v7.4.20", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "ddd558991e98f693ae6bf5063cc1b0362c6bbec3" + "reference": "2bacb72be5eadeaf9874d5accb75bfb33d21c74b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/ddd558991e98f693ae6bf5063cc1b0362c6bbec3", - "reference": "ddd558991e98f693ae6bf5063cc1b0362c6bbec3", + "url": "https://api.github.com/repos/symfony/routing/zipball/2bacb72be5eadeaf9874d5accb75bfb33d21c74b", + "reference": "2bacb72be5eadeaf9874d5accb75bfb33d21c74b", "shasum": "" }, "require": { @@ -9469,7 +9470,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v7.4.18" + "source": "https://github.com/symfony/routing/tree/v7.4.20" }, "funding": [ { @@ -9489,7 +9490,7 @@ "type": "tidelift" } ], - "time": "2026-08-17T13:12:36+00:00" + "time": "2026-09-28T19:09:50+00:00" }, { "name": "symfony/service-contracts", @@ -9853,16 +9854,16 @@ }, { "name": "symfony/uid", - "version": "v7.4.17", + "version": "v7.4.20", "source": { "type": "git", "url": "https://github.com/symfony/uid.git", - "reference": "69d732355a139c6f8881337d28515aa01f12b8be" + "reference": "a96bbdb02a04ff3b5592cee6741b03edc78b56aa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/uid/zipball/69d732355a139c6f8881337d28515aa01f12b8be", - "reference": "69d732355a139c6f8881337d28515aa01f12b8be", + "url": "https://api.github.com/repos/symfony/uid/zipball/a96bbdb02a04ff3b5592cee6741b03edc78b56aa", + "reference": "a96bbdb02a04ff3b5592cee6741b03edc78b56aa", "shasum": "" }, "require": { @@ -9907,7 +9908,7 @@ "uuid" ], "support": { - "source": "https://github.com/symfony/uid/tree/v7.4.17" + "source": "https://github.com/symfony/uid/tree/v7.4.20" }, "funding": [ { @@ -9927,7 +9928,7 @@ "type": "tidelift" } ], - "time": "2026-08-11T07:38:58+00:00" + "time": "2026-09-23T16:18:28+00:00" }, { "name": "symfony/var-dumper", @@ -10402,16 +10403,16 @@ }, { "name": "brianium/paratest", - "version": "v7.8.5", + "version": "v7.8.6", "source": { "type": "git", "url": "https://github.com/paratestphp/paratest.git", - "reference": "9b324c8fc319cf9728b581c7a90e1c8f6361c5e5" + "reference": "58988a27ede69f89a1dcc27a6af6b1e1c3936df0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/paratestphp/paratest/zipball/9b324c8fc319cf9728b581c7a90e1c8f6361c5e5", - "reference": "9b324c8fc319cf9728b581c7a90e1c8f6361c5e5", + "url": "https://api.github.com/repos/paratestphp/paratest/zipball/58988a27ede69f89a1dcc27a6af6b1e1c3936df0", + "reference": "58988a27ede69f89a1dcc27a6af6b1e1c3936df0", "shasum": "" }, "require": { @@ -10419,27 +10420,27 @@ "ext-pcre": "*", "ext-reflection": "*", "ext-simplexml": "*", - "fidry/cpu-core-counter": "^1.3.0", + "fidry/cpu-core-counter": "^1.4.1", "jean85/pretty-package-versions": "^2.1.1", - "php": "~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0", + "php": "~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0 || ~8.6.0", "phpunit/php-code-coverage": "^11.0.12", - "phpunit/php-file-iterator": "^5.1.0", + "phpunit/php-file-iterator": "^5.1.1", "phpunit/php-timer": "^7.0.1", - "phpunit/phpunit": "^11.5.46", + "phpunit/phpunit": "^11.5.56", "sebastian/environment": "^7.2.1", - "symfony/console": "^6.4.22 || ^7.3.4 || ^8.0.3", - "symfony/process": "^6.4.20 || ^7.3.4 || ^8.0.3" + "symfony/console": "^6.4.22 || ^7.4.20 || ^8.1.8", + "symfony/process": "^6.4.20 || ^7.4.19 || ^8.1.7" }, "require-dev": { "doctrine/coding-standard": "^12.0.0", "ext-pcov": "*", "ext-posix": "*", - "phpstan/phpstan": "^2.1.33", - "phpstan/phpstan-deprecation-rules": "^2.0.3", - "phpstan/phpstan-phpunit": "^2.0.11", - "phpstan/phpstan-strict-rules": "^2.0.7", - "squizlabs/php_codesniffer": "^3.13.5", - "symfony/filesystem": "^6.4.13 || ^7.3.2 || ^8.0.1" + "phpstan/phpstan": "^2.2.16", + "phpstan/phpstan-deprecation-rules": "^2.0.5", + "phpstan/phpstan-phpunit": "^2.0.21", + "phpstan/phpstan-strict-rules": "^2.0.12", + "squizlabs/php_codesniffer": "^3.13.6", + "symfony/filesystem": "^6.4.13 || ^7.4.18 || ^8.1.6" }, "bin": [ "bin/paratest", @@ -10479,7 +10480,7 @@ ], "support": { "issues": "https://github.com/paratestphp/paratest/issues", - "source": "https://github.com/paratestphp/paratest/tree/v7.8.5" + "source": "https://github.com/paratestphp/paratest/tree/v7.8.6" }, "funding": [ { @@ -10491,7 +10492,7 @@ "type": "paypal" } ], - "time": "2026-01-08T08:02:38+00:00" + "time": "2026-10-04T06:17:44+00:00" }, { "name": "doctrine/deprecations", @@ -10606,23 +10607,23 @@ }, { "name": "fidry/cpu-core-counter", - "version": "1.3.0", + "version": "1.4.1", "source": { "type": "git", "url": "https://github.com/theofidry/cpu-core-counter.git", - "reference": "db9508f7b1474469d9d3c53b86f817e344732678" + "reference": "d384a7d0d6e67aa497327260ca95023e92dc2032" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/db9508f7b1474469d9d3c53b86f817e344732678", - "reference": "db9508f7b1474469d9d3c53b86f817e344732678", + "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/d384a7d0d6e67aa497327260ca95023e92dc2032", + "reference": "d384a7d0d6e67aa497327260ca95023e92dc2032", "shasum": "" }, "require": { "php": "^7.2 || ^8.0" }, "require-dev": { - "fidry/makefile": "^0.2.0", + "fidry/makefile": "^0.2.0 || ^1.1.2", "fidry/php-cs-fixer-config": "^1.1.2", "phpstan/extension-installer": "^1.2.0", "phpstan/phpstan": "^2.0", @@ -10630,6 +10631,7 @@ "phpstan/phpstan-phpunit": "^2.0", "phpstan/phpstan-strict-rules": "^2.0", "phpunit/phpunit": "^8.5.31 || ^9.5.26", + "symfony/polyfill-mbstring": "^1.33", "webmozarts/strict-phpunit": "^7.5" }, "type": "library", @@ -10655,7 +10657,7 @@ ], "support": { "issues": "https://github.com/theofidry/cpu-core-counter/issues", - "source": "https://github.com/theofidry/cpu-core-counter/tree/1.3.0" + "source": "https://github.com/theofidry/cpu-core-counter/tree/1.4.1" }, "funding": [ { @@ -10663,7 +10665,7 @@ "type": "github" } ], - "time": "2025-08-14T07:29:31+00:00" + "time": "2026-09-29T22:11:39+00:00" }, { "name": "filament/upgrade", @@ -10708,16 +10710,16 @@ }, { "name": "filp/whoops", - "version": "2.18.5", + "version": "2.18.6", "source": { "type": "git", "url": "https://github.com/filp/whoops.git", - "reference": "baec851ad6ae00db8bd0fdd30d208afc1b71c56e" + "reference": "7d0a2cde892089bb09372f4366e9b960eb3001a9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filp/whoops/zipball/baec851ad6ae00db8bd0fdd30d208afc1b71c56e", - "reference": "baec851ad6ae00db8bd0fdd30d208afc1b71c56e", + "url": "https://api.github.com/repos/filp/whoops/zipball/7d0a2cde892089bb09372f4366e9b960eb3001a9", + "reference": "7d0a2cde892089bb09372f4366e9b960eb3001a9", "shasum": "" }, "require": { @@ -10767,7 +10769,7 @@ ], "support": { "issues": "https://github.com/filp/whoops/issues", - "source": "https://github.com/filp/whoops/tree/2.18.5" + "source": "https://github.com/filp/whoops/tree/2.18.6" }, "funding": [ { @@ -10775,7 +10777,7 @@ "type": "github" } ], - "time": "2026-09-18T12:00:00+00:00" + "time": "2026-10-03T17:03:57+00:00" }, { "name": "hamcrest/hamcrest-php", @@ -12153,20 +12155,25 @@ }, { "name": "phpdocumentor/reflection-common", - "version": "2.2.0", + "version": "2.2.1", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionCommon.git", - "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" + "reference": "ee15a5a2022c8383906b225055e9496a6a5e6e3b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", - "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/ee15a5a2022c8383906b225055e9496a6a5e6e3b", + "reference": "ee15a5a2022c8383906b225055e9496a6a5e6e3b", "shasum": "" }, "require": { - "php": "^7.2 || ^8.0" + "php": "^7.4 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.8", + "phpunit/phpunit": "^9.5", + "vimeo/psalm": "^4.25" }, "type": "library", "extra": { @@ -12190,7 +12197,7 @@ } ], "description": "Common reflection classes used by phpdocumentor to reflect the code structure", - "homepage": "http://www.phpdoc.org", + "homepage": "https://www.phpdoc.org", "keywords": [ "FQSEN", "phpDocumentor", @@ -12200,9 +12207,9 @@ ], "support": { "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues", - "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x" + "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.2.1" }, - "time": "2020-06-27T09:03:43+00:00" + "time": "2025-11-10T21:21:55+00:00" }, { "name": "phpdocumentor/reflection-docblock", @@ -12271,16 +12278,16 @@ }, { "name": "phpdocumentor/type-resolver", - "version": "2.0.0", + "version": "2.1.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "327a05bbee54120d4786a0dc67aad30226ad4cf9" + "reference": "dbe2133bb23e2e33a6834f4ed417f24a1b167769" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/327a05bbee54120d4786a0dc67aad30226ad4cf9", - "reference": "327a05bbee54120d4786a0dc67aad30226ad4cf9", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/dbe2133bb23e2e33a6834f4ed417f24a1b167769", + "reference": "dbe2133bb23e2e33a6834f4ed417f24a1b167769", "shasum": "" }, "require": { @@ -12323,22 +12330,22 @@ "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", "support": { "issues": "https://github.com/phpDocumentor/TypeResolver/issues", - "source": "https://github.com/phpDocumentor/TypeResolver/tree/2.0.0" + "source": "https://github.com/phpDocumentor/TypeResolver/tree/2.1.0" }, - "time": "2026-01-06T21:53:42+00:00" + "time": "2026-09-27T19:32:54+00:00" }, { "name": "phpstan/phpdoc-parser", - "version": "2.3.5", + "version": "2.3.6", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "148cefffaf0233e4c08cc13db8a195a56dd6dfe9" + "reference": "1427af4647235b4a73b13940b1f1258d3584f36e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/148cefffaf0233e4c08cc13db8a195a56dd6dfe9", - "reference": "148cefffaf0233e4c08cc13db8a195a56dd6dfe9", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/1427af4647235b4a73b13940b1f1258d3584f36e", + "reference": "1427af4647235b4a73b13940b1f1258d3584f36e", "shasum": "" }, "require": { @@ -12370,17 +12377,17 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/2.3.5" + "source": "https://github.com/phpstan/phpdoc-parser/tree/2.3.6" }, - "time": "2026-08-31T16:05:28+00:00" + "time": "2026-09-27T20:07:45+00:00" }, { "name": "phpstan/phpstan", - "version": "2.2.16", + "version": "2.2.17", "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/46a6d9060e5a7763adfcc21ebcb8b504ebdbcb92", - "reference": "46a6d9060e5a7763adfcc21ebcb8b504ebdbcb92", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/e676a49fa70cee9f5bf6ff4796186b928a08673f", + "reference": "e676a49fa70cee9f5bf6ff4796186b928a08673f", "shasum": "" }, "require": { @@ -12436,7 +12443,7 @@ "type": "github" } ], - "time": "2026-09-25T09:31:51+00:00" + "time": "2026-10-04T19:40:09+00:00" }, { "name": "phpunit/php-code-coverage", @@ -13976,16 +13983,16 @@ }, { "name": "symfony/yaml", - "version": "v7.4.18", + "version": "v7.4.20", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "4cef939e55b8a21c5780418de0d98ab00d0736e1" + "reference": "0222bf4dfaa1e3ceb8fff579635d655f2950d5a7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/4cef939e55b8a21c5780418de0d98ab00d0736e1", - "reference": "4cef939e55b8a21c5780418de0d98ab00d0736e1", + "url": "https://api.github.com/repos/symfony/yaml/zipball/0222bf4dfaa1e3ceb8fff579635d655f2950d5a7", + "reference": "0222bf4dfaa1e3ceb8fff579635d655f2950d5a7", "shasum": "" }, "require": { @@ -14028,7 +14035,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v7.4.18" + "source": "https://github.com/symfony/yaml/tree/v7.4.20" }, "funding": [ { @@ -14048,7 +14055,7 @@ "type": "tidelift" } ], - "time": "2026-08-30T00:47:26+00:00" + "time": "2026-09-26T06:31:10+00:00" }, { "name": "ta-tikoma/phpunit-architecture-test",