From ce5d99c16af465527199807dce0ce096d3e60c74 Mon Sep 17 00:00:00 2001 From: xiaomlove Date: Thu, 27 Oct 2022 20:21:54 +0800 Subject: [PATCH] section basic --- README-EN.md | 2 +- README.md | 2 +- app/Console/Commands/Test.php | 3 +- app/Console/Kernel.php | 2 +- .../Resources/Section/AudioCodecResource.php | 47 + .../Pages/CreateAudioCodec.php | 12 + .../Pages/EditAudioCodec.php | 19 + .../Pages/ListAudioCodecs.php | 27 + .../CategoryResource.php} | 74 +- .../CategoryResource/Pages/CreateCategory.php | 12 + .../CategoryResource/Pages/EditCategory.php | 19 + .../CategoryResource/Pages/ListCategories.php | 29 + .../Resources/Section/CodecResource.php | 94 + .../CodecResource/Pages/CreateCodec.php | 12 + .../Section/CodecResource/Pages/EditCodec.php | 19 + .../CodecResource/Pages/ListCodecs.php | 27 + .../Resources/Section/IconResource.php | 108 + .../Section/IconResource/Pages/CreateIcon.php | 21 + .../Section/IconResource/Pages/EditIcon.php | 28 + .../Section/IconResource/Pages/ListIcons.php | 20 + .../Resources/Section/MediaResource.php | 47 + .../MediaResource/Pages/CreateMedia.php | 12 + .../Section/MediaResource/Pages/EditMedia.php | 19 + .../Section/MediaResource/Pages/ListMedia.php | 28 + .../Resources/Section/ProcessingResource.php | 47 + .../Pages/CreateProcessing.php | 12 + .../Pages/EditProcessing.php | 19 + .../Pages/ListProcessings.php | 28 + .../Resources/Section/SecondIconResource.php | 144 ++ .../Pages/CreateSecondIcon.php | 19 + .../Pages/EditSecondIcon.php | 37 + .../Pages/ListSecondIcons.php | 27 + .../{System => Section}/SectionResource.php | 54 +- .../SectionResource/Pages/CreateSection.php | 2 +- .../SectionResource/Pages/EditSection.php | 2 +- .../SectionResource/Pages/ListSections.php | 2 +- .../Resources/Section/SourceResource.php | 48 + .../SourceResource/Pages/CreateSource.php | 12 + .../SourceResource/Pages/EditSource.php | 19 + .../SourceResource/Pages/ListSources.php | 28 + .../Resources/Section/StandardResource.php | 47 + .../StandardResource/Pages/CreateStandard.php | 12 + .../StandardResource/Pages/EditStandard.php | 19 + .../StandardResource/Pages/ListStandards.php | 28 + .../Resources/Section/TeamResource.php | 47 + .../Section/TeamResource/Pages/CreateTeam.php | 12 + .../Section/TeamResource/Pages/EditTeam.php | 19 + .../Section/TeamResource/Pages/ListTeams.php | 28 + .../Resources/System/PluginResource.php | 2 - .../TaxonomyAudioCodecsRelationManager.php | 22 - .../TaxonomyCodecsRelationManager.php | 22 - .../TaxonomyMediumRelationManager.php | 22 - .../TaxonomyProcessingRelationManager.php | 22 - .../TaxonomySourcesRelationManager.php | 114 - .../TaxonomyStandardsRelationManager.php | 21 - .../TaxonomyTeamsRelationManager.php | 21 - app/Models/AudioCodec.php | 5 + app/Models/Category.php | 5 + app/Models/Codec.php | 5 + app/Models/Media.php | 5 + app/Models/Processing.php | 5 + app/Models/SearchBox.php | 36 +- app/Models/SecondIcon.php | 32 + app/Models/Source.php | 5 + app/Models/Standard.php | 5 + app/Models/Team.php | 5 + app/Models/TorrentCustomFieldValue.php | 9 +- app/Providers/AppServiceProvider.php | 1 + app/Repositories/SearchBoxRepository.php | 199 +- composer.json | 3 +- composer.lock | 2141 ++++++++++------- config/notifications.php | 51 + config/tables.php | 1 + ...18_add_section_name_to_searchbox_table.php | 5 +- ...4_change_searchbox_field_extra_to_json.php | 6 + include/functions.php | 68 +- public/details.php | 79 +- public/edit.php | 10 +- public/getrss.php | 4 +- public/takeedit.php | 14 +- public/takeupload.php | 19 +- public/torrents.php | 95 +- public/upload.php | 8 +- public/usercp.php | 4 +- resources/css/app.css | 3 + resources/js/app.js | 11 +- resources/lang/zh_CN/admin.php | 4 +- resources/lang/zh_CN/label.php | 15 +- resources/lang/zh_CN/searchbox.php | 2 +- .../pages/edit-record.blade.php | 32 +- tailwind.config.js | 18 + webpack.mix.js | 4 +- 92 files changed, 3188 insertions(+), 1367 deletions(-) create mode 100644 app/Filament/Resources/Section/AudioCodecResource.php create mode 100644 app/Filament/Resources/Section/AudioCodecResource/Pages/CreateAudioCodec.php create mode 100644 app/Filament/Resources/Section/AudioCodecResource/Pages/EditAudioCodec.php create mode 100644 app/Filament/Resources/Section/AudioCodecResource/Pages/ListAudioCodecs.php rename app/Filament/Resources/{System/SectionResource/RelationManagers/CategoriesRelationManager.php => Section/CategoryResource.php} (54%) create mode 100644 app/Filament/Resources/Section/CategoryResource/Pages/CreateCategory.php create mode 100644 app/Filament/Resources/Section/CategoryResource/Pages/EditCategory.php create mode 100644 app/Filament/Resources/Section/CategoryResource/Pages/ListCategories.php create mode 100644 app/Filament/Resources/Section/CodecResource.php create mode 100644 app/Filament/Resources/Section/CodecResource/Pages/CreateCodec.php create mode 100644 app/Filament/Resources/Section/CodecResource/Pages/EditCodec.php create mode 100644 app/Filament/Resources/Section/CodecResource/Pages/ListCodecs.php create mode 100644 app/Filament/Resources/Section/IconResource.php create mode 100644 app/Filament/Resources/Section/IconResource/Pages/CreateIcon.php create mode 100644 app/Filament/Resources/Section/IconResource/Pages/EditIcon.php create mode 100644 app/Filament/Resources/Section/IconResource/Pages/ListIcons.php create mode 100644 app/Filament/Resources/Section/MediaResource.php create mode 100644 app/Filament/Resources/Section/MediaResource/Pages/CreateMedia.php create mode 100644 app/Filament/Resources/Section/MediaResource/Pages/EditMedia.php create mode 100644 app/Filament/Resources/Section/MediaResource/Pages/ListMedia.php create mode 100644 app/Filament/Resources/Section/ProcessingResource.php create mode 100644 app/Filament/Resources/Section/ProcessingResource/Pages/CreateProcessing.php create mode 100644 app/Filament/Resources/Section/ProcessingResource/Pages/EditProcessing.php create mode 100644 app/Filament/Resources/Section/ProcessingResource/Pages/ListProcessings.php create mode 100644 app/Filament/Resources/Section/SecondIconResource.php create mode 100644 app/Filament/Resources/Section/SecondIconResource/Pages/CreateSecondIcon.php create mode 100644 app/Filament/Resources/Section/SecondIconResource/Pages/EditSecondIcon.php create mode 100644 app/Filament/Resources/Section/SecondIconResource/Pages/ListSecondIcons.php rename app/Filament/Resources/{System => Section}/SectionResource.php (76%) rename app/Filament/Resources/{System => Section}/SectionResource/Pages/CreateSection.php (88%) rename app/Filament/Resources/{System => Section}/SectionResource/Pages/EditSection.php (92%) rename app/Filament/Resources/{System => Section}/SectionResource/Pages/ListSections.php (88%) create mode 100644 app/Filament/Resources/Section/SourceResource.php create mode 100644 app/Filament/Resources/Section/SourceResource/Pages/CreateSource.php create mode 100644 app/Filament/Resources/Section/SourceResource/Pages/EditSource.php create mode 100644 app/Filament/Resources/Section/SourceResource/Pages/ListSources.php create mode 100644 app/Filament/Resources/Section/StandardResource.php create mode 100644 app/Filament/Resources/Section/StandardResource/Pages/CreateStandard.php create mode 100644 app/Filament/Resources/Section/StandardResource/Pages/EditStandard.php create mode 100644 app/Filament/Resources/Section/StandardResource/Pages/ListStandards.php create mode 100644 app/Filament/Resources/Section/TeamResource.php create mode 100644 app/Filament/Resources/Section/TeamResource/Pages/CreateTeam.php create mode 100644 app/Filament/Resources/Section/TeamResource/Pages/EditTeam.php create mode 100644 app/Filament/Resources/Section/TeamResource/Pages/ListTeams.php delete mode 100644 app/Filament/Resources/System/SectionResource/RelationManagers/TaxonomyAudioCodecsRelationManager.php delete mode 100644 app/Filament/Resources/System/SectionResource/RelationManagers/TaxonomyCodecsRelationManager.php delete mode 100644 app/Filament/Resources/System/SectionResource/RelationManagers/TaxonomyMediumRelationManager.php delete mode 100644 app/Filament/Resources/System/SectionResource/RelationManagers/TaxonomyProcessingRelationManager.php delete mode 100644 app/Filament/Resources/System/SectionResource/RelationManagers/TaxonomySourcesRelationManager.php delete mode 100644 app/Filament/Resources/System/SectionResource/RelationManagers/TaxonomyStandardsRelationManager.php delete mode 100644 app/Filament/Resources/System/SectionResource/RelationManagers/TaxonomyTeamsRelationManager.php create mode 100644 app/Models/SecondIcon.php create mode 100644 config/notifications.php create mode 100644 tailwind.config.js diff --git a/README-EN.md b/README-EN.md index 1c8bbe9a..6fb46438 100644 --- a/README-EN.md +++ b/README-EN.md @@ -36,7 +36,7 @@ Complete PT website building solution. Based on NexusPHP + Laravel + Filament. - Custom role permission - Section H&R ## System Requirements -- PHP: 8.0, must have extensions: bcmath, ctype, curl, fileinfo, json, mbstring, openssl, pdo_mysql, tokenizer, xml, mysqli, gd, redis, pcntl, sockets, posix, gmp +- PHP: 8.0, must have extensions: bcmath, ctype, curl, fileinfo, json, mbstring, openssl, pdo_mysql, tokenizer, xml, mysqli, gd, redis, pcntl, sockets, posix, gmp, zend opcache - Mysql: 5.7 latest version or above - Redis:2.6.12 or above diff --git a/README.md b/README.md index bfb4d790..4f7d953a 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,7 @@ - 分区 H&R ## 系统要求 -- PHP: 8.0,必须扩展:bcmath, ctype, curl, fileinfo, json, mbstring, openssl, pdo_mysql, tokenizer, xml, mysqli, gd, redis, pcntl, sockets, posix, gmp +- PHP: 8.0,必须扩展:bcmath, ctype, curl, fileinfo, json, mbstring, openssl, pdo_mysql, tokenizer, xml, mysqli, gd, redis, pcntl, sockets, posix, gmp, zend opcache - Mysql: 5.7 最新版或以上版本 - Redis:2.6.12 或以上版本 diff --git a/app/Console/Commands/Test.php b/app/Console/Commands/Test.php index b7215c6c..2ba64f34 100644 --- a/app/Console/Commands/Test.php +++ b/app/Console/Commands/Test.php @@ -90,7 +90,8 @@ class Test extends Command */ public function handle() { - + $r = SearchBox::getSubCatOptions(); + dd($r); } diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php index 0e2cec11..c4fb5e7b 100644 --- a/app/Console/Kernel.php +++ b/app/Console/Kernel.php @@ -29,7 +29,7 @@ class Kernel extends ConsoleKernel $schedule->command('exam:checkout_cronjob')->everyMinute()->withoutOverlapping(); $schedule->command('exam:update_progress --bulk=1')->hourly()->withoutOverlapping(); $schedule->command('backup:cronjob')->everyMinute()->withoutOverlapping(); - $schedule->command('hr:update_status')->everyMinute()->withoutOverlapping(); + $schedule->command('hr:update_status')->everyTenMinutes()->withoutOverlapping(); $schedule->command('hr:update_status --ignore_time=1')->hourly()->withoutOverlapping(); $schedule->command('user:delete_expired_token')->dailyAt('04:00'); $schedule->command('claim:settle')->hourly()->when(function () { diff --git a/app/Filament/Resources/Section/AudioCodecResource.php b/app/Filament/Resources/Section/AudioCodecResource.php new file mode 100644 index 00000000..18e7d75a --- /dev/null +++ b/app/Filament/Resources/Section/AudioCodecResource.php @@ -0,0 +1,47 @@ + Pages\ListAudioCodecs::route('/'), + 'create' => Pages\CreateAudioCodec::route('/create'), + 'edit' => Pages\EditAudioCodec::route('/{record}/edit'), + ]; + } +} diff --git a/app/Filament/Resources/Section/AudioCodecResource/Pages/CreateAudioCodec.php b/app/Filament/Resources/Section/AudioCodecResource/Pages/CreateAudioCodec.php new file mode 100644 index 00000000..ed84b835 --- /dev/null +++ b/app/Filament/Resources/Section/AudioCodecResource/Pages/CreateAudioCodec.php @@ -0,0 +1,12 @@ +with('search_box')->orderBy('mode', 'asc'); + } +} diff --git a/app/Filament/Resources/System/SectionResource/RelationManagers/CategoriesRelationManager.php b/app/Filament/Resources/Section/CategoryResource.php similarity index 54% rename from app/Filament/Resources/System/SectionResource/RelationManagers/CategoriesRelationManager.php rename to app/Filament/Resources/Section/CategoryResource.php index acd38859..e009421d 100644 --- a/app/Filament/Resources/System/SectionResource/RelationManagers/CategoriesRelationManager.php +++ b/app/Filament/Resources/Section/CategoryResource.php @@ -1,31 +1,49 @@ schema([ + Forms\Components\Select::make('mode') + ->options(SearchBox::query()->pluck('name', 'id')->toArray()) + ->label(__('label.search_box.label')) + ->required() + , Forms\Components\TextInput::make('name')->required()->label(__('label.search_box.taxonomy.name'))->required(), Forms\Components\TextInput::make('image') ->label(__('label.search_box.taxonomy.image')) @@ -46,6 +64,7 @@ class CategoriesRelationManager extends RelationManager ->label(__('label.search_box.taxonomy.sort_index')) ->helperText(__('label.search_box.taxonomy.sort_index_help')) , + ]); } @@ -54,31 +73,42 @@ class CategoriesRelationManager extends RelationManager return $table ->columns([ Tables\Columns\TextColumn::make('id'), - Tables\Columns\TextColumn::make('name')->label(__('label.search_box.taxonomy.name')), + Tables\Columns\TextColumn::make('search_box.name')->label(__('label.search_box.label')), + Tables\Columns\TextColumn::make('name')->label(__('label.search_box.taxonomy.name'))->searchable(), Tables\Columns\TextColumn::make('icon.name')->label(__('label.search_box.taxonomy.icon_id')), Tables\Columns\TextColumn::make('image')->label(__('label.search_box.taxonomy.image')), Tables\Columns\TextColumn::make('class_name')->label(__('label.search_box.taxonomy.class_name')), Tables\Columns\TextColumn::make('sort_index')->label(__('label.search_box.taxonomy.sort_index'))->sortable(), ]) - ->defaultSort('sort_index') + ->defaultSort('sort_index', 'asc') ->filters([ - // - ]) - ->headerActions([ - Tables\Actions\CreateAction::make()->after(function ($record) { - clear_search_box_cache($record->mode); - }), + Tables\Filters\SelectFilter::make('mode') + ->options(SearchBox::query()->pluck('name', 'id')->toArray()) + ->label(__('label.search_box.label')) + , ]) ->actions([ - Tables\Actions\EditAction::make()->after(function ($record) { - clear_search_box_cache($record->mode); - }), - Tables\Actions\DeleteAction::make()->after(function ($record) { - clear_search_box_cache($record->mode); - }), + Tables\Actions\EditAction::make(), + Tables\Actions\DeleteAction::make(), ]) ->bulkActions([ - + Tables\Actions\DeleteBulkAction::make(), ]); } + + public static function getRelations(): array + { + return [ + // + ]; + } + + public static function getPages(): array + { + return [ + 'index' => Pages\ListCategories::route('/'), + 'create' => Pages\CreateCategory::route('/create'), + 'edit' => Pages\EditCategory::route('/{record}/edit'), + ]; + } } diff --git a/app/Filament/Resources/Section/CategoryResource/Pages/CreateCategory.php b/app/Filament/Resources/Section/CategoryResource/Pages/CreateCategory.php new file mode 100644 index 00000000..ef11c2c3 --- /dev/null +++ b/app/Filament/Resources/Section/CategoryResource/Pages/CreateCategory.php @@ -0,0 +1,12 @@ +with('search_box')->orderBy('mode', 'asc'); + } + + +} diff --git a/app/Filament/Resources/Section/CodecResource.php b/app/Filament/Resources/Section/CodecResource.php new file mode 100644 index 00000000..d0e4c49a --- /dev/null +++ b/app/Filament/Resources/Section/CodecResource.php @@ -0,0 +1,94 @@ +schema([ + Forms\Components\TextInput::make('name')->required()->label(__('label.search_box.taxonomy.name'))->required(), + Forms\Components\TextInput::make('sort_index') + ->default(0) + ->label(__('label.search_box.taxonomy.sort_index')) + ->helperText(__('label.search_box.taxonomy.sort_index_help')) + , + Forms\Components\Select::make('mode') + ->options(SearchBox::query()->pluck('name', 'id')->toArray()) + ->label(__('label.search_box.taxonomy.mode')) + ->helperText(__('label.search_box.taxonomy.mode_help')) + , + ]); + } + + public static function table(Table $table): Table + { + return $table + ->columns([ + Tables\Columns\TextColumn::make('id'), + Tables\Columns\TextColumn::make('search_box.name') + ->label(__('label.search_box.label')) + ->formatStateUsing(fn ($record) => $record->search_box->name ?? 'All') + , + Tables\Columns\TextColumn::make('name')->label(__('label.search_box.taxonomy.name'))->searchable(), + Tables\Columns\TextColumn::make('sort_index')->label(__('label.search_box.taxonomy.sort_index'))->sortable(), + ]) + ->defaultSort('sort_index', 'asc') + ->filters([ + Tables\Filters\SelectFilter::make('mode') + ->options(SearchBox::query()->pluck('name', 'id')->toArray()) + ->label(__('label.search_box.taxonomy.mode')) + ->query(function (Builder $query, array $data) { + return $query->where(function (Builder $query) use ($data) { + return $query->where('mode', 0)->orWhere('mode', $data['value']); + }); + }) + , + ]) + ->actions([ + Tables\Actions\EditAction::make(), + Tables\Actions\DeleteAction::make(), + ]) + ->bulkActions([ + Tables\Actions\DeleteBulkAction::make(), + ]); + } + + public static function getRelations(): array + { + return [ + // + ]; + } + + public static function getPages(): array + { + return [ + 'index' => Pages\ListCodecs::route('/'), + 'create' => Pages\CreateCodec::route('/create'), + 'edit' => Pages\EditCodec::route('/{record}/edit'), + ]; + } +} diff --git a/app/Filament/Resources/Section/CodecResource/Pages/CreateCodec.php b/app/Filament/Resources/Section/CodecResource/Pages/CreateCodec.php new file mode 100644 index 00000000..1eacb3de --- /dev/null +++ b/app/Filament/Resources/Section/CodecResource/Pages/CreateCodec.php @@ -0,0 +1,12 @@ +with('search_box')->orderBy('mode', 'asc'); + } +} diff --git a/app/Filament/Resources/Section/IconResource.php b/app/Filament/Resources/Section/IconResource.php new file mode 100644 index 00000000..e18741ac --- /dev/null +++ b/app/Filament/Resources/Section/IconResource.php @@ -0,0 +1,108 @@ +schema([ + Forms\Components\TextInput::make('name') + ->label(__('label.name')) + ->required() + , + Forms\Components\TextInput::make('folder') + ->label(__('label.icon.folder')) + ->required() + ->helperText(__('label.icon.folder_help')) + , + Forms\Components\Radio::make('multilang') + ->label(__('label.icon.multilang')) + ->options(self::$yesOrNo) + ->required() + ->helperText(__('label.icon.multilang_help')) + , + Forms\Components\Radio::make('secondicon') + ->label(__('label.icon.secondicon')) + ->options(self::$yesOrNo) + ->required() + ->helperText(__('label.icon.secondicon_help')) + , + Forms\Components\TextInput::make('cssfile')->label(__('label.icon.cssfile'))->helperText(__('label.icon.cssfile_help')), + Forms\Components\TextInput::make('designer')->label(__('label.icon.designer'))->helperText(__('label.icon.designer_help')), + Forms\Components\Textarea::make('comment')->label(__('label.icon.comment'))->helperText(__('label.icon.comment_help')), + ]); + } + + public static function table(Table $table): Table + { + return $table + ->columns([ + Tables\Columns\TextColumn::make('id'), + Tables\Columns\TextColumn::make('name'), + Tables\Columns\TextColumn::make('folder'), + Tables\Columns\TextColumn::make('cssfile'), + Tables\Columns\TextColumn::make('multilang'), + Tables\Columns\TextColumn::make('secondicon'), + Tables\Columns\TextColumn::make('designer'), + ]) + ->filters([ + // + ]) + ->actions([ + Tables\Actions\EditAction::make(), + ]) + ->bulkActions([ + Tables\Actions\DeleteBulkAction::make(), + ]); + } + + public static function getRelations(): array + { + return [ + // + ]; + } + + public static function getPages(): array + { + return [ + 'index' => Pages\ListIcons::route('/'), + 'create' => Pages\CreateIcon::route('/create'), + 'edit' => Pages\EditIcon::route('/{record}/edit'), + ]; + } +} diff --git a/app/Filament/Resources/Section/IconResource/Pages/CreateIcon.php b/app/Filament/Resources/Section/IconResource/Pages/CreateIcon.php new file mode 100644 index 00000000..7c1b840c --- /dev/null +++ b/app/Filament/Resources/Section/IconResource/Pages/CreateIcon.php @@ -0,0 +1,21 @@ + nexus_trans('label.icon.desc') + ]; + } +} diff --git a/app/Filament/Resources/Section/IconResource/Pages/EditIcon.php b/app/Filament/Resources/Section/IconResource/Pages/EditIcon.php new file mode 100644 index 00000000..2e591e6b --- /dev/null +++ b/app/Filament/Resources/Section/IconResource/Pages/EditIcon.php @@ -0,0 +1,28 @@ + nexus_trans('label.icon.desc') + ]; + } +} diff --git a/app/Filament/Resources/Section/IconResource/Pages/ListIcons.php b/app/Filament/Resources/Section/IconResource/Pages/ListIcons.php new file mode 100644 index 00000000..d999ead9 --- /dev/null +++ b/app/Filament/Resources/Section/IconResource/Pages/ListIcons.php @@ -0,0 +1,20 @@ + Pages\ListMedia::route('/'), + 'create' => Pages\CreateMedia::route('/create'), + 'edit' => Pages\EditMedia::route('/{record}/edit'), + ]; + } +} diff --git a/app/Filament/Resources/Section/MediaResource/Pages/CreateMedia.php b/app/Filament/Resources/Section/MediaResource/Pages/CreateMedia.php new file mode 100644 index 00000000..fff19031 --- /dev/null +++ b/app/Filament/Resources/Section/MediaResource/Pages/CreateMedia.php @@ -0,0 +1,12 @@ +with('search_box')->orderBy('mode', 'asc'); + } +} diff --git a/app/Filament/Resources/Section/ProcessingResource.php b/app/Filament/Resources/Section/ProcessingResource.php new file mode 100644 index 00000000..f62441ef --- /dev/null +++ b/app/Filament/Resources/Section/ProcessingResource.php @@ -0,0 +1,47 @@ + Pages\ListProcessings::route('/'), + 'create' => Pages\CreateProcessing::route('/create'), + 'edit' => Pages\EditProcessing::route('/{record}/edit'), + ]; + } +} diff --git a/app/Filament/Resources/Section/ProcessingResource/Pages/CreateProcessing.php b/app/Filament/Resources/Section/ProcessingResource/Pages/CreateProcessing.php new file mode 100644 index 00000000..df5f2079 --- /dev/null +++ b/app/Filament/Resources/Section/ProcessingResource/Pages/CreateProcessing.php @@ -0,0 +1,12 @@ +with('search_box')->orderBy('mode', 'asc'); + } +} diff --git a/app/Filament/Resources/Section/SecondIconResource.php b/app/Filament/Resources/Section/SecondIconResource.php new file mode 100644 index 00000000..8c853c17 --- /dev/null +++ b/app/Filament/Resources/Section/SecondIconResource.php @@ -0,0 +1,144 @@ +listTaxonomyFormSchema($torrentMode); + $specialTaxonomySchema = $searchBoxRep->listTaxonomyFormSchema($specialMode); + $modeOptions = SearchBox::query()->whereIn('id', [$torrentMode, $specialMode])->pluck('name', 'id')->toArray(); + return $form + ->schema([ + Forms\Components\TextInput::make('name') + ->label(__('label.name')) + ->required() + ->helperText(__('label.second_icon.name_help')) + , + Forms\Components\Select::make('mode') + ->label(__('label.search_box.label')) + ->options($modeOptions) + ->required() + ->reactive() + , + Forms\Components\TextInput::make('image') + ->label(__('label.second_icon.image')) + ->required() + ->helperText(__('label.second_icon.image_help')) + , + Forms\Components\TextInput::make('class_name') + ->label(__('label.second_icon.class_name')) + ->helperText(__('label.second_icon.class_name_help')) + , + Forms\Components\Section::make(__('label.second_icon.select_section')) + ->id("taxonomy_$torrentMode") + ->schema($torrentTaxonomySchema) + ->columns(4) + ->hidden(fn (\Closure $get) => $get('mode') != $torrentMode) + , + Forms\Components\Section::make(__('label.second_icon.select_section')) + ->id("taxonomy_$specialMode") + ->schema($specialTaxonomySchema) + ->columns(4) + ->hidden(fn (\Closure $get) => $get('mode') != $specialMode) + , + ]); + } + + + + public static function table(Table $table): Table + { + $columns = [ + Tables\Columns\TextColumn::make('id'), + Tables\Columns\TextColumn::make('search_box.name') + ->label(__('label.search_box.label')) + ->formatStateUsing(fn ($record) => $record->search_box->name ?? 'All') + , + Tables\Columns\TextColumn::make('name')->label(__('label.name')), + Tables\Columns\TextColumn::make('image')->label(__('label.second_icon.image')), + Tables\Columns\TextColumn::make('class_name')->label(__('label.second_icon.class_name')), + ]; + $taxonomyList = self::listTaxonomy(); + foreach (SearchBox::$taxonomies as $torrentField => $tableName) { + $columns[] = Tables\Columns\TextColumn::make($torrentField)->formatStateUsing(function ($state) use ($taxonomyList, $torrentField) { + return $taxonomyList[$torrentField]->get($state); + }); + } + return $table + ->columns($columns) + ->filters([ + // + ]) + ->actions([ + Tables\Actions\EditAction::make(), + ]) + ->bulkActions([ + Tables\Actions\DeleteBulkAction::make(), + ]); + } + + private static function listTaxonomy() + { + static $taxonomyList = []; + if (empty($taxonomyList)) { + foreach (SearchBox::$taxonomies as $torrentField => $tableName) { + $taxonomyList[$torrentField] = NexusDB::table($tableName)->pluck('name', 'id'); + } + } + return $taxonomyList; + } + + public static function getRelations(): array + { + return [ + // + ]; + } + + public static function getPages(): array + { + return [ + 'index' => Pages\ListSecondIcons::route('/'), + 'create' => Pages\CreateSecondIcon::route('/create'), + 'edit' => Pages\EditSecondIcon::route('/{record}/edit'), + ]; + } +} diff --git a/app/Filament/Resources/Section/SecondIconResource/Pages/CreateSecondIcon.php b/app/Filament/Resources/Section/SecondIconResource/Pages/CreateSecondIcon.php new file mode 100644 index 00000000..b896b0b6 --- /dev/null +++ b/app/Filament/Resources/Section/SecondIconResource/Pages/CreateSecondIcon.php @@ -0,0 +1,19 @@ + $table) { + $taxonomyValue = $data[$torrentField] ?? null; + unset($data[$torrentField]); + $data[$torrentField][$mode] = $taxonomyValue; + } + return $data; + } +} diff --git a/app/Filament/Resources/Section/SecondIconResource/Pages/ListSecondIcons.php b/app/Filament/Resources/Section/SecondIconResource/Pages/ListSecondIcons.php new file mode 100644 index 00000000..6b8ef472 --- /dev/null +++ b/app/Filament/Resources/Section/SecondIconResource/Pages/ListSecondIcons.php @@ -0,0 +1,27 @@ +with('search_box'); + } +} diff --git a/app/Filament/Resources/System/SectionResource.php b/app/Filament/Resources/Section/SectionResource.php similarity index 76% rename from app/Filament/Resources/System/SectionResource.php rename to app/Filament/Resources/Section/SectionResource.php index 7a70c2e8..c61d5251 100644 --- a/app/Filament/Resources/System/SectionResource.php +++ b/app/Filament/Resources/Section/SectionResource.php @@ -1,9 +1,10 @@ $locale) { + $localeSchema[] = Forms\Components\TextInput::make("$name.$lang")->required()->label($lang); + } + return $localeSchema; + } + public static function form(Form $form): Form { + $displayTextLocalSchema = self::buildLocalSchema('display_text'); + $sectionNameLocalSchema = self::buildLocalSchema('section_name'); return $form ->schema([ - Forms\Components\TextInput::make('name')->label(__('label.search_box.name'))->rules('alpha_dash')->required(), + Forms\Components\TextInput::make('name') + ->label(__('label.search_box.name')) + ->rules('alpha_dash') + ->required() + , Forms\Components\TextInput::make('catsperrow') ->label(__('label.search_box.catsperrow')) ->helperText(__('label.search_box.catsperrow_help')) @@ -60,10 +76,6 @@ class SectionResource extends Resource ->required() ->default(3) , - Forms\Components\TextInput::make('section_name') - ->label(__('label.search_box.section_name')) - ->helperText(__('label.search_box.section_name_help')) - , Forms\Components\CheckboxList::make('custom_fields') ->options(TorrentCustomField::getCheckboxOptions()) ->label(__('label.search_box.custom_fields')) @@ -74,20 +86,19 @@ class SectionResource extends Resource Forms\Components\Textarea::make('custom_fields_display') ->label(__('label.search_box.custom_fields_display')) ->helperText(__('label.search_box.custom_fields_display_help')) - ->columnSpan(['sm' => 'full']) , - Forms\Components\Toggle::make('is_default') - ->label(__('label.search_box.is_default')) - ->columnSpan(['sm' => 'full']) + Forms\Components\Section::make(__('label.search_box.section_name')) + ->schema($sectionNameLocalSchema) + ->columns(count($sectionNameLocalSchema)) , - Forms\Components\Toggle::make('showsubcat')->label(__('label.search_box.showsubcat')), + Forms\Components\Toggle::make('showsubcat')->label(__('label.search_box.showsubcat'))->columnSpan(['sm' => 'full']), Forms\Components\Section::make(__('label.search_box.showsubcat'))->schema([ Forms\Components\Repeater::make('extra.' . SearchBox::EXTRA_TAXONOMY_LABELS) ->schema([ Forms\Components\Select::make('torrent_field')->options(SearchBox::getSubCatOptions())->label(__('label.search_box.torrent_field')), - Forms\Components\TextInput::make('display_text')->label(__('label.search_box.taxonomy_display_text')), + Forms\Components\Section::make(__('label.search_box.taxonomy_display_text'))->schema($displayTextLocalSchema)->columns(count($displayTextLocalSchema)), ]) - ->label(__('label.search_box.taxonomies'))->columns(2) + ->label(__('label.search_box.taxonomies')) ->rules([ function () { return function (string $attribute, $value, \Closure $fail) { @@ -104,7 +115,7 @@ class SectionResource extends Resource ]) , ]), - ])->columns(3); + ]); } public static function table(Table $table): Table @@ -113,8 +124,6 @@ class SectionResource extends Resource ->columns([ Tables\Columns\TextColumn::make('id'), Tables\Columns\TextColumn::make('name')->label(__('label.search_box.name')), - Tables\Columns\TextColumn::make('section_name')->label(__('label.search_box.section_name')), - Tables\Columns\BooleanColumn::make('is_default')->label(__('label.search_box.is_default')), Tables\Columns\BooleanColumn::make('showsubcat')->label(__('label.search_box.showsubcat')), Tables\Columns\BooleanColumn::make('showsource'), Tables\Columns\BooleanColumn::make('showmedium'), @@ -139,14 +148,7 @@ class SectionResource extends Resource public static function getRelations(): array { return [ - RelationManagers\CategoriesRelationManager::class, - RelationManagers\TaxonomySourcesRelationManager::class, - RelationManagers\TaxonomyMediumRelationManager::class, - RelationManagers\TaxonomyCodecsRelationManager::class, - RelationManagers\TaxonomyAudioCodecsRelationManager::class, - RelationManagers\TaxonomyTeamsRelationManager::class, - RelationManagers\TaxonomyStandardsRelationManager::class, - RelationManagers\TaxonomyProcessingRelationManager::class, + ]; } diff --git a/app/Filament/Resources/System/SectionResource/Pages/CreateSection.php b/app/Filament/Resources/Section/SectionResource/Pages/CreateSection.php similarity index 88% rename from app/Filament/Resources/System/SectionResource/Pages/CreateSection.php rename to app/Filament/Resources/Section/SectionResource/Pages/CreateSection.php index 12b2035b..73067690 100644 --- a/app/Filament/Resources/System/SectionResource/Pages/CreateSection.php +++ b/app/Filament/Resources/Section/SectionResource/Pages/CreateSection.php @@ -2,7 +2,7 @@ namespace App\Filament\Resources\System\SectionResource\Pages; -use App\Filament\Resources\System\SectionResource; +use App\Filament\Resources\Section\SectionResource; use App\Models\SearchBox; use Filament\Pages\Actions; use Filament\Resources\Pages\CreateRecord; diff --git a/app/Filament/Resources/System/SectionResource/Pages/EditSection.php b/app/Filament/Resources/Section/SectionResource/Pages/EditSection.php similarity index 92% rename from app/Filament/Resources/System/SectionResource/Pages/EditSection.php rename to app/Filament/Resources/Section/SectionResource/Pages/EditSection.php index ceab0684..6127c378 100644 --- a/app/Filament/Resources/System/SectionResource/Pages/EditSection.php +++ b/app/Filament/Resources/Section/SectionResource/Pages/EditSection.php @@ -2,7 +2,7 @@ namespace App\Filament\Resources\System\SectionResource\Pages; -use App\Filament\Resources\System\SectionResource; +use App\Filament\Resources\Section\SectionResource; use App\Models\SearchBox; use Filament\Pages\Actions; use Filament\Resources\Pages\EditRecord; diff --git a/app/Filament/Resources/System/SectionResource/Pages/ListSections.php b/app/Filament/Resources/Section/SectionResource/Pages/ListSections.php similarity index 88% rename from app/Filament/Resources/System/SectionResource/Pages/ListSections.php rename to app/Filament/Resources/Section/SectionResource/Pages/ListSections.php index 28e0e981..f10aabd5 100644 --- a/app/Filament/Resources/System/SectionResource/Pages/ListSections.php +++ b/app/Filament/Resources/Section/SectionResource/Pages/ListSections.php @@ -3,7 +3,7 @@ namespace App\Filament\Resources\System\SectionResource\Pages; use App\Filament\PageList; -use App\Filament\Resources\System\SectionResource; +use App\Filament\Resources\Section\SectionResource; use Filament\Pages\Actions; use Filament\Resources\Pages\ListRecords; diff --git a/app/Filament/Resources/Section/SourceResource.php b/app/Filament/Resources/Section/SourceResource.php new file mode 100644 index 00000000..555f645b --- /dev/null +++ b/app/Filament/Resources/Section/SourceResource.php @@ -0,0 +1,48 @@ + Pages\ListSources::route('/'), + 'create' => Pages\CreateSource::route('/create'), + 'edit' => Pages\EditSource::route('/{record}/edit'), + ]; + } +} diff --git a/app/Filament/Resources/Section/SourceResource/Pages/CreateSource.php b/app/Filament/Resources/Section/SourceResource/Pages/CreateSource.php new file mode 100644 index 00000000..4052c2b4 --- /dev/null +++ b/app/Filament/Resources/Section/SourceResource/Pages/CreateSource.php @@ -0,0 +1,12 @@ +with('search_box')->orderBy('mode', 'asc'); + } +} diff --git a/app/Filament/Resources/Section/StandardResource.php b/app/Filament/Resources/Section/StandardResource.php new file mode 100644 index 00000000..b9caaed3 --- /dev/null +++ b/app/Filament/Resources/Section/StandardResource.php @@ -0,0 +1,47 @@ + Pages\ListStandards::route('/'), + 'create' => Pages\CreateStandard::route('/create'), + 'edit' => Pages\EditStandard::route('/{record}/edit'), + ]; + } +} diff --git a/app/Filament/Resources/Section/StandardResource/Pages/CreateStandard.php b/app/Filament/Resources/Section/StandardResource/Pages/CreateStandard.php new file mode 100644 index 00000000..35107b16 --- /dev/null +++ b/app/Filament/Resources/Section/StandardResource/Pages/CreateStandard.php @@ -0,0 +1,12 @@ +with('search_box')->orderBy('mode', 'asc'); + } +} diff --git a/app/Filament/Resources/Section/TeamResource.php b/app/Filament/Resources/Section/TeamResource.php new file mode 100644 index 00000000..509fe0e6 --- /dev/null +++ b/app/Filament/Resources/Section/TeamResource.php @@ -0,0 +1,47 @@ + Pages\ListTeams::route('/'), + 'create' => Pages\CreateTeam::route('/create'), + 'edit' => Pages\EditTeam::route('/{record}/edit'), + ]; + } +} diff --git a/app/Filament/Resources/Section/TeamResource/Pages/CreateTeam.php b/app/Filament/Resources/Section/TeamResource/Pages/CreateTeam.php new file mode 100644 index 00000000..aec6c158 --- /dev/null +++ b/app/Filament/Resources/Section/TeamResource/Pages/CreateTeam.php @@ -0,0 +1,12 @@ +with('search_box')->orderBy('mode', 'asc'); + } +} diff --git a/app/Filament/Resources/System/PluginResource.php b/app/Filament/Resources/System/PluginResource.php index c3ae5800..47baa62c 100644 --- a/app/Filament/Resources/System/PluginResource.php +++ b/app/Filament/Resources/System/PluginResource.php @@ -24,8 +24,6 @@ class PluginResource extends Resource protected static ?int $navigationSort = 99; - protected static bool $shouldRegisterNavigation = false; - protected static function getNavigationLabel(): string { return __('admin.sidebar.plugin'); diff --git a/app/Filament/Resources/System/SectionResource/RelationManagers/TaxonomyAudioCodecsRelationManager.php b/app/Filament/Resources/System/SectionResource/RelationManagers/TaxonomyAudioCodecsRelationManager.php deleted file mode 100644 index a2650cd4..00000000 --- a/app/Filament/Resources/System/SectionResource/RelationManagers/TaxonomyAudioCodecsRelationManager.php +++ /dev/null @@ -1,22 +0,0 @@ -all(); - $taxonomies = $params['serverMemo']['data']['data']['extra'][SearchBox::EXTRA_TAXONOMY_LABELS] ?? []; - if (empty($taxonomies)) { - $id = request()->route()->parameter('record'); - if (!$id) { - $id = $params['serverMemo']['dataMeta']['models']['ownerRecord']['id'] ?? null; - } - do_log("searchBox ID: $id"); - $searchBox = SearchBox::query()->find($id); - if ($searchBox) { - $taxonomies = $searchBox->extra[SearchBox::EXTRA_TAXONOMY_LABELS] ?? []; - } else { - $taxonomies = []; - } - } - } - foreach ($taxonomies as $taxonomy) { - if ($taxonomy['torrent_field'] == static::$torrentField) { - return $taxonomy['display_text']; - } - } - $field = static::$torrentField; - return __("label.search_box.$field") ?? $field; - } - - public static function shouldShowTaxonomy(SearchBox $searchBox): bool - { - $taxonomies = $searchBox->extra[SearchBox::EXTRA_TAXONOMY_LABELS] ?? []; - foreach ($taxonomies as $taxonomy) { - if ($taxonomy['torrent_field'] == static::$torrentField) { - do_log("torrent_field: " . static::$torrentField . " should show"); - return true; - } - } - do_log("torrent_field: " . static::$torrentField . " don't show"); - return false; - } - - public static function canViewForRecord(Model $ownerRecord): bool - { - return self::shouldShowTaxonomy($ownerRecord); - } - - public static function form(Form $form): Form - { - return $form - ->schema([ - Forms\Components\TextInput::make('name')->required(), - Forms\Components\TextInput::make('sort_index') - ->default(0) - ->label(__('label.search_box.taxonomy.sort_index')) - ->helperText(__('label.search_box.taxonomy.sort_index_help')) - , - ]); - } - - public static function table(Table $table): Table - { - return $table - ->columns([ - Tables\Columns\TextColumn::make('id'), - Tables\Columns\TextColumn::make('name')->label(__('label.search_box.taxonomy.name')), - Tables\Columns\TextColumn::make('sort_index')->label(__('label.search_box.taxonomy.sort_index'))->sortable(), - ]) - ->defaultSort('sort_index') - ->filters([ - // - ]) - ->headerActions([ - Tables\Actions\CreateAction::make()->after(function ($record) { - clear_search_box_cache($record->mode); - }), - ]) - ->actions([ - Tables\Actions\EditAction::make()->after(function ($record) { - clear_search_box_cache($record->mode); - }), - Tables\Actions\DeleteAction::make()->after(function ($record) { - clear_search_box_cache($record->mode); - }), - ]) - ->bulkActions([ - - ]); - } - -} diff --git a/app/Filament/Resources/System/SectionResource/RelationManagers/TaxonomyStandardsRelationManager.php b/app/Filament/Resources/System/SectionResource/RelationManagers/TaxonomyStandardsRelationManager.php deleted file mode 100644 index 6c1d2adf..00000000 --- a/app/Filament/Resources/System/SectionResource/RelationManagers/TaxonomyStandardsRelationManager.php +++ /dev/null @@ -1,21 +0,0 @@ -belongsTo(SearchBox::class, 'mode', 'id'); + } } diff --git a/app/Models/Category.php b/app/Models/Category.php index 7890c353..efa4bc0b 100644 --- a/app/Models/Category.php +++ b/app/Models/Category.php @@ -18,4 +18,9 @@ class Category extends NexusModel { return $this->belongsTo(Icon::class, 'icon_id'); } + + public function search_box() + { + return $this->belongsTo(SearchBox::class, 'mode', 'id'); + } } diff --git a/app/Models/Codec.php b/app/Models/Codec.php index 265e4c5f..b0e04f2b 100644 --- a/app/Models/Codec.php +++ b/app/Models/Codec.php @@ -13,4 +13,9 @@ class Codec extends NexusModel { return nexus_trans('searchbox.sub_category_codec_label'); } + + public function search_box() + { + return $this->belongsTo(SearchBox::class, 'mode', 'id'); + } } diff --git a/app/Models/Media.php b/app/Models/Media.php index 07a2df15..f20f74c9 100644 --- a/app/Models/Media.php +++ b/app/Models/Media.php @@ -13,4 +13,9 @@ class Media extends NexusModel { return nexus_trans('searchbox.sub_category_media_label'); } + + public function search_box() + { + return $this->belongsTo(SearchBox::class, 'mode', 'id'); + } } diff --git a/app/Models/Processing.php b/app/Models/Processing.php index 5244c9ea..578d7983 100644 --- a/app/Models/Processing.php +++ b/app/Models/Processing.php @@ -13,4 +13,9 @@ class Processing extends NexusModel { return nexus_trans('searchbox.sub_category_processing_label'); } + + public function search_box() + { + return $this->belongsTo(SearchBox::class, 'mode', 'id'); + } } diff --git a/app/Models/SearchBox.php b/app/Models/SearchBox.php index 0da7f976..01b7c03e 100644 --- a/app/Models/SearchBox.php +++ b/app/Models/SearchBox.php @@ -3,10 +3,14 @@ namespace App\Models; use Illuminate\Database\Eloquent\Casts\Attribute; +use Illuminate\Database\Query\Builder; use Illuminate\Support\Str; +use Nexus\Database\NexusDB; class SearchBox extends NexusModel { + private static array $instances = []; + protected $table = 'searchbox'; protected $fillable = [ @@ -21,6 +25,7 @@ class SearchBox extends NexusModel 'extra' => 'array', 'is_default' => 'boolean', 'showsubcat' => 'boolean', + 'section_name' => 'json', ]; const EXTRA_TAXONOMY_LABELS = 'taxonomy_labels'; @@ -40,9 +45,9 @@ class SearchBox extends NexusModel 'medium' => 'media', 'codec' => 'codecs', 'audiocodec' => 'audiocodecs', - 'team' => 'teams', 'standard' => 'standards', - 'processing' => 'processings' + 'processing' => 'processings', + 'team' => 'teams', ]; public static array $extras = [ @@ -66,21 +71,23 @@ class SearchBox extends NexusModel foreach ($data['extra'][self::EXTRA_TAXONOMY_LABELS] ?? [] as $item) { if ($field == $item['torrent_field']) { $data["show{$field}"] = 1; - $data["extra->" . self::EXTRA_TAXONOMY_LABELS][] = $item; +// $data["extra->" . self::EXTRA_TAXONOMY_LABELS][] = $item; } } } + $data["extra->" . self::EXTRA_TAXONOMY_LABELS] = $data['extra'][self::EXTRA_TAXONOMY_LABELS]; return $data; } public function getTaxonomyLabel($torrentField) { + $lang = get_langfolder_cookie(); foreach ($this->extra[self::EXTRA_TAXONOMY_LABELS] ?? [] as $item) { if ($item['torrent_field'] == $torrentField) { - return $item['display_text']; + return $item['display_text'][$lang] ?? 'Unknown'; } } - return nexus_trans('label.torrent.' . $torrentField) ?: ucfirst($torrentField); + return nexus_trans("searchbox.sub_category_{$torrentField}_label") ?: ucfirst($torrentField); } protected function customFields(): Attribute @@ -111,6 +118,25 @@ class SearchBox extends NexusModel return $result; } + public static function get(int $id) + { + if (!isset(self::$instances[$id])) { + self::$instances[$id] = self::query()->find($id); + } + return self::$instances[$id]; + } + + public static function listTaxonomyItems($searchBox, $torrentField): \Illuminate\Support\Collection + { + if (!$searchBox instanceof self) { + $searchBox = self::get(intval($searchBox)); + } + $table = self::$taxonomies[$torrentField]; + return NexusDB::table($table)->where(function (Builder $query) use ($searchBox) { + return $query->where('mode', $searchBox->id)->orWhere('mode', 0); + })->get(); + } + public function getCustomFieldsAttribute($value): array { if (!is_array($value)) { diff --git a/app/Models/SecondIcon.php b/app/Models/SecondIcon.php new file mode 100644 index 00000000..5927632b --- /dev/null +++ b/app/Models/SecondIcon.php @@ -0,0 +1,32 @@ + $table) { + $mode = $data['mode']; + if (empty($data[$torrentField][$mode])) { + unset($data[$torrentField]); + } else { + $data[$torrentField] = $data[$torrentField][$mode]; + } + } + return $data; + } + + public function search_box() + { + return $this->belongsTo(SearchBox::class, 'mode', 'id'); + } +} diff --git a/app/Models/Source.php b/app/Models/Source.php index ad6c3faf..edbbe661 100644 --- a/app/Models/Source.php +++ b/app/Models/Source.php @@ -11,4 +11,9 @@ class Source extends NexusModel { return nexus_trans('searchbox.sub_category_source_label'); } + + public function search_box() + { + return $this->belongsTo(SearchBox::class, 'mode', 'id'); + } } diff --git a/app/Models/Standard.php b/app/Models/Standard.php index 8ee6cb40..6c7b12b3 100644 --- a/app/Models/Standard.php +++ b/app/Models/Standard.php @@ -11,4 +11,9 @@ class Standard extends NexusModel { return nexus_trans('searchbox.sub_category_standard_label'); } + + public function search_box() + { + return $this->belongsTo(SearchBox::class, 'mode', 'id'); + } } diff --git a/app/Models/Team.php b/app/Models/Team.php index 7f475aee..3f1235fb 100644 --- a/app/Models/Team.php +++ b/app/Models/Team.php @@ -11,4 +11,9 @@ class Team extends NexusModel { return nexus_trans('searchbox.sub_category_team_label'); } + + public function search_box() + { + return $this->belongsTo(SearchBox::class, 'mode', 'id'); + } } diff --git a/app/Models/TorrentCustomFieldValue.php b/app/Models/TorrentCustomFieldValue.php index c0e92e16..c7609cbe 100644 --- a/app/Models/TorrentCustomFieldValue.php +++ b/app/Models/TorrentCustomFieldValue.php @@ -2,23 +2,16 @@ namespace App\Models; -<<<<<<< HEAD -======= use Nexus\Database\NexusDB; ->>>>>>> php8 class TorrentCustomFieldValue extends NexusModel { protected $table = 'torrents_custom_field_values'; -<<<<<<< HEAD protected $fillable = [ 'torrent_id', 'custom_field_id', 'custom_field_value', ]; -======= + public $timestamps = true; - protected $fillable = ['torrent_id', 'custom_field_id', 'custom_field_value', ]; - ->>>>>>> php8 } diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 57106d78..059dd8c1 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -40,6 +40,7 @@ class AppServiceProvider extends ServiceProvider 'User', 'Torrent', 'Other', + 'Section', 'System', ]); }); diff --git a/app/Repositories/SearchBoxRepository.php b/app/Repositories/SearchBoxRepository.php index 00119d0e..65e29fe4 100644 --- a/app/Repositories/SearchBoxRepository.php +++ b/app/Repositories/SearchBoxRepository.php @@ -2,14 +2,18 @@ namespace App\Repositories; +use App\Http\Middleware\Locale; use App\Models\Icon; use App\Models\NexusModel; use App\Models\SearchBox; use App\Models\SearchBoxField; +use App\Models\SecondIcon; use App\Models\Setting; use Elasticsearch\Endpoints\Search; +use Illuminate\Database\Query\Builder; use Illuminate\Support\Arr; use Nexus\Database\NexusDB; +use Filament\Forms; class SearchBoxRepository extends BaseRepository { @@ -103,6 +107,8 @@ class SearchBoxRepository extends BaseRepository return Icon::query()->find(array_keys($iconIdArr)); } + /** + */ public function migrateToModeRelated() { $secondIconTable = 'secondicons'; @@ -112,25 +118,25 @@ class SearchBoxRepository extends BaseRepository $tables = array_values(SearchBox::$taxonomies); foreach ($searchBoxList as $searchBox) { - if ($searchBox->id == $normalId) { - //all sub categories add `mode` field - foreach ($tables as $table) { - NexusDB::table($table)->update(['mode' => $normalId]); - do_log("update table $table mode = $normalId"); - } - //also second icons - NexusDB::table($secondIconTable)->update(['mode' => $normalId]); - do_log("update table $secondIconTable mode = $normalId"); - } elseif ($searchBox->id == $specialId && $specialId != $normalId) { - //copy from normal section - foreach ($tables as $table) { - $sql = sprintf( - "insert into `%s` (name, sort_index, mode) select name, sort_index, '%s' from `%s`", - $table, $specialId, $table - ); - NexusDB::statement($sql); - do_log("copy table $table, $sql"); - } +// if ($searchBox->id == $normalId) { +// //all sub categories add `mode` field +// foreach ($tables as $table) { +// NexusDB::table($table)->update(['mode' => $normalId]); +// do_log("update table $table mode = $normalId"); +// } +// //also second icons +// NexusDB::table($secondIconTable)->update(['mode' => $normalId]); +// do_log("update table $secondIconTable mode = $normalId"); +// } elseif ($searchBox->id == $specialId && $specialId != $normalId) { +// //copy from normal section +// foreach ($tables as $table) { +// $sql = sprintf( +// "insert into `%s` (name, sort_index, mode) select name, sort_index, '%s' from `%s`", +// $table, $specialId, $table +// ); +// NexusDB::statement($sql); +// do_log("copy table $table, $sql"); +// } // $fields = array_keys(SearchBox::$taxonomies); // $fields = array_merge($fields, ['name', 'class_name', 'image']); // $fieldStr = implode(', ', $fields); @@ -140,47 +146,152 @@ class SearchBoxRepository extends BaseRepository // ); // NexusDB::statement($sql); // do_log("copy table $secondIconTable, $sql"); - } +// } $taxonomies = []; - foreach (SearchBox::$taxonomies as $field => $taxonomyTable) { - $showField = "show" . $field; - if ($searchBox->{$showField}) { + foreach (SearchBox::$taxonomies as $torrentField => $taxonomyTable) { + $searchBoxField = "show" . $torrentField; + if ($searchBox->showsubcat && $searchBox->{$searchBoxField}) { $taxonomies[] = [ - 'torrent_field' => $field, - 'display_text' => $field, + 'torrent_field' => $torrentField, + 'display_text' => [ + 'en' => nexus_trans("searchbox.sub_category_{$torrentField}_label", [], Locale::$languageMaps['en']), + 'chs' => nexus_trans("searchbox.sub_category_{$torrentField}_label", [], Locale::$languageMaps['chs']), + 'cht' => nexus_trans("searchbox.sub_category_{$torrentField}_label", [], Locale::$languageMaps['cht']), + ], ]; } } - $searchBox->update(["extra->" . SearchBox::EXTRA_TAXONOMY_LABELS => $taxonomies]); + if (!empty($taxonomies)) { + $searchBox->update(["extra->" . SearchBox::EXTRA_TAXONOMY_LABELS => $taxonomies]); + } } } - public function renderQualitySelect($searchBox, array $torrentInfo = []): string + public function renderTaxonomySelect($searchBox, array $torrentInfo = []): string { if (!$searchBox instanceof SearchBox) { - $searchBox = SearchBox::query()->findOrFail(intval($searchBox)); + $searchBox = SearchBox::get(intval($searchBox)); } $results = []; - foreach (SearchBox::$taxonomies as $torrentField => $table) { - $searchBoxField = "show" . $torrentField; - if ($searchBox->{$searchBoxField}) { - $select = sprintf("%s:", $searchBox->getTaxonomyLabel($torrentField)); - $select .= sprintf(''; - $results[] = $select; } } + return implode('  ', $results); } + public function listTaxonomyInfo($searchBox, array $torrentWithTaxonomy): array + { + if (!$searchBox instanceof SearchBox) { + $searchBox = SearchBox::get(intval($searchBox)); + } + $results = []; + //Keep the order + if (!empty($searchBox->extra[SearchBox::EXTRA_TAXONOMY_LABELS])) { + foreach ($searchBox->extra[SearchBox::EXTRA_TAXONOMY_LABELS] as $item) { + $taxonomy = $this->getTaxonomyInfo($searchBox, $torrentWithTaxonomy, $item['torrent_field']); + if ($taxonomy) { + $results[] = $taxonomy; + } + } + } else { + foreach (SearchBox::$taxonomies as $torrentField => $table) { + $taxonomy = $this->getTaxonomyInfo($searchBox, $torrentWithTaxonomy, $torrentField); + if ($taxonomy) { + $results[] = $taxonomy; + } + } + } + return $results; + } + + private function getTaxonomyInfo(SearchBox $searchBox, array $torrentWithTaxonomy, $torrentField) + { + $searchBoxField = "show" . $torrentField; + $torrentTaxonomyField = $torrentField . "_name"; + if ($searchBox->showsubcat && $searchBox->{$searchBoxField} && !empty($torrentWithTaxonomy[$torrentTaxonomyField])) { + return [ + 'field' => $torrentField, + 'label' => $searchBox->getTaxonomyLabel($torrentField), + 'value' => $torrentWithTaxonomy[$torrentTaxonomyField], + ]; + } + } + + private function buildTaxonomySelect(SearchBox $searchBox, $torrentField, array $torrentInfo) + { + $searchBoxId = $searchBox->id; + $searchBoxField = "show" . $torrentField; + if ($searchBox->showsubcat && $searchBox->{$searchBoxField}) { + $table = SearchBox::$taxonomies[$torrentField]; + $select = sprintf("%s: ", $searchBox->getTaxonomyLabel($torrentField)); + $select .= sprintf(''; + return $select; + } + } + + public function listTaxonomyFormSchema($searchBox): array + { + if (!$searchBox instanceof SearchBox) { + $searchBox = SearchBox::get(intval($searchBox)); + } + $results = []; + //Keep the order + if (!empty($searchBox->extra[SearchBox::EXTRA_TAXONOMY_LABELS])) { + foreach ($searchBox->extra[SearchBox::EXTRA_TAXONOMY_LABELS] as $taxonomy) { + $select = $this->buildTaxonomyFormSchema($searchBox, $taxonomy['torrent_field']); + if ($select) { + $results[] = $select; + } + } + } else { + foreach (SearchBox::$taxonomies as $torrentField => $table) { + $select = $this->buildTaxonomyFormSchema($searchBox, $torrentField); + if ($select) { + $results[] = $select; + } + } + } + return $results; + } + + private function buildTaxonomyFormSchema(SearchBox $searchBox, $torrentField) + { + $searchBoxId = $searchBox->id; + $searchBoxField = "show" . $torrentField; + $name = sprintf('%s.%s', $torrentField, $searchBoxId); + if ($searchBox->showsubcat && $searchBox->{$searchBoxField}) { + $items = SearchBox::listTaxonomyItems($searchBox, $torrentField); + return Forms\Components\Select::make($name) + ->options($items->pluck('name', 'id')->toArray()) + ->label($searchBox->getTaxonomyLabel($torrentField)); + } + } + + } diff --git a/composer.json b/composer.json index 91ae5225..928c72e6 100644 --- a/composer.json +++ b/composer.json @@ -32,9 +32,10 @@ "ext-redis": "*", "ext-xml": "*", "ext-gmp": "*", + "ext-zend-opcache": "*", "doctrine/dbal": "^3.1", "elasticsearch/elasticsearch": "^7.16", - "filament/filament": "2.14.2", + "filament/filament": "2.16.36", "flowframe/laravel-trend": "^0.1.1", "fruitcake/laravel-cors": "^2.0", "geoip2/geoip2": "~2.0", diff --git a/composer.lock b/composer.lock index ef9313c4..3cba1621 100644 --- a/composer.lock +++ b/composer.lock @@ -4,20 +4,20 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "480b59d5b7bde3ea71a3c52e64455c7b", + "content-hash": "a75d431e4eec2207077681d0d1809797", "packages": [ { "name": "akaunting/laravel-money", - "version": "3.0.1", + "version": "3.1.2", "source": { "type": "git", "url": "https://github.com/akaunting/laravel-money.git", - "reference": "22336631239eb008e26d322faa208cbc50757a38" + "reference": "cbc66d1dc457c169f6081e0ae6c661b499dad301" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/akaunting/laravel-money/zipball/22336631239eb008e26d322faa208cbc50757a38", - "reference": "22336631239eb008e26d322faa208cbc50757a38", + "url": "https://api.github.com/repos/akaunting/laravel-money/zipball/cbc66d1dc457c169f6081e0ae6c661b499dad301", + "reference": "cbc66d1dc457c169f6081e0ae6c661b499dad301", "shasum": "" }, "require": { @@ -70,9 +70,9 @@ ], "support": { "issues": "https://github.com/akaunting/laravel-money/issues", - "source": "https://github.com/akaunting/laravel-money/tree/3.0.1" + "source": "https://github.com/akaunting/laravel-money/tree/3.1.2" }, - "time": "2022-05-11T06:34:38+00:00" + "time": "2022-07-27T08:16:36+00:00" }, { "name": "asm89/stack-cors", @@ -201,16 +201,16 @@ }, { "name": "blade-ui-kit/blade-icons", - "version": "1.3.0", + "version": "1.4.1", "source": { "type": "git", "url": "https://github.com/blade-ui-kit/blade-icons.git", - "reference": "57a7c41e1e79e38aed029d3e6ae690b04344c99e" + "reference": "977559507feebba431019abf1b319d71dfdacd95" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/blade-ui-kit/blade-icons/zipball/57a7c41e1e79e38aed029d3e6ae690b04344c99e", - "reference": "57a7c41e1e79e38aed029d3e6ae690b04344c99e", + "url": "https://api.github.com/repos/blade-ui-kit/blade-icons/zipball/977559507feebba431019abf1b319d71dfdacd95", + "reference": "977559507feebba431019abf1b319d71dfdacd95", "shasum": "" }, "require": { @@ -278,30 +278,30 @@ "type": "github" } ], - "time": "2022-05-11T12:38:11+00:00" + "time": "2022-09-30T11:26:24+00:00" }, { "name": "brick/math", - "version": "0.9.3", + "version": "0.10.2", "source": { "type": "git", "url": "https://github.com/brick/math.git", - "reference": "ca57d18f028f84f777b2168cd1911b0dee2343ae" + "reference": "459f2781e1a08d52ee56b0b1444086e038561e3f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/brick/math/zipball/ca57d18f028f84f777b2168cd1911b0dee2343ae", - "reference": "ca57d18f028f84f777b2168cd1911b0dee2343ae", + "url": "https://api.github.com/repos/brick/math/zipball/459f2781e1a08d52ee56b0b1444086e038561e3f", + "reference": "459f2781e1a08d52ee56b0b1444086e038561e3f", "shasum": "" }, "require": { "ext-json": "*", - "php": "^7.1 || ^8.0" + "php": "^7.4 || ^8.0" }, "require-dev": { "php-coveralls/php-coveralls": "^2.2", - "phpunit/phpunit": "^7.5.15 || ^8.5 || ^9.0", - "vimeo/psalm": "4.9.2" + "phpunit/phpunit": "^9.0", + "vimeo/psalm": "4.25.0" }, "type": "library", "autoload": { @@ -326,32 +326,28 @@ ], "support": { "issues": "https://github.com/brick/math/issues", - "source": "https://github.com/brick/math/tree/0.9.3" + "source": "https://github.com/brick/math/tree/0.10.2" }, "funding": [ { "url": "https://github.com/BenMorel", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/brick/math", - "type": "tidelift" } ], - "time": "2021-08-15T20:50:18+00:00" + "time": "2022-08-10T22:54:19+00:00" }, { "name": "composer/ca-bundle", - "version": "1.3.2", + "version": "1.3.4", "source": { "type": "git", "url": "https://github.com/composer/ca-bundle.git", - "reference": "fd5dd441932a7e10ca6e5b490e272d34c8430640" + "reference": "69098eca243998b53eed7a48d82dedd28b447cd5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/ca-bundle/zipball/fd5dd441932a7e10ca6e5b490e272d34c8430640", - "reference": "fd5dd441932a7e10ca6e5b490e272d34c8430640", + "url": "https://api.github.com/repos/composer/ca-bundle/zipball/69098eca243998b53eed7a48d82dedd28b447cd5", + "reference": "69098eca243998b53eed7a48d82dedd28b447cd5", "shasum": "" }, "require": { @@ -398,7 +394,7 @@ "support": { "irc": "irc://irc.freenode.org/composer", "issues": "https://github.com/composer/ca-bundle/issues", - "source": "https://github.com/composer/ca-bundle/tree/1.3.2" + "source": "https://github.com/composer/ca-bundle/tree/1.3.4" }, "funding": [ { @@ -414,7 +410,7 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:56:16+00:00" + "time": "2022-10-12T12:08:29+00:00" }, { "name": "composer/semver", @@ -772,38 +768,38 @@ }, { "name": "doctrine/dbal", - "version": "3.3.7", + "version": "3.5.1", "source": { "type": "git", "url": "https://github.com/doctrine/dbal.git", - "reference": "9f79d4650430b582f4598fe0954ef4d52fbc0a8a" + "reference": "f38ee8aaca2d58ee88653cb34a6a3880c23f38a5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/9f79d4650430b582f4598fe0954ef4d52fbc0a8a", - "reference": "9f79d4650430b582f4598fe0954ef4d52fbc0a8a", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/f38ee8aaca2d58ee88653cb34a6a3880c23f38a5", + "reference": "f38ee8aaca2d58ee88653cb34a6a3880c23f38a5", "shasum": "" }, "require": { "composer-runtime-api": "^2", "doctrine/cache": "^1.11|^2.0", "doctrine/deprecations": "^0.5.3|^1", - "doctrine/event-manager": "^1.0", - "php": "^7.3 || ^8.0", + "doctrine/event-manager": "^1|^2", + "php": "^7.4 || ^8.0", "psr/cache": "^1|^2|^3", "psr/log": "^1|^2|^3" }, "require-dev": { - "doctrine/coding-standard": "9.0.0", - "jetbrains/phpstorm-stubs": "2022.1", - "phpstan/phpstan": "1.7.13", - "phpstan/phpstan-strict-rules": "^1.2", - "phpunit/phpunit": "9.5.20", - "psalm/plugin-phpunit": "0.16.1", - "squizlabs/php_codesniffer": "3.7.0", - "symfony/cache": "^5.2|^6.0", - "symfony/console": "^2.7|^3.0|^4.0|^5.0|^6.0", - "vimeo/psalm": "4.23.0" + "doctrine/coding-standard": "10.0.0", + "jetbrains/phpstorm-stubs": "2022.2", + "phpstan/phpstan": "1.8.10", + "phpstan/phpstan-strict-rules": "^1.4", + "phpunit/phpunit": "9.5.25", + "psalm/plugin-phpunit": "0.17.0", + "squizlabs/php_codesniffer": "3.7.1", + "symfony/cache": "^5.4|^6.0", + "symfony/console": "^4.4|^5.4|^6.0", + "vimeo/psalm": "4.29.0" }, "suggest": { "symfony/console": "For helpful console commands such as SQL execution and import of files." @@ -863,7 +859,7 @@ ], "support": { "issues": "https://github.com/doctrine/dbal/issues", - "source": "https://github.com/doctrine/dbal/tree/3.3.7" + "source": "https://github.com/doctrine/dbal/tree/3.5.1" }, "funding": [ { @@ -879,7 +875,7 @@ "type": "tidelift" } ], - "time": "2022-06-13T21:43:03+00:00" + "time": "2022-10-24T07:26:18+00:00" }, { "name": "doctrine/deprecations", @@ -926,37 +922,35 @@ }, { "name": "doctrine/event-manager", - "version": "1.1.1", + "version": "1.2.0", "source": { "type": "git", "url": "https://github.com/doctrine/event-manager.git", - "reference": "41370af6a30faa9dc0368c4a6814d596e81aba7f" + "reference": "95aa4cb529f1e96576f3fda9f5705ada4056a520" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/event-manager/zipball/41370af6a30faa9dc0368c4a6814d596e81aba7f", - "reference": "41370af6a30faa9dc0368c4a6814d596e81aba7f", + "url": "https://api.github.com/repos/doctrine/event-manager/zipball/95aa4cb529f1e96576f3fda9f5705ada4056a520", + "reference": "95aa4cb529f1e96576f3fda9f5705ada4056a520", "shasum": "" }, "require": { + "doctrine/deprecations": "^0.5.3 || ^1", "php": "^7.1 || ^8.0" }, "conflict": { - "doctrine/common": "<2.9@dev" + "doctrine/common": "<2.9" }, "require-dev": { - "doctrine/coding-standard": "^6.0", - "phpunit/phpunit": "^7.0" + "doctrine/coding-standard": "^9 || ^10", + "phpstan/phpstan": "~1.4.10 || ^1.8.8", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "vimeo/psalm": "^4.24" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, "autoload": { "psr-4": { - "Doctrine\\Common\\": "lib/Doctrine/Common" + "Doctrine\\Common\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -1000,7 +994,7 @@ ], "support": { "issues": "https://github.com/doctrine/event-manager/issues", - "source": "https://github.com/doctrine/event-manager/tree/1.1.x" + "source": "https://github.com/doctrine/event-manager/tree/1.2.0" }, "funding": [ { @@ -1016,32 +1010,32 @@ "type": "tidelift" } ], - "time": "2020-05-29T18:28:51+00:00" + "time": "2022-10-12T20:51:15+00:00" }, { "name": "doctrine/inflector", - "version": "2.0.4", + "version": "2.0.6", "source": { "type": "git", "url": "https://github.com/doctrine/inflector.git", - "reference": "8b7ff3e4b7de6b2c84da85637b59fd2880ecaa89" + "reference": "d9d313a36c872fd6ee06d9a6cbcf713eaa40f024" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/inflector/zipball/8b7ff3e4b7de6b2c84da85637b59fd2880ecaa89", - "reference": "8b7ff3e4b7de6b2c84da85637b59fd2880ecaa89", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/d9d313a36c872fd6ee06d9a6cbcf713eaa40f024", + "reference": "d9d313a36c872fd6ee06d9a6cbcf713eaa40f024", "shasum": "" }, "require": { "php": "^7.2 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^8.2", - "phpstan/phpstan": "^0.12", - "phpstan/phpstan-phpunit": "^0.12", - "phpstan/phpstan-strict-rules": "^0.12", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0", - "vimeo/psalm": "^4.10" + "doctrine/coding-standard": "^10", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-phpunit": "^1.1", + "phpstan/phpstan-strict-rules": "^1.3", + "phpunit/phpunit": "^8.5 || ^9.5", + "vimeo/psalm": "^4.25" }, "type": "library", "autoload": { @@ -1091,7 +1085,7 @@ ], "support": { "issues": "https://github.com/doctrine/inflector/issues", - "source": "https://github.com/doctrine/inflector/tree/2.0.4" + "source": "https://github.com/doctrine/inflector/tree/2.0.6" }, "funding": [ { @@ -1107,7 +1101,7 @@ "type": "tidelift" } ], - "time": "2021-10-22T20:16:43+00:00" + "time": "2022-10-20T09:10:12+00:00" }, { "name": "doctrine/lexer", @@ -1187,16 +1181,16 @@ }, { "name": "dragonmantank/cron-expression", - "version": "v3.3.1", + "version": "v3.3.2", "source": { "type": "git", "url": "https://github.com/dragonmantank/cron-expression.git", - "reference": "be85b3f05b46c39bbc0d95f6c071ddff669510fa" + "reference": "782ca5968ab8b954773518e9e49a6f892a34b2a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/be85b3f05b46c39bbc0d95f6c071ddff669510fa", - "reference": "be85b3f05b46c39bbc0d95f6c071ddff669510fa", + "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/782ca5968ab8b954773518e9e49a6f892a34b2a8", + "reference": "782ca5968ab8b954773518e9e49a6f892a34b2a8", "shasum": "" }, "require": { @@ -1236,7 +1230,7 @@ ], "support": { "issues": "https://github.com/dragonmantank/cron-expression/issues", - "source": "https://github.com/dragonmantank/cron-expression/tree/v3.3.1" + "source": "https://github.com/dragonmantank/cron-expression/tree/v3.3.2" }, "funding": [ { @@ -1244,7 +1238,7 @@ "type": "github" } ], - "time": "2022-01-18T15:43:28+00:00" + "time": "2022-09-10T18:51:20+00:00" }, { "name": "egulias/email-validator", @@ -1316,16 +1310,16 @@ }, { "name": "elasticsearch/elasticsearch", - "version": "v7.17.0", + "version": "v7.17.1", "source": { "type": "git", - "url": "https://github.com/elastic/elasticsearch-php.git", - "reference": "1890f9d7fde076b5a3ddcf579a802af05b2e781b" + "url": "git@github.com:elastic/elasticsearch-php.git", + "reference": "f1b8918f411b837ce5f6325e829a73518fd50367" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/elastic/elasticsearch-php/zipball/1890f9d7fde076b5a3ddcf579a802af05b2e781b", - "reference": "1890f9d7fde076b5a3ddcf579a802af05b2e781b", + "url": "https://api.github.com/repos/elastic/elasticsearch-php/zipball/f1b8918f411b837ce5f6325e829a73518fd50367", + "reference": "f1b8918f411b837ce5f6325e829a73518fd50367", "shasum": "" }, "require": { @@ -1375,31 +1369,27 @@ "elasticsearch", "search" ], - "support": { - "issues": "https://github.com/elastic/elasticsearch-php/issues", - "source": "https://github.com/elastic/elasticsearch-php/tree/v7.17.0" - }, - "time": "2022-02-03T13:40:04+00:00" + "time": "2022-09-30T12:28:55+00:00" }, { "name": "ezimuel/guzzlestreams", - "version": "3.0.1", + "version": "3.1.0", "source": { "type": "git", "url": "https://github.com/ezimuel/guzzlestreams.git", - "reference": "abe3791d231167f14eb80d413420d1eab91163a8" + "reference": "b4b5a025dfee70d6cd34c780e07330eb93d5b997" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ezimuel/guzzlestreams/zipball/abe3791d231167f14eb80d413420d1eab91163a8", - "reference": "abe3791d231167f14eb80d413420d1eab91163a8", + "url": "https://api.github.com/repos/ezimuel/guzzlestreams/zipball/b4b5a025dfee70d6cd34c780e07330eb93d5b997", + "reference": "b4b5a025dfee70d6cd34c780e07330eb93d5b997", "shasum": "" }, "require": { "php": ">=5.4.0" }, "require-dev": { - "phpunit/phpunit": "~4.0" + "phpunit/phpunit": "~9.0" }, "type": "library", "extra": { @@ -1430,22 +1420,22 @@ "stream" ], "support": { - "source": "https://github.com/ezimuel/guzzlestreams/tree/3.0.1" + "source": "https://github.com/ezimuel/guzzlestreams/tree/3.1.0" }, - "time": "2020-02-14T23:11:50+00:00" + "time": "2022-10-24T12:58:50+00:00" }, { "name": "ezimuel/ringphp", - "version": "1.2.0", + "version": "1.2.1", "source": { "type": "git", "url": "https://github.com/ezimuel/ringphp.git", - "reference": "92b8161404ab1ad84059ebed41d9f757e897ce74" + "reference": "8d00384f9e5c04713ef8448adf47824265791b50" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ezimuel/ringphp/zipball/92b8161404ab1ad84059ebed41d9f757e897ce74", - "reference": "92b8161404ab1ad84059ebed41d9f757e897ce74", + "url": "https://api.github.com/repos/ezimuel/ringphp/zipball/8d00384f9e5c04713ef8448adf47824265791b50", + "reference": "8d00384f9e5c04713ef8448adf47824265791b50", "shasum": "" }, "require": { @@ -1487,27 +1477,28 @@ ], "description": "Fork of guzzle/RingPHP (abandoned) to be used with elasticsearch-php", "support": { - "source": "https://github.com/ezimuel/ringphp/tree/1.2.0" + "source": "https://github.com/ezimuel/ringphp/tree/1.2.1" }, - "time": "2021-11-16T11:51:30+00:00" + "time": "2022-10-25T12:54:22+00:00" }, { "name": "filament/filament", - "version": "v2.14.2", + "version": "v2.16.36", "source": { "type": "git", "url": "https://github.com/filamentphp/admin.git", - "reference": "14e226312ea2261caf6b20eb37df9e070ba41308" + "reference": "35e9087768d11c3ca751551a5a9d9ce52f222cc2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/admin/zipball/14e226312ea2261caf6b20eb37df9e070ba41308", - "reference": "14e226312ea2261caf6b20eb37df9e070ba41308", + "url": "https://api.github.com/repos/filamentphp/admin/zipball/35e9087768d11c3ca751551a5a9d9ce52f222cc2", + "reference": "35e9087768d11c3ca751551a5a9d9ce52f222cc2", "shasum": "" }, "require": { "danharrin/livewire-rate-limiting": "^0.3|^1.0", "filament/forms": "self.version", + "filament/notifications": "self.version", "filament/support": "self.version", "filament/tables": "self.version", "illuminate/auth": "^8.6|^9.0", @@ -1520,8 +1511,9 @@ "illuminate/session": "^8.6|^9.0", "illuminate/support": "^8.6|^9.0", "illuminate/view": "^8.6|^9.0", - "livewire/livewire": "^2.6", + "livewire/livewire": "^2.10.7", "php": "^8.0", + "ryangjchandler/blade-capture-directive": "^0.2", "spatie/laravel-package-tools": "^1.9" }, "type": "library", @@ -1550,25 +1542,26 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2022-07-18T19:25:31+00:00" + "time": "2022-10-22T11:51:56+00:00" }, { "name": "filament/forms", - "version": "v2.14.2", + "version": "v2.16.36", "source": { "type": "git", "url": "https://github.com/filamentphp/forms.git", - "reference": "9d3c19031a02c22d2111d0269eb821e102e0dc06" + "reference": "c3fc9d177c0e220f4b1462fee6360fbfcc4ea63d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/forms/zipball/9d3c19031a02c22d2111d0269eb821e102e0dc06", - "reference": "9d3c19031a02c22d2111d0269eb821e102e0dc06", + "url": "https://api.github.com/repos/filamentphp/forms/zipball/c3fc9d177c0e220f4b1462fee6360fbfcc4ea63d", + "reference": "c3fc9d177c0e220f4b1462fee6360fbfcc4ea63d", "shasum": "" }, "require": { "blade-ui-kit/blade-heroicons": "^1.2", "danharrin/date-format-converter": "^0.2", + "filament/notifications": "self.version", "filament/support": "self.version", "illuminate/console": "^8.6|^9.0", "illuminate/contracts": "^8.6|^9.0", @@ -1577,7 +1570,7 @@ "illuminate/support": "^8.6|^9.0", "illuminate/validation": "^8.6|^9.0", "illuminate/view": "^8.6|^9.0", - "livewire/livewire": "^2.6", + "livewire/livewire": "^2.10.7", "php": "^8.0", "spatie/laravel-package-tools": "^1.9" }, @@ -1607,20 +1600,70 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2022-07-18T19:25:28+00:00" + "time": "2022-10-22T11:51:56+00:00" }, { - "name": "filament/support", - "version": "v2.14.2", + "name": "filament/notifications", + "version": "v2.16.36", "source": { "type": "git", - "url": "https://github.com/filamentphp/support.git", - "reference": "308364e0a18058aa59b3200b7e83c3eb96f7bc1f" + "url": "https://github.com/filamentphp/notifications.git", + "reference": "0f83057a6bc95d031080c785235bbbd8405b0314" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/support/zipball/308364e0a18058aa59b3200b7e83c3eb96f7bc1f", - "reference": "308364e0a18058aa59b3200b7e83c3eb96f7bc1f", + "url": "https://api.github.com/repos/filamentphp/notifications/zipball/0f83057a6bc95d031080c785235bbbd8405b0314", + "reference": "0f83057a6bc95d031080c785235bbbd8405b0314", + "shasum": "" + }, + "require": { + "blade-ui-kit/blade-heroicons": "^1.2", + "filament/support": "self.version", + "illuminate/contracts": "^8.6|^9.0", + "illuminate/filesystem": "^8.6|^9.0", + "illuminate/notifications": "^8.6|^9.0", + "illuminate/support": "^8.6|^9.0", + "livewire/livewire": "^2.10.7", + "php": "^8.0", + "spatie/laravel-package-tools": "^1.9" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Filament\\Notifications\\NotificationsServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Filament\\Notifications\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Effortlessly build TALL-powered notifications.", + "homepage": "https://github.com/filamentphp/filament", + "support": { + "issues": "https://github.com/filamentphp/filament/issues", + "source": "https://github.com/filamentphp/filament" + }, + "time": "2022-10-22T11:52:00+00:00" + }, + { + "name": "filament/support", + "version": "v2.16.36", + "source": { + "type": "git", + "url": "https://github.com/filamentphp/support.git", + "reference": "6e26602696ea96a33666667d3fac423176d65e81" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/filamentphp/support/zipball/6e26602696ea96a33666667d3fac423176d65e81", + "reference": "6e26602696ea96a33666667d3fac423176d65e81", "shasum": "" }, "require": { @@ -1657,26 +1700,27 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2022-07-18T19:25:33+00:00" + "time": "2022-10-22T11:51:54+00:00" }, { "name": "filament/tables", - "version": "v2.14.2", + "version": "v2.16.36", "source": { "type": "git", "url": "https://github.com/filamentphp/tables.git", - "reference": "cef4560cef984811b7415470bc141a65f6f1a6ee" + "reference": "327f41e4b1baa8b0229299c94aec04648f3c68c6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filamentphp/tables/zipball/cef4560cef984811b7415470bc141a65f6f1a6ee", - "reference": "cef4560cef984811b7415470bc141a65f6f1a6ee", + "url": "https://api.github.com/repos/filamentphp/tables/zipball/327f41e4b1baa8b0229299c94aec04648f3c68c6", + "reference": "327f41e4b1baa8b0229299c94aec04648f3c68c6", "shasum": "" }, "require": { "akaunting/laravel-money": "^1.2|^2.0|^3.0", "blade-ui-kit/blade-heroicons": "^1.2", "filament/forms": "self.version", + "filament/notifications": "self.version", "filament/support": "self.version", "illuminate/console": "^8.6|^9.0", "illuminate/contracts": "^8.6|^9.0", @@ -1684,8 +1728,9 @@ "illuminate/filesystem": "^8.6|^9.0", "illuminate/support": "^8.6|^9.0", "illuminate/view": "^8.6|^9.0", - "livewire/livewire": "^2.6", + "livewire/livewire": "^2.10.7", "php": "^8.0", + "spatie/invade": "^1.0", "spatie/laravel-package-tools": "^1.9" }, "type": "library", @@ -1711,7 +1756,7 @@ "issues": "https://github.com/filamentphp/filament/issues", "source": "https://github.com/filamentphp/filament" }, - "time": "2022-07-18T19:25:27+00:00" + "time": "2022-10-22T11:51:59+00:00" }, { "name": "firebase/php-jwt", @@ -2001,16 +2046,16 @@ }, { "name": "geoip2/geoip2", - "version": "v2.12.2", + "version": "v2.13.0", "source": { "type": "git", - "url": "https://github.com/maxmind/GeoIP2-php.git", - "reference": "83adb44ac4b9553d36b579a14673ed124583082f" + "url": "git@github.com:maxmind/GeoIP2-php.git", + "reference": "6a41d8fbd6b90052bc34dff3b4252d0f88067b23" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/maxmind/GeoIP2-php/zipball/83adb44ac4b9553d36b579a14673ed124583082f", - "reference": "83adb44ac4b9553d36b579a14673ed124583082f", + "url": "https://api.github.com/repos/maxmind/GeoIP2-php/zipball/6a41d8fbd6b90052bc34dff3b4252d0f88067b23", + "reference": "6a41d8fbd6b90052bc34dff3b4252d0f88067b23", "shasum": "" }, "require": { @@ -2051,11 +2096,7 @@ "geolocation", "maxmind" ], - "support": { - "issues": "https://github.com/maxmind/GeoIP2-php/issues", - "source": "https://github.com/maxmind/GeoIP2-php/tree/v2.12.2" - }, - "time": "2021-11-30T18:15:25+00:00" + "time": "2022-08-05T20:32:58+00:00" }, { "name": "google/apiclient", @@ -2129,16 +2170,16 @@ }, { "name": "google/apiclient-services", - "version": "v0.258.0", + "version": "v0.272.0", "source": { "type": "git", "url": "https://github.com/googleapis/google-api-php-client-services.git", - "reference": "71eb32534aba05e373fe317c1373a9645065881c" + "reference": "52b494231f6b531983d12aefac057d0eeec2861c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/googleapis/google-api-php-client-services/zipball/71eb32534aba05e373fe317c1373a9645065881c", - "reference": "71eb32534aba05e373fe317c1373a9645065881c", + "url": "https://api.github.com/repos/googleapis/google-api-php-client-services/zipball/52b494231f6b531983d12aefac057d0eeec2861c", + "reference": "52b494231f6b531983d12aefac057d0eeec2861c", "shasum": "" }, "require": { @@ -2167,22 +2208,22 @@ ], "support": { "issues": "https://github.com/googleapis/google-api-php-client-services/issues", - "source": "https://github.com/googleapis/google-api-php-client-services/tree/v0.258.0" + "source": "https://github.com/googleapis/google-api-php-client-services/tree/v0.272.0" }, - "time": "2022-07-18T01:10:11+00:00" + "time": "2022-10-21T01:18:13+00:00" }, { "name": "google/auth", - "version": "v1.21.1", + "version": "v1.23.0", "source": { "type": "git", "url": "https://github.com/googleapis/google-auth-library-php.git", - "reference": "aa3b9ca29258ac6347ce3c8937a2418c5d78f840" + "reference": "8da16102d2cd1bdc128d97f323553df465ee7701" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/googleapis/google-auth-library-php/zipball/aa3b9ca29258ac6347ce3c8937a2418c5d78f840", - "reference": "aa3b9ca29258ac6347ce3c8937a2418c5d78f840", + "url": "https://api.github.com/repos/googleapis/google-auth-library-php/zipball/8da16102d2cd1bdc128d97f323553df465ee7701", + "reference": "8da16102d2cd1bdc128d97f323553df465ee7701", "shasum": "" }, "require": { @@ -2225,30 +2266,30 @@ "support": { "docs": "https://googleapis.github.io/google-auth-library-php/main/", "issues": "https://github.com/googleapis/google-auth-library-php/issues", - "source": "https://github.com/googleapis/google-auth-library-php/tree/v1.21.1" + "source": "https://github.com/googleapis/google-auth-library-php/tree/v1.23.0" }, - "time": "2022-05-16T19:34:15+00:00" + "time": "2022-09-27T16:27:23+00:00" }, { "name": "graham-campbell/result-type", - "version": "v1.0.4", + "version": "v1.1.0", "source": { "type": "git", "url": "https://github.com/GrahamCampbell/Result-Type.git", - "reference": "0690bde05318336c7221785f2a932467f98b64ca" + "reference": "a878d45c1914464426dc94da61c9e1d36ae262a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/0690bde05318336c7221785f2a932467f98b64ca", - "reference": "0690bde05318336c7221785f2a932467f98b64ca", + "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/a878d45c1914464426dc94da61c9e1d36ae262a8", + "reference": "a878d45c1914464426dc94da61c9e1d36ae262a8", "shasum": "" }, "require": { - "php": "^7.0 || ^8.0", - "phpoption/phpoption": "^1.8" + "php": "^7.2.5 || ^8.0", + "phpoption/phpoption": "^1.9" }, "require-dev": { - "phpunit/phpunit": "^6.5.14 || ^7.5.20 || ^8.5.19 || ^9.5.8" + "phpunit/phpunit": "^8.5.28 || ^9.5.21" }, "type": "library", "autoload": { @@ -2277,7 +2318,7 @@ ], "support": { "issues": "https://github.com/GrahamCampbell/Result-Type/issues", - "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.0.4" + "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.0" }, "funding": [ { @@ -2289,20 +2330,20 @@ "type": "tidelift" } ], - "time": "2021-11-21T21:41:47+00:00" + "time": "2022-07-30T15:56:11+00:00" }, { "name": "guzzlehttp/guzzle", - "version": "7.4.5", + "version": "7.5.0", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "1dd98b0564cb3f6bd16ce683cb755f94c10fbd82" + "reference": "b50a2a1251152e43f6a37f0fa053e730a67d25ba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/1dd98b0564cb3f6bd16ce683cb755f94c10fbd82", - "reference": "1dd98b0564cb3f6bd16ce683cb755f94c10fbd82", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/b50a2a1251152e43f6a37f0fa053e730a67d25ba", + "reference": "b50a2a1251152e43f6a37f0fa053e730a67d25ba", "shasum": "" }, "require": { @@ -2317,10 +2358,10 @@ "psr/http-client-implementation": "1.0" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.4.1", + "bamarni/composer-bin-plugin": "^1.8.1", "ext-curl": "*", "php-http/client-integration-tests": "^3.0", - "phpunit/phpunit": "^8.5.5 || ^9.3.5", + "phpunit/phpunit": "^8.5.29 || ^9.5.23", "psr/log": "^1.1 || ^2.0 || ^3.0" }, "suggest": { @@ -2330,8 +2371,12 @@ }, "type": "library", "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + }, "branch-alias": { - "dev-master": "7.4-dev" + "dev-master": "7.5-dev" } }, "autoload": { @@ -2397,7 +2442,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.4.5" + "source": "https://github.com/guzzle/guzzle/tree/7.5.0" }, "funding": [ { @@ -2413,20 +2458,20 @@ "type": "tidelift" } ], - "time": "2022-06-20T22:16:13+00:00" + "time": "2022-08-28T15:39:27+00:00" }, { "name": "guzzlehttp/promises", - "version": "1.5.1", + "version": "1.5.2", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "fe752aedc9fd8fcca3fe7ad05d419d32998a06da" + "reference": "b94b2807d85443f9719887892882d0329d1e2598" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/fe752aedc9fd8fcca3fe7ad05d419d32998a06da", - "reference": "fe752aedc9fd8fcca3fe7ad05d419d32998a06da", + "url": "https://api.github.com/repos/guzzle/promises/zipball/b94b2807d85443f9719887892882d0329d1e2598", + "reference": "b94b2807d85443f9719887892882d0329d1e2598", "shasum": "" }, "require": { @@ -2481,7 +2526,7 @@ ], "support": { "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/1.5.1" + "source": "https://github.com/guzzle/promises/tree/1.5.2" }, "funding": [ { @@ -2497,20 +2542,20 @@ "type": "tidelift" } ], - "time": "2021-10-22T20:56:57+00:00" + "time": "2022-08-28T14:55:35+00:00" }, { "name": "guzzlehttp/psr7", - "version": "2.4.0", + "version": "2.4.1", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "13388f00956b1503577598873fffb5ae994b5737" + "reference": "69568e4293f4fa993f3b0e51c9723e1e17c41379" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/13388f00956b1503577598873fffb5ae994b5737", - "reference": "13388f00956b1503577598873fffb5ae994b5737", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/69568e4293f4fa993f3b0e51c9723e1e17c41379", + "reference": "69568e4293f4fa993f3b0e51c9723e1e17c41379", "shasum": "" }, "require": { @@ -2524,15 +2569,19 @@ "psr/http-message-implementation": "1.0" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.4.1", + "bamarni/composer-bin-plugin": "^1.8.1", "http-interop/http-factory-tests": "^0.9", - "phpunit/phpunit": "^8.5.8 || ^9.3.10" + "phpunit/phpunit": "^8.5.29 || ^9.5.23" }, "suggest": { "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" }, "type": "library", "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + }, "branch-alias": { "dev-master": "2.4-dev" } @@ -2596,7 +2645,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.4.0" + "source": "https://github.com/guzzle/psr7/tree/2.4.1" }, "funding": [ { @@ -2612,7 +2661,7 @@ "type": "tidelift" } ], - "time": "2022-06-20T21:43:11+00:00" + "time": "2022-08-28T14:45:39+00:00" }, { "name": "hashids/hashids", @@ -2686,16 +2735,16 @@ }, { "name": "imdbphp/imdbphp", - "version": "v7.3.0", + "version": "v7.3.1", "source": { "type": "git", "url": "https://github.com/tboothman/imdbphp.git", - "reference": "575ab12ca7e93a677e5cda9e4f46c1f460e8b7ea" + "reference": "1fdcc68fd7dce2fde8a2282c833465f35154faf9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/tboothman/imdbphp/zipball/575ab12ca7e93a677e5cda9e4f46c1f460e8b7ea", - "reference": "575ab12ca7e93a677e5cda9e4f46c1f460e8b7ea", + "url": "https://api.github.com/repos/tboothman/imdbphp/zipball/1fdcc68fd7dce2fde8a2282c833465f35154faf9", + "reference": "1fdcc68fd7dce2fde8a2282c833465f35154faf9", "shasum": "" }, "require": { @@ -2727,31 +2776,30 @@ "description": "Library for retrieving film and tv information from IMDb", "support": { "issues": "https://github.com/tboothman/imdbphp/issues", - "source": "https://github.com/tboothman/imdbphp/tree/v7.3.0" + "source": "https://github.com/tboothman/imdbphp/tree/v7.3.1" }, - "time": "2022-03-03T21:23:44+00:00" + "time": "2022-10-08T09:03:14+00:00" }, { "name": "laminas/laminas-diactoros", - "version": "2.13.0", + "version": "2.19.0", "source": { "type": "git", "url": "https://github.com/laminas/laminas-diactoros.git", - "reference": "34ba65010be9aa74e159d168c5ecfa5c01e4d956" + "reference": "b3c7e9262b4fbec801d8df2370cdebb4f5d3a0ae" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-diactoros/zipball/34ba65010be9aa74e159d168c5ecfa5c01e4d956", - "reference": "34ba65010be9aa74e159d168c5ecfa5c01e4d956", + "url": "https://api.github.com/repos/laminas/laminas-diactoros/zipball/b3c7e9262b4fbec801d8df2370cdebb4f5d3a0ae", + "reference": "b3c7e9262b4fbec801d8df2370cdebb4f5d3a0ae", "shasum": "" }, "require": { - "php": "^7.3 || ~8.0.0 || ~8.1.0", + "php": "~8.0.0 || ~8.1.0 || ~8.2.0", "psr/http-factory": "^1.0", "psr/http-message": "^1.0" }, "conflict": { - "phpspec/prophecy": "<1.9.0", "zendframework/zend-diactoros": "*" }, "provide": { @@ -2764,12 +2812,11 @@ "ext-gd": "*", "ext-libxml": "*", "http-interop/http-factory-tests": "^0.9.0", - "laminas/laminas-coding-standard": "~2.3.0", + "laminas/laminas-coding-standard": "^2.4.0", "php-http/psr7-integration-tests": "^1.1.1", - "phpspec/prophecy-phpunit": "^2.0", - "phpunit/phpunit": "^9.5", + "phpunit/phpunit": "^9.5.25", "psalm/plugin-phpunit": "^0.17.0", - "vimeo/psalm": "^4.24.0" + "vimeo/psalm": "^4.28" }, "type": "library", "extra": { @@ -2828,40 +2875,41 @@ "type": "community_bridge" } ], - "time": "2022-07-07T12:31:03+00:00" + "time": "2022-10-10T21:28:03+00:00" }, { "name": "laravel/framework", - "version": "v9.20.0", + "version": "v9.36.4", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "c99868f1c9bf2f5d250993121838db905591864f" + "reference": "15ce569fd93124e8e2257c24e3ed85b9ef9951d6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/c99868f1c9bf2f5d250993121838db905591864f", - "reference": "c99868f1c9bf2f5d250993121838db905591864f", + "url": "https://api.github.com/repos/laravel/framework/zipball/15ce569fd93124e8e2257c24e3ed85b9ef9951d6", + "reference": "15ce569fd93124e8e2257c24e3ed85b9ef9951d6", "shasum": "" }, "require": { "doctrine/inflector": "^2.0", - "dragonmantank/cron-expression": "^3.1", - "egulias/email-validator": "^3.1", + "dragonmantank/cron-expression": "^3.3.2", + "egulias/email-validator": "^3.2.1", "ext-mbstring": "*", "ext-openssl": "*", "fruitcake/php-cors": "^1.2", - "laravel/serializable-closure": "^1.0", + "laravel/serializable-closure": "^1.2.2", "league/commonmark": "^2.2", - "league/flysystem": "^3.0.16", + "league/flysystem": "^3.8.0", "monolog/monolog": "^2.0", - "nesbot/carbon": "^2.53.1", + "nesbot/carbon": "^2.62.1", + "nunomaduro/termwind": "^1.13", "php": "^8.0.2", "psr/container": "^1.1.1|^2.0.1", "psr/log": "^1.0|^2.0|^3.0", "psr/simple-cache": "^1.0|^2.0|^3.0", "ramsey/uuid": "^4.2.2", - "symfony/console": "^6.0", + "symfony/console": "^6.0.9", "symfony/error-handler": "^6.0", "symfony/finder": "^6.0", "symfony/http-foundation": "^6.0", @@ -2870,8 +2918,9 @@ "symfony/mime": "^6.0", "symfony/process": "^6.0", "symfony/routing": "^6.0", + "symfony/uid": "^6.0", "symfony/var-dumper": "^6.0", - "tijsverkoyen/css-to-inline-styles": "^2.2.2", + "tijsverkoyen/css-to-inline-styles": "^2.2.5", "vlucas/phpdotenv": "^5.4.1", "voku/portable-ascii": "^2.0" }, @@ -2917,24 +2966,27 @@ "illuminate/view": "self.version" }, "require-dev": { - "aws/aws-sdk-php": "^3.198.1", + "ably/ably-php": "^1.0", + "aws/aws-sdk-php": "^3.235.5", "doctrine/dbal": "^2.13.3|^3.1.4", "fakerphp/faker": "^1.9.2", - "guzzlehttp/guzzle": "^7.2", + "guzzlehttp/guzzle": "^7.5", "league/flysystem-aws-s3-v3": "^3.0", "league/flysystem-ftp": "^3.0", + "league/flysystem-path-prefixing": "^3.3", + "league/flysystem-read-only": "^3.3", "league/flysystem-sftp-v3": "^3.0", - "mockery/mockery": "^1.4.4", - "orchestra/testbench-core": "^7.1", + "mockery/mockery": "^1.5.1", + "orchestra/testbench-core": "^7.11", "pda/pheanstalk": "^4.0", "phpstan/phpstan": "^1.4.7", "phpunit/phpunit": "^9.5.8", - "predis/predis": "^1.1.9|^2.0", + "predis/predis": "^1.1.9|^2.0.2", "symfony/cache": "^6.0" }, "suggest": { "ably/ably-php": "Required to use the Ably broadcast driver (^1.0).", - "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage, and SES mail driver (^3.198.1).", + "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage, and SES mail driver (^3.235.5).", "brianium/paratest": "Required to run tests in parallel (^6.0).", "doctrine/dbal": "Required to rename columns and drop SQLite columns (^2.13.3|^3.1.4).", "ext-bcmath": "Required to use the multiple_of validation rule.", @@ -2946,16 +2998,18 @@ "ext-redis": "Required to use the Redis cache and queue drivers (^4.0|^5.0).", "fakerphp/faker": "Required to use the eloquent factory builder (^1.9.1).", "filp/whoops": "Required for friendly error pages in development (^2.14.3).", - "guzzlehttp/guzzle": "Required to use the HTTP Client and the ping methods on schedules (^7.2).", + "guzzlehttp/guzzle": "Required to use the HTTP Client and the ping methods on schedules (^7.5).", "laravel/tinker": "Required to use the tinker console command (^2.0).", "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^3.0).", "league/flysystem-ftp": "Required to use the Flysystem FTP driver (^3.0).", + "league/flysystem-path-prefixing": "Required to use the scoped driver (^3.3).", + "league/flysystem-read-only": "Required to use read-only disks (^3.3)", "league/flysystem-sftp-v3": "Required to use the Flysystem SFTP driver (^3.0).", - "mockery/mockery": "Required to use mocking (^1.4.4).", + "mockery/mockery": "Required to use mocking (^1.5.1).", "nyholm/psr7": "Required to use PSR-7 bridging features (^1.2).", "pda/pheanstalk": "Required to use the beanstalk queue driver (^4.0).", "phpunit/phpunit": "Required to use assertions and run tests (^9.5.8).", - "predis/predis": "Required to use the predis connector (^1.1.9|^2.0).", + "predis/predis": "Required to use the predis connector (^1.1.9|^2.0.2).", "psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).", "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^6.0|^7.0).", "symfony/cache": "Required to PSR-6 cache bridge (^6.0).", @@ -3007,26 +3061,27 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2022-07-13T13:26:22+00:00" + "time": "2022-10-20T16:11:03+00:00" }, { "name": "laravel/octane", - "version": "v1.2.15", + "version": "v1.3.3", "source": { "type": "git", "url": "https://github.com/laravel/octane.git", - "reference": "a64ac182e3f19de276b19580a926de8a172b8346" + "reference": "c05488866a04877a8f6b20c22ba4c8ccfdabb932" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/octane/zipball/a64ac182e3f19de276b19580a926de8a172b8346", - "reference": "a64ac182e3f19de276b19580a926de8a172b8346", + "url": "https://api.github.com/repos/laravel/octane/zipball/c05488866a04877a8f6b20c22ba4c8ccfdabb932", + "reference": "c05488866a04877a8f6b20c22ba4c8ccfdabb932", "shasum": "" }, "require": { "laminas/laminas-diactoros": "^2.5", - "laravel/framework": "^8.81|^9.0", + "laravel/framework": "^8.83.25|^9.33", "laravel/serializable-closure": "^1.0", + "nesbot/carbon": "^2.60", "php": "^8.0", "symfony/psr-http-message-bridge": "^2.0" }, @@ -3082,7 +3137,7 @@ "issues": "https://github.com/laravel/octane/issues", "source": "https://github.com/laravel/octane" }, - "time": "2022-07-05T02:50:33+00:00" + "time": "2022-10-03T15:14:43+00:00" }, { "name": "laravel/sanctum", @@ -3151,25 +3206,26 @@ }, { "name": "laravel/serializable-closure", - "version": "v1.2.0", + "version": "v1.2.2", "source": { "type": "git", "url": "https://github.com/laravel/serializable-closure.git", - "reference": "09f0e9fb61829f628205b7c94906c28740ff9540" + "reference": "47afb7fae28ed29057fdca37e16a84f90cc62fae" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/09f0e9fb61829f628205b7c94906c28740ff9540", - "reference": "09f0e9fb61829f628205b7c94906c28740ff9540", + "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/47afb7fae28ed29057fdca37e16a84f90cc62fae", + "reference": "47afb7fae28ed29057fdca37e16a84f90cc62fae", "shasum": "" }, "require": { "php": "^7.3|^8.0" }, "require-dev": { - "pestphp/pest": "^1.18", - "phpstan/phpstan": "^0.12.98", - "symfony/var-dumper": "^5.3" + "nesbot/carbon": "^2.61", + "pestphp/pest": "^1.21.3", + "phpstan/phpstan": "^1.8.2", + "symfony/var-dumper": "^5.4.11" }, "type": "library", "extra": { @@ -3206,7 +3262,7 @@ "issues": "https://github.com/laravel/serializable-closure/issues", "source": "https://github.com/laravel/serializable-closure" }, - "time": "2022-05-16T17:09:47+00:00" + "time": "2022-09-08T13:45:54+00:00" }, { "name": "laravel/tinker", @@ -3278,16 +3334,16 @@ }, { "name": "league/commonmark", - "version": "2.3.4", + "version": "2.3.5", "source": { "type": "git", "url": "https://github.com/thephpleague/commonmark.git", - "reference": "155ec1c95626b16fda0889cf15904d24890a60d5" + "reference": "84d74485fdb7074f4f9dd6f02ab957b1de513257" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/155ec1c95626b16fda0889cf15904d24890a60d5", - "reference": "155ec1c95626b16fda0889cf15904d24890a60d5", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/84d74485fdb7074f4f9dd6f02ab957b1de513257", + "reference": "84d74485fdb7074f4f9dd6f02ab957b1de513257", "shasum": "" }, "require": { @@ -3309,13 +3365,13 @@ "github/gfm": "0.29.0", "michelf/php-markdown": "^1.4", "nyholm/psr7": "^1.5", - "phpstan/phpstan": "^0.12.88 || ^1.0.0", - "phpunit/phpunit": "^9.5.5", + "phpstan/phpstan": "^1.8.2", + "phpunit/phpunit": "^9.5.21", "scrutinizer/ocular": "^1.8.1", - "symfony/finder": "^5.3", + "symfony/finder": "^5.3 | ^6.0", "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0", - "unleashedtech/php-coding-standard": "^3.1", - "vimeo/psalm": "^4.7.3" + "unleashedtech/php-coding-standard": "^3.1.1", + "vimeo/psalm": "^4.24.0" }, "suggest": { "symfony/yaml": "v2.3+ required if using the Front Matter extension" @@ -3380,7 +3436,7 @@ "type": "tidelift" } ], - "time": "2022-07-17T16:25:47+00:00" + "time": "2022-07-29T10:59:45+00:00" }, { "name": "league/config", @@ -3466,16 +3522,16 @@ }, { "name": "league/flysystem", - "version": "3.1.1", + "version": "3.10.2", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem.git", - "reference": "1a941703dfb649f9b821e7bc425e782f576a805e" + "reference": "b9bd194b016114d6ff6765c09d40c7d427e4e3f6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/1a941703dfb649f9b821e7bc425e782f576a805e", - "reference": "1a941703dfb649f9b821e7bc425e782f576a805e", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/b9bd194b016114d6ff6765c09d40c7d427e4e3f6", + "reference": "b9bd194b016114d6ff6765c09d40c7d427e4e3f6", "shasum": "" }, "require": { @@ -3486,11 +3542,12 @@ "aws/aws-sdk-php": "3.209.31 || 3.210.0", "guzzlehttp/guzzle": "<7.0", "guzzlehttp/ringphp": "<1.1.1", + "phpseclib/phpseclib": "3.0.15", "symfony/http-client": "<5.2" }, "require-dev": { "async-aws/s3": "^1.5", - "async-aws/simple-s3": "^1.0", + "async-aws/simple-s3": "^1.1", "aws/aws-sdk-php": "^3.198.1", "composer/semver": "^3.0", "ext-fileinfo": "*", @@ -3499,7 +3556,7 @@ "friendsofphp/php-cs-fixer": "^3.5", "google/cloud-storage": "^1.23", "microsoft/azure-storage-blob": "^1.1", - "phpseclib/phpseclib": "^2.0", + "phpseclib/phpseclib": "^3.0.14", "phpstan/phpstan": "^0.12.26", "phpunit/phpunit": "^9.5.11", "sabre/dav": "^4.3.1" @@ -3536,11 +3593,11 @@ ], "support": { "issues": "https://github.com/thephpleague/flysystem/issues", - "source": "https://github.com/thephpleague/flysystem/tree/3.1.1" + "source": "https://github.com/thephpleague/flysystem/tree/3.10.2" }, "funding": [ { - "url": "https://offset.earth/frankdejonge", + "url": "https://ecologi.com/frankdejonge", "type": "custom" }, { @@ -3552,20 +3609,20 @@ "type": "tidelift" } ], - "time": "2022-07-18T09:59:40+00:00" + "time": "2022-10-25T07:01:47+00:00" }, { "name": "league/flysystem-ftp", - "version": "3.1.1", + "version": "3.4.0", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem-ftp.git", - "reference": "e59ae1b1370503a7925a75cc44f6f99cced1b2f0" + "reference": "770e6efcaa6fcf487642206fffa018bbd109e7e7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem-ftp/zipball/e59ae1b1370503a7925a75cc44f6f99cced1b2f0", - "reference": "e59ae1b1370503a7925a75cc44f6f99cced1b2f0", + "url": "https://api.github.com/repos/thephpleague/flysystem-ftp/zipball/770e6efcaa6fcf487642206fffa018bbd109e7e7", + "reference": "770e6efcaa6fcf487642206fffa018bbd109e7e7", "shasum": "" }, "require": { @@ -3600,11 +3657,11 @@ "ftpd" ], "support": { - "source": "https://github.com/thephpleague/flysystem-ftp/tree/3.1.1" + "source": "https://github.com/thephpleague/flysystem-ftp/tree/3.4.0" }, "funding": [ { - "url": "https://offset.earth/frankdejonge", + "url": "https://ecologi.com/frankdejonge", "type": "custom" }, { @@ -3616,24 +3673,24 @@ "type": "tidelift" } ], - "time": "2022-07-13T10:31:43+00:00" + "time": "2022-09-16T20:20:16+00:00" }, { "name": "league/flysystem-sftp-v3", - "version": "3.1.1", + "version": "3.6.0", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem-sftp-v3.git", - "reference": "5cde338d4a9205393b385a9d69de3cce62befa2b" + "reference": "84ad0bc92a36a71c42dc68dd04ffedb76dcd616d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem-sftp-v3/zipball/5cde338d4a9205393b385a9d69de3cce62befa2b", - "reference": "5cde338d4a9205393b385a9d69de3cce62befa2b", + "url": "https://api.github.com/repos/thephpleague/flysystem-sftp-v3/zipball/84ad0bc92a36a71c42dc68dd04ffedb76dcd616d", + "reference": "84ad0bc92a36a71c42dc68dd04ffedb76dcd616d", "shasum": "" }, "require": { - "league/flysystem": "^3.0.0", + "league/flysystem": "^3.0.14", "league/mime-type-detection": "^1.0.0", "php": "^8.0.2", "phpseclib/phpseclib": "^3.0" @@ -3664,11 +3721,11 @@ ], "support": { "issues": "https://github.com/thephpleague/flysystem-sftp-v3/issues", - "source": "https://github.com/thephpleague/flysystem-sftp-v3/tree/3.1.1" + "source": "https://github.com/thephpleague/flysystem-sftp-v3/tree/3.6.0" }, "funding": [ { - "url": "https://offset.earth/frankdejonge", + "url": "https://ecologi.com/frankdejonge", "type": "custom" }, { @@ -3680,7 +3737,7 @@ "type": "tidelift" } ], - "time": "2022-07-13T10:31:43+00:00" + "time": "2022-10-11T11:27:31+00:00" }, { "name": "league/mime-type-detection", @@ -3809,16 +3866,16 @@ }, { "name": "livewire/livewire", - "version": "v2.10.6", + "version": "v2.10.7", "source": { "type": "git", "url": "https://github.com/livewire/livewire.git", - "reference": "020ad095cf1239138b097d22b584e2701ec3edfb" + "reference": "fa0441bf82f1674beecb3a8ad8a4ae428736ed18" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/livewire/livewire/zipball/020ad095cf1239138b097d22b584e2701ec3edfb", - "reference": "020ad095cf1239138b097d22b584e2701ec3edfb", + "url": "https://api.github.com/repos/livewire/livewire/zipball/fa0441bf82f1674beecb3a8ad8a4ae428736ed18", + "reference": "fa0441bf82f1674beecb3a8ad8a4ae428736ed18", "shasum": "" }, "require": { @@ -3870,7 +3927,7 @@ "description": "A front-end framework for Laravel.", "support": { "issues": "https://github.com/livewire/livewire/issues", - "source": "https://github.com/livewire/livewire/tree/v2.10.6" + "source": "https://github.com/livewire/livewire/tree/v2.10.7" }, "funding": [ { @@ -3878,7 +3935,7 @@ "type": "github" } ], - "time": "2022-06-19T02:54:20+00:00" + "time": "2022-08-08T13:52:53+00:00" }, { "name": "masbug/flysystem-google-drive-ext", @@ -3942,16 +3999,16 @@ }, { "name": "masterminds/html5", - "version": "2.7.5", + "version": "2.7.6", "source": { "type": "git", "url": "https://github.com/Masterminds/html5-php.git", - "reference": "f640ac1bdddff06ea333a920c95bbad8872429ab" + "reference": "897eb517a343a2281f11bc5556d6548db7d93947" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/f640ac1bdddff06ea333a920c95bbad8872429ab", - "reference": "f640ac1bdddff06ea333a920c95bbad8872429ab", + "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/897eb517a343a2281f11bc5556d6548db7d93947", + "reference": "897eb517a343a2281f11bc5556d6548db7d93947", "shasum": "" }, "require": { @@ -4005,9 +4062,9 @@ ], "support": { "issues": "https://github.com/Masterminds/html5-php/issues", - "source": "https://github.com/Masterminds/html5-php/tree/2.7.5" + "source": "https://github.com/Masterminds/html5-php/tree/2.7.6" }, - "time": "2021-07-01T14:25:37+00:00" + "time": "2022-08-18T16:18:26+00:00" }, { "name": "maxmind-db/reader", @@ -4127,16 +4184,16 @@ }, { "name": "monolog/monolog", - "version": "2.7.0", + "version": "2.8.0", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "5579edf28aee1190a798bfa5be8bc16c563bd524" + "reference": "720488632c590286b88b80e62aa3d3d551ad4a50" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/5579edf28aee1190a798bfa5be8bc16c563bd524", - "reference": "5579edf28aee1190a798bfa5be8bc16c563bd524", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/720488632c590286b88b80e62aa3d3d551ad4a50", + "reference": "720488632c590286b88b80e62aa3d3d551ad4a50", "shasum": "" }, "require": { @@ -4156,11 +4213,10 @@ "guzzlehttp/psr7": "^2.2", "mongodb/mongodb": "^1.8", "php-amqplib/php-amqplib": "~2.4 || ^3", - "php-console/php-console": "^3.1.3", "phpspec/prophecy": "^1.15", "phpstan/phpstan": "^0.12.91", "phpunit/phpunit": "^8.5.14", - "predis/predis": "^1.1", + "predis/predis": "^1.1 || ^2.0", "rollbar/rollbar": "^1.3 || ^2 || ^3", "ruflin/elastica": "^7", "swiftmailer/swiftmailer": "^5.3|^6.0", @@ -4180,7 +4236,6 @@ "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", "mongodb/mongodb": "Allow sending log messages to a MongoDB server (via library)", "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", - "php-console/php-console": "Allow sending log messages to Google Chrome", "rollbar/rollbar": "Allow sending log messages to Rollbar", "ruflin/elastica": "Allow sending log messages to an Elastic Search server" }, @@ -4215,7 +4270,7 @@ ], "support": { "issues": "https://github.com/Seldaek/monolog/issues", - "source": "https://github.com/Seldaek/monolog/tree/2.7.0" + "source": "https://github.com/Seldaek/monolog/tree/2.8.0" }, "funding": [ { @@ -4227,20 +4282,20 @@ "type": "tidelift" } ], - "time": "2022-06-09T08:59:12+00:00" + "time": "2022-07-24T11:55:47+00:00" }, { "name": "nesbot/carbon", - "version": "2.59.1", + "version": "2.62.1", "source": { "type": "git", "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "a9000603ea337c8df16cc41f8b6be95a65f4d0f5" + "reference": "01bc4cdefe98ef58d1f9cb31bdbbddddf2a88f7a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/a9000603ea337c8df16cc41f8b6be95a65f4d0f5", - "reference": "a9000603ea337c8df16cc41f8b6be95a65f4d0f5", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/01bc4cdefe98ef58d1f9cb31bdbbddddf2a88f7a", + "reference": "01bc4cdefe98ef58d1f9cb31bdbbddddf2a88f7a", "shasum": "" }, "require": { @@ -4329,7 +4384,7 @@ "type": "tidelift" } ], - "time": "2022-06-29T21:43:55+00:00" + "time": "2022-09-02T07:48:13+00:00" }, { "name": "nette/schema", @@ -4395,20 +4450,20 @@ }, { "name": "nette/utils", - "version": "v3.2.7", + "version": "v3.2.8", "source": { "type": "git", "url": "https://github.com/nette/utils.git", - "reference": "0af4e3de4df9f1543534beab255ccf459e7a2c99" + "reference": "02a54c4c872b99e4ec05c4aec54b5a06eb0f6368" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/utils/zipball/0af4e3de4df9f1543534beab255ccf459e7a2c99", - "reference": "0af4e3de4df9f1543534beab255ccf459e7a2c99", + "url": "https://api.github.com/repos/nette/utils/zipball/02a54c4c872b99e4ec05c4aec54b5a06eb0f6368", + "reference": "02a54c4c872b99e4ec05c4aec54b5a06eb0f6368", "shasum": "" }, "require": { - "php": ">=7.2 <8.2" + "php": ">=7.2 <8.3" }, "conflict": { "nette/di": "<3.0.6" @@ -4474,22 +4529,22 @@ ], "support": { "issues": "https://github.com/nette/utils/issues", - "source": "https://github.com/nette/utils/tree/v3.2.7" + "source": "https://github.com/nette/utils/tree/v3.2.8" }, - "time": "2022-01-24T11:29:14+00:00" + "time": "2022-09-12T23:36:20+00:00" }, { "name": "nikic/php-parser", - "version": "v4.14.0", + "version": "v4.15.1", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "34bea19b6e03d8153165d8f30bba4c3be86184c1" + "reference": "0ef6c55a3f47f89d7a374e6f835197a0b5fcf900" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/34bea19b6e03d8153165d8f30bba4c3be86184c1", - "reference": "34bea19b6e03d8153165d8f30bba4c3be86184c1", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/0ef6c55a3f47f89d7a374e6f835197a0b5fcf900", + "reference": "0ef6c55a3f47f89d7a374e6f835197a0b5fcf900", "shasum": "" }, "require": { @@ -4530,9 +4585,95 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.14.0" + "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.1" }, - "time": "2022-05-31T20:59:12+00:00" + "time": "2022-09-04T07:30:47+00:00" + }, + { + "name": "nunomaduro/termwind", + "version": "v1.14.1", + "source": { + "type": "git", + "url": "https://github.com/nunomaduro/termwind.git", + "reference": "86fc30eace93b9b6d4c844ba6de76db84184e01b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/86fc30eace93b9b6d4c844ba6de76db84184e01b", + "reference": "86fc30eace93b9b6d4c844ba6de76db84184e01b", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "php": "^8.0", + "symfony/console": "^5.3.0|^6.0.0" + }, + "require-dev": { + "ergebnis/phpstan-rules": "^1.0.", + "illuminate/console": "^8.0|^9.0", + "illuminate/support": "^8.0|^9.0", + "laravel/pint": "^1.0.0", + "pestphp/pest": "^1.21.0", + "pestphp/pest-plugin-mock": "^1.0", + "phpstan/phpstan": "^1.4.6", + "phpstan/phpstan-strict-rules": "^1.1.0", + "symfony/var-dumper": "^5.2.7|^6.0.0", + "thecodingmachine/phpstan-strict-rules": "^1.0.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Termwind\\Laravel\\TermwindServiceProvider" + ] + } + }, + "autoload": { + "files": [ + "src/Functions.php" + ], + "psr-4": { + "Termwind\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nuno Maduro", + "email": "enunomaduro@gmail.com" + } + ], + "description": "Its like Tailwind CSS, but for the console.", + "keywords": [ + "cli", + "console", + "css", + "package", + "php", + "style" + ], + "support": { + "issues": "https://github.com/nunomaduro/termwind/issues", + "source": "https://github.com/nunomaduro/termwind/tree/v1.14.1" + }, + "funding": [ + { + "url": "https://www.paypal.com/paypalme/enunomaduro", + "type": "custom" + }, + { + "url": "https://github.com/nunomaduro", + "type": "github" + }, + { + "url": "https://github.com/xiCO2k", + "type": "github" + } + ], + "time": "2022-10-17T15:20:29+00:00" }, { "name": "orangehill/iseed", @@ -4764,29 +4905,33 @@ }, { "name": "phpoption/phpoption", - "version": "1.8.1", + "version": "1.9.0", "source": { "type": "git", "url": "https://github.com/schmittjoh/php-option.git", - "reference": "eab7a0df01fe2344d172bff4cd6dbd3f8b84ad15" + "reference": "dc5ff11e274a90cc1c743f66c9ad700ce50db9ab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/eab7a0df01fe2344d172bff4cd6dbd3f8b84ad15", - "reference": "eab7a0df01fe2344d172bff4cd6dbd3f8b84ad15", + "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/dc5ff11e274a90cc1c743f66c9ad700ce50db9ab", + "reference": "dc5ff11e274a90cc1c743f66c9ad700ce50db9ab", "shasum": "" }, "require": { - "php": "^7.0 || ^8.0" + "php": "^7.2.5 || ^8.0" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.4.1", - "phpunit/phpunit": "^6.5.14 || ^7.5.20 || ^8.5.19 || ^9.5.8" + "bamarni/composer-bin-plugin": "^1.8", + "phpunit/phpunit": "^8.5.28 || ^9.5.21" }, "type": "library", "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": true + }, "branch-alias": { - "dev-master": "1.8-dev" + "dev-master": "1.9-dev" } }, "autoload": { @@ -4819,7 +4964,7 @@ ], "support": { "issues": "https://github.com/schmittjoh/php-option/issues", - "source": "https://github.com/schmittjoh/php-option/tree/1.8.1" + "source": "https://github.com/schmittjoh/php-option/tree/1.9.0" }, "funding": [ { @@ -4831,20 +4976,20 @@ "type": "tidelift" } ], - "time": "2021-12-04T23:24:31+00:00" + "time": "2022-07-30T15:51:26+00:00" }, { "name": "phpseclib/phpseclib", - "version": "3.0.14", + "version": "3.0.17", "source": { "type": "git", "url": "https://github.com/phpseclib/phpseclib.git", - "reference": "2f0b7af658cbea265cbb4a791d6c29a6613f98ef" + "reference": "dbc2307d5c69aeb22db136c52e91130d7f2ca761" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/2f0b7af658cbea265cbb4a791d6c29a6613f98ef", - "reference": "2f0b7af658cbea265cbb4a791d6c29a6613f98ef", + "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/dbc2307d5c69aeb22db136c52e91130d7f2ca761", + "reference": "dbc2307d5c69aeb22db136c52e91130d7f2ca761", "shasum": "" }, "require": { @@ -4856,6 +5001,7 @@ "phpunit/phpunit": "*" }, "suggest": { + "ext-dom": "Install the DOM extension to load XML formatted public keys.", "ext-gmp": "Install the GMP (GNU Multiple Precision) extension in order to speed up arbitrary precision integer arithmetic operations.", "ext-libsodium": "SSH2/SFTP can make use of some algorithms provided by the libsodium-php extension.", "ext-mcrypt": "Install the Mcrypt extension in order to speed up a few other cryptographic operations.", @@ -4924,7 +5070,7 @@ ], "support": { "issues": "https://github.com/phpseclib/phpseclib/issues", - "source": "https://github.com/phpseclib/phpseclib/tree/3.0.14" + "source": "https://github.com/phpseclib/phpseclib/tree/3.0.17" }, "funding": [ { @@ -4940,7 +5086,7 @@ "type": "tidelift" } ], - "time": "2022-04-04T05:15:45+00:00" + "time": "2022-10-24T10:51:50+00:00" }, { "name": "psr/cache", @@ -5357,16 +5503,16 @@ }, { "name": "psy/psysh", - "version": "v0.11.7", + "version": "v0.11.8", "source": { "type": "git", "url": "https://github.com/bobthecow/psysh.git", - "reference": "77fc7270031fbc28f9a7bea31385da5c4855cb7a" + "reference": "f455acf3645262ae389b10e9beba0c358aa6994e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/77fc7270031fbc28f9a7bea31385da5c4855cb7a", - "reference": "77fc7270031fbc28f9a7bea31385da5c4855cb7a", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/f455acf3645262ae389b10e9beba0c358aa6994e", + "reference": "f455acf3645262ae389b10e9beba0c358aa6994e", "shasum": "" }, "require": { @@ -5427,9 +5573,9 @@ ], "support": { "issues": "https://github.com/bobthecow/psysh/issues", - "source": "https://github.com/bobthecow/psysh/tree/v0.11.7" + "source": "https://github.com/bobthecow/psysh/tree/v0.11.8" }, - "time": "2022-07-07T13:49:11+00:00" + "time": "2022-07-28T14:25:11+00:00" }, { "name": "ralouphie/getallheaders", @@ -5556,20 +5702,20 @@ }, { "name": "ramsey/uuid", - "version": "4.3.1", + "version": "4.5.1", "source": { "type": "git", "url": "https://github.com/ramsey/uuid.git", - "reference": "8505afd4fea63b81a85d3b7b53ac3cb8dc347c28" + "reference": "a161a26d917604dc6d3aa25100fddf2556e9f35d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ramsey/uuid/zipball/8505afd4fea63b81a85d3b7b53ac3cb8dc347c28", - "reference": "8505afd4fea63b81a85d3b7b53ac3cb8dc347c28", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/a161a26d917604dc6d3aa25100fddf2556e9f35d", + "reference": "a161a26d917604dc6d3aa25100fddf2556e9f35d", "shasum": "" }, "require": { - "brick/math": "^0.8 || ^0.9", + "brick/math": "^0.8.8 || ^0.9 || ^0.10", "ext-ctype": "*", "ext-json": "*", "php": "^8.0", @@ -5585,18 +5731,18 @@ "doctrine/annotations": "^1.8", "ergebnis/composer-normalize": "^2.15", "mockery/mockery": "^1.3", - "moontoast/math": "^1.1", "paragonie/random-lib": "^2", "php-mock/php-mock": "^2.2", "php-mock/php-mock-mockery": "^1.3", "php-parallel-lint/php-parallel-lint": "^1.1", "phpbench/phpbench": "^1.0", - "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "^0.12", - "phpstan/phpstan-mockery": "^0.12", - "phpstan/phpstan-phpunit": "^0.12", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-mockery": "^1.1", + "phpstan/phpstan-phpunit": "^1.1", "phpunit/phpunit": "^8.5 || ^9", - "slevomat/coding-standard": "^7.0", + "ramsey/composer-repl": "^1.4", + "slevomat/coding-standard": "^8.4", "squizlabs/php_codesniffer": "^3.5", "vimeo/psalm": "^4.9" }, @@ -5634,7 +5780,7 @@ ], "support": { "issues": "https://github.com/ramsey/uuid/issues", - "source": "https://github.com/ramsey/uuid/tree/4.3.1" + "source": "https://github.com/ramsey/uuid/tree/4.5.1" }, "funding": [ { @@ -5646,7 +5792,7 @@ "type": "tidelift" } ], - "time": "2022-03-27T21:42:02+00:00" + "time": "2022-09-16T03:22:46+00:00" }, { "name": "react/promise", @@ -5820,28 +5966,172 @@ "time": "2022-03-02T08:51:37+00:00" }, { - "name": "spatie/laravel-package-tools", - "version": "1.12.1", + "name": "ryangjchandler/blade-capture-directive", + "version": "v0.2.2", "source": { "type": "git", - "url": "https://github.com/spatie/laravel-package-tools.git", - "reference": "09f80fa240d44fafb1c70657c74ee44ffa929357" + "url": "https://github.com/ryangjchandler/blade-capture-directive.git", + "reference": "be41afbd86057989d84f1aaea8d00f3b1e5c50e1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/09f80fa240d44fafb1c70657c74ee44ffa929357", - "reference": "09f80fa240d44fafb1c70657c74ee44ffa929357", + "url": "https://api.github.com/repos/ryangjchandler/blade-capture-directive/zipball/be41afbd86057989d84f1aaea8d00f3b1e5c50e1", + "reference": "be41afbd86057989d84f1aaea8d00f3b1e5c50e1", "shasum": "" }, "require": { - "illuminate/contracts": "^7.0|^8.0|^9.0", - "php": "^7.4|^8.0" + "illuminate/contracts": "^8.0|^9.0", + "php": "^8.0", + "spatie/laravel-package-tools": "^1.9.2" }, "require-dev": { - "mockery/mockery": "^1.4", - "orchestra/testbench": "^5.0|^6.23|^7.0", - "phpunit/phpunit": "^9.4", - "spatie/test-time": "^1.2" + "nunomaduro/collision": "^5.0|^6.0", + "nunomaduro/larastan": "^1.0", + "orchestra/testbench": "^6.23|^7.0", + "pestphp/pest": "^1.21", + "pestphp/pest-plugin-laravel": "^1.1", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan-deprecation-rules": "^1.0", + "phpstan/phpstan-phpunit": "^1.0", + "phpunit/phpunit": "^9.5", + "spatie/laravel-ray": "^1.26" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "RyanChandler\\BladeCaptureDirective\\BladeCaptureDirectiveServiceProvider" + ], + "aliases": { + "BladeCaptureDirective": "RyanChandler\\BladeCaptureDirective\\Facades\\BladeCaptureDirective" + } + } + }, + "autoload": { + "psr-4": { + "RyanChandler\\BladeCaptureDirective\\": "src", + "RyanChandler\\BladeCaptureDirective\\Database\\Factories\\": "database/factories" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ryan Chandler", + "email": "support@ryangjchandler.co.uk", + "role": "Developer" + } + ], + "description": "Create inline partials in your Blade templates with ease.", + "homepage": "https://github.com/ryangjchandler/blade-capture-directive", + "keywords": [ + "blade-capture-directive", + "laravel", + "ryangjchandler" + ], + "support": { + "issues": "https://github.com/ryangjchandler/blade-capture-directive/issues", + "source": "https://github.com/ryangjchandler/blade-capture-directive/tree/v0.2.2" + }, + "funding": [ + { + "url": "https://github.com/ryangjchandler", + "type": "github" + } + ], + "time": "2022-09-02T11:04:28+00:00" + }, + { + "name": "spatie/invade", + "version": "1.1.1", + "source": { + "type": "git", + "url": "https://github.com/spatie/invade.git", + "reference": "d0a9c895a96152549d478a7e3420e19039eef038" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/invade/zipball/d0a9c895a96152549d478a7e3420e19039eef038", + "reference": "d0a9c895a96152549d478a7e3420e19039eef038", + "shasum": "" + }, + "require": { + "php": "^8.0" + }, + "require-dev": { + "pestphp/pest": "^1.20", + "phpstan/phpstan": "^1.4", + "spatie/ray": "^1.28" + }, + "type": "library", + "extra": { + "phpstan": { + "includes": [ + "phpstan-extension.neon" + ] + } + }, + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "Spatie\\Invade\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "role": "Developer" + } + ], + "description": "A PHP function to work with private properties and methods", + "homepage": "https://github.com/spatie/invade", + "keywords": [ + "invade", + "spatie" + ], + "support": { + "source": "https://github.com/spatie/invade/tree/1.1.1" + }, + "funding": [ + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2022-07-05T09:31:00+00:00" + }, + { + "name": "spatie/laravel-package-tools", + "version": "1.13.6", + "source": { + "type": "git", + "url": "https://github.com/spatie/laravel-package-tools.git", + "reference": "c377cc7223655c2278c148c1685b8b5a78af5c65" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/laravel-package-tools/zipball/c377cc7223655c2278c148c1685b8b5a78af5c65", + "reference": "c377cc7223655c2278c148c1685b8b5a78af5c65", + "shasum": "" + }, + "require": { + "illuminate/contracts": "^9.28", + "php": "^8.0" + }, + "require-dev": { + "mockery/mockery": "^1.5", + "orchestra/testbench": "^7.7", + "phpunit/phpunit": "^9.5.24", + "spatie/test-time": "^1.3" }, "type": "library", "autoload": { @@ -5868,7 +6158,7 @@ ], "support": { "issues": "https://github.com/spatie/laravel-package-tools/issues", - "source": "https://github.com/spatie/laravel-package-tools/tree/1.12.1" + "source": "https://github.com/spatie/laravel-package-tools/tree/1.13.6" }, "funding": [ { @@ -5876,7 +6166,58 @@ "type": "github" } ], - "time": "2022-06-28T14:29:26+00:00" + "time": "2022-10-11T06:37:42+00:00" + }, + { + "name": "spiral/core", + "version": "2.14.1", + "source": { + "type": "git", + "url": "https://github.com/spiral/core.git", + "reference": "bbc0a4a1d3c4f14d8d7354d94a05577e60129416" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spiral/core/zipball/bbc0a4a1d3c4f14d8d7354d94a05577e60129416", + "reference": "bbc0a4a1d3c4f14d8d7354d94a05577e60129416", + "shasum": "" + }, + "require": { + "php": ">=7.4", + "psr/container": "^1.1|^2.0" + }, + "require-dev": { + "mockery/mockery": "^1.5", + "phpunit/phpunit": "^8.5|^9.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.15.x-dev" + } + }, + "autoload": { + "psr-4": { + "Spiral\\Core\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Anton Titov (wolfy-j)", + "email": "wolfy-j@spiralscout.com" + } + ], + "description": "IoC container, IoC scopes, factory, memory, configuration interfaces", + "homepage": "https://spiral.dev", + "support": { + "issues": "https://github.com/spiral/framework/issues", + "source": "https://github.com/spiral/core" + }, + "time": "2022-09-01T21:11:51+00:00" }, { "name": "spiral/goridge", @@ -5941,17 +6282,69 @@ "time": "2022-03-21T20:32:19+00:00" }, { - "name": "spiral/roadrunner", - "version": "v2.10.7", + "name": "spiral/logger", + "version": "2.14.1", "source": { "type": "git", - "url": "https://github.com/roadrunner-server/roadrunner.git", - "reference": "18a7a98bcb483a680b6ebe7da8bb61e95329daf4" + "url": "https://github.com/spiral/logger.git", + "reference": "14ea05f8a24a5d4ecb3b8811e34948d3a735576e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/roadrunner-server/roadrunner/zipball/18a7a98bcb483a680b6ebe7da8bb61e95329daf4", - "reference": "18a7a98bcb483a680b6ebe7da8bb61e95329daf4", + "url": "https://api.github.com/repos/spiral/logger/zipball/14ea05f8a24a5d4ecb3b8811e34948d3a735576e", + "reference": "14ea05f8a24a5d4ecb3b8811e34948d3a735576e", + "shasum": "" + }, + "require": { + "php": ">=7.4", + "psr/log": "1 - 3", + "spiral/core": "^2.14.1" + }, + "require-dev": { + "mockery/mockery": "^1.5", + "phpunit/phpunit": "^8.5|^9.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.15.x-dev" + } + }, + "autoload": { + "psr-4": { + "Spiral\\Logger\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Anton Titov (wolfy-j)", + "email": "wolfy-j@spiralscout.com" + } + ], + "description": "LogFactory and global log listeners", + "homepage": "https://spiral.dev", + "support": { + "issues": "https://github.com/spiral/framework/issues", + "source": "https://github.com/spiral/logger" + }, + "time": "2022-09-12T15:13:31+00:00" + }, + { + "name": "spiral/roadrunner", + "version": "v2.11.4", + "source": { + "type": "git", + "url": "https://github.com/roadrunner-server/roadrunner.git", + "reference": "bee07c00a8954945156ca3e3de9c032b530abd01" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/roadrunner-server/roadrunner/zipball/bee07c00a8954945156ca3e3de9c032b530abd01", + "reference": "bee07c00a8954945156ca3e3de9c032b530abd01", "shasum": "" }, "require": { @@ -5974,25 +6367,25 @@ "homepage": "https://github.com/roadrunner-server/roadrunner/graphs/contributors" } ], - "description": "RoadRunner: High-performance PHP application server, load-balancer and process manager written in Golang", + "description": "RoadRunner: High-performance PHP application server and process manager written in Go and powered with plugins", "support": { "issues": "https://github.com/roadrunner-server/roadrunner/issues", - "source": "https://github.com/roadrunner-server/roadrunner/tree/v2.10.7" + "source": "https://github.com/roadrunner-server/roadrunner/tree/v2.11.4" }, - "time": "2022-07-14T09:00:44+00:00" + "time": "2022-10-06T14:25:16+00:00" }, { "name": "spiral/roadrunner-cli", - "version": "v2.2.0", + "version": "v2.3.0", "source": { "type": "git", "url": "https://github.com/spiral/roadrunner-cli.git", - "reference": "d8a224137b1d1ace0aac2308df396403393d63a8" + "reference": "2b42333e1ee772a950039e8aebb5d819377b2bb4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spiral/roadrunner-cli/zipball/d8a224137b1d1ace0aac2308df396403393d63a8", - "reference": "d8a224137b1d1ace0aac2308df396403393d63a8", + "url": "https://api.github.com/repos/spiral/roadrunner-cli/zipball/2b42333e1ee772a950039e8aebb5d819377b2bb4", + "reference": "2b42333e1ee772a950039e8aebb5d819377b2bb4", "shasum": "" }, "require": { @@ -6000,9 +6393,11 @@ "ext-json": "*", "php": ">=7.4", "spiral/roadrunner-worker": ">=2.0.2", + "spiral/tokenizer": "^2.13 || ^3.0", "symfony/console": "^4.4|^5.0|^6.0", "symfony/http-client": "^4.4|^5.0|^6.0", - "symfony/polyfill-php80": "^1.22" + "symfony/polyfill-php80": "^1.22", + "symfony/yaml": "^5.4 || ^6.0" }, "require-dev": { "jetbrains/phpstorm-attributes": "^1.0", @@ -6040,9 +6435,9 @@ "description": "RoadRunner: Command Line Interface", "support": { "issues": "https://github.com/spiral/roadrunner-cli/issues", - "source": "https://github.com/spiral/roadrunner-cli/tree/v2.2.0" + "source": "https://github.com/spiral/roadrunner-cli/tree/v2.3.0" }, - "time": "2022-05-17T06:44:24+00:00" + "time": "2022-07-28T08:53:10+00:00" }, { "name": "spiral/roadrunner-http", @@ -6172,17 +6567,69 @@ "time": "2022-03-22T11:03:47+00:00" }, { - "name": "symfony/console", - "version": "v6.0.10", + "name": "spiral/tokenizer", + "version": "2.14.1", "source": { "type": "git", - "url": "https://github.com/symfony/console.git", - "reference": "d8d41b93c16f1da2f2d4b9209b7de78c4d203642" + "url": "https://github.com/spiral/tokenizer.git", + "reference": "45f704219f115fb2aa3b384aa83ed8ec34cff9ca" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/d8d41b93c16f1da2f2d4b9209b7de78c4d203642", - "reference": "d8d41b93c16f1da2f2d4b9209b7de78c4d203642", + "url": "https://api.github.com/repos/spiral/tokenizer/zipball/45f704219f115fb2aa3b384aa83ed8ec34cff9ca", + "reference": "45f704219f115fb2aa3b384aa83ed8ec34cff9ca", + "shasum": "" + }, + "require": { + "php": ">=7.4", + "spiral/core": "^2.14.1", + "spiral/logger": "^2.14.1", + "symfony/finder": "^5.1|^6.0" + }, + "require-dev": { + "phpunit/phpunit": "^8.5|^9.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.15.x-dev" + } + }, + "autoload": { + "psr-4": { + "Spiral\\Tokenizer\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Anton Titov (wolfy-j)", + "email": "wolfy-j@spiralscout.com" + } + ], + "description": "Static Analysis: Class and Invocation locators", + "homepage": "https://spiral.dev", + "support": { + "issues": "https://github.com/spiral/framework/issues", + "source": "https://github.com/spiral/tokenizer" + }, + "time": "2022-09-12T15:14:10+00:00" + }, + { + "name": "symfony/console", + "version": "v6.0.14", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "1f89cab8d52c84424f798495b3f10342a7b1a070" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/1f89cab8d52c84424f798495b3f10342a7b1a070", + "reference": "1f89cab8d52c84424f798495b3f10342a7b1a070", "shasum": "" }, "require": { @@ -6248,7 +6695,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.0.10" + "source": "https://github.com/symfony/console/tree/v6.0.14" }, "funding": [ { @@ -6264,20 +6711,20 @@ "type": "tidelift" } ], - "time": "2022-06-26T13:01:22+00:00" + "time": "2022-10-07T08:02:12+00:00" }, { "name": "symfony/css-selector", - "version": "v6.0.3", + "version": "v6.0.11", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "1955d595c12c111629cc814d3f2a2ff13580508a" + "reference": "ab2746acddc4f03a7234c8441822ac5d5c63efe9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/1955d595c12c111629cc814d3f2a2ff13580508a", - "reference": "1955d595c12c111629cc814d3f2a2ff13580508a", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/ab2746acddc4f03a7234c8441822ac5d5c63efe9", + "reference": "ab2746acddc4f03a7234c8441822ac5d5c63efe9", "shasum": "" }, "require": { @@ -6313,7 +6760,7 @@ "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/css-selector/tree/v6.0.3" + "source": "https://github.com/symfony/css-selector/tree/v6.0.11" }, "funding": [ { @@ -6329,7 +6776,7 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:55:41+00:00" + "time": "2022-06-27T17:10:44+00:00" }, { "name": "symfony/deprecation-contracts", @@ -6400,16 +6847,16 @@ }, { "name": "symfony/error-handler", - "version": "v6.0.9", + "version": "v6.0.14", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "732ca203b3222cde3378d5ddf5e2883211acc53e" + "reference": "81e57c793d9a573f29f8b5296d5d8ee4602badcb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/732ca203b3222cde3378d5ddf5e2883211acc53e", - "reference": "732ca203b3222cde3378d5ddf5e2883211acc53e", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/81e57c793d9a573f29f8b5296d5d8ee4602badcb", + "reference": "81e57c793d9a573f29f8b5296d5d8ee4602badcb", "shasum": "" }, "require": { @@ -6451,7 +6898,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/v6.0.9" + "source": "https://github.com/symfony/error-handler/tree/v6.0.14" }, "funding": [ { @@ -6467,7 +6914,7 @@ "type": "tidelift" } ], - "time": "2022-05-23T10:32:42+00:00" + "time": "2022-10-07T08:02:12+00:00" }, { "name": "symfony/event-dispatcher", @@ -6633,16 +7080,16 @@ }, { "name": "symfony/finder", - "version": "v6.0.8", + "version": "v6.0.11", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "af7edab28d17caecd1f40a9219fc646ae751c21f" + "reference": "09cb683ba5720385ea6966e5e06be2a34f2568b1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/af7edab28d17caecd1f40a9219fc646ae751c21f", - "reference": "af7edab28d17caecd1f40a9219fc646ae751c21f", + "url": "https://api.github.com/repos/symfony/finder/zipball/09cb683ba5720385ea6966e5e06be2a34f2568b1", + "reference": "09cb683ba5720385ea6966e5e06be2a34f2568b1", "shasum": "" }, "require": { @@ -6674,7 +7121,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v6.0.8" + "source": "https://github.com/symfony/finder/tree/v6.0.11" }, "funding": [ { @@ -6690,20 +7137,20 @@ "type": "tidelift" } ], - "time": "2022-04-15T08:07:58+00:00" + "time": "2022-07-29T07:39:48+00:00" }, { "name": "symfony/http-client", - "version": "v6.0.9", + "version": "v6.0.14", "source": { "type": "git", "url": "https://github.com/symfony/http-client.git", - "reference": "3c6fc53a3deed2d3c1825d41ad8b3f23a6b038b5" + "reference": "ec183a587e3ad47f03cf1572d4b8437e0fc3e923" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client/zipball/3c6fc53a3deed2d3c1825d41ad8b3f23a6b038b5", - "reference": "3c6fc53a3deed2d3c1825d41ad8b3f23a6b038b5", + "url": "https://api.github.com/repos/symfony/http-client/zipball/ec183a587e3ad47f03cf1572d4b8437e0fc3e923", + "reference": "ec183a587e3ad47f03cf1572d4b8437e0fc3e923", "shasum": "" }, "require": { @@ -6758,7 +7205,7 @@ "description": "Provides powerful methods to fetch HTTP resources synchronously or asynchronously", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-client/tree/v6.0.9" + "source": "https://github.com/symfony/http-client/tree/v6.0.14" }, "funding": [ { @@ -6774,7 +7221,7 @@ "type": "tidelift" } ], - "time": "2022-05-21T13:33:31+00:00" + "time": "2022-10-11T15:20:43+00:00" }, { "name": "symfony/http-client-contracts", @@ -6856,16 +7303,16 @@ }, { "name": "symfony/http-foundation", - "version": "v6.0.10", + "version": "v6.0.14", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "47f2aa677a96ff3b79d2ed70052adf75b16824a9" + "reference": "e8aa505d35660877e6695d68be53df2ceac7cf57" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/47f2aa677a96ff3b79d2ed70052adf75b16824a9", - "reference": "47f2aa677a96ff3b79d2ed70052adf75b16824a9", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/e8aa505d35660877e6695d68be53df2ceac7cf57", + "reference": "e8aa505d35660877e6695d68be53df2ceac7cf57", "shasum": "" }, "require": { @@ -6876,8 +7323,11 @@ "require-dev": { "predis/predis": "~1.0", "symfony/cache": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", "symfony/expression-language": "^5.4|^6.0", - "symfony/mime": "^5.4|^6.0" + "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4", + "symfony/mime": "^5.4|^6.0", + "symfony/rate-limiter": "^5.2|^6.0" }, "suggest": { "symfony/mime": "To use the file extension guesser" @@ -6908,7 +7358,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v6.0.10" + "source": "https://github.com/symfony/http-foundation/tree/v6.0.14" }, "funding": [ { @@ -6924,20 +7374,20 @@ "type": "tidelift" } ], - "time": "2022-06-19T13:16:44+00:00" + "time": "2022-10-02T08:16:40+00:00" }, { "name": "symfony/http-kernel", - "version": "v6.0.10", + "version": "v6.0.14", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "fa3e92a78c3f311573671961c7f7a2c5bce0f54d" + "reference": "f9fc93c4f12e2fd7dea37f7b5840deb34e9037fc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/fa3e92a78c3f311573671961c7f7a2c5bce0f54d", - "reference": "fa3e92a78c3f311573671961c7f7a2c5bce0f54d", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/f9fc93c4f12e2fd7dea37f7b5840deb34e9037fc", + "reference": "f9fc93c4f12e2fd7dea37f7b5840deb34e9037fc", "shasum": "" }, "require": { @@ -7017,7 +7467,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/v6.0.10" + "source": "https://github.com/symfony/http-kernel/tree/v6.0.14" }, "funding": [ { @@ -7033,20 +7483,20 @@ "type": "tidelift" } ], - "time": "2022-06-26T17:02:18+00:00" + "time": "2022-10-12T07:43:45+00:00" }, { "name": "symfony/mailer", - "version": "v6.0.10", + "version": "v6.0.13", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "9b60de35f0b4eed09ee2b25195a478b86acd128d" + "reference": "6269c872ab4792e8facbf8af27a2fbee8429f217" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/9b60de35f0b4eed09ee2b25195a478b86acd128d", - "reference": "9b60de35f0b4eed09ee2b25195a478b86acd128d", + "url": "https://api.github.com/repos/symfony/mailer/zipball/6269c872ab4792e8facbf8af27a2fbee8429f217", + "reference": "6269c872ab4792e8facbf8af27a2fbee8429f217", "shasum": "" }, "require": { @@ -7091,7 +7541,7 @@ "description": "Helps sending emails", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailer/tree/v6.0.10" + "source": "https://github.com/symfony/mailer/tree/v6.0.13" }, "funding": [ { @@ -7107,20 +7557,20 @@ "type": "tidelift" } ], - "time": "2022-06-19T12:07:20+00:00" + "time": "2022-08-29T06:49:22+00:00" }, { "name": "symfony/mime", - "version": "v6.0.10", + "version": "v6.0.14", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "4de7886c66e0953f5d6edab3e49ceb751d01621c" + "reference": "c01b88b63418131daf2edd0bdc17fc8a6d1c939a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/4de7886c66e0953f5d6edab3e49ceb751d01621c", - "reference": "4de7886c66e0953f5d6edab3e49ceb751d01621c", + "url": "https://api.github.com/repos/symfony/mime/zipball/c01b88b63418131daf2edd0bdc17fc8a6d1c939a", + "reference": "c01b88b63418131daf2edd0bdc17fc8a6d1c939a", "shasum": "" }, "require": { @@ -7132,7 +7582,8 @@ "egulias/email-validator": "~3.0.0", "phpdocumentor/reflection-docblock": "<3.2.2", "phpdocumentor/type-resolver": "<1.4.0", - "symfony/mailer": "<5.4" + "symfony/mailer": "<5.4", + "symfony/serializer": "<5.4.14|>=6.0,<6.0.14|>=6.1,<6.1.6" }, "require-dev": { "egulias/email-validator": "^2.1.10|^3.1", @@ -7140,7 +7591,7 @@ "symfony/dependency-injection": "^5.4|^6.0", "symfony/property-access": "^5.4|^6.0", "symfony/property-info": "^5.4|^6.0", - "symfony/serializer": "^5.4|^6.0" + "symfony/serializer": "^5.4.14|~6.0.14|^6.1.6" }, "type": "library", "autoload": { @@ -7172,7 +7623,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v6.0.10" + "source": "https://github.com/symfony/mime/tree/v6.0.14" }, "funding": [ { @@ -7188,7 +7639,7 @@ "type": "tidelift" } ], - "time": "2022-06-09T12:50:38+00:00" + "time": "2022-10-07T08:02:12+00:00" }, { "name": "symfony/polyfill-ctype", @@ -7846,17 +8297,99 @@ "time": "2022-05-24T11:49:31+00:00" }, { - "name": "symfony/process", - "version": "v6.0.8", + "name": "symfony/polyfill-uuid", + "version": "v1.26.0", "source": { "type": "git", - "url": "https://github.com/symfony/process.git", - "reference": "d074154ea8b1443a96391f6e39f9e547b2dd01b9" + "url": "https://github.com/symfony/polyfill-uuid.git", + "reference": "a41886c1c81dc075a09c71fe6db5b9d68c79de23" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/d074154ea8b1443a96391f6e39f9e547b2dd01b9", - "reference": "d074154ea8b1443a96391f6e39f9e547b2dd01b9", + "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/a41886c1c81dc075a09c71fe6db5b9d68c79de23", + "reference": "a41886c1c81dc075a09c71fe6db5b9d68c79de23", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-uuid": "*" + }, + "suggest": { + "ext-uuid": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Uuid\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Grégoire Pineau", + "email": "lyrixx@lyrixx.info" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for uuid functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "uuid" + ], + "support": { + "source": "https://github.com/symfony/polyfill-uuid/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/process", + "version": "v6.0.11", + "source": { + "type": "git", + "url": "https://github.com/symfony/process.git", + "reference": "44270a08ccb664143dede554ff1c00aaa2247a43" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/process/zipball/44270a08ccb664143dede554ff1c00aaa2247a43", + "reference": "44270a08ccb664143dede554ff1c00aaa2247a43", "shasum": "" }, "require": { @@ -7888,7 +8421,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v6.0.8" + "source": "https://github.com/symfony/process/tree/v6.0.11" }, "funding": [ { @@ -7904,20 +8437,20 @@ "type": "tidelift" } ], - "time": "2022-04-12T16:11:42+00:00" + "time": "2022-06-27T17:10:44+00:00" }, { "name": "symfony/psr-http-message-bridge", - "version": "v2.1.2", + "version": "v2.1.3", "source": { "type": "git", "url": "https://github.com/symfony/psr-http-message-bridge.git", - "reference": "22b37c8a3f6b5d94e9cdbd88e1270d96e2f97b34" + "reference": "d444f85dddf65c7e57c58d8e5b3a4dbb593b1840" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/22b37c8a3f6b5d94e9cdbd88e1270d96e2f97b34", - "reference": "22b37c8a3f6b5d94e9cdbd88e1270d96e2f97b34", + "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/d444f85dddf65c7e57c58d8e5b3a4dbb593b1840", + "reference": "d444f85dddf65c7e57c58d8e5b3a4dbb593b1840", "shasum": "" }, "require": { @@ -7976,7 +8509,7 @@ ], "support": { "issues": "https://github.com/symfony/psr-http-message-bridge/issues", - "source": "https://github.com/symfony/psr-http-message-bridge/tree/v2.1.2" + "source": "https://github.com/symfony/psr-http-message-bridge/tree/v2.1.3" }, "funding": [ { @@ -7992,20 +8525,20 @@ "type": "tidelift" } ], - "time": "2021-11-05T13:13:39+00:00" + "time": "2022-09-05T10:34:54+00:00" }, { "name": "symfony/routing", - "version": "v6.0.8", + "version": "v6.0.11", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "74c40c9fc334acc601a32fcf4274e74fb3bac11e" + "reference": "434b64f7d3a582ec33fcf69baaf085473e67d639" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/74c40c9fc334acc601a32fcf4274e74fb3bac11e", - "reference": "74c40c9fc334acc601a32fcf4274e74fb3bac11e", + "url": "https://api.github.com/repos/symfony/routing/zipball/434b64f7d3a582ec33fcf69baaf085473e67d639", + "reference": "434b64f7d3a582ec33fcf69baaf085473e67d639", "shasum": "" }, "require": { @@ -8064,7 +8597,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v6.0.8" + "source": "https://github.com/symfony/routing/tree/v6.0.11" }, "funding": [ { @@ -8080,7 +8613,7 @@ "type": "tidelift" } ], - "time": "2022-04-22T08:18:02+00:00" + "time": "2022-07-20T13:45:53+00:00" }, { "name": "symfony/service-contracts", @@ -8166,16 +8699,16 @@ }, { "name": "symfony/string", - "version": "v6.0.10", + "version": "v6.0.14", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "1b3adf02a0fc814bd9118d7fd68a097a599ebc27" + "reference": "3db7da820a6e4a584b714b3933c34c6a7db4d86c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/1b3adf02a0fc814bd9118d7fd68a097a599ebc27", - "reference": "1b3adf02a0fc814bd9118d7fd68a097a599ebc27", + "url": "https://api.github.com/repos/symfony/string/zipball/3db7da820a6e4a584b714b3933c34c6a7db4d86c", + "reference": "3db7da820a6e4a584b714b3933c34c6a7db4d86c", "shasum": "" }, "require": { @@ -8231,7 +8764,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.0.10" + "source": "https://github.com/symfony/string/tree/v6.0.14" }, "funding": [ { @@ -8247,20 +8780,20 @@ "type": "tidelift" } ], - "time": "2022-06-26T16:34:50+00:00" + "time": "2022-10-10T09:34:08+00:00" }, { "name": "symfony/translation", - "version": "v6.0.9", + "version": "v6.0.14", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "9ba011309943955a3807b8236c17cff3b88f67b6" + "reference": "6f99eb179aee4652c0a7cd7c11f2a870d904330c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/9ba011309943955a3807b8236c17cff3b88f67b6", - "reference": "9ba011309943955a3807b8236c17cff3b88f67b6", + "url": "https://api.github.com/repos/symfony/translation/zipball/6f99eb179aee4652c0a7cd7c11f2a870d904330c", + "reference": "6f99eb179aee4652c0a7cd7c11f2a870d904330c", "shasum": "" }, "require": { @@ -8326,7 +8859,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v6.0.9" + "source": "https://github.com/symfony/translation/tree/v6.0.14" }, "funding": [ { @@ -8342,7 +8875,7 @@ "type": "tidelift" } ], - "time": "2022-05-06T14:27:17+00:00" + "time": "2022-10-07T08:02:12+00:00" }, { "name": "symfony/translation-contracts", @@ -8423,17 +8956,91 @@ "time": "2022-06-27T17:10:44+00:00" }, { - "name": "symfony/var-dumper", - "version": "v6.0.9", + "name": "symfony/uid", + "version": "v6.0.13", "source": { "type": "git", - "url": "https://github.com/symfony/var-dumper.git", - "reference": "ac81072464221e73ee994d12f0b8a2af4a9ed798" + "url": "https://github.com/symfony/uid.git", + "reference": "db426b27173f5e2d8b960dd10fa8ce19ea9ca5f3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/ac81072464221e73ee994d12f0b8a2af4a9ed798", - "reference": "ac81072464221e73ee994d12f0b8a2af4a9ed798", + "url": "https://api.github.com/repos/symfony/uid/zipball/db426b27173f5e2d8b960dd10fa8ce19ea9ca5f3", + "reference": "db426b27173f5e2d8b960dd10fa8ce19ea9ca5f3", + "shasum": "" + }, + "require": { + "php": ">=8.0.2", + "symfony/polyfill-uuid": "^1.15" + }, + "require-dev": { + "symfony/console": "^5.4|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Uid\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Grégoire Pineau", + "email": "lyrixx@lyrixx.info" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an object-oriented API to generate and represent UIDs", + "homepage": "https://symfony.com", + "keywords": [ + "UID", + "ulid", + "uuid" + ], + "support": { + "source": "https://github.com/symfony/uid/tree/v6.0.13" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-09-09T09:33:56+00:00" + }, + { + "name": "symfony/var-dumper", + "version": "v6.0.14", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-dumper.git", + "reference": "72af925ddd41ca0372d166d004bc38a00c4608cc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/72af925ddd41ca0372d166d004bc38a00c4608cc", + "reference": "72af925ddd41ca0372d166d004bc38a00c4608cc", "shasum": "" }, "require": { @@ -8492,7 +9099,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.0.9" + "source": "https://github.com/symfony/var-dumper/tree/v6.0.14" }, "funding": [ { @@ -8508,7 +9115,81 @@ "type": "tidelift" } ], - "time": "2022-05-21T13:33:31+00:00" + "time": "2022-10-07T08:02:12+00:00" + }, + { + "name": "symfony/yaml", + "version": "v6.0.14", + "source": { + "type": "git", + "url": "https://github.com/symfony/yaml.git", + "reference": "e65020d137ad54beb85a67ffe6435e980f35ccf3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/yaml/zipball/e65020d137ad54beb85a67ffe6435e980f35ccf3", + "reference": "e65020d137ad54beb85a67ffe6435e980f35ccf3", + "shasum": "" + }, + "require": { + "php": ">=8.0.2", + "symfony/polyfill-ctype": "^1.8" + }, + "conflict": { + "symfony/console": "<5.4" + }, + "require-dev": { + "symfony/console": "^5.4|^6.0" + }, + "suggest": { + "symfony/console": "For validating YAML files using the lint command" + }, + "bin": [ + "Resources/bin/yaml-lint" + ], + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Yaml\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Loads and dumps YAML files", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/yaml/tree/v6.0.14" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-07T08:02:12+00:00" }, { "name": "tgalopin/html-sanitizer", @@ -8561,16 +9242,16 @@ }, { "name": "tijsverkoyen/css-to-inline-styles", - "version": "2.2.4", + "version": "2.2.5", "source": { "type": "git", "url": "https://github.com/tijsverkoyen/CssToInlineStyles.git", - "reference": "da444caae6aca7a19c0c140f68c6182e337d5b1c" + "reference": "4348a3a06651827a27d989ad1d13efec6bb49b19" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/da444caae6aca7a19c0c140f68c6182e337d5b1c", - "reference": "da444caae6aca7a19c0c140f68c6182e337d5b1c", + "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/4348a3a06651827a27d989ad1d13efec6bb49b19", + "reference": "4348a3a06651827a27d989ad1d13efec6bb49b19", "shasum": "" }, "require": { @@ -8608,22 +9289,22 @@ "homepage": "https://github.com/tijsverkoyen/CssToInlineStyles", "support": { "issues": "https://github.com/tijsverkoyen/CssToInlineStyles/issues", - "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/2.2.4" + "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/2.2.5" }, - "time": "2021-12-08T09:12:39+00:00" + "time": "2022-09-12T13:28:28+00:00" }, { "name": "vlucas/phpdotenv", - "version": "v5.4.1", + "version": "v5.5.0", "source": { "type": "git", "url": "https://github.com/vlucas/phpdotenv.git", - "reference": "264dce589e7ce37a7ba99cb901eed8249fbec92f" + "reference": "1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/264dce589e7ce37a7ba99cb901eed8249fbec92f", - "reference": "264dce589e7ce37a7ba99cb901eed8249fbec92f", + "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7", + "reference": "1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7", "shasum": "" }, "require": { @@ -8638,15 +9319,19 @@ "require-dev": { "bamarni/composer-bin-plugin": "^1.4.1", "ext-filter": "*", - "phpunit/phpunit": "^7.5.20 || ^8.5.21 || ^9.5.10" + "phpunit/phpunit": "^7.5.20 || ^8.5.30 || ^9.5.25" }, "suggest": { "ext-filter": "Required to use the boolean validator." }, "type": "library", "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": true + }, "branch-alias": { - "dev-master": "5.4-dev" + "dev-master": "5.5-dev" } }, "autoload": { @@ -8678,7 +9363,7 @@ ], "support": { "issues": "https://github.com/vlucas/phpdotenv/issues", - "source": "https://github.com/vlucas/phpdotenv/tree/v5.4.1" + "source": "https://github.com/vlucas/phpdotenv/tree/v5.5.0" }, "funding": [ { @@ -8690,7 +9375,7 @@ "type": "tidelift" } ], - "time": "2021-12-12T23:22:04+00:00" + "time": "2022-10-16T01:01:54+00:00" }, { "name": "voku/portable-ascii", @@ -8898,16 +9583,16 @@ }, { "name": "dragon-code/contracts", - "version": "v2.18.0", + "version": "v2.19.0", "source": { "type": "git", "url": "https://github.com/TheDragonCode/contracts.git", - "reference": "27e5a9f27b3e6e5f1c184e55076b26101f3e5652" + "reference": "b50ceb575da285c68615bf759d2bb3288aaa4b25" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/TheDragonCode/contracts/zipball/27e5a9f27b3e6e5f1c184e55076b26101f3e5652", - "reference": "27e5a9f27b3e6e5f1c184e55076b26101f3e5652", + "url": "https://api.github.com/repos/TheDragonCode/contracts/zipball/b50ceb575da285c68615bf759d2bb3288aaa4b25", + "reference": "b50ceb575da285c68615bf759d2bb3288aaa4b25", "shasum": "" }, "require": { @@ -8936,7 +9621,8 @@ "authors": [ { "name": "Andrey Helldar", - "email": "helldar@ai-rus.com" + "email": "helldar@dragon-code.pro", + "homepage": "https://github.com/andrey-helldar" } ], "description": "A set of contracts for any project", @@ -8949,23 +9635,23 @@ }, "funding": [ { - "url": "https://paypal.me/helldar", - "type": "custom" + "url": "https://boosty.to/dragon-code", + "type": "boosty" }, { - "url": "https://yoomoney.ru/to/410012608840929", - "type": "custom" + "url": "https://github.com/sponsors/TheDragonCode", + "type": "github" }, { "url": "https://opencollective.com/dragon-code", "type": "open_collective" }, { - "url": "https://www.patreon.com/andrey_helldar", - "type": "patreon" + "url": "https://yoomoney.ru/to/410012608840929", + "type": "yoomoney" } ], - "time": "2022-03-01T13:27:09+00:00" + "time": "2022-10-10T22:02:52+00:00" }, { "name": "dragon-code/pretty-array", @@ -9141,71 +9827,18 @@ ], "time": "2022-04-01T17:14:16+00:00" }, - { - "name": "facade/ignition-contracts", - "version": "1.0.2", - "source": { - "type": "git", - "url": "https://github.com/facade/ignition-contracts.git", - "reference": "3c921a1cdba35b68a7f0ccffc6dffc1995b18267" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/facade/ignition-contracts/zipball/3c921a1cdba35b68a7f0ccffc6dffc1995b18267", - "reference": "3c921a1cdba35b68a7f0ccffc6dffc1995b18267", - "shasum": "" - }, - "require": { - "php": "^7.3|^8.0" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "^v2.15.8", - "phpunit/phpunit": "^9.3.11", - "vimeo/psalm": "^3.17.1" - }, - "type": "library", - "autoload": { - "psr-4": { - "Facade\\IgnitionContracts\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Freek Van der Herten", - "email": "freek@spatie.be", - "homepage": "https://flareapp.io", - "role": "Developer" - } - ], - "description": "Solution contracts for Ignition", - "homepage": "https://github.com/facade/ignition-contracts", - "keywords": [ - "contracts", - "flare", - "ignition" - ], - "support": { - "issues": "https://github.com/facade/ignition-contracts/issues", - "source": "https://github.com/facade/ignition-contracts/tree/1.0.2" - }, - "time": "2020-10-16T08:27:54+00:00" - }, { "name": "fakerphp/faker", - "version": "v1.19.0", + "version": "v1.20.0", "source": { "type": "git", "url": "https://github.com/FakerPHP/Faker.git", - "reference": "d7f08a622b3346766325488aa32ddc93ccdecc75" + "reference": "37f751c67a5372d4e26353bd9384bc03744ec77b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/d7f08a622b3346766325488aa32ddc93ccdecc75", - "reference": "d7f08a622b3346766325488aa32ddc93ccdecc75", + "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/37f751c67a5372d4e26353bd9384bc03744ec77b", + "reference": "37f751c67a5372d4e26353bd9384bc03744ec77b", "shasum": "" }, "require": { @@ -9232,7 +9865,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "v1.19-dev" + "dev-main": "v1.20-dev" } }, "autoload": { @@ -9257,9 +9890,9 @@ ], "support": { "issues": "https://github.com/FakerPHP/Faker/issues", - "source": "https://github.com/FakerPHP/Faker/tree/v1.19.0" + "source": "https://github.com/FakerPHP/Faker/tree/v1.20.0" }, - "time": "2022-02-02T17:38:57+00:00" + "time": "2022-07-20T13:12:54+00:00" }, { "name": "filp/whoops", @@ -9635,16 +10268,16 @@ }, { "name": "laravel/sail", - "version": "v1.15.0", + "version": "v1.16.2", "source": { "type": "git", "url": "https://github.com/laravel/sail.git", - "reference": "676e1ff33c1b8af657779f62f57360c376cba666" + "reference": "7d1ed5f856ec8b9708712e3fc0708fcabe114659" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/sail/zipball/676e1ff33c1b8af657779f62f57360c376cba666", - "reference": "676e1ff33c1b8af657779f62f57360c376cba666", + "url": "https://api.github.com/repos/laravel/sail/zipball/7d1ed5f856ec8b9708712e3fc0708fcabe114659", + "reference": "7d1ed5f856ec8b9708712e3fc0708fcabe114659", "shasum": "" }, "require": { @@ -9691,20 +10324,20 @@ "issues": "https://github.com/laravel/sail/issues", "source": "https://github.com/laravel/sail" }, - "time": "2022-06-24T13:56:11+00:00" + "time": "2022-09-28T13:13:22+00:00" }, { "name": "mockery/mockery", - "version": "1.5.0", + "version": "1.5.1", "source": { "type": "git", "url": "https://github.com/mockery/mockery.git", - "reference": "c10a5f6e06fc2470ab1822fa13fa2a7380f8fbac" + "reference": "e92dcc83d5a51851baf5f5591d32cb2b16e3684e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mockery/mockery/zipball/c10a5f6e06fc2470ab1822fa13fa2a7380f8fbac", - "reference": "c10a5f6e06fc2470ab1822fa13fa2a7380f8fbac", + "url": "https://api.github.com/repos/mockery/mockery/zipball/e92dcc83d5a51851baf5f5591d32cb2b16e3684e", + "reference": "e92dcc83d5a51851baf5f5591d32cb2b16e3684e", "shasum": "" }, "require": { @@ -9761,9 +10394,9 @@ ], "support": { "issues": "https://github.com/mockery/mockery/issues", - "source": "https://github.com/mockery/mockery/tree/1.5.0" + "source": "https://github.com/mockery/mockery/tree/1.5.1" }, - "time": "2022-01-20T13:18:17+00:00" + "time": "2022-09-07T15:32:08+00:00" }, { "name": "myclabs/deep-copy", @@ -9826,32 +10459,32 @@ }, { "name": "nunomaduro/collision", - "version": "v6.2.1", + "version": "v6.3.1", "source": { "type": "git", "url": "https://github.com/nunomaduro/collision.git", - "reference": "5f058f7e39278b701e455b3c82ec5298cf001d89" + "reference": "0f6349c3ed5dd28467087b08fb59384bb458a22b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/collision/zipball/5f058f7e39278b701e455b3c82ec5298cf001d89", - "reference": "5f058f7e39278b701e455b3c82ec5298cf001d89", + "url": "https://api.github.com/repos/nunomaduro/collision/zipball/0f6349c3ed5dd28467087b08fb59384bb458a22b", + "reference": "0f6349c3ed5dd28467087b08fb59384bb458a22b", "shasum": "" }, "require": { - "facade/ignition-contracts": "^1.0.2", "filp/whoops": "^2.14.5", "php": "^8.0.0", "symfony/console": "^6.0.2" }, "require-dev": { "brianium/paratest": "^6.4.1", - "laravel/framework": "^9.7", - "laravel/pint": "^0.2.1", - "nunomaduro/larastan": "^1.0.2", + "laravel/framework": "^9.26.1", + "laravel/pint": "^1.1.1", + "nunomaduro/larastan": "^1.0.3", "nunomaduro/mock-final-classes": "^1.1.0", - "orchestra/testbench": "^7.3.0", - "phpunit/phpunit": "^9.5.11" + "orchestra/testbench": "^7.7", + "phpunit/phpunit": "^9.5.23", + "spatie/ignition": "^1.4.1" }, "type": "library", "extra": { @@ -9910,7 +10543,7 @@ "type": "patreon" } ], - "time": "2022-06-27T16:11:16+00:00" + "time": "2022-09-29T12:29:49+00:00" }, { "name": "phar-io/manifest", @@ -10023,252 +10656,25 @@ }, "time": "2022-02-21T01:04:05+00:00" }, - { - "name": "phpdocumentor/reflection-common", - "version": "2.2.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionCommon.git", - "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", - "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-2.x": "2.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jaap van Otterdijk", - "email": "opensource@ijaap.nl" - } - ], - "description": "Common reflection classes used by phpdocumentor to reflect the code structure", - "homepage": "http://www.phpdoc.org", - "keywords": [ - "FQSEN", - "phpDocumentor", - "phpdoc", - "reflection", - "static analysis" - ], - "support": { - "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues", - "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x" - }, - "time": "2020-06-27T09:03:43+00:00" - }, - { - "name": "phpdocumentor/reflection-docblock", - "version": "5.3.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "622548b623e81ca6d78b721c5e029f4ce664f170" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/622548b623e81ca6d78b721c5e029f4ce664f170", - "reference": "622548b623e81ca6d78b721c5e029f4ce664f170", - "shasum": "" - }, - "require": { - "ext-filter": "*", - "php": "^7.2 || ^8.0", - "phpdocumentor/reflection-common": "^2.2", - "phpdocumentor/type-resolver": "^1.3", - "webmozart/assert": "^1.9.1" - }, - "require-dev": { - "mockery/mockery": "~1.3.2", - "psalm/phar": "^4.8" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" - }, - { - "name": "Jaap van Otterdijk", - "email": "account@ijaap.nl" - } - ], - "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "support": { - "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", - "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.3.0" - }, - "time": "2021-10-19T17:43:47+00:00" - }, - { - "name": "phpdocumentor/type-resolver", - "version": "1.6.1", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "77a32518733312af16a44300404e945338981de3" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/77a32518733312af16a44300404e945338981de3", - "reference": "77a32518733312af16a44300404e945338981de3", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0", - "phpdocumentor/reflection-common": "^2.0" - }, - "require-dev": { - "ext-tokenizer": "*", - "psalm/phar": "^4.8" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-1.x": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" - } - ], - "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/1.6.1" - }, - "time": "2022-03-15T21:29:03+00:00" - }, - { - "name": "phpspec/prophecy", - "version": "v1.15.0", - "source": { - "type": "git", - "url": "https://github.com/phpspec/prophecy.git", - "reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/bbcd7380b0ebf3961ee21409db7b38bc31d69a13", - "reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13", - "shasum": "" - }, - "require": { - "doctrine/instantiator": "^1.2", - "php": "^7.2 || ~8.0, <8.2", - "phpdocumentor/reflection-docblock": "^5.2", - "sebastian/comparator": "^3.0 || ^4.0", - "sebastian/recursion-context": "^3.0 || ^4.0" - }, - "require-dev": { - "phpspec/phpspec": "^6.0 || ^7.0", - "phpunit/phpunit": "^8.0 || ^9.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Prophecy\\": "src/Prophecy" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" - }, - { - "name": "Marcello Duarte", - "email": "marcello.duarte@gmail.com" - } - ], - "description": "Highly opinionated mocking framework for PHP 5.3+", - "homepage": "https://github.com/phpspec/prophecy", - "keywords": [ - "Double", - "Dummy", - "fake", - "mock", - "spy", - "stub" - ], - "support": { - "issues": "https://github.com/phpspec/prophecy/issues", - "source": "https://github.com/phpspec/prophecy/tree/v1.15.0" - }, - "time": "2021-12-08T12:19:24+00:00" - }, { "name": "phpunit/php-code-coverage", - "version": "9.2.15", + "version": "9.2.17", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "2e9da11878c4202f97915c1cb4bb1ca318a63f5f" + "reference": "aa94dc41e8661fe90c7316849907cba3007b10d8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/2e9da11878c4202f97915c1cb4bb1ca318a63f5f", - "reference": "2e9da11878c4202f97915c1cb4bb1ca318a63f5f", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/aa94dc41e8661fe90c7316849907cba3007b10d8", + "reference": "aa94dc41e8661fe90c7316849907cba3007b10d8", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "ext-xmlwriter": "*", - "nikic/php-parser": "^4.13.0", + "nikic/php-parser": "^4.14", "php": ">=7.3", "phpunit/php-file-iterator": "^3.0.3", "phpunit/php-text-template": "^2.0.2", @@ -10317,7 +10723,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.15" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.17" }, "funding": [ { @@ -10325,7 +10731,7 @@ "type": "github" } ], - "time": "2022-03-07T09:28:20+00:00" + "time": "2022-08-30T12:24:04+00:00" }, { "name": "phpunit/php-file-iterator", @@ -10570,16 +10976,16 @@ }, { "name": "phpunit/phpunit", - "version": "9.5.21", + "version": "9.5.25", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "0e32b76be457de00e83213528f6bb37e2a38fcb1" + "reference": "3e6f90ca7e3d02025b1d147bd8d4a89fd4ca8a1d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/0e32b76be457de00e83213528f6bb37e2a38fcb1", - "reference": "0e32b76be457de00e83213528f6bb37e2a38fcb1", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/3e6f90ca7e3d02025b1d147bd8d4a89fd4ca8a1d", + "reference": "3e6f90ca7e3d02025b1d147bd8d4a89fd4ca8a1d", "shasum": "" }, "require": { @@ -10594,7 +11000,6 @@ "phar-io/manifest": "^2.0.3", "phar-io/version": "^3.0.2", "php": ">=7.3", - "phpspec/prophecy": "^1.12.1", "phpunit/php-code-coverage": "^9.2.13", "phpunit/php-file-iterator": "^3.0.5", "phpunit/php-invoker": "^3.1.1", @@ -10602,19 +11007,16 @@ "phpunit/php-timer": "^5.0.2", "sebastian/cli-parser": "^1.0.1", "sebastian/code-unit": "^1.0.6", - "sebastian/comparator": "^4.0.5", + "sebastian/comparator": "^4.0.8", "sebastian/diff": "^4.0.3", "sebastian/environment": "^5.1.3", - "sebastian/exporter": "^4.0.3", + "sebastian/exporter": "^4.0.5", "sebastian/global-state": "^5.0.1", "sebastian/object-enumerator": "^4.0.3", "sebastian/resource-operations": "^3.0.3", - "sebastian/type": "^3.0", + "sebastian/type": "^3.2", "sebastian/version": "^3.0.2" }, - "require-dev": { - "phpspec/prophecy-phpunit": "^2.0.1" - }, "suggest": { "ext-soap": "*", "ext-xdebug": "*" @@ -10656,7 +11058,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.21" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.25" }, "funding": [ { @@ -10666,9 +11068,13 @@ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", + "type": "tidelift" } ], - "time": "2022-06-19T12:14:25+00:00" + "time": "2022-09-25T03:44:45+00:00" }, { "name": "sebastian/cli-parser", @@ -10839,16 +11245,16 @@ }, { "name": "sebastian/comparator", - "version": "4.0.6", + "version": "4.0.8", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "55f4261989e546dc112258c7a75935a81a7ce382" + "reference": "fa0f136dd2334583309d32b62544682ee972b51a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/55f4261989e546dc112258c7a75935a81a7ce382", - "reference": "55f4261989e546dc112258c7a75935a81a7ce382", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a", + "reference": "fa0f136dd2334583309d32b62544682ee972b51a", "shasum": "" }, "require": { @@ -10901,7 +11307,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/comparator/issues", - "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.6" + "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8" }, "funding": [ { @@ -10909,7 +11315,7 @@ "type": "github" } ], - "time": "2020-10-26T15:49:45+00:00" + "time": "2022-09-14T12:41:17+00:00" }, { "name": "sebastian/complexity", @@ -11099,16 +11505,16 @@ }, { "name": "sebastian/exporter", - "version": "4.0.4", + "version": "4.0.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "65e8b7db476c5dd267e65eea9cab77584d3cfff9" + "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/65e8b7db476c5dd267e65eea9cab77584d3cfff9", - "reference": "65e8b7db476c5dd267e65eea9cab77584d3cfff9", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", + "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", "shasum": "" }, "require": { @@ -11164,7 +11570,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", - "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.4" + "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.5" }, "funding": [ { @@ -11172,7 +11578,7 @@ "type": "github" } ], - "time": "2021-11-11T14:18:36+00:00" + "time": "2022-09-14T06:03:37+00:00" }, { "name": "sebastian/global-state", @@ -11527,16 +11933,16 @@ }, { "name": "sebastian/type", - "version": "3.0.0", + "version": "3.2.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/type.git", - "reference": "b233b84bc4465aff7b57cf1c4bc75c86d00d6dad" + "reference": "fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/b233b84bc4465aff7b57cf1c4bc75c86d00d6dad", - "reference": "b233b84bc4465aff7b57cf1c4bc75c86d00d6dad", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e", + "reference": "fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e", "shasum": "" }, "require": { @@ -11548,7 +11954,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "3.2-dev" } }, "autoload": { @@ -11571,7 +11977,7 @@ "homepage": "https://github.com/sebastianbergmann/type", "support": { "issues": "https://github.com/sebastianbergmann/type/issues", - "source": "https://github.com/sebastianbergmann/type/tree/3.0.0" + "source": "https://github.com/sebastianbergmann/type/tree/3.2.0" }, "funding": [ { @@ -11579,7 +11985,7 @@ "type": "github" } ], - "time": "2022-03-15T09:54:48+00:00" + "time": "2022-09-12T14:47:03+00:00" }, { "name": "sebastian/version", @@ -11698,16 +12104,16 @@ }, { "name": "spatie/flare-client-php", - "version": "1.2.0", + "version": "1.3.0", "source": { "type": "git", "url": "https://github.com/spatie/flare-client-php.git", - "reference": "86a380f5b1ce839af04a08f1c8f2697184cdf23f" + "reference": "b1b974348750925b717fa8c8b97a0db0d1aa40ca" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/flare-client-php/zipball/86a380f5b1ce839af04a08f1c8f2697184cdf23f", - "reference": "86a380f5b1ce839af04a08f1c8f2697184cdf23f", + "url": "https://api.github.com/repos/spatie/flare-client-php/zipball/b1b974348750925b717fa8c8b97a0db0d1aa40ca", + "reference": "b1b974348750925b717fa8c8b97a0db0d1aa40ca", "shasum": "" }, "require": { @@ -11755,7 +12161,7 @@ ], "support": { "issues": "https://github.com/spatie/flare-client-php/issues", - "source": "https://github.com/spatie/flare-client-php/tree/1.2.0" + "source": "https://github.com/spatie/flare-client-php/tree/1.3.0" }, "funding": [ { @@ -11763,20 +12169,20 @@ "type": "github" } ], - "time": "2022-05-16T12:13:39+00:00" + "time": "2022-08-08T10:10:20+00:00" }, { "name": "spatie/ignition", - "version": "1.3.1", + "version": "1.4.1", "source": { "type": "git", "url": "https://github.com/spatie/ignition.git", - "reference": "997363fbcce809b1e55f571997d49017f9c623d9" + "reference": "dd3d456779108d7078baf4e43f8c2b937d9794a1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/ignition/zipball/997363fbcce809b1e55f571997d49017f9c623d9", - "reference": "997363fbcce809b1e55f571997d49017f9c623d9", + "url": "https://api.github.com/repos/spatie/ignition/zipball/dd3d456779108d7078baf4e43f8c2b937d9794a1", + "reference": "dd3d456779108d7078baf4e43f8c2b937d9794a1", "shasum": "" }, "require": { @@ -11838,31 +12244,31 @@ "type": "github" } ], - "time": "2022-05-16T13:16:07+00:00" + "time": "2022-08-26T11:51:15+00:00" }, { "name": "spatie/laravel-ignition", - "version": "1.3.1", + "version": "1.6.0", "source": { "type": "git", "url": "https://github.com/spatie/laravel-ignition.git", - "reference": "fe37a0eafe6ea040804255c70e9808af13314f87" + "reference": "c21309ebf6657e0c38083afac8af9baa12885676" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/fe37a0eafe6ea040804255c70e9808af13314f87", - "reference": "fe37a0eafe6ea040804255c70e9808af13314f87", + "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/c21309ebf6657e0c38083afac8af9baa12885676", + "reference": "c21309ebf6657e0c38083afac8af9baa12885676", "shasum": "" }, "require": { "ext-curl": "*", "ext-json": "*", "ext-mbstring": "*", - "illuminate/support": "^8.77|^9.0", + "illuminate/support": "^8.77|^9.27", "monolog/monolog": "^2.3", "php": "^8.0", "spatie/flare-client-php": "^1.0.1", - "spatie/ignition": "^1.2.4", + "spatie/ignition": "^1.4.1", "symfony/console": "^5.0|^6.0", "symfony/var-dumper": "^5.0|^6.0" }, @@ -11928,7 +12334,7 @@ "type": "github" } ], - "time": "2022-06-17T06:28:57+00:00" + "time": "2022-10-25T08:38:04+00:00" }, { "name": "theseer/tokenizer", @@ -11998,8 +12404,9 @@ "ext-mysqli": "*", "ext-pcntl": "*", "ext-redis": "*", - "ext-xml": "*" + "ext-xml": "*", + "ext-gmp": "*" }, "platform-dev": [], - "plugin-api-version": "2.3.0" + "plugin-api-version": "2.0.0" } diff --git a/config/notifications.php b/config/notifications.php new file mode 100644 index 00000000..b758f889 --- /dev/null +++ b/config/notifications.php @@ -0,0 +1,51 @@ + false, + + /* + |-------------------------------------------------------------------------- + | Database notifications + |-------------------------------------------------------------------------- + | + | By enabling this feature, your users are able to open a slide-over within + | the app to view their database notifications. + | + */ + + 'database' => [ + 'enabled' => false, + 'trigger' => null, + 'polling_interval' => '30s', + ], + + /* + |-------------------------------------------------------------------------- + | Layout + |-------------------------------------------------------------------------- + | + | This is the configuration for the general layout of notifications. + | + */ + + 'layout' => [ + 'alignment' => [ + 'horizontal' => 'right', + 'vertical' => 'top', + ], + ], + +]; diff --git a/config/tables.php b/config/tables.php index 3e3727cb..b2869425 100644 --- a/config/tables.php +++ b/config/tables.php @@ -53,6 +53,7 @@ return [ 'pagination' => [ 'default_records_per_page' => 10, + 'records_per_page_select_options' => [10, 50, 100, 200], ], /* diff --git a/database/migrations/2022_09_06_004318_add_section_name_to_searchbox_table.php b/database/migrations/2022_09_06_004318_add_section_name_to_searchbox_table.php index ab80ef46..6c75630d 100644 --- a/database/migrations/2022_09_06_004318_add_section_name_to_searchbox_table.php +++ b/database/migrations/2022_09_06_004318_add_section_name_to_searchbox_table.php @@ -14,8 +14,7 @@ return new class extends Migration public function up() { Schema::table('searchbox', function (Blueprint $table) { - $table->string('section_name')->after('name')->default(''); - $table->integer('is_default')->after('section_name')->default(0); + $table->json('section_name')->after('name')->nullable(true); }); } @@ -27,7 +26,7 @@ return new class extends Migration public function down() { Schema::table('searchbox', function (Blueprint $table) { - $table->dropColumn('section_name', 'is_default'); + $table->dropColumn('section_name'); }); } }; diff --git a/database/migrations/2022_09_06_030324_change_searchbox_field_extra_to_json.php b/database/migrations/2022_09_06_030324_change_searchbox_field_extra_to_json.php index dcfad32f..654cc1a8 100644 --- a/database/migrations/2022_09_06_030324_change_searchbox_field_extra_to_json.php +++ b/database/migrations/2022_09_06_030324_change_searchbox_field_extra_to_json.php @@ -22,6 +22,12 @@ return new class extends Migration $table->string('class_name')->nullable(true)->default('')->change(); $table->string('image')->nullable(true)->default('')->change(); }); + + Schema::table('caticons', function (Blueprint $table) { + $table->string('cssfile')->nullable(true)->default('')->change(); + $table->string('designer')->nullable(true)->default('')->change(); + $table->string('comment')->nullable(true)->default('')->change(); + }); } /** diff --git a/include/functions.php b/include/functions.php index 5e9a820b..7ebf799e 100644 --- a/include/functions.php +++ b/include/functions.php @@ -1,5 +1,6 @@ "); @@ -2306,9 +2308,9 @@ function menu ($selected = "home") { print ("".$lang_functions['text_forums'].""); else print ("".$lang_functions['text_forums'].""); - print ("".($normalSectionName ?: $lang_functions['text_torrents']).""); + print ("".($normalSectionName[$lang] ?? $lang_functions['text_torrents']).""); if ($enablespecial == 'yes' && user_can('view_special_torrent')) - print ("".($specialSectionName ?: $lang_functions['text_special']).""); + print ("".($specialSectionName[$lang] ?? $lang_functions['text_special']).""); if ($enableoffer == 'yes') print ("".$lang_functions['text_offers'].""); if ($enablerequest == 'yes') @@ -2904,7 +2906,7 @@ function stdfoot() { $yearfounded = ($year ? $year : 2007); print(" (c) "." ".$SITENAME." ".($icplicense_main ? " ".$icplicense_main." " : "").(date("Y") != $yearfounded ? $yearfounded."-" : "").date("Y")." ".VERSION."

