. */ declare(strict_types=1); namespace FireflyIII\Providers; use Illuminate\Support\Facades\Blade; use Illuminate\Support\Facades\Response; use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Schema; use Illuminate\Support\ServiceProvider; use Laravel\Passport\Passport; /** * Class AppServiceProvider */ class AppServiceProvider extends ServiceProvider { /** * Bootstrap any application services. */ public function boot(): void { Schema::defaultStringLength(191); Response::macro('api', function (array $value) { $headers = [ 'Cache-Control' => 'no-store', ]; $uuid = (string)request()->header('X-Trace-Id'); if ('' !== trim($uuid) && (1 === preg_match('/^[a-f\d]{8}(-[a-f\d]{4}){4}[a-f\d]{8}$/i', trim($uuid)))) { $headers['X-Trace-Id'] = $uuid; } return response() ->json($value) ->withHeaders($headers) ; }); // blade extension Blade::directive('activeXRoutePartial', function (string $route) { $name = \Route::getCurrentRoute()->getName() ?? ''; if (str_contains($name, $route)) { return 'menu-open'; } return ''; }); Blade::if('partialroute', function (string $route, string $firstParam = '') { $name = Route::getCurrentRoute()->getName() ?? ''; if ('' === $firstParam && str_contains($name, $route)) { return true; } /** @var null|array $params */ $params = Route::getCurrentRoute()->parameters(); $params ??= []; $objectType = $params['objectType'] ?? ''; if ($objectType === $firstParam && str_contains($name, $route)) { return true; } return false; }); } /** * Register any application services. */ public function register(): void { Passport::ignoreRoutes(); // Passport::ignoreMigrations(); // Sanctum::ignoreMigrations(); } }