"); printf ("[page created in %s sec", sprintf("%.3f", $totaltime)); - print (" with ".count($query_name)." db queries, ".$Cache->getCacheReadTimes()." reads and ".$Cache->getCacheWriteTimes()." writes of Redis and ".mksize(memory_get_usage())." ram]"); + print (", takes up ".mksize(memory_get_usage())." ram]"); print ("\n"); if ($enablesqldebug_tweak == 'yes' && get_user_class() >= $sqldebug_tweak) { print("
SQL query list:
    "); @@ -3263,10 +3265,10 @@ function searchbox_item_list($table, $mode){ $cacheKey = "{$table}_list_mode_{$mode}"; if (!$ret = $Cache->get_value($cacheKey)){ $ret = array(); - $res = sql_query("SELECT * FROM $table where mode = '$mode' ORDER BY sort_index, id"); + $res = sql_query("SELECT * FROM $table where (mode = '$mode' or mode = 0) ORDER BY sort_index, id"); while ($row = mysql_fetch_array($res)) $ret[] = $row; - $Cache->cache_value($cacheKey, $ret, 152800); + $Cache->cache_value($cacheKey, $ret, 3600); } return $ret; } @@ -4341,9 +4343,10 @@ function get_second_icon($row) //for CHDBits $processing=$row['processing']; $team=$row['team']; $audiocodec=$row['audiocodec']; + $mode = $row['search_box_id']; $cacheKey = 'secondicon_'.$source.'_'.$medium.'_'.$codec.'_'.$standard.'_'.$processing.'_'.$team.'_'.$audiocodec.'_content'; if (!$sirow = $Cache->get_value($cacheKey)){ - $res = sql_query("SELECT * FROM secondicons WHERE (source = ".sqlesc($source)." OR source=0) AND (medium = ".sqlesc($medium)." OR medium=0) AND (codec = ".sqlesc($codec)." OR codec = 0) AND (standard = ".sqlesc($standard)." OR standard = 0) AND (processing = ".sqlesc($processing)." OR processing = 0) AND (team = ".sqlesc($team)." OR team = 0) AND (audiocodec = ".sqlesc($audiocodec)." OR audiocodec = 0) LIMIT 1"); + $res = sql_query("SELECT * FROM secondicons WHERE (mode = ".sqlesc($mode)." OR mode = 0) AND (source = ".sqlesc($source)." OR source=0) AND (medium = ".sqlesc($medium)." OR medium=0) AND (codec = ".sqlesc($codec)." OR codec = 0) AND (standard = ".sqlesc($standard)." OR standard = 0) AND (processing = ".sqlesc($processing)." OR processing = 0) AND (team = ".sqlesc($team)." OR team = 0) AND (audiocodec = ".sqlesc($audiocodec)." OR audiocodec = 0) LIMIT 1"); $sirow = mysql_fetch_array($res); if (!$sirow) $sirow = 'not allowed'; @@ -4843,6 +4846,9 @@ function get_searchbox_value($mode = 1, $item = 'showsubcat'){ while ($row = mysql_fetch_array($res)) { if (isset($row['extra'])) { $row['extra'] = json_decode($row['extra'], true); + } + if (isset($row['section_name'])) { + $row['section_name'] = json_decode($row['section_name'], true); } $rows[$row['id']] = $row; } @@ -5988,20 +5994,34 @@ function calculate_harem_addition($uid) } -function build_search_box_category_table($mode, $checkboxValue, $categoryHrefPrefix, $taxonomyHrefPrefix, $taxonomyNameLength, $checkedValues = '') +function build_search_box_category_table($mode, $checkboxValue, $categoryHrefPrefix, $taxonomyHrefPrefix, $taxonomyNameLength, $checkedValues = '', array $options = []) { $searchBox = \App\Models\SearchBox::query()->with(['categories', 'categories.icon'])->findOrFail($mode); + $lang = get_langfolder_cookie(); $withTaxonomies = []; - foreach (\App\Models\SearchBox::$taxonomies as $torrentField => $taxonomyTable) { - $showField = "show" . $torrentField; - if ($searchBox->{$showField}) { - $withTaxonomies[] = "taxonomy_{$torrentField}"; + if ($searchBox->showsubcat) { + //Keep the order + if (!empty($searchBox->extra[SearchBox::EXTRA_TAXONOMY_LABELS])) { + foreach ($searchBox->extra[SearchBox::EXTRA_TAXONOMY_LABELS] as $taxonomyLabelInfo) { + $torrentField = $taxonomyLabelInfo["torrent_field"]; + $showField = "show" . $torrentField; + if ($searchBox->{$showField}) { + $withTaxonomies[$torrentField] = \App\Models\SearchBox::$taxonomies[$torrentField]; + } + } + } else { + foreach (\App\Models\SearchBox::$taxonomies as $torrentField => $taxonomyTable) { + $showField = "show" . $torrentField; + if ($searchBox->{$showField}) { + $withTaxonomies[$torrentField] = $taxonomyTable; + } + } } } - $searchBox->load($withTaxonomies); - $html = ''; - $html .= sprintf('', $searchBox->section_name); + if (!empty($options['section_name'])) { + $html .= sprintf('', $searchBox->section_name[$lang] ?? ''); + } //Category $html .= sprintf('', nexus_trans('label.search_box.category')); $categoryChunks = $searchBox->categories->chunk($searchBox->catsperrow); @@ -6010,7 +6030,7 @@ function build_search_box_category_table($mode, $checkboxValue, $categoryHrefPre $html .= ''; foreach ($chunk as $item) { $checked = ''; - if (str_contains($checkedValues, "[cat{$item->id}]")) { + if (str_contains($checkedValues, "[cat{$item->id}]") || str_contains($checkedValues, "cat{$item->id}=1")) { $checked = " checked"; } $icon = $item->icon; @@ -6018,7 +6038,7 @@ function build_search_box_category_table($mode, $checkboxValue, $categoryHrefPre $td = << TD; $html .= $td; @@ -6026,29 +6046,33 @@ TD; $html .= ''; } //Taxonomy - foreach ($withTaxonomies as $relation) { - $torrentField = str_replace("taxonomy_", '', $relation); + foreach ($withTaxonomies as $torrentField => $tableName) { if ($taxonomyNameLength > 0) { $namePrefix = substr($torrentField, 0, $taxonomyNameLength); } else { $namePrefix = $torrentField; } $html .= sprintf('', $searchBox->getTaxonomyLabel($torrentField)); - $taxonomyChunks = $searchBox->{$relation}->chunk($searchBox->catsperrow); + $taxonomyChunks = \Nexus\Database\NexusDB::table($tableName) + ->where(function (\Illuminate\Database\Query\Builder $query) use ($mode) { + return $query->where('mode', $mode)->orWhere('mode', 0); + }) + ->get() + ->chunk($searchBox->catsperrow); foreach ($taxonomyChunks as $chunk) { $html .= ''; foreach ($chunk as $item) { if ($taxonomyHrefPrefix) { - $afterInput = sprintf('%s', $taxonomyHrefPrefix, $namePrefix, $item->id, $item->name); + $afterInput = sprintf('%s', $taxonomyHrefPrefix, $namePrefix, $item->id, $item->name); } else { $afterInput = $item->name; } $checked = ''; - if (str_contains($checkedValues, "[{$namePrefix}{$item->id}]")) { + if (str_contains($checkedValues, "[{$namePrefix}{$item->id}]") || str_contains($checkedValues, "{$namePrefix}{$item->id}=1")) { $checked = ' checked'; } $td = << TD; diff --git a/public/details.php b/public/details.php index b6a440bd..0a187868 100644 --- a/public/details.php +++ b/public/details.php @@ -10,8 +10,9 @@ int_check($id); if (!isset($id) || !$id) die(); +$taxonomyFields = "sources.name AS source_name, media.name AS medium_name, codecs.name AS codec_name, standards.name AS standard_name, processings.name AS processing_name, teams.name AS team_name, audiocodecs.name AS audiocodec_name"; $res = sql_query("SELECT torrents.cache_stamp, torrents.sp_state, torrents.url, torrents.small_descr, torrents.seeders, torrents.banned, torrents.leechers, torrents.info_hash, torrents.filename, nfo, LENGTH(torrents.nfo) AS nfosz, torrents.last_action, torrents.name, torrents.owner, torrents.save_as, torrents.descr, torrents.visible, torrents.size, torrents.added, torrents.views, torrents.hits, torrents.times_completed, torrents.id, torrents.type, torrents.numfiles, torrents.anonymous, torrents.pt_gen, torrents.technical_info, torrents.hr, torrents.promotion_until, torrents.promotion_time_type, torrents.approval_status, - categories.name AS cat_name, categories.mode as search_box_id, sources.name AS source_name, media.name AS medium_name, codecs.name AS codec_name, standards.name AS standard_name, processings.name AS processing_name, teams.name AS team_name, audiocodecs.name AS audiocodec_name + categories.name AS cat_name, categories.mode as search_box_id, $taxonomyFields FROM torrents LEFT JOIN categories ON torrents.category = categories.id LEFT JOIN sources ON torrents.source = sources.id LEFT JOIN media ON torrents.medium = media.id @@ -42,6 +43,7 @@ if (!$row) { $owner = \App\Models\User::defaultUser(); } $torrentRep = new \App\Repositories\TorrentRepository(); + $searchBoxRep = new \App\Repositories\SearchBoxRepository(); $torrentUpdate = []; if (!empty($_GET["hit"])) { $torrentUpdate[] = 'views = views + 1'; @@ -135,24 +137,30 @@ if (!$row) { $size_info = "".$lang_details['text_size']."" . mksize($row["size"]); $type_info = "   ".$lang_details['row_type'].": ".$row["cat_name"]; - $source_info = $medium_info = $codec_info = $audiocodec_info = $standard_info = $processing_info = $team_info = ''; - if (isset($row["source_name"])) - $source_info = "   ".$lang_details['text_source']." ".$row['source_name']; - if (isset($row["medium_name"])) - $medium_info = "   ".$lang_details['text_medium']." ".$row['medium_name']; - if (isset($row["codec_name"])) - $codec_info = "   ".$lang_details['text_codec']." ".$row['codec_name']; - if (isset($row["standard_name"])) - $standard_info = "   ".$lang_details['text_stardard']." ".$row['standard_name']; - if (isset($row["processing_name"])) - $processing_info = "   ".$lang_details['text_processing']." ".$row['processing_name']; - if (isset($row["team_name"])) - $team_info = "   ".$lang_details['text_team']." ".$row['team_name']; - if (isset($row["audiocodec_name"])) - $audiocodec_info = "   ".$lang_details['text_audio_codec']." ".$row['audiocodec_name']; +// $source_info = $medium_info = $codec_info = $audiocodec_info = $standard_info = $processing_info = $team_info = ''; +// if (isset($row["source_name"])) +// $source_info = "   ".$lang_details['text_source']." ".$row['source_name']; +// if (isset($row["medium_name"])) +// $medium_info = "   ".$lang_details['text_medium']." ".$row['medium_name']; +// if (isset($row["codec_name"])) +// $codec_info = "   ".$lang_details['text_codec']." ".$row['codec_name']; +// if (isset($row["standard_name"])) +// $standard_info = "   ".$lang_details['text_stardard']." ".$row['standard_name']; +// if (isset($row["processing_name"])) +// $processing_info = "   ".$lang_details['text_processing']." ".$row['processing_name']; +// if (isset($row["team_name"])) +// $team_info = "   ".$lang_details['text_team']." ".$row['team_name']; +// if (isset($row["audiocodec_name"])) +// $audiocodec_info = "   ".$lang_details['text_audio_codec']." ".$row['audiocodec_name']; - tr($lang_details['row_basic_info'], $size_info.$type_info.$source_info . $medium_info. $codec_info . $audiocodec_info. $standard_info . $processing_info . $team_info, 1); +// tr($lang_details['row_basic_info'], $size_info.$type_info.$source_info . $medium_info. $codec_info . $audiocodec_info. $standard_info . $processing_info . $team_info, 1); + $taxonomyInfo = $searchBoxRep->listTaxonomyInfo($row['search_box_id'], $row); + $taxonomyRendered = ''; + foreach ($taxonomyInfo as $item) { + $taxonomyRendered .= sprintf('   %s: %s', $item['label'], $item['value']); + } + tr($lang_details['row_basic_info'], $size_info.$type_info.$taxonomyRendered, 1); $actions = []; if ($CURUSER["downloadpos"] != "no") { $actions[] = "\"download\" ".$lang_details['text_download_torrent'].""; @@ -386,7 +394,16 @@ JS; { // $where_area = " url = " . sqlesc((int)$imdb_id) ." AND torrents.id != ".sqlesc($id); $where_area = sprintf('torrents.id in (%s)', implode(',', $otherCopiesIdArr)); - $copies_res = sql_query("SELECT torrents.id, torrents.name, torrents.sp_state, torrents.size, torrents.added, torrents.seeders, torrents.leechers, torrents.hr,categories.id AS catid, categories.name AS catname, categories.image AS catimage, sources.name AS source_name, media.name AS medium_name, codecs.name AS codec_name, standards.name AS standard_name, processings.name AS processing_name, categories.mode as search_box_id FROM torrents LEFT JOIN categories ON torrents.category=categories.id LEFT JOIN sources ON torrents.source = sources.id LEFT JOIN media ON torrents.medium = media.id LEFT JOIN codecs ON torrents.codec = codecs.id LEFT JOIN standards ON torrents.standard = standards.id LEFT JOIN processings ON torrents.processing = processings.id WHERE " . $where_area . " ORDER BY torrents.id DESC") or sqlerr(__FILE__, __LINE__); + $copies_res = sql_query("SELECT torrents.id, torrents.name, torrents.sp_state, torrents.size, torrents.added, torrents.seeders, torrents.leechers, torrents.hr,categories.id AS catid, categories.name AS catname, categories.image AS catimage, $taxonomyFields, categories.mode as search_box_id FROM torrents + LEFT JOIN categories ON torrents.category=categories.id + LEFT JOIN sources ON torrents.source = sources.id + LEFT JOIN media ON torrents.medium = media.id + LEFT JOIN codecs ON torrents.codec = codecs.id + LEFT JOIN standards ON torrents.standard = standards.id + LEFT JOIN teams ON torrents.team = teams.id + LEFT JOIN audiocodecs ON torrents.audiocodec = audiocodecs.id + LEFT JOIN processings ON torrents.processing = processings.id +WHERE " . $where_area . " ORDER BY torrents.id DESC") or sqlerr(__FILE__, __LINE__); $copies_count = mysql_num_rows($copies_res); if($copies_count > 0) @@ -402,24 +419,26 @@ JS; { $dispname=substr($dispname, 0, $max_lenght_of_torrent_name) . ".."; } - $other_source_info = $other_medium_info = $other_codec_info = $other_standard_info = $other_processing_info = ''; - if (isset($copy_row["source_name"])) - $other_source_info = $copy_row['source_name'].", "; - if (isset($copy_row["medium_name"])) - $other_medium_info = $copy_row['medium_name'].", "; - if (isset($copy_row["codec_name"])) - $other_codec_info = $copy_row['codec_name'].", "; - if (isset($copy_row["standard_name"])) - $other_standard_info = $copy_row['standard_name'].", "; - if (isset($copy_row["processing_name"])) - $other_processing_info = $copy_row['processing_name'].", "; +// $other_source_info = $other_medium_info = $other_codec_info = $other_standard_info = $other_processing_info = ''; +// if (isset($copy_row["source_name"])) +// $other_source_info = $copy_row['source_name'].", "; +// if (isset($copy_row["medium_name"])) +// $other_medium_info = $copy_row['medium_name'].", "; +// if (isset($copy_row["codec_name"])) +// $other_codec_info = $copy_row['codec_name'].", "; +// if (isset($copy_row["standard_name"])) +// $other_standard_info = $copy_row['standard_name'].", "; +// if (isset($copy_row["processing_name"])) +// $other_processing_info = $copy_row['processing_name'].", "; + $taxonomyInfo = $searchBoxRep->listTaxonomyInfo($copy_row['search_box_id'], $copy_row); + $taxonomyValues = array_column($taxonomyInfo, 'value'); $sphighlight = get_torrent_bg_color($copy_row['sp_state']); $sp_info = get_torrent_promotion_append($copy_row['sp_state'], '', false, '', 0, '', $copy_row['__ignore_global_sp_state'] ?? false); $hrImg = get_hr_img($copy_row, $copy_row['search_box_id']); $s .= "" . - "" . + "" . "" . "" . "" . diff --git a/public/edit.php b/public/edit.php index 672982fb..0dc1c1f0 100644 --- a/public/edit.php +++ b/public/edit.php @@ -9,7 +9,7 @@ if (!$id) die(); $res = sql_query("SELECT torrents.*, categories.mode as cat_mode FROM torrents LEFT JOIN categories ON category = categories.id WHERE torrents.id = $id"); -$row = mysql_fetch_array($res); +$row = mysql_fetch_assoc($res); if (!$row) die(); /** @@ -150,14 +150,14 @@ else { } */ - $sectionCurrent = $searchBoxRep->renderQualitySelect($sectionmode); - tr($lang_edit['row_quality'], $sectionCurrent, 1, "hide mode mode_$sectionmode"); + $sectionCurrent = $searchBoxRep->renderTaxonomySelect($sectionmode, $row); + tr($lang_edit['row_quality'], $sectionCurrent, 1, "mode_$sectionmode"); echo $customField->renderOnUploadPage($id, $sectionmode); echo $hitAndRunRep->renderOnUploadPage($row['hr'], $sectionmode); if ($allowmove && $othermode) { - $selectOther = $searchBoxRep->renderQualitySelect($othermode); - tr($lang_edit['row_quality'], $selectOther, 1, "hide mode mode_$othermode"); + $selectOther = $searchBoxRep->renderTaxonomySelect($othermode, $row); + tr($lang_edit['row_quality'], $selectOther, 1, "mode_$othermode"); echo $customField->renderOnUploadPage($id, $othermode); echo $hitAndRunRep->renderOnUploadPage($row['hr'], $othermode); } diff --git a/public/getrss.php b/public/getrss.php index 18b83fb6..5a2cb87a 100644 --- a/public/getrss.php +++ b/public/getrss.php @@ -300,10 +300,10 @@ if ($allowspecial) //print category list of Special section $categories .= "
    %s%s
    %s
    - {$item->name} + {$item->name}
    %s
    + ".return_category_image($copy_row["catid"], "torrents.php?allsec=1&")."" . $dispname ."". $sp_info. $hrImg ."" . rtrim(trim($other_source_info . $other_medium_info . $other_codec_info . $other_standard_info . $other_processing_info), ","). "" .implode(', ', $taxonomyValues). "" . mksize($copy_row["size"]) . "" . str_replace(" ", "
    ", gettime($copy_row["added"],false)). "
    " . $copy_row["seeders"] . "
    "; */ -$categories = build_search_box_category_table($browsecatmode, 'yes', 'torrents.php?allsec=1', false, 3); +$categories = build_search_box_category_table($browsecatmode, 'yes', 'torrents.php?allsec=1&', false, 3, '', ['section_name' => true]); print($categories); print '
    '; -$categoriesSpecial = build_search_box_category_table($specialcatmode, 'yes', 'torrents.php?allsec=1', false, 3); +$categoriesSpecial = build_search_box_category_table($specialcatmode, 'yes', 'torrents.php?allsec=1&', false, 3, '', ['section_name' => true]); print($categoriesSpecial); ?> diff --git a/public/takeedit.php b/public/takeedit.php index ad310b0f..51d59fde 100644 --- a/public/takeedit.php +++ b/public/takeedit.php @@ -92,13 +92,13 @@ $updateset[] = "url = " . sqlesc($url); $updateset[] = "small_descr = " . sqlesc($_POST["small_descr"]); //$updateset[] = "ori_descr = " . sqlesc($descr); $updateset[] = "category = " . sqlesc($catid); -$updateset[] = "source = " . sqlesc(intval($_POST["source_sel"] ?? 0)); -$updateset[] = "medium = " . sqlesc(intval($_POST["medium_sel"] ?? 0)); -$updateset[] = "codec = " . sqlesc(intval($_POST["codec_sel"] ?? 0)); -$updateset[] = "standard = " . sqlesc(intval($_POST["standard_sel"] ?? 0)); -$updateset[] = "processing = " . sqlesc(intval($_POST["processing_sel"] ?? 0)); -$updateset[] = "team = " . sqlesc(intval($_POST["team_sel"] ?? 0)); -$updateset[] = "audiocodec = " . sqlesc(intval($_POST["audiocodec_sel"] ?? 0)); +$updateset[] = "source = " . sqlesc(intval($_POST["source_sel"][$newcatmode] ?? 0)); +$updateset[] = "medium = " . sqlesc(intval($_POST["medium_sel"][$newcatmode] ?? 0)); +$updateset[] = "codec = " . sqlesc(intval($_POST["codec_sel"][$newcatmode] ?? 0)); +$updateset[] = "standard = " . sqlesc(intval($_POST["standard_sel"][$newcatmode] ?? 0)); +$updateset[] = "processing = " . sqlesc(intval($_POST["processing_sel"][$newcatmode] ?? 0)); +$updateset[] = "team = " . sqlesc(intval($_POST["team_sel"][$newcatmode] ?? 0)); +$updateset[] = "audiocodec = " . sqlesc(intval($_POST["audiocodec_sel"][$newcatmode] ?? 0)); if (user_can('torrentmanage')) { $updateset[] = "visible = '" . (isset($_POST["visible"]) && $_POST["visible"] ? "yes" : "no") . "'"; } diff --git a/public/takeupload.php b/public/takeupload.php index 08bfdcdb..31587e37 100644 --- a/public/takeupload.php +++ b/public/takeupload.php @@ -68,13 +68,17 @@ if (!$descr) bark($lang_takeupload['std_blank_description']); $catid = intval($_POST["type"] ?? 0); -$sourceid = intval($_POST["source_sel"] ?? 0); -$mediumid = intval($_POST["medium_sel"] ?? 0); -$codecid = intval($_POST["codec_sel"] ?? 0); -$standardid = intval($_POST["standard_sel"] ?? 0); -$processingid = intval($_POST["processing_sel"] ?? 0); -$teamid = intval($_POST["team_sel"] ?? 0); -$audiocodecid = intval($_POST["audiocodec_sel"] ?? 0); +$catmod = get_single_value("categories","mode","WHERE id=".sqlesc($catid)); +if (!$catmod) { + bark('Invalid category'); +} +$sourceid = intval($_POST["source_sel"][$catmod] ?? 0); +$mediumid = intval($_POST["medium_sel"][$catmod] ?? 0); +$codecid = intval($_POST["codec_sel"][$catmod] ?? 0); +$standardid = intval($_POST["standard_sel"][$catmod] ?? 0); +$processingid = intval($_POST["processing_sel"][$catmod] ?? 0); +$teamid = intval($_POST["team_sel"][$catmod] ?? 0); +$audiocodecid = intval($_POST["audiocodec_sel"][$catmod] ?? 0); if (!is_valid_id($catid)) bark($lang_takeupload['std_category_unselected']); @@ -177,7 +181,6 @@ if (\App\Models\Torrent::query()->where('info_hash', $infohash)->exists()) { $allowtorrents = user_can_upload("torrents"); $allowspecial = user_can_upload("music"); -$catmod = get_single_value("categories","mode","WHERE id=".sqlesc($catid)); $offerid = intval($_POST['offer'] ?? 0); $is_offer=false; if ($browsecatmode != $specialcatmode && $catmod == $specialcatmode){//upload to special section diff --git a/public/torrents.php b/public/torrents.php index 4d4acebc..e1e7d217 100644 --- a/public/torrents.php +++ b/public/torrents.php @@ -102,15 +102,13 @@ if (isset($_GET['sort']) && $_GET['sort'] && isset($_GET['type']) && $_GET['type $addparam = ""; $wherea = array(); $wherecatina = array(); -if ($showsubcat){ - if ($showsource) $wheresourceina = array(); - if ($showmedium) $wheremediumina = array(); - if ($showcodec) $wherecodecina = array(); - if ($showstandard) $wherestandardina = array(); - if ($showprocessing) $whereprocessingina = array(); - if ($showteam) $whereteamina = array(); - if ($showaudiocodec) $whereaudiocodecina = array(); -} +$wheresourceina = array(); +$wheremediumina = array(); +$wherecodecina = array(); +$wherestandardina = array(); +$whereprocessingina = array(); +$whereteamina = array(); +$whereaudiocodecina = array(); //----------------- start whether show torrents from all sections---------------------// if ($_GET) $allsec = intval($_GET["allsec"] ?? 0); @@ -946,45 +944,46 @@ if ($allsec != 1 || $enablespecial != 'yes'){ //do not print searchbox if showin - - "); - $i = 0; - foreach($listarray as $list){ - if ($i && $i % $catsperrow == 0){ - print(""); - } - print("\n"); - $i++; - } - $checker = ""; - print("\n"); - print(""); - } - printcat($lang_torrents['text_category'],$cats,"cat",$wherecatina,"cat_check",true); - - if ($showsubcat){ - if ($showsource) - printcat($lang_torrents['text_source'], $sources, "source", $wheresourceina, "source_check"); - if ($showmedium) - printcat($lang_torrents['text_medium'], $media, "medium", $wheremediumina, "medium_check"); - if ($showcodec) - printcat($lang_torrents['text_codec'], $codecs, "codec", $wherecodecina, "codec_check"); - if ($showaudiocodec) - printcat($lang_torrents['text_audio_codec'], $audiocodecs, "audiocodec", $whereaudiocodecina, "audiocodec_check"); - if ($showstandard) - printcat($lang_torrents['text_standard'], $standards, "standard", $wherestandardina, "standard_check"); - if ($showprocessing) - printcat($lang_torrents['text_processing'], $processings, "processing", $whereprocessingina, "processing_check"); - if ($showteam) - printcat($lang_torrents['text_team'], $teams, "team", $whereteamina, "team_check"); - } - ?> -
    ".$name."
    ".($showimg ? return_category_image($list['id'], "?") : "".$list['name']."")."".$checker."
    + +".$name.""); +// $i = 0; +// foreach($listarray as $list){ +// if ($i && $i % $catsperrow == 0){ +// print(""); +// } +// print("".($showimg ? return_category_image($list['id'], "?") : "".$list['name']."")."\n"); +// $i++; +// } +// $checker = ""; +// print("".$checker."\n"); +// print(""); +// } +// printcat($lang_torrents['text_category'],$cats,"cat",$wherecatina,"cat_check",true); +// +// if ($showsubcat){ +// if ($showsource) +// printcat($lang_torrents['text_source'], $sources, "source", $wheresourceina, "source_check"); +// if ($showmedium) +// printcat($lang_torrents['text_medium'], $media, "medium", $wheremediumina, "medium_check"); +// if ($showcodec) +// printcat($lang_torrents['text_codec'], $codecs, "codec", $wherecodecina, "codec_check"); +// if ($showaudiocodec) +// printcat($lang_torrents['text_audio_codec'], $audiocodecs, "audiocodec", $whereaudiocodecina, "audiocodec_check"); +// if ($showstandard) +// printcat($lang_torrents['text_standard'], $standards, "standard", $wherestandardina, "standard_check"); +// if ($showprocessing) +// printcat($lang_torrents['text_processing'], $processings, "processing", $whereprocessingina, "processing_check"); +// if ($showteam) +// printcat($lang_torrents['text_team'], $teams, "team", $whereteamina, "team_check"); +// } +// ?> + + diff --git a/public/upload.php b/public/upload.php index e79783ed..b3e1d6b1 100644 --- a/public/upload.php +++ b/public/upload.php @@ -154,14 +154,14 @@ stdhead($lang_upload['head_upload']); $customField = new \Nexus\Field\Field(); $hitAndRunRep = new \App\Repositories\HitAndRunRepository(); if ($allowtorrents) { - $selectNormal = $searchBoxRep->renderQualitySelect($browsecatmode); - tr($lang_upload['row_quality'], $selectNormal, 1, "hide mode mode_$browsecatmode"); + $selectNormal = $searchBoxRep->renderTaxonomySelect($browsecatmode); + tr($lang_upload['row_quality'], $selectNormal, 1, "mode_$browsecatmode"); echo $customField->renderOnUploadPage(0, $browsecatmode); echo $hitAndRunRep->renderOnUploadPage('', $browsecatmode); } if ($allowspecial) { - $selectNormal = $searchBoxRep->renderQualitySelect($specialcatmode); - tr($lang_upload['row_quality'], $selectNormal, 1, "hide mode mode_$specialcatmode"); + $selectNormal = $searchBoxRep->renderTaxonomySelect($specialcatmode); + tr($lang_upload['row_quality'], $selectNormal, 1, "mode_$specialcatmode"); echo $customField->renderOnUploadPage(0, $specialcatmode); echo $hitAndRunRep->renderOnUploadPage('', $specialcatmode); } diff --git a/public/usercp.php b/public/usercp.php index 22a9c79c..20108771 100644 --- a/public/usercp.php +++ b/public/usercp.php @@ -540,9 +540,9 @@ if ($showaudiocodec) $audiocodecs = searchbox_item_list("audiocodecs"); $categories .= "".$lang_usercp['text_show_dead_active']."
    ".$lang_usercp['text_show_special_torrents']."
    ".$lang_usercp['text_show_bookmarked']."
    "; $categories .= ""; */ - $categories = build_search_box_category_table($browsecatmode, 'yes','torrents.php?allsec=1', false, 3, $CURUSER['notifs']); + $categories = build_search_box_category_table($browsecatmode, 'yes','torrents.php?allsec=1', false, 3, $CURUSER['notifs'], ['section_name' => true]); $delimiter = '
    '; - $categoriesSpecial = build_search_box_category_table($specialcatmode, 'yes','torrents.php?allsec=1', false, 3, $CURUSER['notifs']); + $categoriesSpecial = build_search_box_category_table($specialcatmode, 'yes','torrents.php?allsec=1', false, 3, $CURUSER['notifs'], ['section_name' => true]); $extra = "
    {$lang_usercp['text_additional_selection']}
    ".$lang_usercp['text_show_dead_active']."
    ".$lang_usercp['text_show_special_torrents']."
    ".$lang_usercp['text_show_bookmarked']."
    "; tr_small($lang_usercp['row_browse_default_categories'],$categories . $delimiter . $categoriesSpecial . $delimiter . $extra,1); $ss_r = sql_query("SELECT * FROM stylesheets") or die; diff --git a/resources/css/app.css b/resources/css/app.css index e69de29b..b5c61c95 100644 --- a/resources/css/app.css +++ b/resources/css/app.css @@ -0,0 +1,3 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; diff --git a/resources/js/app.js b/resources/js/app.js index 40c55f65..11d41c90 100644 --- a/resources/js/app.js +++ b/resources/js/app.js @@ -1 +1,10 @@ -require('./bootstrap'); +import Alpine from 'alpinejs' +import AlpineFloatingUI from '@awcodes/alpine-floating-ui' +import NotificationsAlpinePlugin from '../../vendor/filament/notifications/dist/module.esm' + +Alpine.plugin(AlpineFloatingUI) +Alpine.plugin(NotificationsAlpinePlugin) + +window.Alpine = Alpine + +Alpine.start() diff --git a/resources/lang/zh_CN/admin.php b/resources/lang/zh_CN/admin.php index 2e7c28d7..b8a258d4 100644 --- a/resources/lang/zh_CN/admin.php +++ b/resources/lang/zh_CN/admin.php @@ -24,9 +24,11 @@ return [ 'torrent_deny_reason' => '拒绝原因', 'roles' => '角色', 'permissions' => '权限', - 'section' => '分区', + 'section' => '分类模式', 'icon' => '分类图标', 'plugin' => '插件', + 'category' => '主分类', + 'second_icon' => '第二图标', ], 'resources' => [ 'agent_allow' => [ diff --git a/resources/lang/zh_CN/label.php b/resources/lang/zh_CN/label.php index 2f59a2b8..ddf4d0e8 100644 --- a/resources/lang/zh_CN/label.php +++ b/resources/lang/zh_CN/label.php @@ -243,7 +243,7 @@ return [ ], ], 'search_box' => [ - 'label' => '分区', + 'label' => '分类模式', 'name' => '名称', 'section_name' => '分区名称', 'section_name_help' => '若设置,显示在菜单上', @@ -271,6 +271,8 @@ return [ 'image' => '图片文件名', 'image_help' => '图片文件的名字。允许的字符:[a-z](小写),[0-9],[_./]。', 'icon_id' => '分类图标', + 'mode' => '分区', + 'mode_help' => '留空表示适用于全部分区', ], ], 'icon' => [ @@ -301,4 +303,15 @@ return [ 第二图标='是' 你应该将一个电影类型的图标(如'movies.png')文件放入'pic/category/chd/nanosofts/',将一个第二图标(如'bdh264.png')放入'pic/category/chd/nanosofts/additional/'。", ], + 'second_icon' => [ + 'label' => '第二图标', + 'name' => '名字', + 'name_help' => '不要使用过长的名字。建议在10个字母内。', + 'image' => "图片文件名", + 'image_help' => "图片文件的名字。允许的字符:[a-z](小写),[0-9],[_./]。", + 'class_name' => 'class属性值', + 'class_name_help' => "为图片指定class属性值。若无请留空。允许的字符: [a-z](小写),[0-9],[_],第一个字符必须是字母。", + 'select_section' => '选择', + 'select_section_help' => "如果某个选择未指定,其所有选项都符合此规则。必须至少指定一个选择。", + ], ]; diff --git a/resources/lang/zh_CN/searchbox.php b/resources/lang/zh_CN/searchbox.php index 501d36ca..68a2b95a 100644 --- a/resources/lang/zh_CN/searchbox.php +++ b/resources/lang/zh_CN/searchbox.php @@ -8,7 +8,7 @@ return [ 'sub_category_team_label' => '制作组', 'sub_category_processing_label' => '处理', 'sub_category_codec_label' => '编码', - 'sub_category_audio_codec_label' => '音频编码', + 'sub_category_audiocodec_label' => '音频编码', 'extras' => [ \App\Models\SearchBox::EXTRA_DISPLAY_COVER_ON_TORRENT_LIST => '种子列表页展示封面', \App\Models\SearchBox::EXTRA_DISPLAY_SEED_BOX_ICON_ON_TORRENT_LIST => '种子列表页展示 SeedBox 图标', diff --git a/resources/views/filament/resources/system/category-icon-resource/pages/edit-record.blade.php b/resources/views/filament/resources/system/category-icon-resource/pages/edit-record.blade.php index e8f49b73..d1d1f8c0 100644 --- a/resources/views/filament/resources/system/category-icon-resource/pages/edit-record.blade.php +++ b/resources/views/filament/resources/system/category-icon-resource/pages/edit-record.blade.php @@ -1,11 +1,12 @@ + @capture($form)
    {!! $desc !!}

    @@ -16,10 +17,33 @@ :full-width="$this->hasFullWidthFormActions()" />
    + @endcapture - @if (count($relationManagers = $this->getRelationManagers())) - + @php + $relationManagers = $this->getRelationManagers(); + @endphp - + @if ((! $this->hasCombinedRelationManagerTabsWithForm()) || (! count($relationManagers))) + {{ $form() }} + @endif + + @if (count($relationManagers)) + @if (! $this->hasCombinedRelationManagerTabsWithForm()) + + @endif + + + @if ($this->hasCombinedRelationManagerTabsWithForm()) + + {{ $form() }} + + @endif + @endif
    diff --git a/tailwind.config.js b/tailwind.config.js new file mode 100644 index 00000000..6dbeb98f --- /dev/null +++ b/tailwind.config.js @@ -0,0 +1,18 @@ +const colors = require('tailwindcss/colors') + +module.exports = { + content: [ + './resources/**/*.blade.php', + './vendor/filament/**/*.blade.php', + ], + theme: { + extend: { + colors: { + danger: colors.rose, + primary: colors.blue, + success: colors.green, + warning: colors.yellow, + }, + }, + }, +} diff --git a/webpack.mix.js b/webpack.mix.js index 2a22dc12..8794228b 100644 --- a/webpack.mix.js +++ b/webpack.mix.js @@ -12,6 +12,6 @@ const mix = require('laravel-mix'); */ mix.js('resources/js/app.js', 'public/js') - .postCss('resources/css/app.css', 'public/css', [ - // + .postCss('resources/css/app.css', 'public/styles', [ + require('tailwindcss'), ]);