diff --git a/.env.example b/.env.example index 8bfed86..5425dff 100644 --- a/.env.example +++ b/.env.example @@ -1,6 +1,6 @@ APP_NAME=Laravel APP_ENV=local -APP_KEY=base64:RiWBp49nfpfayJpARxkxdBXKRSrLnVDvq3UjAuW4qWQ= +APP_KEY= APP_DEBUG=true APP_URL=http://127.0.0.1:8000 @@ -8,42 +8,28 @@ LOG_CHANNEL=stack LOG_LEVEL=debug # docker -# DB_CONNECTION="pgsql" -# DB_HOST=mediumdb -# DB_PORT=5432 -# DB_DATABASE=medium -# DB_USERNAME="dani" -# DB_PASSWORD="password" - -# mysql -DB_CONNECTION="mysql" -DB_HOST=127.0.0.1 -DB_PORT=3306 -DB_DATABASE=blog -DB_USERNAME="daniel" -DB_PASSWORD="Password123#@!" - -BROADCAST_DRIVER=log +DB_CONNECTION="pgsql" +DB_HOST=redact_db +DB_PORT=5432 +DB_DATABASE=postgres +DB_USERNAME="dani" +DB_PASSWORD="password" + +BROADCAST_DRIVER=pusher CACHE_DRIVER=redis -FILESYSTEM_DRIVER=local -QUEUE_CONNECTION=redis -# SESSION_DRIVER=file -# SESSION_LIFETIME=120 +FILESYSTEM_DRIVER=minio +QUEUE_CONNECTION=rabbitmq -# REDIS_HOST=redis -# REDIS_PASSWORD= -# REDIS_PORT=6379 - -REDIS_HOST=mediumredis +REDIS_HOST="redact_cache" REDIS_PASSWORD=null REDIS_PORT=6379 MAIL_MAILER=smtp MAIL_HOST=smtp.mailtrap.io MAIL_PORT=2525 -MAIL_USERNAME=3e3ff464db3fda -MAIL_PASSWORD=aec248ea70249a -MAIL_ENCRYPTION=tls +MAIL_USERNAME= +MAIL_PASSWORD= +MAIL_ENCRYPTION= AWS_ACCESS_KEY_ID= AWS_SECRET_ACCESS_KEY= @@ -54,7 +40,21 @@ AWS_USE_PATH_STYLE_ENDPOINT=false PUSHER_APP_ID= PUSHER_APP_KEY= PUSHER_APP_SECRET= -PUSHER_APP_CLUSTER=mt1 +PUSHER_HOST= +PUSHER_PORT=443 +PUSHER_SCHEME=https +PUSHER_APP_CLUSTER= MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}" MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}" + +SCOUT_DRIVER="elastic" +SCOUT_QUEUE=true + +ELASTIC_HOST="redact_elastic" +RABBITMQ_HOST="redact_rabbitmq" + +CUSTOM_ELASTIC_IP=172.19.0.30 +CUSTOM_KIBANA_IP=172.19.0.40 +CUSTOM_MINIO_IP=172.19.0.20 +SUBNET=172.19.0.0/16 diff --git a/.env.example.ci b/.env.example.ci index 7b4efdf..cdfe0b3 100644 --- a/.env.example.ci +++ b/.env.example.ci @@ -1,8 +1,8 @@ -APP_NAME=Laravel -APP_ENV=local +APP_NAME=redact +APP_ENV=staging APP_KEY= APP_DEBUG=true -APP_URL=http://localhost +APP_URL=http://127.0.0.1 LOG_CHANNEL=stack LOG_DEPRECATIONS_CHANNEL=null @@ -10,10 +10,10 @@ LOG_LEVEL=debug DB_CONNECTION=mysql DB_HOST=127.0.0.1 -DB_PORT=3306 -DB_DATABASE=laravel +DB_PORT=33306 +DB_DATABASE=db_test DB_USERNAME=root -DB_PASSWORD= +DB_PASSWORD=password BROADCAST_DRIVER=log CACHE_DRIVER=file @@ -57,3 +57,4 @@ VITE_PUSHER_PORT="${PUSHER_PORT}" VITE_PUSHER_SCHEME="${PUSHER_SCHEME}" VITE_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}" +ELASTIC_HOST="localhost" diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 539df6d..c28d3da 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -1,11 +1,22 @@ name: Tests - on: [ push, pull_request ] - jobs: - laravel-blog: + redact: runs-on: ubuntu-latest services: + elasticsearch: + image: docker.elastic.co/elasticsearch/elasticsearch:7.4.0 + env: + discovery.type: single-node + options: >- + --name mediumElasticsearch + --hostname mediumElasticsearch + --health-cmd "curl http://localhost:9200/_cluster/health" + --health-interval 10s + --health-timeout 5s + --health-retries 10 + ports: + - 9200:9200 mysql-service: image: mysql:5.7 env: @@ -18,25 +29,35 @@ jobs: --health-interval=10s --health-timeout=5s --health-retries=3 - steps: - name: Checkout code uses: actions/checkout@v3 + - name: Verify Elasticsearch connection from host + env: + ELASTIC_SEARCH_URL: http://localhost:${{ job.services.elasticsearch.ports[9200] }} + run: | + echo $ELASTIC_SEARCH_URL + curl -fsSL "$ELASTIC_SEARCH_URL/_cat/health?h=status" - name: Setup PHP uses: shivammathur/setup-php@v2 with: - php-version: 7.4 + php-version: 8.1 extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite coverage: none - - name: Install Composer dependencies run: composer install --prefer-dist --no-interaction - - name: Copy environment file run: cp .env.example.ci .env - - name: Generate app key run: php artisan key:generate + - name: Optimization + run: php artisan optimize:clear + - name: Migration + run: php artisan migrate:fresh --seed + - name: Import indexes + run: php artisan scout:index posts + - name: Import db + run: php artisan scout:import "Module\Post\Models\Post" - name: Execute tests (Unit and Feature tests) via PHPUnit env: DB_CONNECTION: mysql @@ -46,3 +67,5 @@ jobs: DB_PASSWORD: password run: php artisan test +# - name: Run php stan +# run: ./vendor/bin/phpstan analyse --memory-limit=2G diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..5f1a3ad --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 Daniel + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Modules/Auth/Http/Controllers/v1/AuthController.php b/Modules/Auth/Http/Controllers/v1/AuthController.php new file mode 100644 index 0000000..dbff21a --- /dev/null +++ b/Modules/Auth/Http/Controllers/v1/AuthController.php @@ -0,0 +1,67 @@ +service = resolve(AuthService::class); + } + + /** + * Register user + * + * @param RegisterRequest $request + * @return JsonResponse $this->response($status,$message,$data) + */ + public function register(RegisterRequest $request) + { + $res = $this->service->store($request); + + // verification by mail + event(new Registered($res['user'])); + + return $this->res('success', Response::HTTP_CREATED, 'Successfully register', $res); + } + + /** + * Login user + * + * @param LoginRequest $request + * @return JsonResponse $this->response($status,$message,$data) + */ + public function login(LoginRequest $request) + { + $res = $this->service->login($request); + + return $this->res($res[0], $res[1], $res[2], $res[3]); + } + + public function res(string $status, int $code, string|null $message, array|int|ResourceCollection|JsonResource $data = null): JsonResponse + { + return response()->json([ + 'status' => $status, + 'message' => $message, + 'data' => ! $data ? null : [ + 'user' => new UserResource($data['user']), + 'token' => $data['token'], + ], + ], $code); + } +} diff --git a/Modules/Auth/Http/Controllers/v1/VerifyController.php b/Modules/Auth/Http/Controllers/v1/VerifyController.php new file mode 100644 index 0000000..ead15d9 --- /dev/null +++ b/Modules/Auth/Http/Controllers/v1/VerifyController.php @@ -0,0 +1,33 @@ +fulfill(); + + return 'ok,verify it'; + } + + /** + * @param Request $request + * @return mixed + */ + public function send(Request $request) + { + return null; + /*$request->user()->sendEmailVerificationNotification(); + + return 'send it';*/ + } +} diff --git a/Modules/User/Http/Controllers/auth/v2/AuthController.php b/Modules/Auth/Http/Controllers/v2/AuthController.php similarity index 53% rename from Modules/User/Http/Controllers/auth/v2/AuthController.php rename to Modules/Auth/Http/Controllers/v2/AuthController.php index 1b5dbfa..b022d73 100644 --- a/Modules/User/Http/Controllers/auth/v2/AuthController.php +++ b/Modules/Auth/Http/Controllers/v2/AuthController.php @@ -1,44 +1,45 @@ service = resolve(UserService::class); + $this->service = resolve(AuthService::class); } /** * Register user - * @param \Module\User\Http\Requests\v2\RegisterRequest $request - * @return \Illuminate\Http\JsonResponse + * + * @param RegisterRequest $request + * @return JsonResponse */ public function register(RegisterRequest $request) { $store = $this->service->store($request); - event(new Registered($store['data']['user'])); - return $this->res($store['status'], $store['code'], $store['message'], $store['data']); } /** * Login user - * @param \Module\User\Http\Requests\v2\LoginRequest $request - * @return \Illuminate\Http\JsonResponse $this->response($status,$message,$data) + * + * @param LoginRequest $request + * @return JsonResponse $this->response($status,$message,$data) */ public function login(LoginRequest $request): \Illuminate\Http\JsonResponse { @@ -47,15 +48,15 @@ public function login(LoginRequest $request): \Illuminate\Http\JsonResponse return $this->res($login['status'], $login['code'], $login['message'], $login['data']); } - public function res($status, $code, $message, $data = null): \Illuminate\Http\JsonResponse + public function res(string $status, int $code, string|null $message, array|int|ResourceCollection|JsonResource $data = null): JsonResponse { return response()->json([ 'status' => $status, 'message' => $message, - 'data' => !$data ? null : [ + 'data' => ! $data ? null : [ 'user' => new UserResource($data['user']), - 'token' => $data['token'] - ] + 'token' => $data['token'], + ], ], $code); } } diff --git a/Modules/Auth/Http/Controllers/v2/ChangePsdController.php b/Modules/Auth/Http/Controllers/v2/ChangePsdController.php new file mode 100644 index 0000000..775e499 --- /dev/null +++ b/Modules/Auth/Http/Controllers/v2/ChangePsdController.php @@ -0,0 +1,37 @@ +changePsd($request); + + return $this->res($result['status'], $result['code'], $result['message'], $result['data']); + } + + public function res(string $status, int $code, string|null $message, array|int|JsonResource $data = null): JsonResponse + { + return response()->json([ + 'status' => $status, + 'message' => $message, + 'data' => $data, + ], $code); + } +} diff --git a/Modules/Auth/Http/Controllers/v2/ForgetPsdController.php b/Modules/Auth/Http/Controllers/v2/ForgetPsdController.php new file mode 100644 index 0000000..99d953b --- /dev/null +++ b/Modules/Auth/Http/Controllers/v2/ForgetPsdController.php @@ -0,0 +1,55 @@ +service()->forgetPassword($request->field); + + return $this->res($res['status'], $res['code'], $res['message']); + } + + /** + * Handle verify forget password + * + * @param Request $request + * @return \Illuminate\Http\JsonResponse + */ + public function verifyForgetPsd(Request $request) + { + $res = $this->service()->verfyToken($request->token); + + return $this->res($res['status'], $res['code'], $res['message']); + } + + public function res(string $status, int $code, string|null $message, array|int|JsonResource $data = null): JsonResponse + { + return response()->json([ + 'status' => $status, + 'message' => $message, + 'data' => $data, + ], $code); + } +} diff --git a/Modules/Auth/Http/Controllers/v2/VerifyController.php b/Modules/Auth/Http/Controllers/v2/VerifyController.php new file mode 100644 index 0000000..1625b78 --- /dev/null +++ b/Modules/Auth/Http/Controllers/v2/VerifyController.php @@ -0,0 +1,45 @@ + 'verified', + 'reason' => 'verify complete', + ]; + $res = $service->verifyHandler($user, $data); + + return $this->res( + 'success', + 200, + 'successfully verify', + $res + ); + } + + public function res(string $status, int $code, string|null $message, array|int|JsonResource $data = null): JsonResponse + { + return response()->json([ + 'status' => $status, + 'message' => $message, + 'data' => $data, + ], $code); + } +} diff --git a/Modules/User/Http/Requests/v2/LoginRequest.php b/Modules/Auth/Http/Requests/v1/LoginRequest.php similarity index 87% rename from Modules/User/Http/Requests/v2/LoginRequest.php rename to Modules/Auth/Http/Requests/v1/LoginRequest.php index c8f26d8..a5e0fea 100644 --- a/Modules/User/Http/Requests/v2/LoginRequest.php +++ b/Modules/Auth/Http/Requests/v1/LoginRequest.php @@ -1,6 +1,6 @@ 'required|email|string', diff --git a/Modules/User/Http/Requests/v2/RegisterRequest.php b/Modules/Auth/Http/Requests/v1/RegisterRequest.php similarity index 84% rename from Modules/User/Http/Requests/v2/RegisterRequest.php rename to Modules/Auth/Http/Requests/v1/RegisterRequest.php index 9795ae8..a0303d3 100644 --- a/Modules/User/Http/Requests/v2/RegisterRequest.php +++ b/Modules/Auth/Http/Requests/v1/RegisterRequest.php @@ -1,6 +1,6 @@ 'required|string|min:3', 'email' => 'required|email|unique:users', 'password' => 'required|min:8', - 'phone' => 'required' ]; } } diff --git a/Modules/Auth/Http/Requests/v2/ChangePsdRequest.php b/Modules/Auth/Http/Requests/v2/ChangePsdRequest.php new file mode 100644 index 0000000..6c180b5 --- /dev/null +++ b/Modules/Auth/Http/Requests/v2/ChangePsdRequest.php @@ -0,0 +1,31 @@ + 'required|string|min:8', + 'password' => 'required|string|min:8|confirmed', + ]; + } +} diff --git a/Modules/User/Http/Requests/v1/LoginRequest.php b/Modules/Auth/Http/Requests/v2/LoginRequest.php similarity index 79% rename from Modules/User/Http/Requests/v1/LoginRequest.php rename to Modules/Auth/Http/Requests/v2/LoginRequest.php index 57f6c62..3570f4f 100644 --- a/Modules/User/Http/Requests/v1/LoginRequest.php +++ b/Modules/Auth/Http/Requests/v2/LoginRequest.php @@ -1,6 +1,6 @@ 'required|email|string', - 'password' => 'required|min:8' + 'password' => 'required|min:8', ]; } } diff --git a/Modules/User/Http/Requests/v1/RegisterRequest.php b/Modules/Auth/Http/Requests/v2/RegisterRequest.php similarity index 77% rename from Modules/User/Http/Requests/v1/RegisterRequest.php rename to Modules/Auth/Http/Requests/v2/RegisterRequest.php index 56d0525..0dceaf5 100644 --- a/Modules/User/Http/Requests/v1/RegisterRequest.php +++ b/Modules/Auth/Http/Requests/v2/RegisterRequest.php @@ -1,6 +1,6 @@ 'required|string|min:3', 'email' => 'required|email|unique:users', - 'password' => 'required|min:8' + 'password' => 'required|min:8', + 'phone' => 'required', ]; } } diff --git a/Modules/Auth/Mail/ForgetPassword.php b/Modules/Auth/Mail/ForgetPassword.php new file mode 100644 index 0000000..0328053 --- /dev/null +++ b/Modules/Auth/Mail/ForgetPassword.php @@ -0,0 +1,35 @@ +view('auth::email/forget-password') + ->with([ + 'data' => $this->data, + 'token' => $this->token, + ]); + } +} diff --git a/Modules/Auth/Notifications/ForgetPsdNotify.php b/Modules/Auth/Notifications/ForgetPsdNotify.php new file mode 100644 index 0000000..4aeedad --- /dev/null +++ b/Modules/Auth/Notifications/ForgetPsdNotify.php @@ -0,0 +1,60 @@ +line($this->field) + ->action($this->token, url('/')) + ->line('submit token'); + } + + /** + * Get the array representation of the notification. + * + * @param mixed $notifiable + * @return array + */ + public function toArray($notifiable):array + { + return [ + // + ]; + } +} diff --git a/Modules/Auth/Providers/AuthServiceProvider.php b/Modules/Auth/Providers/AuthServiceProvider.php new file mode 100644 index 0000000..e8785a1 --- /dev/null +++ b/Modules/Auth/Providers/AuthServiceProvider.php @@ -0,0 +1,27 @@ +middleware('api') + ->namespace($this->namespace) + ->group(__DIR__.'/../Routes/v1/auth_route.php'); + + /** v2 */ + Route::prefix('api/auth') + ->middleware('api') + ->namespace($this->namespace) + ->group(__DIR__.'/../Routes/v2/auth_route.php'); + + $this->loadViewsFrom(__DIR__.'/../Resources/views/Auth', 'auth'); + } +} diff --git a/Modules/Auth/Resources/views/Auth/email/forget-password.blade.php b/Modules/Auth/Resources/views/Auth/email/forget-password.blade.php new file mode 100644 index 0000000..6e06f70 --- /dev/null +++ b/Modules/Auth/Resources/views/Auth/email/forget-password.blade.php @@ -0,0 +1,2 @@ +{{ $data }} +{{ $token }} diff --git a/Modules/Auth/Routes/v1/auth_route.php b/Modules/Auth/Routes/v1/auth_route.php new file mode 100644 index 0000000..d8023f9 --- /dev/null +++ b/Modules/Auth/Routes/v1/auth_route.php @@ -0,0 +1,11 @@ +name('login'); +// Register +Route::post('register', [AuthController::class, 'register'])->name('register'); + +require 'verify_route.php'; diff --git a/Modules/Auth/Routes/v1/verify_route.php b/Modules/Auth/Routes/v1/verify_route.php new file mode 100644 index 0000000..5a73e1c --- /dev/null +++ b/Modules/Auth/Routes/v1/verify_route.php @@ -0,0 +1,11 @@ +middleware('auth')->name('verification.notice'); + +Route::get('/email/verify/{id}/{hash}', [VerifyController::class, 'verify'])->middleware(['auth:sanctum', 'signed'])->name('verification.verify'); +Route::post('/email/verification-notification', [VerifyController::class, 'send'])->middleware(['auth:sanctum', 'throttle:6,1'])->name('verification.send');*/ diff --git a/Modules/Auth/Routes/v2/auth_route.php b/Modules/Auth/Routes/v2/auth_route.php new file mode 100644 index 0000000..3abd75b --- /dev/null +++ b/Modules/Auth/Routes/v2/auth_route.php @@ -0,0 +1,20 @@ +name('login.v2'); +// Register +Route::post('register.v2', [AuthController::class, 'register'])->name('register.v2'); + +// Forget password +Route::post('forget-password.v2', [ForgetPsdController::class, 'forgetPassword'])->name('forget-password'); +// Verify forget password +Route::post('verify.forget-password.v2', [ForgetPsdController::class, 'verifyForgetPsd'])->name('verify-forget-psd'); + +Route::middleware('auth:sanctum')->group(function () { + Route::post('change_password.v2', [\Module\Auth\Http\Controllers\v2\ChangePsdController::class, 'changPsd'])->name('chang-psd'); +}); +require 'verify_route.php'; diff --git a/Modules/Auth/Routes/v2/verify_route.php b/Modules/Auth/Routes/v2/verify_route.php new file mode 100644 index 0000000..92ab50d --- /dev/null +++ b/Modules/Auth/Routes/v2/verify_route.php @@ -0,0 +1,8 @@ +middleware(['auth:sanctum', 'signed']) + ->name('verify.v2'); diff --git a/Modules/Auth/Services/AuthService.php b/Modules/Auth/Services/AuthService.php new file mode 100644 index 0000000..db7e3bc --- /dev/null +++ b/Modules/Auth/Services/AuthService.php @@ -0,0 +1,14 @@ +model + * + * @param int $param + * @param Request; $request + * @return mixed + */ + public function update(int $param, $request) + { + if ($request->only('role')) { + $user = $this->model()->findOrFail($param); + $user->assignRole($request->role); + + return; + } + + return $this->model() + ->whereId($param) + ->update($request->validated()); + } + + /** + *Create new user + * + * @param $request + * @return array + */ + public function store($request) + { + $user = $this->model()->create([ + 'username' => $request->name, + 'email' => $request->email, + 'phone' => $request->phone, + 'password' => Hash::make($request->password), + ]); + $token = $user->createToken('token')->plainTextToken; + + return [ + 'token' => $token, + 'user' => $user, + ]; + } + + /** + * try to log in + * + * @param $request + * @return array + */ + public function login($request): array + { + $user = $this->model()->whereEmail($request->email)->first(); + + // Check exist user + if (! $user || ! Hash::check($request->password, $user->password)) { + return $this->response('fail', Response::HTTP_UNAUTHORIZED, 'invalid email or password'); + } + + $token = $user->createToken('token')->plainTextToken; + + return $this->response('success', Response::HTTP_OK, 'Successfully login', ['user' => $user, 'token' => $token] + ); + } + + /** + * Return array + * + * @param string $status + * @param int $code + * @param string $message + * @param null $data + * @return array + */ + private function response(string $status, int $code, string $message, $data = null): array + { + return [ + $status, + $code, + $message, + $data, + ]; + } +} diff --git a/Modules/Auth/Services/v2/AuthService.php b/Modules/Auth/Services/v2/AuthService.php new file mode 100644 index 0000000..59afe80 --- /dev/null +++ b/Modules/Auth/Services/v2/AuthService.php @@ -0,0 +1,164 @@ +model()->create([ + 'username' => $request->name, + 'email' => $request->email, + 'phone' => $request->phone, + 'password' => Hash::make($request->password), + ]); + + $token = $user->createToken('token')->plainTextToken; + + return [ + 'status' => 'success', + 'code' => Response::HTTP_CREATED, + 'message' => 'Successfully registered', + 'data' => [ + 'user' => $user, + 'token' => $token, + ], + ]; + } + + /** + * try to login + * + * @param $request + * @return null + */ + public function login($request): array + { + $user = User::whereEmail($request->email)->first(); + + // Check exist user + if (!$user || !Hash::check($request->password, $user->password)) { + return $this->response( + 'error', + Response::HTTP_UNAUTHORIZED, + 'invalid email or password', + null + ); + } + + $token = $user->createToken('test')->plainTextToken; + + return $this->response( + 'success', + Response::HTTP_OK, + 'Successfully login', + ['user' => $user, 'token' => $token] + ); + } + + /** + * Forget password + * + * @param string $field + * @return array + */ + public function forgetPassword(string $field) + { + $data = filter_var($field, FILTER_VALIDATE_EMAIL) ? 'email' : 'phone'; + + // check exist user + $user = (new UserRepository)->getCustomRow($data, $field); + if (!$user) { + return $this->response('fail', Response::HTTP_UNAUTHORIZED, 'email not found', null); + } + + $token = Str::random(5); + $request = new stdClass(); + $request->token = $token; + $request->data = $data; + $request->field = $field; + $request->type = "$data verified"; + (new TokenRepository())->store($user, $request); + + (new ForgetPassword)->forgetPassword(new ForgetPasswordEmail($user, $token)); + + return $this->response('success', Response::HTTP_OK, 'send token for forgot password', null); + } + + /** + * @param string $token + * @return array + */ + public function changePsd($request) + { + if (!Hash::check($request->old_password, auth()->user()->password)) { + return $this->response('fail', 400, "mot match", null); + } + + $user = auth()->user(); + $user = tap($user, function ($user) use ($request) { + $user->update([ + 'password' => Hash::make($request->password) + ]); + }); + return $this->response('success', 200, "match", new UserResource($user)); + } + + public function verfyToken(string $token) + { + $res = (new TokenRepository)->existToken($token); + + return $res ? + $this->response('success', '200', 'correct', null) : + $this->response('fail', '404', 'incorrect', null); + } + + /** + * Handle verify action + * + * @param User $user + * @param array $data + * @return mixed + */ + public function verifyHandler(User $user, array $data) + { + return (new StatusRepository)->update($user, $data); + } + + /** + * Return array + * + * @param string $status + * @param int $code + * @param string $message + * @param $data + * @return array + */ + private function response(string $status, int $code, string $message, $data): array + { + return [ + 'status' => $status, + 'code' => $code, + 'message' => $message, + 'data' => $data ?: null, + ]; + } +} diff --git a/Modules/Auth/Services/v2/Email/ForgetPasswordEmail.php b/Modules/Auth/Services/v2/Email/ForgetPasswordEmail.php new file mode 100644 index 0000000..cb03792 --- /dev/null +++ b/Modules/Auth/Services/v2/Email/ForgetPasswordEmail.php @@ -0,0 +1,19 @@ +user->notify(new ForgetPsdNotify($this->user->email, $this->token)); + } +} diff --git a/Modules/Auth/Services/v2/ForgetPassword.php b/Modules/Auth/Services/v2/ForgetPassword.php new file mode 100644 index 0000000..7bfc1b9 --- /dev/null +++ b/Modules/Auth/Services/v2/ForgetPassword.php @@ -0,0 +1,11 @@ +send(); + } +} diff --git a/Modules/Auth/Services/v2/ForgetPasswordInterface.php b/Modules/Auth/Services/v2/ForgetPasswordInterface.php new file mode 100644 index 0000000..ee0d030 --- /dev/null +++ b/Modules/Auth/Services/v2/ForgetPasswordInterface.php @@ -0,0 +1,8 @@ +CreateUser(); + + $this->post(route('chang-psd'), [ + 'old_password' => 'wrongpassword', + 'password' => 'newpassword', + 'password_confirmation' => 'newpassword' + ])->assertStatus(400); + } + + /** @test */ + public function password_confirmation_not_match() + { + $this->CreateUser(); + + $this->post(route('chang-psd'), [ + 'old_password' => 'password', + 'password' => 'newpassword', + 'password_confirmation' => 'newpassword2' + ])->assertStatus(422); + } + + /** @test */ + public function correct_operation() + { + $password = 'newpassword'; + $this->CreateUser(); + + $this->post(route('chang-psd'), [ + 'old_password' => 'password', + 'password' => $password, + 'password_confirmation' => $password + ])->assertStatus(200); + + $cond = Hash::check($password, auth()->user()->password); + $this->assertTrue($cond); + } +} diff --git a/Modules/Auth/tests/Feature/ForgetPsdTest.php b/Modules/Auth/tests/Feature/ForgetPsdTest.php new file mode 100644 index 0000000..4f27d81 --- /dev/null +++ b/Modules/Auth/tests/Feature/ForgetPsdTest.php @@ -0,0 +1,92 @@ +CreateUser(); + $this->post(route('forget-password'), [ + 'field' => 'dan@dan.com' + ])->assertUnauthorized(); + } + + /** @test */ + public function success_operation() + { + $this->CreateUser(); + $this->post(route('forget-password'), [ + 'field' => 'test@test.com' + ])->assertOk(); + + $this->assertDatabaseHas('tokens', [ + 'type' => 'email verified' + ]); + } + + /** @test */ + public function mock_notify_for_forget_psd() + { + $this->CreateUser(); + $this->post(route('forget-password'), [ + 'field' => 'test@test.com' + ])->assertOk(); + + Notification::fake(); + + Notification::assertNotSentTo( + User::where('email', 'test@test.com')->first(), + ForgetPsdNotify::class + ); + } + + /** @test */ + public function check_exist_incorrect_token() + { + $this->post(route('verify-forget-psd'), [ + 'token' => 'abcde', + ])->assertNotFound(); + } + + /** @test */ + public function check_exist_correct_token() + { + $this->CreateUser(); + $this->post(route('forget-password'), [ + 'field' => 'test@test.com' + ])->assertOk(); + $token = Token::first()->token; + + $this->post(route('verify-forget-psd'), [ + 'token' => $token, + ])->assertOk(); + } + + /** @test */ + public function check_exist_correct_token_with_incorrect_time() + { + $this->CreateUser(); + $this->post(route('forget-password'), [ + 'field' => 'test@test.com' + ])->assertOk(); + $token = Token::first()->token; + + // should a fewer 10 minute + $this->travelTo(now()->addMinutes(11)); + $this->post(route('verify-forget-psd'), [ + 'token' => $token, + ])->assertNotFound(); + } +} diff --git a/Modules/User/tests/Feature/CrudUser/Auth/LoginTest.php b/Modules/Auth/tests/Feature/LoginTest.php similarity index 66% rename from Modules/User/tests/Feature/CrudUser/Auth/LoginTest.php rename to Modules/Auth/tests/Feature/LoginTest.php index bce4528..913000b 100644 --- a/Modules/User/tests/Feature/CrudUser/Auth/LoginTest.php +++ b/Modules/Auth/tests/Feature/LoginTest.php @@ -1,28 +1,27 @@ withoutExceptionHandling(); $this->CreateUser(); $res = $this->post(route('login.v2'), [ - 'email' => "test@test.com", - 'password' => "password" + 'email' => 'test@test.com', + 'password' => 'password', ])->assertOk(); - $res->assertJsonFragment(['status' => "success"]); + $res->assertJsonFragment(['status' => 'success']); } /** @test */ @@ -32,7 +31,7 @@ public function login_with_wrong_email() $this->post(route('login.v2'), [ 'email' => 'wrong@wrong.com', - 'password' => 'password' + 'password' => 'password', ])->assertUnauthorized(); } @@ -43,7 +42,7 @@ public function login_with_wrong_password() $this->post(route('login.v2'), [ 'email' => 'test@test.com', - 'password' => 'wrong' + 'password' => 'wrong', ])->assertStatus(422); } } diff --git a/Modules/User/tests/Feature/CrudUser/Auth/RegisterTest.php b/Modules/Auth/tests/Feature/RegisterTest.php similarity index 76% rename from Modules/User/tests/Feature/CrudUser/Auth/RegisterTest.php rename to Modules/Auth/tests/Feature/RegisterTest.php index 213f28a..0b5c98d 100644 --- a/Modules/User/tests/Feature/CrudUser/Auth/RegisterTest.php +++ b/Modules/Auth/tests/Feature/RegisterTest.php @@ -1,11 +1,11 @@ 'test', 'email' => 'test2@test.com', - 'phone' => "09121234567", - 'password' => 'password' + 'phone' => '09121234567', + 'password' => 'password', ]; $res = $this->post(route('register.v2'), $data) ->assertCreated(); @@ -34,8 +34,8 @@ public function handle_length_name_when_register_user() $data = [ 'name' => 't', 'email' => 'test@test.com', - 'phone' => "09121234567", - 'password' => 'password' + 'phone' => '09121234567', + 'password' => 'password', ]; $this->post(route('register.v2'), $data) @@ -50,8 +50,8 @@ public function handle_string_name_when_register_user() $data = [ 'name' => 123, 'email' => 'test@test.com', - 'phone' => "09121234567", - 'password' => 'password' + 'phone' => '09121234567', + 'password' => 'password', ]; $this->post(route('register.v2'), $data) @@ -66,15 +66,15 @@ public function unique_email_when_register_user() $data = [ 'name' => 'test', 'email' => 'test@test.com', - 'phone' => "09121234567", - 'password' => 'password' + 'phone' => '09121234567', + 'password' => 'password', ]; $data2 = [ 'name' => 'test2', 'email' => 'test@test.com', - 'phone' => "09121234567", - 'password' => 'password' + 'phone' => '09121234567', + 'password' => 'password', ]; $this->post(route('register.v2'), $data); @@ -90,8 +90,8 @@ public function handle_length_password_when_register_user() $data = [ 'name' => 'test', 'email' => 'test@test.com', - 'phone' => "09121234567", - 'password' => 'pass' + 'phone' => '09121234567', + 'password' => 'pass', ]; $this->post(route('register.v2'), $data) diff --git a/Modules/Auth/tests/Feature/VerifyTest.php b/Modules/Auth/tests/Feature/VerifyTest.php new file mode 100644 index 0000000..27a3699 --- /dev/null +++ b/Modules/Auth/tests/Feature/VerifyTest.php @@ -0,0 +1,40 @@ +CreateUser(); + $url = URL::temporarySignedRoute('verify.v2', + now()->addMinutes(15), + ['user' => $user->id] + ); + Http::fake([ + route('register.v2') => Http::response( + $url + ) + ]); + + $this->get($url)->assertOk(); +}); + +it('inCorrectVerify', function () { + list($user, ,) = $this->CreateUser(); + $url = URL::temporarySignedRoute('verify.v2', + now()->addMinutes(15), + ['user' => $user->id] + ); + Http::fake([ + route('register.v2') => Http::response( + $url + ) + ]); + + $this->travel(2)->hours(); + + $this->get($url)->assertForbidden(); +}); diff --git a/Modules/User/tests/Unit/RegisterTest.php b/Modules/Auth/tests/Unit/RegisterTest.php similarity index 78% rename from Modules/User/tests/Unit/RegisterTest.php rename to Modules/Auth/tests/Unit/RegisterTest.php index d450bda..9c2905b 100644 --- a/Modules/User/tests/Unit/RegisterTest.php +++ b/Modules/Auth/tests/Unit/RegisterTest.php @@ -1,12 +1,12 @@ CreateUser(); $user = User::factory()->create(); diff --git a/Modules/Category/Casts/NameCategory.php b/Modules/Category/Casts/NameCategory.php index b26f1fc..b4a2920 100644 --- a/Modules/Category/Casts/NameCategory.php +++ b/Modules/Category/Casts/NameCategory.php @@ -9,10 +9,10 @@ class NameCategory implements CastsAttributes /** * Prepare the given value for storage. * - * @param \Illuminate\Database\Eloquent\Model $model - * @param string $key - * @param mixed $value - * @param array $attributes + * @param \Illuminate\Database\Eloquent\Model $model + * @param string $key + * @param mixed $value + * @param array $attributes * @return mixed */ public function set($model, string $key, $value, array $attributes) diff --git a/Modules/Category/Database/Factories/CategoryFactory.php b/Modules/Category/Database/Factories/CategoryFactory.php index 2b884cb..3b41b71 100644 --- a/Modules/Category/Database/Factories/CategoryFactory.php +++ b/Modules/Category/Database/Factories/CategoryFactory.php @@ -24,8 +24,8 @@ public function definition() return [ 'name' => [ 'en' => $this->faker->jobTitle, - 'fa' => 'تس' - ], + 'fa' => 'تست', + ], ]; } } diff --git a/Modules/Category/Database/Migrations/2022_05_02_102600_create_categories_table.php b/Modules/Category/Database/Migrations/2022_05_02_102600_create_categories_table.php index 0b83ebd..7e6e648 100644 --- a/Modules/Category/Database/Migrations/2022_05_02_102600_create_categories_table.php +++ b/Modules/Category/Database/Migrations/2022_05_02_102600_create_categories_table.php @@ -3,7 +3,6 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -use Module\User\Models\User; class CreateCategoriesTable extends Migration { @@ -15,10 +14,10 @@ class CreateCategoriesTable extends Migration public function up() { Schema::create('categories', function (Blueprint $table) { - $table->id(); + $table->uuid('id')->primary(); $table->string('name'); $table->string('slug'); - $table->foreignId('user_id')->constrained()->onDelete('cascade'); + $table->foreignUuid('user_id')->constrained()->onDelete('cascade'); $table->timestamps(); $table->softDeletesTz(); }); diff --git a/Modules/Category/Events/NewCategory.php b/Modules/Category/Events/NewCategory.php index 8d1017a..422aa01 100644 --- a/Modules/Category/Events/NewCategory.php +++ b/Modules/Category/Events/NewCategory.php @@ -3,7 +3,6 @@ namespace Module\Category\Events; use Illuminate\Broadcasting\InteractsWithSockets; -use Illuminate\Broadcasting\PrivateChannel; use Illuminate\Foundation\Events\Dispatchable; use Illuminate\Queue\SerializesModels; diff --git a/Modules/Category/Http/Controllers/api/v1/CategoryController.php b/Modules/Category/Http/Controllers/api/v1/CategoryController.php index 2f90046..507ec3e 100644 --- a/Modules/Category/Http/Controllers/api/v1/CategoryController.php +++ b/Modules/Category/Http/Controllers/api/v1/CategoryController.php @@ -5,7 +5,10 @@ use App\Http\Controllers\Controller; use Illuminate\Auth\Access\AuthorizationException; use Illuminate\Http\JsonResponse; +use Illuminate\Http\Resources\Json\JsonResource; +use Illuminate\Http\Resources\Json\ResourceCollection; use Illuminate\Http\Response; +use Illuminate\Support\Collection; use Module\Category\Http\Requests\v1\StoreRequest; use Module\Category\Http\Requests\v1\UpdateRequest; use Module\Category\Http\Resources\v1\CategoryCollection; @@ -44,8 +47,9 @@ public function index() /** * Store a newly created resource in storage. * - * @param \Module\Category\Http\Requests\v1\StoreRequest $request + * @param \Module\Category\Http\Requests\v1\StoreRequest $request * @return JsonResponse + * * @throws AuthorizationException */ public function store(StoreRequest $request) @@ -55,26 +59,27 @@ public function store(StoreRequest $request) $category = $this->service()->store($request); - return $this->res('success', Response::HTTP_CREATED, "Successfully create category", $category); + return $this->res('success', Response::HTTP_CREATED, 'Successfully create category', $category); } /** * Display the specified resource. * - * @param Category $category + * @param Category $category * @return JsonResponse */ public function show(Category $category) { - return $this->res('success', Response::HTTP_OK, null, new CategoryResource($category)); + return $this->res('success', Response::HTTP_OK, "category $category successfully fetch", new CategoryResource($category)); } /** * Update the specified resource in storage. * - * @param \Module\Category\Http\Requests\v1\UpdateRequest $request - * @param \Module\Category\Models\Category $category + * @param \Module\Category\Http\Requests\v1\UpdateRequest $request + * @param \Module\Category\Models\Category $category * @return \Illuminate\Http\JsonResponse + * * @throws AuthorizationException */ public function update(UpdateRequest $request, Category $category) @@ -83,13 +88,13 @@ public function update(UpdateRequest $request, Category $category) $this->authorize('createOrUpdate', Category::class); $this->service()->update($category, $request); - return $this->res('success', Response::HTTP_NO_CONTENT, null, null); + return $this->res('success', Response::HTTP_NO_CONTENT, "category $category successfully updated"); } /** * Remove the specified resource from storage. * - * @param \App\Models\Category $category + * @param \App\Models\Category $category * @return \Illuminate\Http\Response */ public function destroy(Category $category) @@ -97,12 +102,12 @@ public function destroy(Category $category) } // manage response - public function res($status, $code, $message, $data = null): \Illuminate\Http\JsonResponse + public function res(string $status, int $code, string|null $message, array|int|JsonResource $data = null): JsonResponse { return response()->json([ 'status' => $status, 'message' => $message, - 'data' => $data ?? null + 'data' => $data ?? null, ], $code); } } diff --git a/Modules/Category/Http/Requests/v1/StoreRequest.php b/Modules/Category/Http/Requests/v1/StoreRequest.php index c2d6f9a..b8c0f1c 100644 --- a/Modules/Category/Http/Requests/v1/StoreRequest.php +++ b/Modules/Category/Http/Requests/v1/StoreRequest.php @@ -3,7 +3,6 @@ namespace Module\Category\Http\Requests\v1; use Illuminate\Foundation\Http\FormRequest; -use Illuminate\Validation\Rule; class StoreRequest extends FormRequest { diff --git a/Modules/Category/Http/Requests/v1/UpdateRequest.php b/Modules/Category/Http/Requests/v1/UpdateRequest.php index d034f4f..b25b8a3 100644 --- a/Modules/Category/Http/Requests/v1/UpdateRequest.php +++ b/Modules/Category/Http/Requests/v1/UpdateRequest.php @@ -24,7 +24,7 @@ public function authorize() public function rules() { return [ - 'name' => 'nullable|array' + 'name' => 'nullable|array', ]; } } diff --git a/Modules/Category/Http/Resources/v1/CategoryResource.php b/Modules/Category/Http/Resources/v1/CategoryResource.php index 359f50c..109a72d 100644 --- a/Modules/Category/Http/Resources/v1/CategoryResource.php +++ b/Modules/Category/Http/Resources/v1/CategoryResource.php @@ -9,14 +9,14 @@ class CategoryResource extends JsonResource /** * Transform the resource into an array. * - * @param \Illuminate\Http\Request $request + * @param \Illuminate\Http\Request $request * @return array|\Illuminate\Contracts\Support\Arrayable|\JsonSerializable */ public function toArray($request) { return [ 'name' => [$this->name], - 'slug' => $this->slug + 'slug' => $this->slug, ]; } } diff --git a/Modules/Category/Listeners/ReportCategoryPublishedAdmin.php b/Modules/Category/Listeners/ReportCategoryPublishedAdmin.php index 8e8fa03..5565c04 100644 --- a/Modules/Category/Listeners/ReportCategoryPublishedAdmin.php +++ b/Modules/Category/Listeners/ReportCategoryPublishedAdmin.php @@ -26,7 +26,7 @@ class ReportCategoryPublishedAdmin /** * Handle the event. * - * @param NewCategory $event + * @param NewCategory $event * @return void */ public function handle(NewCategory $event) diff --git a/Modules/Category/Mail/CategoryPublishedPermission.php b/Modules/Category/Mail/CategoryPublishedPermission.php index 9386691..9bdf185 100644 --- a/Modules/Category/Mail/CategoryPublishedPermission.php +++ b/Modules/Category/Mail/CategoryPublishedPermission.php @@ -15,7 +15,7 @@ class CategoryPublishedPermission extends Mailable /** * Create a new message instance. * - * @param string $slug + * @param string $slug * @return void */ public function __construct(string $slug) diff --git a/Modules/Category/Models/Category.php b/Modules/Category/Models/Category.php index e9258ee..2057826 100644 --- a/Modules/Category/Models/Category.php +++ b/Modules/Category/Models/Category.php @@ -11,10 +11,11 @@ use Module\Lang\Traits\LangService; use Module\Media\Models\Media; use Module\Post\Models\Post; +use Module\Share\Traits\UseUuid; class Category extends Model { - use HasFactory, SoftDeletes, LangService; + use HasFactory, SoftDeletes, LangService, UseUuid; protected $guarded = []; @@ -24,7 +25,7 @@ class Category extends Model * @var array */ protected $casts = [ - 'name' => NameCategory::class + 'name' => NameCategory::class, ]; public $translatable = ['name']; diff --git a/Modules/Category/Observers/CategoryObserver.php b/Modules/Category/Observers/CategoryObserver.php index 730a77e..b74872d 100644 --- a/Modules/Category/Observers/CategoryObserver.php +++ b/Modules/Category/Observers/CategoryObserver.php @@ -10,8 +10,9 @@ class CategoryObserver /** * Handle the Post "creating" event. * - * @param \Module\Category\Models\Category $category + * @param \Module\Category\Models\Category $category * @return void + * * @throws \Exception */ public function creating(Category $category) @@ -22,8 +23,9 @@ public function creating(Category $category) /** * Handle the Post "creating" event. * - * @param \Module\Category\Models\Category $category + * @param \Module\Category\Models\Category $category * @return void + * * @throws \Exception */ public function updating(Category $category) diff --git a/Modules/Category/Policies/CategoryPolicy.php b/Modules/Category/Policies/CategoryPolicy.php index 5184b4e..6d2c3b9 100644 --- a/Modules/Category/Policies/CategoryPolicy.php +++ b/Modules/Category/Policies/CategoryPolicy.php @@ -3,8 +3,6 @@ namespace Module\Category\Policies; use Illuminate\Auth\Access\HandlesAuthorization; -use Module\Category\Models\Category; -use Module\Role\Models\Permission; use Module\User\Models\User; class CategoryPolicy @@ -14,7 +12,7 @@ class CategoryPolicy /** * Determine whether the user can create models. * - * @param \Module\User\Models\User $user + * @param \Module\User\Models\User $user * @return \Illuminate\Auth\Access\Response|bool */ public function createOrUpdate(User $user) @@ -25,12 +23,11 @@ public function createOrUpdate(User $user) /** * Determine whether the user can delete the model. * - * @param \App\Models\User $user - * @param \App\Models\Categories $categories + * @param \App\Models\User $user + * @param \App\Models\Categories $categories * @return \Illuminate\Auth\Access\Response|bool */ public function delete(User $user, Categories $categories) { } - } diff --git a/Modules/Category/Providers/CategoryServiceProvider.php b/Modules/Category/Providers/CategoryServiceProvider.php index a35586b..3168701 100644 --- a/Modules/Category/Providers/CategoryServiceProvider.php +++ b/Modules/Category/Providers/CategoryServiceProvider.php @@ -15,7 +15,7 @@ class CategoryServiceProvider extends ServiceProvider // Policy protected $policies = [ - Category::class => CategoryPolicy::class + Category::class => CategoryPolicy::class, ]; /** @@ -26,15 +26,15 @@ class CategoryServiceProvider extends ServiceProvider public function boot() { // Migrations - $this->loadMigrationsFrom(__DIR__ . '/../Database/Migrations'); + $this->loadMigrationsFrom(__DIR__.'/../Database/Migrations'); // Routes - Route::prefix("api/category") + Route::prefix('api/category') ->middleware(['api', 'lang']) ->namespace($this->namespace) - ->group(__DIR__ . '/../Routes/category_route.php'); + ->group(__DIR__.'/../Routes/category_route.php'); - $this->loadViewsFrom(__DIR__ . '/../Resources/Views/Category','category'); + $this->loadViewsFrom(__DIR__.'/../Resources/Views/Category', 'category'); // Observer Category Category::observe(CategoryObserver::class); } diff --git a/Modules/Category/Repository/v1/CategoryRepository.php b/Modules/Category/Repository/v1/CategoryRepository.php index 2dd8ee9..8795267 100644 --- a/Modules/Category/Repository/v1/CategoryRepository.php +++ b/Modules/Category/Repository/v1/CategoryRepository.php @@ -8,6 +8,7 @@ class CategoryRepository extends Repository { /** *return id categories + * * @param $request * @return array */ diff --git a/Modules/Category/Routes/category_route.php b/Modules/Category/Routes/category_route.php index 0a5230c..583abc4 100644 --- a/Modules/Category/Routes/category_route.php +++ b/Modules/Category/Routes/category_route.php @@ -5,26 +5,6 @@ use Module\Category\Models\Category; // All posts -/*Route::get('/', function () { - $category = Category::first(); - -// $category->setTranslation('name', 'ul', "اکیه"); - - $name = [ - "en" => "test 1", - "sp" => "test 2" - ]; - Category::query()->create([ - 'name' => $name, - 'user_id' => 1, - ]); - - dd(77); - - echo 'ok'; -// echo $category->getTranslation('name', 'fa'); -});*/ - Route::get('/', [CategoryController::class, 'index'])->name('category.index'); // Show category Route::get('{category:slug}', [CategoryController::class, 'show'])->name('category.show'); diff --git a/Modules/Category/Services/v1/CategoryService.php b/Modules/Category/Services/v1/CategoryService.php index d72bb6c..1ae3c26 100644 --- a/Modules/Category/Services/v1/CategoryService.php +++ b/Modules/Category/Services/v1/CategoryService.php @@ -14,7 +14,8 @@ class CategoryService extends Service { /** * Create new category - * @param StoreRequestAlias $request + * + * @param StoreRequestAlias $request * @return \Module\Category\Http\Resources\v1\CategoryResource */ public function store(StoreRequestAlias $request): CategoryResource @@ -23,7 +24,7 @@ public function store(StoreRequestAlias $request): CategoryResource $category = auth()->user()->categories()->create([ 'name' => [ 'en' => $request->name['en'], - 'fa' => $request->name['fa'] + 'fa' => $request->name['fa'], ], ]); @@ -34,6 +35,7 @@ public function store(StoreRequestAlias $request): CategoryResource /** * Update category + * * @param $category * @param $request * @return null @@ -48,7 +50,7 @@ public function update($category, $request) return $category->update([ 'name' => [ 'en' => $request->name['en'], - 'fa' => $request->name['fa'] + 'fa' => $request->name['fa'], ], ]); } diff --git a/Modules/Category/tests/Feature/Crud/ReadTest.php b/Modules/Category/tests/Feature/Crud/ReadTest.php index f6666ef..4419388 100644 --- a/Modules/Category/tests/Feature/Crud/ReadTest.php +++ b/Modules/Category/tests/Feature/Crud/ReadTest.php @@ -5,9 +5,9 @@ use Illuminate\Foundation\Testing\DatabaseMigrations; use Illuminate\Foundation\Testing\WithFaker; use Module\Category\Models\Category; -use Tests\TestCase; +use Tests\CustomTestCase; -class ReadTest extends TestCase +class ReadTest extends CustomTestCase { use DatabaseMigrations, WithFaker; @@ -29,11 +29,11 @@ public function see_single_category() $category = auth()->user()->categories()->create([ 'name' => [ 'en' => $this->faker->jobTitle, - 'fa' => 'تست' - ] + 'fa' => 'تست', + ], ]); - $this->get(route('category.show',$category->slug)) + $this->get(route('category.show', $category->slug)) ->assertSee([$category->getTranslation('name', 'en'), $category->slug]) ->assertOk(); } diff --git a/Modules/Category/tests/Feature/Crud/StoreTest.php b/Modules/Category/tests/Feature/Crud/StoreTest.php index dad0ec8..3f8d8dc 100644 --- a/Modules/Category/tests/Feature/Crud/StoreTest.php +++ b/Modules/Category/tests/Feature/Crud/StoreTest.php @@ -7,10 +7,9 @@ use Illuminate\Support\Facades\Event; use Module\Category\Events\NewCategory; use Module\Category\Models\Category; -use Module\User\Models\User; -use Tests\TestCase; +use Tests\CustomTestCase; -class StoreTest extends TestCase +class StoreTest extends CustomTestCase { use RefreshDatabase, WithFaker; @@ -25,7 +24,6 @@ public function admin_can_store_category() ->assertCreated(); } - /** @test */ public function user_can_not_store_category() { @@ -36,6 +34,23 @@ public function user_can_not_store_category() ->assertForbidden(); } + /** @test */ + public function slug_should_english() + { + $this->CreateUser('admin'); + $category = [ + 'name' => [ + 'en' => 'test name', + 'fa' => 'تست فرضی', + ], + ]; + + $this->post(route('category.store'), $category) + ->assertCreated() + ->assertJsonFragment(['slug' => 'test-name']) + ->assertJsonMissing(['slug' => 'تست-فرضی']); + } + /** @test */ public function super_can_store_category() { @@ -50,7 +65,7 @@ public function super_can_store_category() public function work_event_for_store_category() { Event::fake([ - NewCategory::class + NewCategory::class, ]); $this->CreateUser('admin'); diff --git a/Modules/Category/tests/Feature/Crud/UpdateTest.php b/Modules/Category/tests/Feature/Crud/UpdateTest.php index afef8ef..2a121a3 100644 --- a/Modules/Category/tests/Feature/Crud/UpdateTest.php +++ b/Modules/Category/tests/Feature/Crud/UpdateTest.php @@ -4,19 +4,19 @@ use Illuminate\Foundation\Testing\DatabaseMigrations; use Illuminate\Foundation\Testing\WithFaker; -use Illuminate\Support\Str; use Module\Category\Models\Category; -use Tests\TestCase; +use Tests\CustomTestCase; -class UpdateTest extends TestCase +class UpdateTest extends CustomTestCase { use DatabaseMigrations, WithFaker; - private $name = "test"; + private string $name = 'test'; private function storeCategory($type = 'admin') { $res = $this->CreateUser($type); + return Category::factory()->create(['user_id' => $res[0]->id]); } @@ -27,10 +27,10 @@ public function update_categories() $this->patch(route('category.update', $category->slug), [ 'name' => [ - 'en' => "test", - 'fa' => "تست" - ] - ]); + 'en' => 'test', + 'fa' => 'تست', + ], + ])->assertNoContent(); $this->assertDatabaseHas('categories', ['slug' => 'test'] @@ -44,8 +44,8 @@ public function user_can_not_update_category() $this->patch(route('category.update', $category->slug), [ 'name' => [ - 'en' => "test", - 'fa' => "تست" + 'en' => 'test', + 'fa' => 'تست', ]])->assertForbidden(); } @@ -56,10 +56,10 @@ public function super_can_update_category() $this->patch(route('category.update', $category->slug), [ 'name' => [ - 'en' => "test", - 'fa' => "تست" - ] - ]); + 'en' => 'test', + 'fa' => 'تست', + ], + ])->assertNoContent(); $this->assertDatabaseHas('categories', ['slug' => 'test'] diff --git a/Modules/Comment/Database/Migrations/2022_09_06_151713_create_comments_table.php b/Modules/Comment/Database/Migrations/2022_09_06_151713_create_comments_table.php index 087d981..732136d 100644 --- a/Modules/Comment/Database/Migrations/2022_09_06_151713_create_comments_table.php +++ b/Modules/Comment/Database/Migrations/2022_09_06_151713_create_comments_table.php @@ -14,10 +14,12 @@ class CreateCommentsTable extends Migration public function up() { Schema::create('comments', function (Blueprint $table) { - $table->id(); + $table->uuid('id')->primary(); $table->string('body'); - $table->morphs('commentable'); - $table->unsignedBigInteger('parent_id')->nullable(); + $table->uuidMorphs('commentable'); + $table->text('parent_id')->nullable(); + + $table->softDeletes(); $table->timestamps(); }); } diff --git a/Modules/Comment/Http/Resources/v1/CommentResource.php b/Modules/Comment/Http/Resources/v1/CommentResource.php index 56d4f65..5de1cc2 100644 --- a/Modules/Comment/Http/Resources/v1/CommentResource.php +++ b/Modules/Comment/Http/Resources/v1/CommentResource.php @@ -3,17 +3,13 @@ namespace Module\Comment\Http\Resources\v1; use Illuminate\Http\Resources\Json\JsonResource; -use Module\Category\Http\Resources\v1\CategoryCollection; -use Module\Media\Http\Resources\v1\MediaCollection; -use Module\Tag\Http\Resources\v1\TagCollection; -use Module\User\Http\Resources\v1\UserResource; class CommentResource extends JsonResource { /** * Transform the resource into an array. * - * @param \Illuminate\Http\Request $request + * @param \Illuminate\Http\Request $request * @return array|\Illuminate\Contracts\Support\Arrayable|\JsonSerializable */ public function toArray($request) diff --git a/Modules/Comment/Models/Comment.php b/Modules/Comment/Models/Comment.php index 2e4a892..df8d311 100644 --- a/Modules/Comment/Models/Comment.php +++ b/Modules/Comment/Models/Comment.php @@ -2,11 +2,16 @@ namespace Module\Comment\Models; +use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\MorphTo; +use Illuminate\Database\Eloquent\SoftDeletes; +use Module\Share\Traits\UseUuid; class Comment extends Model { + use HasFactory, SoftDeletes, UseUuid; + protected $guarded = []; /** @@ -14,7 +19,7 @@ class Comment extends Model * * @return MorphTo */ - public function commentable(): \Illuminate\Database\Eloquent\Relations\MorphTo + public function commentable(): MorphTo { return $this->morphTo(); } diff --git a/Modules/Comment/Providers/CommentServiceProvider.php b/Modules/Comment/Providers/CommentServiceProvider.php index 18d9c11..166a832 100644 --- a/Modules/Comment/Providers/CommentServiceProvider.php +++ b/Modules/Comment/Providers/CommentServiceProvider.php @@ -10,6 +10,6 @@ class CommentServiceProvider extends ServiceProvider public function boot() { - $this->loadMigrationsFrom(__DIR__ . '/../Database/Migrations'); + $this->loadMigrationsFrom(__DIR__.'/../Database/Migrations'); } } diff --git a/Modules/Comment/Request/v1/CommentRequest.php b/Modules/Comment/Request/v1/CommentRequest.php index a5c6910..244dbc0 100644 --- a/Modules/Comment/Request/v1/CommentRequest.php +++ b/Modules/Comment/Request/v1/CommentRequest.php @@ -24,7 +24,7 @@ public function authorize() public function rules() { return [ - 'body' => 'required|max:520|min:2' + 'body' => 'required|max:520|min:2', ]; } } diff --git a/Modules/Comment/Services/CommentService.php b/Modules/Comment/Services/CommentService.php index fe35e77..f10eb6f 100644 --- a/Modules/Comment/Services/CommentService.php +++ b/Modules/Comment/Services/CommentService.php @@ -7,7 +7,7 @@ class CommentService implements Service { - public function model() + public function model(): \Illuminate\Database\Eloquent\Builder { return Comment::query(); } diff --git a/Modules/Comment/Services/v1/CommentService.php b/Modules/Comment/Services/v1/CommentService.php index d6dec37..c677ce3 100644 --- a/Modules/Comment/Services/v1/CommentService.php +++ b/Modules/Comment/Services/v1/CommentService.php @@ -13,7 +13,7 @@ class CommentService extends Service public function store($model, $request) { return $model->comments()->create([ - 'body' => $request + 'body' => $request, ]); } @@ -24,7 +24,7 @@ public function reply($model, $comment, $request) { return $model->comments()->create([ 'body' => $request, - 'parent_id' => $comment->id + 'parent_id' => $comment->id, ]); } } diff --git a/Modules/Comment/tests/Unit/CommentRelationTest.php b/Modules/Comment/tests/Unit/CommentRelationTest.php new file mode 100644 index 0000000..9281b65 --- /dev/null +++ b/Modules/Comment/tests/Unit/CommentRelationTest.php @@ -0,0 +1,22 @@ +storePost(); + $post = Post::first(); + + $this->assertInstanceOf(Collection::class, $post->comments); + } +} diff --git a/Modules/Lang/Http/Middleware/Lang.php b/Modules/Lang/Http/Middleware/Lang.php index 2174cf2..e5ed3f7 100644 --- a/Modules/Lang/Http/Middleware/Lang.php +++ b/Modules/Lang/Http/Middleware/Lang.php @@ -2,7 +2,6 @@ namespace Module\Lang\Http\Middleware; -use App; use Closure; use Illuminate\Http\Request; @@ -11,8 +10,8 @@ class Lang /** * Handle an incoming request. * - * @param \Illuminate\Http\Request $request - * @param \Closure $next + * @param \Illuminate\Http\Request $request + * @param \Closure $next * @return mixed */ public function handle(Request $request, Closure $next) diff --git a/Modules/Lang/Traits/LangService.php b/Modules/Lang/Traits/LangService.php index 268c629..6dabf39 100644 --- a/Modules/Lang/Traits/LangService.php +++ b/Modules/Lang/Traits/LangService.php @@ -10,8 +10,8 @@ trait LangService * Set attribute. If key exist in translatable property in model ... * If key not exist in translatable property in model,read setAttribute parent ... * - * @param string $key - * @param string $value + * @param string $key + * @param string $value * @return mixed */ public function setAttribute($key, $value) @@ -19,9 +19,10 @@ public function setAttribute($key, $value) if ($this->isTranslatableAttribute($key) && is_array($value)) { return $this->setTranslations($key, $value); } - if (!$this->isTranslatableAttribute($key) || is_array($value)) { + if (! $this->isTranslatableAttribute($key) || is_array($value)) { return parent::setAttribute($key, $value); } + return $this->setTranslation($key, config('app.locale'), $value); } @@ -37,7 +38,7 @@ public function getAttributeValue($key) /** * Check key exist in translatable property * - * @param string $key + * @param string $key * @return bool */ public function isTranslatableAttribute(string $key): bool @@ -48,8 +49,8 @@ public function isTranslatableAttribute(string $key): bool /** * Ready for setTranslation * - * @param string $key - * @param array $values + * @param string $key + * @param array $values * @return $this */ protected function setTranslations(string $key, array $values) @@ -57,15 +58,16 @@ protected function setTranslations(string $key, array $values) foreach ($values as $locale => $value) { $this->setTranslation($key, $locale, $value); } + return $this; } /** * Set translation * - * @param string $key - * @param string $locale - * @param string $value + * @param string $key + * @param string $locale + * @param string $value * @return $this */ public function setTranslation(string $key, string $locale, string $value) @@ -81,9 +83,10 @@ public function setTranslation(string $key, string $locale, string $value) /** * Get value language * - * @param string $key - * @param string $locale + * @param string $key + * @param string $locale * @return mixed|string + * * @throws Exception */ public function getTranslation(string $key, string $locale) @@ -91,11 +94,12 @@ public function getTranslation(string $key, string $locale) $locale = $this->normalizeLocale($key, $locale); $translations = $this->getTranslations($key); + return $translations[$locale] ?? ''; } /** - * @param string $key + * @param string $key * @return array */ public function getTranslations(string $key): array diff --git a/Modules/Media/Casts/PrivateMedia.php b/Modules/Media/Casts/PrivateMedia.php index 476736b..e65b9cf 100644 --- a/Modules/Media/Casts/PrivateMedia.php +++ b/Modules/Media/Casts/PrivateMedia.php @@ -9,10 +9,10 @@ class PrivateMedia implements CastsAttributes /** * Cast the given value. * - * @param \Illuminate\Database\Eloquent\Model $model - * @param string $key - * @param mixed $value - * @param array $attributes + * @param \Illuminate\Database\Eloquent\Model $model + * @param string $key + * @param mixed $value + * @param array $attributes * @return mixed */ public function get($model, string $key, $value, array $attributes) @@ -23,10 +23,10 @@ public function get($model, string $key, $value, array $attributes) /** * Prepare the given value for storage. * - * @param \Illuminate\Database\Eloquent\Model $model - * @param string $key - * @param mixed $value - * @param array $attributes + * @param \Illuminate\Database\Eloquent\Model $model + * @param string $key + * @param mixed $value + * @param array $attributes * @return mixed */ public function set($model, string $key, $value, array $attributes) diff --git a/Modules/Media/Contracts/FileContract.php b/Modules/Media/Contracts/FileContract.php index ee31c70..a7c864a 100644 --- a/Modules/Media/Contracts/FileContract.php +++ b/Modules/Media/Contracts/FileContract.php @@ -8,7 +8,8 @@ interface FileContract { /** * Upload media - * @param UploadedFile $file + * + * @param UploadedFile $file * @param $filename string * @param $dir string * @return array | string diff --git a/Modules/Media/Database/Migrations/2022_04_28_092229_create_media_table.php b/Modules/Media/Database/Migrations/2022_04_28_092229_create_media_table.php index 7206b74..a6b2087 100644 --- a/Modules/Media/Database/Migrations/2022_04_28_092229_create_media_table.php +++ b/Modules/Media/Database/Migrations/2022_04_28_092229_create_media_table.php @@ -3,7 +3,6 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; -use Module\User\Models\User; class CreateMediaTable extends Migration { @@ -15,13 +14,15 @@ class CreateMediaTable extends Migration public function up() { Schema::create('media', function (Blueprint $table) { - $table->id(); + $table->uuid('id')->primary(); $table->json('files'); $table->string('name', 255); $table->enum('type', ['image', 'video', 'audio', 'zip', 'doc']); $table->boolean('isPrivate'); - $table->foreignId('user_id')->constrained()->onDelete('cascade'); - $table->morphs('mediaable'); + $table->foreignUuid('user_id')->constrained()->onDelete('cascade'); + $table->uuidMorphs('mediaable'); + $table->datetime('converted_for_downloading_at')->nullable(); + $table->datetime('converted_for_streaming_at')->nullable(); $table->timestamps(); }); } diff --git a/Modules/Media/Http/Requests/v1/MediaRequest.php b/Modules/Media/Http/Requests/v1/MediaRequest.php index 08a13f9..343e363 100644 --- a/Modules/Media/Http/Requests/v1/MediaRequest.php +++ b/Modules/Media/Http/Requests/v1/MediaRequest.php @@ -25,7 +25,7 @@ public function rules(): array { return [ 'name' => 'required|array|unique:images', - 'image' => 'required | image | mimes: jpg,png | max: 1024' + 'image' => 'required | image | mimes: jpg,png | max: 1024', ]; } } diff --git a/Modules/Media/Http/Resources/v1/MediaResource.php b/Modules/Media/Http/Resources/v1/MediaResource.php index c118556..d4075a0 100644 --- a/Modules/Media/Http/Resources/v1/MediaResource.php +++ b/Modules/Media/Http/Resources/v1/MediaResource.php @@ -10,7 +10,7 @@ class MediaResource extends JsonResource /** * Transform the resource into an array. * - * @param Request $request + * @param Request $request * @return array|\Illuminate\Contracts\Support\Arrayable|\JsonSerializable */ public function toArray($request) @@ -19,7 +19,7 @@ public function toArray($request) 'type' => $this->type, 'files' => $this->files, 'name' => $this->name, - 'is-private' => $this->isPrivate + 'is-private' => $this->isPrivate, ]; } } diff --git a/Modules/Media/Jobs/ConvertVideoForDownloading.php b/Modules/Media/Jobs/ConvertVideoForDownloading.php new file mode 100644 index 0000000..555ec37 --- /dev/null +++ b/Modules/Media/Jobs/ConvertVideoForDownloading.php @@ -0,0 +1,51 @@ +setKiloBitrate(500); + + FFMpeg::fromDisk('minio') + ->open($this->media->files) + ->addFilter(function ($filters) { + $filters->resize(new Dimension(960, 540)); + }) + ->export() + ->toDisk('minio') + ->inFormat($lowBitrateFormat) + ->save("download/" . $this->media->name . ".mp4"); + + $this->media->update([ + 'converted_for_downloading_at' => now(), + ]); + } +} diff --git a/Modules/Media/Jobs/ConvertVideoForStreaming.php b/Modules/Media/Jobs/ConvertVideoForStreaming.php new file mode 100644 index 0000000..b316a50 --- /dev/null +++ b/Modules/Media/Jobs/ConvertVideoForStreaming.php @@ -0,0 +1,53 @@ +setKiloBitrate(500); + $midBitrateFormat = (new X264)->setKiloBitrate(1500); + $highBitrateFormat = (new X264)->setKiloBitrate(3000); + + FFMpeg::fromDisk('minio') + ->open($this->media->files) + ->exportForHLS() + ->toDisk('minio') + ->addFormat($lowBitrateFormat) + ->addFormat($midBitrateFormat) + ->addFormat($highBitrateFormat) + ->save("stream/" . $this->media->name . '.m3u8'); + + $this->media->update([ + 'converted_for_streaming_at' => now(), + ]); + } +} diff --git a/Modules/Media/Models/Media.php b/Modules/Media/Models/Media.php index 0062cd0..b6773b1 100644 --- a/Modules/Media/Models/Media.php +++ b/Modules/Media/Models/Media.php @@ -5,16 +5,22 @@ use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Module\Media\Casts\PrivateMedia; +use Module\Share\Traits\UseUuid; class Media extends Model { - use HasFactory; + use HasFactory, UseUuid; + + protected $dates = [ + 'converted_for_downloading_at', + 'converted_for_streaming_at', + ]; protected $guarded = []; protected $casts = [ 'files' => 'json', - 'isPrivate' => PrivateMedia::class + 'isPrivate' => PrivateMedia::class, ]; /** Relations */ diff --git a/Modules/Media/Providers/MediaServiceProvider.php b/Modules/Media/Providers/MediaServiceProvider.php index 2175fde..28b19be 100644 --- a/Modules/Media/Providers/MediaServiceProvider.php +++ b/Modules/Media/Providers/MediaServiceProvider.php @@ -7,7 +7,6 @@ class MediaServiceProvider extends ServiceProvider { - private $namespace = 'Module\Media\Http\Controllers'; /** @@ -18,12 +17,12 @@ class MediaServiceProvider extends ServiceProvider public function boot() { // Migrations - $this->loadMigrationsFrom(__DIR__ . '/../Database/Migrations'); + $this->loadMigrationsFrom(__DIR__.'/../Database/Migrations'); // Routes Route::prefix('api/image') ->middleware('api') ->namespace($this->namespace) - ->group(__DIR__ . '/../Routes/media_route.php'); + ->group(__DIR__.'/../Routes/media_route.php'); } } diff --git a/Modules/Media/Repositories/v1/MediaRepository.php b/Modules/Media/Repositories/v1/MediaRepository.php index 028542a..d2106a9 100644 --- a/Modules/Media/Repositories/v1/MediaRepository.php +++ b/Modules/Media/Repositories/v1/MediaRepository.php @@ -2,20 +2,25 @@ namespace Module\Media\Repositories\v1; +use Illuminate\Database\Eloquent\Model; +use Module\Media\Models\Media; use Module\Media\Repositories\MediaRepository as Repository; class MediaRepository extends Repository { /** - * - * - * @param int $number - * @return PostCollection + * @param Model $model + * @param Media $media + * @return mixed */ - public function paginate(int $number = 10): PostCollection + public function store(Model $model, Media $media): mixed { - return Cache::remember('posts.all', 900, function () use ($number) { - return new PostCollection(Post::query()->with(['user', 'tags:name'])->paginate($number)); - }); + return $model->media()->create([ + 'files' => $media->files, + 'type' => $media->type, + 'name' => $media->name, + 'isPrivate' => $media->isPrivate, + 'user_id' => $media->user_id, + ]); } } diff --git a/Modules/Media/Services/v1/ImageService.php b/Modules/Media/Services/v1/ImageService.php index db4401e..52902ab 100644 --- a/Modules/Media/Services/v1/ImageService.php +++ b/Modules/Media/Services/v1/ImageService.php @@ -2,12 +2,13 @@ namespace Module\Media\Services\v1; +use Carbon\Carbon; use Illuminate\Http\UploadedFile; use Illuminate\Support\Facades\Storage; +use Illuminate\Support\Str; use Intervention\Image\Facades\Image as Intervention; use Module\Media\Contracts\FileContract; use Module\Media\Services\MediaService as Service; -use Str; class ImageService extends Service implements FileContract { @@ -17,6 +18,7 @@ class ImageService extends Service implements FileContract /** * Upload media + * * @param UploadedFile $file * @param $filename string * @param $dir string @@ -30,7 +32,7 @@ public static function upload(UploadedFile $file, string $filename, string $dir, $filename = Str::slug($filename); $path = "$dir/$filename.$extension"; - Storage::putFileAs($dir, $file, $filename . '.' . $extension); + Storage::putFileAs($dir, $file, $filename.'.'.$extension); return $resize ? self::resize(Storage::path($path), $dir, $filename, $extension) : @@ -39,6 +41,7 @@ public static function upload(UploadedFile $file, string $filename, string $dir, /** * Resize media with Intervention package + * * @param $img string * @param $dir string * @param $name string @@ -58,6 +61,7 @@ private static function resize(string $img, string $dir, string $name, string $e }) ->save(Storage::path($dir) . $name . '_' . $size . '.' . $extension); } + return $images; } } diff --git a/Modules/Media/Services/v1/MediaService.php b/Modules/Media/Services/v1/MediaService.php index acfdd9a..f578572 100644 --- a/Modules/Media/Services/v1/MediaService.php +++ b/Modules/Media/Services/v1/MediaService.php @@ -9,24 +9,29 @@ class MediaService { private static $file; + private static $dir; + private static $isPrivate; /** * Private upload + * * @param UploadedFile $file * @return Media|void */ public static function privateUpload(UploadedFile $file) { self::$file = $file; - self::$dir = "private/"; + self::$dir = 'private'; self::$isPrivate = true; + return self::upload(); } /** * Public upload + * * @param UploadedFile $file * @return Media|void */ @@ -35,11 +40,13 @@ public static function publicUpload(UploadedFile $file) self::$file = $file; self::$dir = 'public/'; self::$isPrivate = false; + return self::upload(); } /** * Upload + * * @return Media|void */ private static function upload() @@ -54,6 +61,7 @@ private static function upload() /** * To lower extension + * * @param UploadedFile $file * @return string */ @@ -64,6 +72,7 @@ private static function normalizeExtension(UploadedFile $file): string /** * To lower extension + * * @return string */ private static function filenameGenerator(): string @@ -73,6 +82,7 @@ private static function filenameGenerator(): string /** * To lower extension + * * @param FileContract $service * @param string $key * @return Media @@ -80,13 +90,14 @@ private static function filenameGenerator(): string private static function uploadByHandler(FileContract $service, string $key): Media { $media = new Media(); + $name = self::filenameGenerator(); - // Upload images & zip & others + // Upload images & videos & others // Image: \Module\Media\Services\v1\ImageService::upload - $media->files = $service::upload(self::$file, self::filenameGenerator(), self::$dir); + $media->files = $service::upload(self::$file, $name, self::$dir); $media->type = $key; $media->user_id = auth()->id(); - $media->name = self::$file->getClientOriginalName(); + $media->name = $name; $media->isPrivate = self::$isPrivate; return $media; diff --git a/Modules/Media/Services/v1/VideoService.php b/Modules/Media/Services/v1/VideoService.php new file mode 100644 index 0000000..ddf59d5 --- /dev/null +++ b/Modules/Media/Services/v1/VideoService.php @@ -0,0 +1,23 @@ +getClientOriginalExtension(); + + $filename = Str::slug($filename); + + Storage::putFileAs($dir . "/video", $file, $filename . '.' . $extension); + + return "$dir/video/$filename.$extension"; + } +} diff --git a/Modules/Panel/Http/Controllers/api/v1/AdminController.php b/Modules/Panel/Http/Controllers/api/v1/AdminController.php index 54c78b2..731532f 100644 --- a/Modules/Panel/Http/Controllers/api/v1/AdminController.php +++ b/Modules/Panel/Http/Controllers/api/v1/AdminController.php @@ -5,7 +5,10 @@ use App\Http\Controllers\Controller; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; +use Illuminate\Http\Resources\Json\JsonResource; +use Illuminate\Http\Resources\Json\ResourceCollection; use Illuminate\Http\Response; +use Illuminate\Support\Collection; use Module\Panel\Jobs\CeremonyMessage; use Module\Share\Contracts\Response\ResponseGenerator; @@ -14,7 +17,7 @@ class AdminController extends Controller implements ResponseGenerator /** * Send message * - * @param Request $request + * @param Request $request * @return JsonResponse */ public function ceremony(Request $request) @@ -24,12 +27,12 @@ public function ceremony(Request $request) return $this->res('success', Response::HTTP_OK, 'successfully send'); } - public function res($status, $code, $message, $data = null) + public function res(string $status, int $code, string|null $message, array|int|JsonResource $data = null): JsonResponse { return response()->json([ 'status' => $status, 'message' => $message, - 'data' => $data + 'data' => $data, ], $code); } } diff --git a/Modules/Panel/Jobs/CeremonyMessage.php b/Modules/Panel/Jobs/CeremonyMessage.php index 413e4b6..8c19ed9 100644 --- a/Modules/Panel/Jobs/CeremonyMessage.php +++ b/Modules/Panel/Jobs/CeremonyMessage.php @@ -43,6 +43,6 @@ public function handle() Mail::to($user->email)->send($mail); } - Log::info("send mails"); + Log::info('send mails'); } } diff --git a/Modules/Panel/Jobs/NewUsers.php b/Modules/Panel/Jobs/NewUsers.php new file mode 100644 index 0000000..18bcf77 --- /dev/null +++ b/Modules/Panel/Jobs/NewUsers.php @@ -0,0 +1,43 @@ +subDays()->endOfDay(); + $users = (new UserRepository())->newUsers($date); + $admins = (new UserRepository())->admins(); + + foreach ($admins as $admin) { + Mail::to($admin->email)->send(new NewUserMail($users)); + } + } +} diff --git a/Modules/Panel/Mail/NewUserMail.php b/Modules/Panel/Mail/NewUserMail.php new file mode 100644 index 0000000..6351891 --- /dev/null +++ b/Modules/Panel/Mail/NewUserMail.php @@ -0,0 +1,32 @@ +view('panel::Mail.NewUsers') + ->with(['users' => $this->user]); + } +} diff --git a/Modules/Panel/Providers/PanelServiceProvider.php b/Modules/Panel/Providers/PanelServiceProvider.php index 2b13992..245dd18 100644 --- a/Modules/Panel/Providers/PanelServiceProvider.php +++ b/Modules/Panel/Providers/PanelServiceProvider.php @@ -4,7 +4,6 @@ use Illuminate\Support\Facades\Route; use Illuminate\Support\ServiceProvider; -use PhpParser\Node\Scalar\MagicConst\Dir; class PanelServiceProvider extends ServiceProvider { @@ -16,8 +15,8 @@ public function boot() Route::prefix('api/panel') ->middleware('api') ->namespace($this->namespace) - ->group(__DIR__ . '/../Routes/panel_route.php'); + ->group(__DIR__.'/../Routes/panel_route.php'); - $this->loadViewsFrom(__DIR__ . '/../Resources/views/Panel','panel'); + $this->loadViewsFrom(__DIR__.'/../Resources/views/Panel', 'panel'); } } diff --git a/Modules/Panel/Resources/views/Panel/Mail/NewUsers.blade.php b/Modules/Panel/Resources/views/Panel/Mail/NewUsers.blade.php new file mode 100644 index 0000000..7cac3a9 --- /dev/null +++ b/Modules/Panel/Resources/views/Panel/Mail/NewUsers.blade.php @@ -0,0 +1,3 @@ +@foreach ($users as $user) + {{ $user->email }} +@endforeach diff --git a/Modules/Panel/tests/Feature/CeremonyMessageTest.php b/Modules/Panel/tests/Feature/CeremonyMessageTest.php index c67d3d0..ae01ccf 100644 --- a/Modules/Panel/tests/Feature/CeremonyMessageTest.php +++ b/Modules/Panel/tests/Feature/CeremonyMessageTest.php @@ -8,9 +8,9 @@ use Module\Panel\Jobs\CeremonyMessage; use Module\Panel\Mail\CeremonyMail; use Module\User\Models\User; -use Tests\TestCase; +use Tests\CustomTestCase; -class CeremonyMessageTest extends TestCase +class CeremonyMessageTest extends CustomTestCase { use DatabaseMigrations; diff --git a/Modules/Plan/Casts/DescriptionPlan.php b/Modules/Plan/Casts/DescriptionPlan.php new file mode 100644 index 0000000..9094781 --- /dev/null +++ b/Modules/Plan/Casts/DescriptionPlan.php @@ -0,0 +1,36 @@ +getTimestamp(); + $persion = Jalalian::fromFormat('Y-m-d H:i:s', $value)->toString(); + + return ['timestamp' => $timestamp, 'org' => $value, 'jalali' => $persion]; + } + + return null; + } + + /** + * Prepare the given value for storage. + * + * @param \Illuminate\Database\Eloquent\Model $model + * @param string $key + * @param mixed $value + * @param array $attributes + * @return mixed + */ + public function set($model, string $key, $value, array $attributes) + { + return $value; + } +} diff --git a/Modules/Plan/Database/Migrations/2022_10_26_141546_create_plans_table.php b/Modules/Plan/Database/Migrations/2022_10_26_141546_create_plans_table.php new file mode 100644 index 0000000..149529d --- /dev/null +++ b/Modules/Plan/Database/Migrations/2022_10_26_141546_create_plans_table.php @@ -0,0 +1,40 @@ +uuid('id')->primary(); + $table->string('name'); + $table->string('slug'); + $table->json('description'); + $table->smallInteger('count_account'); + $table->decimal('price')->default(10); + $table->smallInteger('period')->unsigned()->default(1); + $table->string('interval')->default('day'); + + $table->softDeletes(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('premium'); + } +}; diff --git a/Modules/Plan/Database/Migrations/2022_12_04_150827_create_plan_features_table.php b/Modules/Plan/Database/Migrations/2022_12_04_150827_create_plan_features_table.php new file mode 100644 index 0000000..614a3ac --- /dev/null +++ b/Modules/Plan/Database/Migrations/2022_12_04_150827_create_plan_features_table.php @@ -0,0 +1,35 @@ +uuid('id')->primary(); + $table->text('description'); + $table->foreignUuid('plan_id')->constrained('plans'); + + $table->softDeletes(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('plan_feature'); + } +}; diff --git a/Modules/Plan/Database/Migrations/2022_12_05_142659_create_subscribes_table.php b/Modules/Plan/Database/Migrations/2022_12_05_142659_create_subscribes_table.php new file mode 100644 index 0000000..0f5f5e5 --- /dev/null +++ b/Modules/Plan/Database/Migrations/2022_12_05_142659_create_subscribes_table.php @@ -0,0 +1,35 @@ +uuid('id')->primary(); + $table->foreignUuid('plan_id')->constrained(); + $table->foreignUuid('user_id')->constrained(); + + $table->softDeletes(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('subscribes'); + } +}; diff --git a/Modules/Plan/Database/Seeders/PlanTableSeeder.php b/Modules/Plan/Database/Seeders/PlanTableSeeder.php new file mode 100644 index 0000000..14f4d64 --- /dev/null +++ b/Modules/Plan/Database/Seeders/PlanTableSeeder.php @@ -0,0 +1,97 @@ + $name = 'individual', + 'slug' => Str::slug($name), + 'count_account' => 1, + 'description' => [ + 'Can Download(pdf)', + 'Access to all posts', + ], + 'price' => 9.99, + 'period' => 1, + 'interval' => 'month', + ]); + + $duo = Plan::create([ + 'name' => $name = 'duo', + 'slug' => Str::slug($name), + 'count_account' => 2, + 'description' => [ + '2 Premium accounts for a couple under one roof', + 'Can Download(pdf)', + 'Access to all posts', + ], + 'price' => 12.99, + 'period' => 1, + 'interval' => 'month', + ]); + + $family = Plan::create([ + 'name' => $name = 'family', + 'slug' => Str::slug($name), + 'count_account' => 6, + 'description' => [ + '6 Premium accounts for family members living under one roof', + 'Can Download(pdf)', + 'Access to all posts', + ], + 'price' => 15.99, + 'period' => 1, + 'interval' => 'month', + ]); + + $student = Plan::create([ + 'name' => $name = 'student', + 'slug' => Str::slug($name), + 'count_account' => 1, + 'description' => [ + 'Hulu (ad-supported) plan', + 'Can Download(pdf)', + 'Access to all posts', + ], + 'price' => 4.99, + 'period' => 1, + 'interval' => 'month', + ]); + + $individual->plan_feature()->create([ + 'description' => 'terms and conditions for individual plan', + ]); + + $duo->plan_feature()->create([ + 'description' => 'terms and conditions for duo plan', + ]); + + $family->plan_feature()->create([ + 'description' => 'terms and conditions for family plan', + ]); + + $student->plan_feature()->create([ + 'description' => 'terms and conditions for student plan', + ]); + + $user = User::first(); + $user->subscribs()->create([ + 'plan_id' => $duo->id, + ]); + } +} diff --git a/Modules/Plan/Http/Controllers/v1/PlanController.php b/Modules/Plan/Http/Controllers/v1/PlanController.php new file mode 100644 index 0000000..606cf9e --- /dev/null +++ b/Modules/Plan/Http/Controllers/v1/PlanController.php @@ -0,0 +1,96 @@ +service()->index(); + + return $this->res('success', 200, 'all plans', $service); + } + + /** + * Store a newly created resource in storage. + * + * @param PlanRequest $request + * @return Response + * + * @throws AuthorizationException + */ + public function store(PlanRequest $request) + { + $this->authorize('create', Plan::class); + + $service = $this->service()->store($request); + + return $this->res('success', 201, 'success create plan', $service); + } + + /** + * Display the specified resource. + * + * @param int $id + * @return \Illuminate\Http\Response + */ + public function show($id) + { + // + } + + /** + * Update the specified resource in storage. + * + * @param \Illuminate\Http\Request $request + * @param int $id + * @return \Illuminate\Http\Response + */ + public function update(Request $request, $id) + { + // + } + + /** + * Remove the specified resource from storage. + * + * @param int $id + * @return \Illuminate\Http\Response + */ + public function destroy($id) + { + // + } + + public function res(string $status, int $code, string|null $message, array|int|JsonResource $data = null): JsonResponse + { + return response()->json([ + 'status' => $status, + 'message' => $message, + 'data' => $data, + ], $code); + } +} diff --git a/Modules/Plan/Http/Requests/v1/PlanRequest.php b/Modules/Plan/Http/Requests/v1/PlanRequest.php new file mode 100644 index 0000000..ef4dce4 --- /dev/null +++ b/Modules/Plan/Http/Requests/v1/PlanRequest.php @@ -0,0 +1,36 @@ + 'required|unique:plans', + 'count_account' => 'required|numeric|min:1', + 'description' => 'required|array', + 'price' => 'required|numeric', + 'period' => 'required|numeric', + 'interval' => 'required|string', + 'features' => 'required|array', + ]; + } +} diff --git a/Modules/Plan/Http/Resources/v1/PlanCollection.php b/Modules/Plan/Http/Resources/v1/PlanCollection.php new file mode 100644 index 0000000..d6b9692 --- /dev/null +++ b/Modules/Plan/Http/Resources/v1/PlanCollection.php @@ -0,0 +1,19 @@ + $this->collection]; + } +} diff --git a/Modules/Plan/Http/Resources/v1/PlanFeatureResource.php b/Modules/Plan/Http/Resources/v1/PlanFeatureResource.php new file mode 100644 index 0000000..a6de302 --- /dev/null +++ b/Modules/Plan/Http/Resources/v1/PlanFeatureResource.php @@ -0,0 +1,21 @@ + $request->description, + ]; + } +} diff --git a/Modules/Plan/Http/Resources/v1/PlanResource.php b/Modules/Plan/Http/Resources/v1/PlanResource.php new file mode 100644 index 0000000..68d41bd --- /dev/null +++ b/Modules/Plan/Http/Resources/v1/PlanResource.php @@ -0,0 +1,33 @@ + $this->name, + 'slug' => $this->slug, + 'count_account' => $this->count_account, + 'description' => $this->description, + 'price' => $this->price, + 'period' => $this->period, + 'interval' => $this->interval, + 'features' => $this->whenLoaded('plan_feature', function () { + return new PlanFeatureResource($this->plan_feature); + }), + 'created_at' => $this->created_at, + 'updated_at' => $this->updated_at, + 'deleted_at' => $this->deleted_at, + ]; + } +} diff --git a/Modules/Plan/Models/Plan.php b/Modules/Plan/Models/Plan.php new file mode 100644 index 0000000..368245b --- /dev/null +++ b/Modules/Plan/Models/Plan.php @@ -0,0 +1,30 @@ + DescriptionPlan::class, + 'created_at' => Times::class, + 'updated_at' => Times::class, + 'deleted_at' => Times::class, + ]; + + /** relations */ + public function plan_feature() + { + return $this->hasOne(PlanFeature::class); + } +} diff --git a/Modules/Plan/Models/PlanFeature.php b/Modules/Plan/Models/PlanFeature.php new file mode 100644 index 0000000..99c1ba8 --- /dev/null +++ b/Modules/Plan/Models/PlanFeature.php @@ -0,0 +1,20 @@ + DescriptionPlan::class, + ]; +} diff --git a/Modules/Plan/Models/Subscribe.php b/Modules/Plan/Models/Subscribe.php new file mode 100644 index 0000000..cc4c1ba --- /dev/null +++ b/Modules/Plan/Models/Subscribe.php @@ -0,0 +1,13 @@ +slug = Str::slug($plan->name); + } +} diff --git a/Modules/Plan/Policies/PlanPolicy.php b/Modules/Plan/Policies/PlanPolicy.php new file mode 100644 index 0000000..5afc165 --- /dev/null +++ b/Modules/Plan/Policies/PlanPolicy.php @@ -0,0 +1,71 @@ +role->permissions->contains('name', 'create-plan'); + } + + /** + * Determine whether the user can update the model. + * + * @param User $user + * @param Plan $plan + * @return \Illuminate\Auth\Access\Response|bool + */ + public function update(User $user, Plan $plan) + { + // + } + + /** + * Determine whether the user can delete the model. + * + * @param User $user + * @param Plan $plan + * @return \Illuminate\Auth\Access\Response|bool + */ + public function delete(User $user, Plan $plan) + { + // + } + + /** + * Determine whether the user can restore the model. + * + * @param User $user + * @param Plan $plan + * @return \Illuminate\Auth\Access\Response|bool + */ + public function restore(User $user, Plan $plan) + { + // + } + + /** + * Determine whether the user can permanently delete the model. + * + * @param User $user + * @param Plan $plan + * @return \Illuminate\Auth\Access\Response|bool + */ + public function forceDelete(User $user, Plan $plan) + { + // + } +} diff --git a/Modules/Plan/Providers/PlanServiceProvider.php b/Modules/Plan/Providers/PlanServiceProvider.php new file mode 100644 index 0000000..600e250 --- /dev/null +++ b/Modules/Plan/Providers/PlanServiceProvider.php @@ -0,0 +1,31 @@ + PlanPolicy::class, + ]; + + public function boot() + { + $this->loadMigrationsFrom(__DIR__.'/../Database/Migrations'); + + // Routes + Route::prefix('api/plans') + ->middleware('api') + ->namespace($this->namespace) + ->group(__DIR__.'/../Routes/plan_route.php'); + + Plan::observe(PlanObserver::class); + } +} diff --git a/Modules/Plan/Repository/PlanFeatureRepository.php b/Modules/Plan/Repository/PlanFeatureRepository.php new file mode 100644 index 0000000..a339a4a --- /dev/null +++ b/Modules/Plan/Repository/PlanFeatureRepository.php @@ -0,0 +1,14 @@ +plan_feature()->create([ + 'description' => $request, + ]); + } +} diff --git a/Modules/Plan/Repository/v1/PlanPlanRepository.php b/Modules/Plan/Repository/v1/PlanPlanRepository.php new file mode 100644 index 0000000..21a9864 --- /dev/null +++ b/Modules/Plan/Repository/v1/PlanPlanRepository.php @@ -0,0 +1,27 @@ +model()->get(); + } + + public function store($request) + { + return $this->model()->create([ + 'name' => $name = $request->name, + 'slug' => Str::slug($name), + 'count_account' => $request->count_account, + 'description' => $request->description, + 'price' => $request->price, + 'period' => $request->period, + 'interval' => $request->interval, + ]); + } +} diff --git a/Modules/Plan/Routes/plan_route.php b/Modules/Plan/Routes/plan_route.php new file mode 100644 index 0000000..3f2bee6 --- /dev/null +++ b/Modules/Plan/Routes/plan_route.php @@ -0,0 +1,10 @@ +name('plan.index'); + +// store panel +Route::post('', [PlanController::class, 'store'])->middleware('auth:sanctum')->name('plan.store'); diff --git a/Modules/Plan/Services/Service.php b/Modules/Plan/Services/Service.php new file mode 100644 index 0000000..fa26de7 --- /dev/null +++ b/Modules/Plan/Services/Service.php @@ -0,0 +1,14 @@ +repo()->index(); + + return new PlanCollection($plans); + } + + public function store($request) + { + $plan = $this->repo()->store($request); + (new PlanFeaturePlanRepository)->store($plan, $request->features); + + return new PlanResource($plan->load('plan_feature')); + } +} diff --git a/Modules/Plan/tests/Feature/StoreTest.php b/Modules/Plan/tests/Feature/StoreTest.php new file mode 100644 index 0000000..af39ade --- /dev/null +++ b/Modules/Plan/tests/Feature/StoreTest.php @@ -0,0 +1,198 @@ + 'pro', + 'count_account' => 1, + 'description' => [ + 'test 1', + 'test 2', + ], + 'price' => 10.99, + 'period' => 15, + 'interval' => 'day', + 'features' => [ + 'test feature 1', + 'test feature 2', + ], + ]; + + /** @test */ + public function writer_cant_store_new_plan() + { + $this->CreateUser('admin'); + $this->post(route('plan.store'), $this->plan)->assertForbidden(); + + $this->assertDatabaseMissing('plans', ['name' => 'pro']); + } + + /** @test */ + public function admin_without_permission_cant_store_new_plan() + { + $this->CreateUser('admin'); + $this->post(route('plan.store'), $this->plan)->assertForbidden(); + + $this->assertDatabaseMissing('plans', ['name' => 'pro']); + } + + /** @test */ + public function admin_with_permission_can_store_new_plan() + { + $this->CreateUser('admin', 'test@test.com', true); + $this->post(route('plan.store'), $this->plan)->assertCreated(); + + $this->assertDatabaseHas('plans', ['name' => 'pro']); + } + + /** @test */ + public function super_can_store_new_plan() + { + $this->CreateUser('super'); + $this->post(route('plan.store'), $this->plan)->assertCreated(); + + $this->assertDatabaseHas('plans', ['name' => 'pro']); + } + + /** @test */ + public function required_name_in_store_plan() + { + $plan = [ + 'count_account' => 1, + 'description' => [ + 'test 1', + 'test 2', + ], + 'price' => 10.99, + 'period' => 15, + 'interval' => 'day', + 'features' => [ + 'test feature 1', + 'test feature 2', + ], + ]; + + $this->CreateUser('super'); + $this->post(route('plan.store'), $plan)->assertUnprocessable(); + + $this->assertDatabaseMissing('plans', ['name' => 'pro']); + } + + /** @test */ + public function unique_name_in_store_plan() + { + $plan = [ + 'name' => 'pro', + 'count_account' => 1, + 'description' => [ + 'test 1', + 'test 2', + ], + 'price' => 10.99, + 'period' => 15, + 'interval' => 'day', + 'features' => [ + 'test feature 1', + 'test feature 2', + ], + ]; + + $this->CreateUser('super'); + $this->post(route('plan.store'), $this->plan)->assertCreated(); + + $this->post(route('plan.store'), $plan)->assertUnprocessable(); + } + + /** @test */ + public function required_countAccount_in_store_plan() + { + $plan = [ + 'name' => 'pro', + 'description' => [ + 'test 1', + 'test 2', + ], + 'price' => 10.99, + 'period' => 15, + 'interval' => 'day', + 'features' => [ + 'test feature 1', + 'test feature 2', + ], + ]; + + $this->CreateUser('super'); + $this->post(route('plan.store'), $plan)->assertUnprocessable(); + } + + /** @test */ + public function minimum_countAccount_in_store_plan() + { + $plan = [ + 'name' => 'pro', + 'count_account' => 0, + 'description' => [ + 'test 1', + 'test 2', + ], + 'price' => 10.99, + 'period' => 15, + 'interval' => 'day', + 'features' => [ + 'test feature 1', + 'test feature 2', + ], + ]; + + $this->CreateUser('super'); + $this->post(route('plan.store'), $plan)->assertUnprocessable(); + } + + /** @test */ + public function description_should_array_in_store_plan() + { + $plan = [ + 'name' => 'pro', + 'count_account' => 1, + 'description' => 'test 1', + 'price' => 10.99, + 'period' => 15, + 'interval' => 'day', + 'features' => [ + 'test feature 1', + 'test feature 2', + ], + ]; + + $this->CreateUser('super'); + $this->post(route('plan.store'), $plan)->assertUnprocessable(); + } + + /** @test */ + public function price_should_numeric_in_store_plan() + { + $plan = [ + 'name' => 'pro', + 'count_account' => 1, + 'description' => ['test 1'], + 'price' => 'test price', + 'period' => 15, + 'interval' => 'day', + 'features' => [ + 'test feature 1', + 'test feature 2', + ], + ]; + + $this->CreateUser('super'); + $this->post(route('plan.store'), $plan)->assertUnprocessable(); + } +} diff --git a/Modules/Post/Casts/Published.php b/Modules/Post/Casts/Published.php index efac8a2..e22a841 100644 --- a/Modules/Post/Casts/Published.php +++ b/Modules/Post/Casts/Published.php @@ -10,10 +10,10 @@ class Published implements CastsAttributes /** * Cast the given value. * - * @param Model $model - * @param string $key - * @param mixed $value - * @param array $attributes + * @param Model $model + * @param string $key + * @param mixed $value + * @param array $attributes * @return string */ public function get($model, string $key, $value, array $attributes): string @@ -21,16 +21,17 @@ public function get($model, string $key, $value, array $attributes): string if ($value) { return 'published'; } + return 'no published'; } /** * Prepare the given value for storage. * - * @param Model $model - * @param string $key - * @param mixed $value - * @param array $attributes + * @param Model $model + * @param string $key + * @param mixed $value + * @param array $attributes * @return mixed */ public function set($model, string $key, $value, array $attributes) diff --git a/Modules/Post/Database/Factories/PostFactory.php b/Modules/Post/Database/Factories/PostFactory.php index b4d85c8..8597b29 100644 --- a/Modules/Post/Database/Factories/PostFactory.php +++ b/Modules/Post/Database/Factories/PostFactory.php @@ -2,9 +2,8 @@ namespace Module\Post\Database\Factories; -use Module\Category\Models\Category; -use Module\Post\Models\Post; use Illuminate\Database\Eloquent\Factories\Factory; +use Module\Post\Models\Post; class PostFactory extends Factory { @@ -28,7 +27,7 @@ public function definition() 'title' => $faker->jobTitle, 'details' => $faker->paragraph(1), 'description' => $faker->paragraph(6), - 'banner' => $faker->imageUrl + 'banner' => $faker->imageUrl, ]; } } diff --git a/Modules/Post/Database/Migrations/2022_02_28_120350_create_posts_table.php b/Modules/Post/Database/Migrations/2022_02_28_120350_create_posts_table.php index e577d25..3dbde34 100644 --- a/Modules/Post/Database/Migrations/2022_02_28_120350_create_posts_table.php +++ b/Modules/Post/Database/Migrations/2022_02_28_120350_create_posts_table.php @@ -14,15 +14,17 @@ class CreatePostsTable extends Migration public function up() { Schema::create('posts', function (Blueprint $table) { - $table->id(); + $table->uuid('id')->primary(); $table->string('title'); $table->string('slug'); $table->string('details'); $table->text('description'); - $table->foreignId('user_id')->constrained()->cascadeOnDelete(); + $table->foreignUuid('user_id')->constrained()->cascadeOnDelete(); $table->boolean('blue_tick')->default(0); $table->timestamps(); $table->softDeletes(); + + $table->unique('slug'); }); } diff --git a/Modules/Post/Database/Migrations/2022_06_22_114947_add_published_column_to_posts_table.php b/Modules/Post/Database/Migrations/2022_06_22_114947_add_published_column_to_posts_table.php deleted file mode 100644 index dc701b5..0000000 --- a/Modules/Post/Database/Migrations/2022_06_22_114947_add_published_column_to_posts_table.php +++ /dev/null @@ -1,20 +0,0 @@ -boolean('published')->default(false)->after('blue_tick'); - }); - } -} diff --git a/Modules/Post/Events/PostPublish.php b/Modules/Post/Events/PostPublish.php index 6b39b74..931795f 100644 --- a/Modules/Post/Events/PostPublish.php +++ b/Modules/Post/Events/PostPublish.php @@ -2,16 +2,17 @@ namespace Module\Post\Events; +use Illuminate\Broadcasting\PrivateChannel; +use Illuminate\Contracts\Broadcasting\ShouldBroadcast; use Illuminate\Foundation\Events\Dispatchable; use Illuminate\Queue\SerializesModels; +use Illuminate\Broadcasting\InteractsWithSockets; use Module\Post\Models\Post; class PostPublish { use Dispatchable, SerializesModels; - private $post; - /** * Get slug($post) * @@ -26,10 +27,10 @@ public function getPost() * Create a new event instance. * * @return void + * * @var Post */ - public function __construct($post) + public function __construct(public $post) { - $this->post = $post; } } diff --git a/Modules/Post/Events/SockdolagerPost.php b/Modules/Post/Events/SockdolagerPost.php new file mode 100644 index 0000000..3b60eb1 --- /dev/null +++ b/Modules/Post/Events/SockdolagerPost.php @@ -0,0 +1,21 @@ +post; + } +} diff --git a/Modules/Post/Filters/FilterPost.php b/Modules/Post/Filters/FilterPost.php index 3d09f72..269ee8a 100644 --- a/Modules/Post/Filters/FilterPost.php +++ b/Modules/Post/Filters/FilterPost.php @@ -8,9 +8,7 @@ class FilterPost { public function handle($request, Closure $next) { - /* dd(request()->keyword); - return $next($request);*/ - return $next($request)->where('title', 'LIKE', '%' . request()->keyword . '%') - ->orWhere('details', 'LIKE', '%' . request()->keyword . '%'); + return $next($request)->where('title', 'LIKE', '%'.request()->keyword.'%') + ->orWhere('details', 'LIKE', '%'.request()->keyword.'%'); } } diff --git a/Modules/Post/Http/Controllers/api/v1/CommentController.php b/Modules/Post/Http/Controllers/api/v1/CommentController.php index c07e9cc..ac9b691 100644 --- a/Modules/Post/Http/Controllers/api/v1/CommentController.php +++ b/Modules/Post/Http/Controllers/api/v1/CommentController.php @@ -4,7 +4,10 @@ use App\Http\Controllers\Controller; use Illuminate\Http\JsonResponse; +use Illuminate\Http\Resources\Json\JsonResource; +use Illuminate\Http\Resources\Json\ResourceCollection; use Illuminate\Http\Response; +use Illuminate\Support\Collection; use Module\Comment\Models\Comment; use Module\Comment\Request\v1\CommentRequest; use Module\Post\Models\Post; @@ -17,51 +20,51 @@ class CommentController extends Controller implements ResponseGenerator /** * All comments for $post * - * @param Post $post + * @param Post $post * @return JsonResponse */ public function index(Post $post) { $comments = (new PostRepository)->comments($post); - return $this->res('success',Response::HTTP_OK,"All comment for $post->slug",$comments); + return $this->res('success', Response::HTTP_OK, "All comment for $post->slug", $comments); } /** * Create comment for post * - * @param Post $post - * @param CommentRequest $request + * @param Post $post + * @param CommentRequest $request * @return JsonResponse */ public function store(Post $post, CommentRequest $request) { $service = (new PostService)->createComment($post, $request); - return $this->res('success', Response::HTTP_CREATED, "Successfully add comment for post", $service); + return $this->res('success', Response::HTTP_CREATED, 'Successfully add comment for post', $service); } /** * Reply comment for post * - * @param Post $post - * @param Comment $comment - * @param CommentRequest $request + * @param Post $post + * @param Comment $comment + * @param CommentRequest $request * @return JsonResponse */ public function reply(Post $post, Comment $comment, CommentRequest $request) { $service = (new PostService)->replyComment($post, $comment, $request); - return $this->res('success', Response::HTTP_CREATED, "Successfully add reply for comment", $service); + return $this->res('success', Response::HTTP_CREATED, 'Successfully add reply for comment', $service); } - public function res($status, $code, $message, $data = null) + public function res(string $status, int $code, string|null $message, array|int|JsonResource $data = null): JsonResponse { return response()->json([ 'status' => $status, 'message' => $message, - 'data' => $data + 'data' => $data, ], $code); } } diff --git a/Modules/Post/Http/Controllers/api/v1/PostController.php b/Modules/Post/Http/Controllers/api/v1/PostController.php index 1a5ce08..860844b 100644 --- a/Modules/Post/Http/Controllers/api/v1/PostController.php +++ b/Modules/Post/Http/Controllers/api/v1/PostController.php @@ -7,7 +7,10 @@ use Illuminate\Http\JsonResponse; use Illuminate\Http\RedirectResponse; use Illuminate\Http\Request; +use Illuminate\Http\Resources\Json\JsonResource; +use Illuminate\Http\Resources\Json\ResourceCollection; use Illuminate\Http\Response; +use Illuminate\Support\Collection; use Module\Post\Http\Requests\v1\PostRequest; use Module\Post\Http\Requests\v1\UpdateRequest; use Module\Post\Http\Resources\v1\PostCollection; @@ -50,9 +53,9 @@ public function index(): PostCollection */ public function show(string $post): JsonResponse { - $post = $this->repo()->show($post); + $res = $this->repo()->show($post); - return $this->res('success', Response::HTTP_OK, null, $post); + return $this->res('success', Response::HTTP_OK, "this $post post", $res); } /** @@ -78,6 +81,7 @@ public function store(PostRequest $request): JsonResponse * @param UpdateRequest $request * @param Post $post * @return JsonResponse + * * @throws AuthorizationException */ public function update(UpdateRequest $request, Post $post) @@ -95,6 +99,7 @@ public function update(UpdateRequest $request, Post $post) * * @param Post $post * @return JsonResponse + * * @throws AuthorizationException */ public function destroy(Post $post) @@ -108,7 +113,7 @@ public function destroy(Post $post) } /** - * Display the specified resource. + * Search with elasticsearch or pipeline * * @param \Illuminate\Http\Request $request * @return JsonResponse @@ -133,12 +138,48 @@ public function short_link($link) return redirect()->route('post.show', $post->slug); } - public function res($status, $code, $message, $data = null) + /** + * @return JsonResponse + * @throws AuthorizationException + */ + public function updateLicense(Post $post, Request $request) + { + $this->authorize('update_license', [Post::class, $post]); + + $this->service()->update_license($post, $request); + + return $this->res('success', Response::HTTP_OK, null, new PostResource($post)); + } + + public function res(string $status, int $code, string|null $message, array|int|JsonResource $data = null): JsonResponse { return response()->json([ 'status' => $status, 'message' => $message, - 'data' => $data + 'data' => $data, ], $code); } + + /* Logic for upload file with tus,coming soon complete it + public function uploadWithTus(Request $request) + { + $client = Storage::disk('minio'); + $client->getClient()->registerStreamWrapper(); + + $bucket = config('filesystems.disks.minio.bucket'); + $basePath = "/projectz/hhh"; + $fullPath = "minio://$bucket/$basePath"; + + $server = new Server('file'); + $server->setApiPath($request->getRequestUri())->setUploadDir($fullPath); + $server->event()->addListener('tus-server.upload.complete', listener: function (TusEvent $event) use ($basePath, $fullPath) { + $filemeta = $event->getFile()->details(); + $basePath = $basePath . DIRECTORY_SEPARATOR; + $originalName = $filemeta['metadata']['filename']; + $newFilename = Str::uuid() . pathinfo($originalName, PATHINFO_EXTENSION); + $client->move("{$basePath}{$originalName}", "{$basePath}{$newFilename}"); + }); + + $server->serve(); + }*/ } diff --git a/Modules/Post/Http/Requests/v1/PostRequest.php b/Modules/Post/Http/Requests/v1/PostRequest.php index 8935df3..46f1049 100644 --- a/Modules/Post/Http/Requests/v1/PostRequest.php +++ b/Modules/Post/Http/Requests/v1/PostRequest.php @@ -29,8 +29,10 @@ public function rules(): array 'description' => 'required', 'banner' => 'required|mimes:png,jpg', 'attachment' => 'nullable|array', + 'attachment.video.*' => 'file|mimetypes:video/mp4,video/mpeg,video/x-matroska', + 'attachment.image.*' => 'file|mimes:png,jpg', 'tag' => 'required|array', - 'category' => 'required|array' + 'category' => 'required|array', ]; } } diff --git a/Modules/Post/Http/Resources/v1/PostResource.php b/Modules/Post/Http/Resources/v1/PostResource.php index 3b18efd..ba9816b 100644 --- a/Modules/Post/Http/Resources/v1/PostResource.php +++ b/Modules/Post/Http/Resources/v1/PostResource.php @@ -6,6 +6,7 @@ use Module\Category\Http\Resources\v1\CategoryCollection; use Module\Comment\Http\Resources\v1\CommentCollection; use Module\Media\Http\Resources\v1\MediaCollection; +use Module\Status\Http\Resources\v1\StatusResource; use Module\Tag\Http\Resources\v1\TagCollection; use Module\User\Http\Resources\v1\UserResource; @@ -14,7 +15,7 @@ class PostResource extends JsonResource /** * Transform the resource into an array. * - * @param \Illuminate\Http\Request $request + * @param \Illuminate\Http\Request $request * @return array|\Illuminate\Contracts\Support\Arrayable|\JsonSerializable */ public function toArray($request) @@ -41,8 +42,8 @@ public function toArray($request) return new CommentCollection($this->comments); }), 'blue_tick' => $this->blue_tick, - 'published' => $this->published, - 'created_at' => $this->created_at + 'published' => new StatusResource($this->statuses), + 'created_at' => $this->created_at, ]; } } diff --git a/Modules/Post/Listeners/ReplyAuthorPost.php b/Modules/Post/Listeners/ReplyAuthorPost.php new file mode 100644 index 0000000..8815958 --- /dev/null +++ b/Modules/Post/Listeners/ReplyAuthorPost.php @@ -0,0 +1,30 @@ +getPosts(); + + $mail = new ReplyAuthor([ + 'slug' => $post->slug, + 'name' => $post->statuses->name, + 'reason' => $post->statuses->reason, + ]); + + Mail::to($post->user->email)->send($mail); + } +} diff --git a/Modules/Post/Listeners/ReportPostPublishedAdmin.php b/Modules/Post/Listeners/ReportPostPublishedAdmin.php index 5e4f06e..6d7d46d 100644 --- a/Modules/Post/Listeners/ReportPostPublishedAdmin.php +++ b/Modules/Post/Listeners/ReportPostPublishedAdmin.php @@ -10,24 +10,10 @@ class ReportPostPublishedAdmin implements ShouldQueue { - /** - * The name of the connection the job should be sent to. - * - * @var string|null - */ - public $queue = 'admin'; - - /** - * The time (seconds) before the job should be processed. - * - * @var int - */ - public $delay = 90; - /** * Handle the event. * - * @param PostPublish $event + * @param PostPublish $event * @return void */ public function handle(PostPublish $event) diff --git a/Modules/Post/Mail/PostPublishedPermission.php b/Modules/Post/Mail/PostPublishedPermission.php index 927d428..63a857d 100644 --- a/Modules/Post/Mail/PostPublishedPermission.php +++ b/Modules/Post/Mail/PostPublishedPermission.php @@ -15,7 +15,7 @@ class PostPublishedPermission extends Mailable /** * Create a new message instance. * - * @param string $slug + * @param string $slug * @return void */ public function __construct($slug) diff --git a/Modules/Post/Mail/ReplyAuthor.php b/Modules/Post/Mail/ReplyAuthor.php new file mode 100644 index 0000000..5f01f13 --- /dev/null +++ b/Modules/Post/Mail/ReplyAuthor.php @@ -0,0 +1,37 @@ +view('post::Mail/ReportToAuthor') + ->with([ + 'slug' => $this->post['slug'], + 'name' => $this->post['name'], + 'reason' => $this->post['reason'], + ]); + } +} diff --git a/Modules/Post/Models/Post.php b/Modules/Post/Models/Post.php index 8a79cd6..9fee8b7 100644 --- a/Modules/Post/Models/Post.php +++ b/Modules/Post/Models/Post.php @@ -6,19 +6,25 @@ use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\SoftDeletes; +use JeroenG\Explorer\Application\Explored; +use Laravel\Scout\Searchable; use Module\Category\Models\Category; use Module\Comment\Models\Comment; use Module\Media\Models\Media; use Module\Post\Casts\Published; use Module\Post\Database\Factories\PostFactory; +use Module\Share\Traits\UseUuid; +use Module\Status\Models\Status; use Module\Tag\Models\Tag; use Module\User\Models\User; -class Post extends Model +class Post extends Model implements Explored { - use HasFactory, SoftDeletes; + use HasFactory, UseUuid, SoftDeletes, Searchable; - protected $fillable = ['title', 'details', 'description', 'banner', 'user_id', 'blue_tick']; + protected $fillable = ['id', 'title', 'slug', 'details', 'description', 'banner', 'user_id', 'blue_tick']; + + protected $with = ['statuses']; /** * The attributes that should be cast. @@ -26,8 +32,9 @@ class Post extends Model * @var array */ protected $casts = [ + 'id' => 'string', 'blue_tick' => 'boolean', - 'published' => Published::class + // 'published' => Published::class, ]; /** @@ -41,6 +48,11 @@ protected static function newFactory(): Factory } /** Relations */ + public function statuses() + { + return $this->morphOne(Status::class, 'statusable'); + } + public function user(): \Illuminate\Database\Eloquent\Relations\BelongsTo { return $this->belongsTo(User::class); @@ -68,4 +80,56 @@ public function comments(): \Illuminate\Database\Eloquent\Relations\MorphMany { return $this->morphMany(Comment::class, 'commentable'); } + + /** + * Get the name of the index associated with the model. + * + * @return string + */ + public function searchableAs() + { + return 'posts'; + } + + /** + * Get the value used to index the model. + * + * @return mixed + */ + public function getScoutKey() + { + return (string)$this->id; + } + + /** + * Get the key name used to index the model. + * + * @return mixed + */ + public function getScoutKeyName() + { + return (string)'id'; + } + + public function mappableAs(): array + { + return [ + 'id' => 'text', + 'title' => 'text', + 'slug' => 'text', + 'details' => 'text', + 'created_at' => 'date', + ]; + } + + public function toSearchableArray() + { + return [ + 'id' => $this->getKey(), + 'title' => $this->title, + 'slug' => $this->slug, + 'details' => $this->details, + 'created_at' => $this->created_at, + ]; + } } diff --git a/Modules/Post/Observers/PostObserver.php b/Modules/Post/Observers/PostObserver.php index d169077..341fd6e 100644 --- a/Modules/Post/Observers/PostObserver.php +++ b/Modules/Post/Observers/PostObserver.php @@ -18,10 +18,20 @@ public function creating(Post $post) { $service = resolve(PostService::class); + // slug $post->slug = Str::slug($post->title); + // short link $post->short_link = $service->generateLink(); } + public function created(Post $post) + { + $post->statuses()->create([ + 'name' => 'pending', + 'reason' => 'pending approval', + ]); + } + /** * Handle the Post "updating" event. * diff --git a/Modules/Post/Policies/PostPolicy.php b/Modules/Post/Policies/PostPolicy.php index 871f9eb..e847fa5 100644 --- a/Modules/Post/Policies/PostPolicy.php +++ b/Modules/Post/Policies/PostPolicy.php @@ -2,10 +2,9 @@ namespace Module\Post\Policies; -use Illuminate\Auth\Access\Response; +use Illuminate\Auth\Access\HandlesAuthorization; use Module\Post\Models\Post; use Module\User\Models\User; -use Illuminate\Auth\Access\HandlesAuthorization; class PostPolicy { @@ -14,8 +13,8 @@ class PostPolicy /** * Determine whether the user can update the model. * - * @param User $user - * @param Post $post + * @param User $user + * @param Post $post * @return bool */ public function update(User $user, Post $post): bool @@ -26,7 +25,7 @@ public function update(User $user, Post $post): bool /** * Determine whether the user can create models. * - * @param \Module\User\Models\User $user + * @param \Module\User\Models\User $user * @return \Illuminate\Auth\Access\Response|bool */ public function create(User $user) @@ -37,8 +36,8 @@ public function create(User $user) /** * Determine whether the user can delete the model. * - * @param User $user - * @param Post $post + * @param User $user + * @param Post $post * @return bool */ public function delete(User $user, Post $post): bool @@ -47,24 +46,18 @@ public function delete(User $user, Post $post): bool } /** - * Determine whether the user can restore the model. + * admin can update license * - * @param \App\Models\User $user - * @param \App\Models\Post $post - * @return Response|bool + * @param User $user + * @param Post $post + * @return bool */ - public function restore(User $user, Post $post) + public function update_license(User $user, Post $post): bool { - } + if ($user->role->name == 'admin' && $user->id === $post->user_id) { + return true; + } - /** - * Determine whether the user can permanently delete the model. - * - * @param \App\Models\User $user - * @param \App\Models\Post $post - * @return Response|bool - */ - public function forceDelete(User $user, Post $post) - { + return false; } } diff --git a/Modules/Post/Providers/PostServiceProvider.php b/Modules/Post/Providers/PostServiceProvider.php index 7f63796..71d2a08 100644 --- a/Modules/Post/Providers/PostServiceProvider.php +++ b/Modules/Post/Providers/PostServiceProvider.php @@ -2,18 +2,21 @@ namespace Module\Post\Providers; -use Illuminate\Support\ServiceProvider; +use Illuminate\Cache\RateLimiting\Limit; +use Illuminate\Http\Request; +use Illuminate\Support\Facades\RateLimiter; use Illuminate\Support\Facades\Route; +use Illuminate\Support\ServiceProvider; use Module\Post\Models\Post; use Module\Post\Observers\PostObserver; use Module\Post\Policies\PostPolicy; class PostServiceProvider extends ServiceProvider { - private $namespace = 'Module\Post\Http\Controllers'; + private string $namespace = 'Module\Post\Http\Controllers'; protected $policies = [ - Post::class => PostPolicy::class + Post::class => PostPolicy::class, ]; /** @@ -39,9 +42,15 @@ public function boot() ->group(__DIR__ . '/../Routes/single_route_post.php'); // View - $this->loadViewsFrom(__DIR__ . "/../Resources/views/Post", "post"); + $this->loadViewsFrom(__DIR__ . '/../Resources/views/Post', 'post'); // Observer Post Post::observe(PostObserver::class); + + RateLimiter::for('store', function (Request $request) { + return $request->user()->isVip() + ? Limit::none() + : Limit::perMinutes(60,100); + }); } } diff --git a/Modules/Post/Repository/v1/PostRepository.php b/Modules/Post/Repository/v1/PostRepository.php index 254689d..7aad891 100644 --- a/Modules/Post/Repository/v1/PostRepository.php +++ b/Modules/Post/Repository/v1/PostRepository.php @@ -2,11 +2,13 @@ namespace Module\Post\Repository\v1; +use Exception; use Illuminate\Database\Eloquent\Builder; -use Illuminate\Database\Eloquent\Collection; use Illuminate\Database\Eloquent\Model; use Illuminate\Pipeline\Pipeline; use Illuminate\Support\Facades\Cache; +use Illuminate\Support\Facades\DB; +use Illuminate\Support\Facades\Storage; use Module\Comment\Http\Resources\v1\CommentCollection; use Module\Post\Filters\BlueTick; use Module\Post\Filters\FilterPost; @@ -15,9 +17,16 @@ use Module\Post\Http\Resources\v1\PostResource; use Module\Post\Models\Post; use Module\Post\Repository\PostRepository as Repository; +use Module\Post\Services\v1\PostService; +use Module\User\Models\User; class PostRepository extends Repository { + protected function service() + { + return resolve(PostService::class); + } + /** * Paginate $this->model * @@ -35,25 +44,35 @@ public function paginate(int $number = 10): PostCollection * Display the specified resource. * * @param string $post - * @return PostResource + * @return array */ - public function show(string $post): PostResource + public function show(string $post): array { return Cache::remember("post/$post", 900, function () use ($post) { - return new PostResource( - $this->model()->where('slug', $post)->with(['user', 'tags', 'media', 'comments'])->firstOrFail() - ); + $res = $this->specialPost($post); + + return [ + 'post' => new PostResource($res[0]), + 'otherPosts' => new PostCollection($res[1]), + ]; }); } /** * Search in Module\Post\Models\Post + * * @param string $keyword * @return object */ public function search(string $keyword): object { - return app(Pipeline::class) + // elastic engine + return Post::search($keyword) + ->where('published', false) + ->where('blue_tick', request()->blue_tick) + ->get(); + + /*return app(Pipeline::class) ->send($this->model()) ->through([ Published::class, @@ -61,7 +80,7 @@ public function search(string $keyword): object FilterPost::class ]) ->thenReturn() - ->cursor(); + ->cursor();*/ } /** @@ -96,4 +115,48 @@ public function comments($post) { return new CommentCollection($post->comments); } + + /** + * post & similar posts + * + * @param string $post + * @return array + * + * @throws Exception + */ + private function specialPost(string $post): array + { + DB::beginTransaction(); + + try { + $mainPost = $this->model() + ->where('slug', $post) + ->with(['user', 'categories', 'tags', 'media', 'comments']) + ->firstOrFail(); + + // Similar post with $mainPost + $otherPosts = $this->model()->whereHas('categories', function ($query) use ($mainPost) { + $query->where('slug', $mainPost->categories->all()[0]->slug); + })->where('slug', '!=', $mainPost->slug)->get(['title', 'details']); + DB::commit(); + } catch (Exception $exception) { + DB::rollBack(); + throw $exception; + } + + return [$mainPost, $otherPosts]; + } + + /** + * + */ + public function store($request) + { + return auth()->user()->posts()->create([ + 'title' => $title = $request->title, + 'details' => $request->details, + 'description' => $request->description, + 'banner' => $this->service()->uploadBanner($request->banner, $title), + ]); + } } diff --git a/Modules/Post/Resources/views/Post/Mail/PostPublishedPermission.blade.php b/Modules/Post/Resources/views/Post/Mail/PostPublishedPermission.blade.php index 4a33d62..607fa3c 100644 --- a/Modules/Post/Resources/views/Post/Mail/PostPublishedPermission.blade.php +++ b/Modules/Post/Resources/views/Post/Mail/PostPublishedPermission.blade.php @@ -1,4 +1,4 @@ dear admin -{{ $slug }} + {{ $slug }} diff --git a/Modules/Post/Resources/views/Post/Mail/ReportToAuthor.blade.php b/Modules/Post/Resources/views/Post/Mail/ReportToAuthor.blade.php new file mode 100644 index 0000000..22490b9 --- /dev/null +++ b/Modules/Post/Resources/views/Post/Mail/ReportToAuthor.blade.php @@ -0,0 +1,10 @@ +For license post + + {{ $slug }} + +
+
+## About Redact
+
+Redact is built with php and laravel. Redact is a place to write articles. Redact is suitable for developers who want to
+learn more about Laravel and know how to use technologies.
+
+* [Installation](#installation)
+ * [Docker](#docker)
+ * [Without Docker](#without-docker)
+
+* [Technology](#usage)
+ * [Horizon](#horizon)
+ * [Kibana](#kibana)
+
+## Installation
+
+If you have docker,set up with it:
+
+### Docker
+
+```sh
+git clone https://github.com/idanieldrew/redact
+
+cd modular-blog
+
+# set environment
+copy .env.example .env
+
+# Start docker in os
+docker-compose up --build
+```
+
+### Without Docker
+
+```sh
+git clone https://github.com/idanieldrew/redact
+
+cd modular-blog
+
+# set environment
+copy .env.example .env
+
+# install composer
+composer install
+```
+
+## Technology
+
+### Horizon
+
+In docker-compose,I used RabbitMQ for queue driver for laravel,if you want use redis,pay attention environment.
+First,Running horizon
+
+```
+php artisan horizon
+```
+
+and then open this url:
+
+```
+http://127.0.0.1/horizon/dashboard
+```
+
+### Kibana
+
+In Kibana,I stored data and also stored logs with Filebeat and then transform with elastic
+
+```
+http://localhost:5601
+```
+
+and then create dashboards and also run queue driver for transform post model to elastic.
+
+```
+php artisan queue:work //Pay attension queue driver
+```
+
+## Tests
+
+```
+docker-compose exec redact_application php artisan test
+```
+
+## Fake data
+
+```sh
+docker-compose exec weblog_application php artisan migrate:fresh --seed
+```
+
+## Database Description
+
+#### Laravel is flexible in determining database but i performed
+
+- PostgresQL for main database
+- Redis for cache database
+- Elasticsearch for search posts(blogs)
+
+## Webserver Description
+
+- Nginx,because use php-fpm
+
+## Other Description
+
+- Use Kibana for dashboard and management elastic
+- Has continuous integration(GitHub actions)
+
+## Tips for developers
+
+- This project is modular,therefor it's content in "Modules" folder
+- I tried to ensure all services or modules have tests and their coverage is close to 100%,but you can also help to
+ increase coverage tests
+- For language and translatable,I make a custom module(Lang).I got help
+ form [spatie package](https://github.com/spatie/laravel-translatable).this package gives you many possibilities,but i
+ don't need all this.That's why i made this module.
+- Similarly, For Roles & permissions,I make a custom module(Role).I got help
+ form [spatie package](https://github.com/spatie/laravel-permission). This package gives you many possibilities,but i
+ don't need all this.That's why i made this module.
+- Use cache for queries(redis)
+- I tried to clean code so use Solid and Design patterns. If you have an idea to make the code cleaner,do a pull
+ request.
+
+## Pull Requests
+
+Thank you for investing your time in contributing to our project.
+
+
+
diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php
index 40ccc04..7f1b8d7 100644
--- a/app/Console/Kernel.php
+++ b/app/Console/Kernel.php
@@ -4,6 +4,8 @@
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
+use Module\Panel\Jobs\NewUsers;
+use Module\Share\Commands\Docs;
class Kernel extends ConsoleKernel
{
@@ -13,17 +15,19 @@ class Kernel extends ConsoleKernel
* @var array
*/
protected $commands = [
+ Docs::class,
];
/**
* Define the application's command schedule.
*
- * @param Schedule $schedule
+ * @param Schedule $schedule
* @return void
*/
protected function schedule(Schedule $schedule)
{
- $schedule->command('test')->hourly();
+ // new users
+ $schedule->job(NewUsers::class)->daily();
}
/**
diff --git a/app/Exceptions/AuthenticationException.php b/app/Exceptions/AuthenticationException.php
new file mode 100644
index 0000000..4e0de6e
--- /dev/null
+++ b/app/Exceptions/AuthenticationException.php
@@ -0,0 +1,23 @@
+json([
+ 'status' => 'fail',
+ 'message' => $this->getMessage(),
+ ], Response::HTTP_UNAUTHORIZED);
+ }
+}
diff --git a/app/Exceptions/AuthorizationException.php b/app/Exceptions/AuthorizationException.php
new file mode 100644
index 0000000..92c91de
--- /dev/null
+++ b/app/Exceptions/AuthorizationException.php
@@ -0,0 +1,23 @@
+json([
+ 'status' => 'fail',
+ 'message' => $this->getMessage(),
+ ], Response::HTTP_FORBIDDEN);
+ }
+}
diff --git a/app/Exceptions/Handler.php b/app/Exceptions/Handler.php
index df36f1d..7d3c5ae 100644
--- a/app/Exceptions/Handler.php
+++ b/app/Exceptions/Handler.php
@@ -2,10 +2,11 @@
namespace App\Exceptions;
+use Illuminate\Auth\Access\AuthorizationException;
use Illuminate\Auth\AuthenticationException;
+use Illuminate\Database\Eloquent\ModelNotFoundException as NotFound;
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
use Illuminate\Http\Exceptions\ThrottleRequestsException;
-use Illuminate\Http\Response;
use Illuminate\Support\Facades\Log;
use Illuminate\Validation\ValidationException;
use Symfony\Component\HttpKernel\Exception\HttpException;
@@ -27,7 +28,7 @@ class Handler extends ExceptionHandler
/**
* Report or log an exception.
*
- * @param Throwable $e
+ * @param Throwable $e
* @return void
*
* @throws Throwable
@@ -62,48 +63,32 @@ public function register()
public function render($request, Throwable $e)
{
+ if ($e instanceof AuthorizationException) {
+ throw new \App\Exceptions\AuthorizationException();
+ }
if ($e instanceof NotFoundHttpException) {
- return response()->json([
- 'status' => 'fail',
- 'message' => 'Not Found',
- ], Response::HTTP_NOT_FOUND, $e->getHeaders());
+ throw new \App\Exceptions\NotFoundHttpException();
+ }
+ if ($e instanceof NotFound) {
+ throw new ModelNotFoundException();
}
if ($e instanceof MethodNotAllowedHttpException) {
- return response()->json([
- 'status' => 'fail',
- 'message' => $e->getMessage(),
- ], Response::HTTP_METHOD_NOT_ALLOWED, $e->getHeaders());
+ throw new \App\Exceptions\MethodNotAllowedHttpException();
}
if ($e instanceof ValidationException) {
- return response()->json([
- 'status' => 'fail',
- 'message' => $e->getMessage(),
- 'errors' => $e->errors(),
- ], Response::HTTP_UNPROCESSABLE_ENTITY);
+ throw new \App\Exceptions\ValidationException($e->errors());
}
if ($e instanceof AuthenticationException) {
- return response()->json([
- 'status' => 'fail',
- 'message' => $e->getMessage(),
- ], Response::HTTP_UNAUTHORIZED);
+ throw new \App\Exceptions\AuthenticationException();
}
if ($e instanceof ThrottleRequestsException) {
- return response()->json([
- 'status' => 'fail',
- 'message' => $e->getMessage(),
- ], Response::HTTP_TOO_MANY_REQUESTS, $e->getHeaders());
+ throw new \App\Exceptions\ThrottleRequestsException();
}
if ($e instanceof RouteNotFoundException) {
- return response()->json([
- 'status' => 'error',
- 'message' => $this->isDebugMode() ? $e->getMessage() : 'Internal Server Error',
- ], Response::HTTP_INTERNAL_SERVER_ERROR);
+ throw new \App\Exceptions\RouteNotFoundException();
}
if ($e instanceof HttpException) {
- return response()->json([
- 'status' => 'error',
- 'message' => $this->isDebugMode() ? "forbidden" : 'forbidden',
- ], Response::HTTP_FORBIDDEN);
+ throw new \App\Exceptions\HttpException();
}
// dd($e);
diff --git a/app/Exceptions/HttpException.php b/app/Exceptions/HttpException.php
new file mode 100644
index 0000000..1eae3c6
--- /dev/null
+++ b/app/Exceptions/HttpException.php
@@ -0,0 +1,23 @@
+json([
+ 'status' => 'error',
+ 'message' => $this->getMessage(),
+ ], Response::HTTP_FORBIDDEN);
+ }
+}
diff --git a/app/Exceptions/MethodNotAllowedHttpException.php b/app/Exceptions/MethodNotAllowedHttpException.php
new file mode 100644
index 0000000..967bc8a
--- /dev/null
+++ b/app/Exceptions/MethodNotAllowedHttpException.php
@@ -0,0 +1,23 @@
+json([
+ 'status' => 'fail',
+ 'message' => $this->getMessage(),
+ ], Response::HTTP_METHOD_NOT_ALLOWED);
+ }
+}
diff --git a/app/Exceptions/ModelNotFoundException.php b/app/Exceptions/ModelNotFoundException.php
new file mode 100644
index 0000000..0a70ab3
--- /dev/null
+++ b/app/Exceptions/ModelNotFoundException.php
@@ -0,0 +1,23 @@
+json([
+ 'status' => 'fail',
+ 'message' => $this->getMessage(),
+ ], Response::HTTP_NOT_FOUND);
+ }
+}
diff --git a/app/Exceptions/NotFoundHttpException.php b/app/Exceptions/NotFoundHttpException.php
new file mode 100644
index 0000000..3b11de4
--- /dev/null
+++ b/app/Exceptions/NotFoundHttpException.php
@@ -0,0 +1,23 @@
+json([
+ 'status' => 'fail',
+ 'message' => $this->getMessage(),
+ ], Response::HTTP_NOT_FOUND);
+ }
+}
diff --git a/app/Exceptions/RouteNotFoundException.php b/app/Exceptions/RouteNotFoundException.php
new file mode 100644
index 0000000..1d7bff2
--- /dev/null
+++ b/app/Exceptions/RouteNotFoundException.php
@@ -0,0 +1,23 @@
+json([
+ 'status' => 'error',
+ 'message' => $this->getMessage(),
+ ], Response::HTTP_INTERNAL_SERVER_ERROR);
+ }
+}
diff --git a/app/Exceptions/ThrottleRequestsException.php b/app/Exceptions/ThrottleRequestsException.php
new file mode 100644
index 0000000..2049d1e
--- /dev/null
+++ b/app/Exceptions/ThrottleRequestsException.php
@@ -0,0 +1,23 @@
+json([
+ 'status' => 'fail',
+ 'message' => 'Try to later',
+ ], Response::HTTP_TOO_MANY_REQUESTS);
+ }
+}
diff --git a/app/Exceptions/ValidationException.php b/app/Exceptions/ValidationException.php
new file mode 100644
index 0000000..16a4b3c
--- /dev/null
+++ b/app/Exceptions/ValidationException.php
@@ -0,0 +1,31 @@
+json([
+ 'status' => 'fail',
+ 'message' => $this->getMessage(),
+ 'errors' => $this->datas,
+
+ ], Response::HTTP_UNPROCESSABLE_ENTITY);
+ }
+}
diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php
index 3797cb2..a0a2a8a 100644
--- a/app/Http/Controllers/Controller.php
+++ b/app/Http/Controllers/Controller.php
@@ -5,9 +5,7 @@
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Foundation\Validation\ValidatesRequests;
-use Illuminate\Http\Request;
use Illuminate\Routing\Controller as BaseController;
-use Illuminate\Support\Facades\App;
class Controller extends BaseController
{
diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php
index f023ba3..c9e119d 100644
--- a/app/Http/Kernel.php
+++ b/app/Http/Kernel.php
@@ -21,6 +21,7 @@ class Kernel extends HttpKernel
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
\App\Http\Middleware\TrimStrings::class,
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
+ \Sentry\Laravel\Tracing\Middleware::class
];
/**
@@ -32,14 +33,14 @@ class Kernel extends HttpKernel
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
- \Illuminate\Session\Middleware\StartSession::class,
+// \Illuminate\Session\Middleware\StartSession::class,
// \Illuminate\Session\Middleware\AuthenticateSession::class,
- \Illuminate\View\Middleware\ShareErrorsFromSession::class,
+// \Illuminate\View\Middleware\ShareErrorsFromSession::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
'api' => [
-// \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
+ // \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
'throttle:api',
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
@@ -62,6 +63,6 @@ class Kernel extends HttpKernel
'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
- 'lang' => \Module\Lang\Http\Middleware\Lang::class
+ 'lang' => \Module\Lang\Http\Middleware\Lang::class,
];
}
diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php
index 6bce56f..0b161ae 100644
--- a/app/Providers/AppServiceProvider.php
+++ b/app/Providers/AppServiceProvider.php
@@ -3,7 +3,7 @@
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
-use Module\User\Models\User;
+
class AppServiceProvider extends ServiceProvider
{
diff --git a/app/Providers/AuthServiceProvider.php b/app/Providers/AuthServiceProvider.php
index 9403aa7..a9dc7c3 100644
--- a/app/Providers/AuthServiceProvider.php
+++ b/app/Providers/AuthServiceProvider.php
@@ -3,7 +3,6 @@
namespace App\Providers;
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
-use Illuminate\Support\Facades\Gate;
class AuthServiceProvider extends ServiceProvider
{
diff --git a/app/Providers/EventServiceProvider.php b/app/Providers/EventServiceProvider.php
index 833a7ba..c6757f2 100644
--- a/app/Providers/EventServiceProvider.php
+++ b/app/Providers/EventServiceProvider.php
@@ -2,13 +2,15 @@
namespace App\Providers;
-use Illuminate\Auth\Events\Registered;
-use Illuminate\Auth\Listeners\SendEmailVerificationNotification;
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
use Module\Category\Events\NewCategory;
use Module\Category\Listeners\ReportCategoryPublishedAdmin;
use Module\Post\Events\PostPublish;
+use Module\Post\Events\SockdolagerPost;
+use Module\Post\Listeners\ReplyAuthorPost;
use Module\Post\Listeners\ReportPostPublishedAdmin;
+use Module\Token\Listeners\SendMailVerification;
+use Module\User\Events\Registered;
class EventServiceProvider extends ServiceProvider
{
@@ -18,14 +20,20 @@ class EventServiceProvider extends ServiceProvider
* @var array
*/
protected $listen = [
- Registered::class => [
+ /*Registered::class => [
SendEmailVerificationNotification::class,
- ],
+ ],*/ // work in v1
+ Registered::class => [
+ SendMailVerification::class,
+ ], // work in v2
PostPublish::class => [
ReportPostPublishedAdmin::class,
],
+ SockdolagerPost::class => [
+ ReplyAuthorPost::class,
+ ],
NewCategory::class => [
ReportCategoryPublishedAdmin::class,
- ]
+ ],
];
}
diff --git a/app/Providers/HorizonServiceProvider.php b/app/Providers/HorizonServiceProvider.php
new file mode 100644
index 0000000..0888117
--- /dev/null
+++ b/app/Providers/HorizonServiceProvider.php
@@ -0,0 +1,42 @@
+email, [
+ //
+ ]);
+ });
+ }
+}
diff --git a/app/Providers/RouteServiceProvider.php b/app/Providers/RouteServiceProvider.php
index 1a66429..7cbb77f 100644
--- a/app/Providers/RouteServiceProvider.php
+++ b/app/Providers/RouteServiceProvider.php
@@ -6,7 +6,6 @@
use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\RateLimiter;
-use Illuminate\Support\Facades\Route;
class RouteServiceProvider extends ServiceProvider
{
@@ -20,7 +19,7 @@ public function boot()
$this->configureRateLimiting();
$this->app->singleton('domain', function ($app) {
- return 'api/' . request()->segment(2);
+ return 'api/'.request()->segment(2);
});
/*$this->routes(function () {
diff --git a/composer.json b/composer.json
index 6cfbad8..06cb9aa 100644
--- a/composer.json
+++ b/composer.json
@@ -1,31 +1,57 @@
{
- "name": "laravel/laravel",
+ "name": "idanieldrew/redact",
"type": "project",
- "description": "The Laravel Framework.",
+ "description": "Redact is a place to write article.",
"keywords": [
- "framework",
- "laravel"
+ "laravel",
+ "article",
+ "redact",
+ "php",
+ "project",
+ "crud"
+ ],
+ "authors": [
+ {
+ "name": "Daniel",
+ "email": "danielgia35@gmail.com",
+ "role": "Developer"
+ }
],
"license": "MIT",
"require": {
- "php": "^7.3|^8.0",
- "fruitcake/laravel-cors": "^2.0",
- "guzzlehttp/guzzle": "^7.0.1",
+ "php": "^8.0||^8.1",
+ "ext-json": "*",
+ "ankitpokhrel/tus-php": "^2.3",
+ "fruitcake/laravel-cors": "^3.0",
+ "guzzlehttp/guzzle": "^7.2",
"intervention/image": "^2.7",
- "laravel/framework": "^8.54",
+ "jeroen-g/explorer": "^3.2",
+ "laravel/framework": "^9.19",
+ "laravel/horizon": "^5.10",
"laravel/sanctum": "^2.11",
- "laravel/tinker": "^2.5",
- "predis/predis": "^1.1"
+ "laravel/scout": "^9.6",
+ "laravel/tinker": "^2.7",
+ "league/flysystem-aws-s3-v3": "^3.175.1",
+ "morilog/jalali": "3.*",
+ "pbmedia/laravel-ffmpeg": "^8.3",
+ "php-amqplib/php-amqplib": "^3.4.0",
+ "predis/predis": "^2.0.2",
+ "pusher/pusher-php-server": "^7.2",
+ "sentry/sentry-laravel": "^3.3",
+ "vladimir-yuldashev/laravel-queue-rabbitmq": "^13.0"
},
"require-dev": {
- "facade/ignition": "^2.5",
"fakerphp/faker": "^1.9.1",
+ "laravel/pint": "^1.0",
"laravel/sail": "^1.0.1",
"laravel/telescope": "^4.9",
"mockery/mockery": "^1.4.4",
- "nunomaduro/collision": "^5.10",
- "nunomaduro/phpinsights": "^2.4",
- "phpunit/phpunit": "^9.5.8"
+ "nunomaduro/collision": "^6.1",
+ "nunomaduro/larastan": "^2.0",
+ "pestphp/pest": "1.22.6",
+ "pestphp/pest-plugin-laravel": "1.x",
+ "phpunit/phpunit": "^9.5.10",
+ "spatie/laravel-ignition": "^1.0"
},
"autoload": {
"files": [
@@ -69,7 +95,9 @@
"preferred-install": "dist",
"sort-packages": true,
"allow-plugins": {
- "dealerdirect/phpcodesniffer-composer-installer": true
+ "dealerdirect/phpcodesniffer-composer-installer": true,
+ "php-http/discovery": true,
+ "pestphp/pest-plugin": true
}
},
"minimum-stability": "dev",
diff --git a/composer.lock b/composer.lock
index 80da13b..2ff082e 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,40 +4,52 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "e2876a1fb2fdc4f14377eae62bf0e29f",
+ "content-hash": "3e9f6fa1b8d2ce70393b7f5eee06f0a4",
"packages": [
{
- "name": "asm89/stack-cors",
- "version": "v2.0.3",
+ "name": "ankitpokhrel/tus-php",
+ "version": "v2.3.0",
"source": {
"type": "git",
- "url": "https://github.com/asm89/stack-cors.git",
- "reference": "9cb795bf30988e8c96dd3c40623c48a877bc6714"
+ "url": "https://github.com/ankitpokhrel/tus-php.git",
+ "reference": "20671422b433aa45196f89906acf7c4328043ab8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/asm89/stack-cors/zipball/9cb795bf30988e8c96dd3c40623c48a877bc6714",
- "reference": "9cb795bf30988e8c96dd3c40623c48a877bc6714",
+ "url": "https://api.github.com/repos/ankitpokhrel/tus-php/zipball/20671422b433aa45196f89906acf7c4328043ab8",
+ "reference": "20671422b433aa45196f89906acf7c4328043ab8",
"shasum": ""
},
"require": {
- "php": "^7.0|^8.0",
- "symfony/http-foundation": "~2.7|~3.0|~4.0|~5.0",
- "symfony/http-kernel": "~2.7|~3.0|~4.0|~5.0"
+ "ext-json": "*",
+ "guzzlehttp/guzzle": "^6.3 || ^7.0",
+ "nesbot/carbon": "^1.26.3 || ^2.0",
+ "php": "^7.2.5 || ^8.0",
+ "predis/predis": "^1.1 || ^2.0",
+ "ramsey/uuid": "^3.7 || ^4.0",
+ "symfony/console": "^5.0 || ^6.0",
+ "symfony/event-dispatcher": "^5.0 || ^6.0",
+ "symfony/http-foundation": "^5.0.7 || ^6.0",
+ "symfony/mime": "^5.0.9 || ^6.0"
},
"require-dev": {
- "phpunit/phpunit": "^6|^7|^8|^9",
- "squizlabs/php_codesniffer": "^3.5"
+ "ext-pcntl": "*",
+ "friendsofphp/php-cs-fixer": "^3.0",
+ "mockery/mockery": "^1.3.4 || ^1.4.2",
+ "phpunit/phpunit": "^8.5.19 || ^9.4"
},
+ "bin": [
+ "bin/tus"
+ ],
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.0-dev"
+ "dev-main": "2.3-dev"
}
},
"autoload": {
"psr-4": {
- "Asm89\\Stack\\": "src/"
+ "TusPhp\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -46,44 +58,260 @@
],
"authors": [
{
- "name": "Alexander",
- "email": "iam.asm89@gmail.com"
+ "name": "Ankit Pokhrel",
+ "email": "hello@ankit.pl"
+ }
+ ],
+ "description": "A pure PHP server and client for the tus resumable upload protocol v1.0.0",
+ "support": {
+ "issues": "https://github.com/ankitpokhrel/tus-php/issues",
+ "source": "https://github.com/ankitpokhrel/tus-php/tree/v2.3.0"
+ },
+ "funding": [
+ {
+ "url": "https://paypal.me/pokharelankit",
+ "type": "custom"
+ }
+ ],
+ "time": "2022-09-18T08:52:10+00:00"
+ },
+ {
+ "name": "aws/aws-crt-php",
+ "version": "v1.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/awslabs/aws-crt-php.git",
+ "reference": "1926277fc71d253dfa820271ac5987bdb193ccf5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/awslabs/aws-crt-php/zipball/1926277fc71d253dfa820271ac5987bdb193ccf5",
+ "reference": "1926277fc71d253dfa820271ac5987bdb193ccf5",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.5"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^4.8.35||^5.6.3||^9.5",
+ "yoast/phpunit-polyfills": "^1.0"
+ },
+ "suggest": {
+ "ext-awscrt": "Make sure you install awscrt native extension to use any of the functionality."
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "Apache-2.0"
+ ],
+ "authors": [
+ {
+ "name": "AWS SDK Common Runtime Team",
+ "email": "aws-sdk-common-runtime@amazon.com"
}
],
- "description": "Cross-origin resource sharing library and stack middleware",
- "homepage": "https://github.com/asm89/stack-cors",
+ "description": "AWS Common Runtime for PHP",
+ "homepage": "https://github.com/awslabs/aws-crt-php",
"keywords": [
- "cors",
- "stack"
+ "amazon",
+ "aws",
+ "crt",
+ "sdk"
+ ],
+ "support": {
+ "issues": "https://github.com/awslabs/aws-crt-php/issues",
+ "source": "https://github.com/awslabs/aws-crt-php/tree/v1.2.1"
+ },
+ "time": "2023-03-24T20:22:19+00:00"
+ },
+ {
+ "name": "aws/aws-sdk-php",
+ "version": "3.274.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/aws/aws-sdk-php.git",
+ "reference": "92907084c3b71859672ef6399194ef9c1f772b1a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/92907084c3b71859672ef6399194ef9c1f772b1a",
+ "reference": "92907084c3b71859672ef6399194ef9c1f772b1a",
+ "shasum": ""
+ },
+ "require": {
+ "aws/aws-crt-php": "^1.0.4",
+ "ext-json": "*",
+ "ext-pcre": "*",
+ "ext-simplexml": "*",
+ "guzzlehttp/guzzle": "^6.5.8 || ^7.4.5",
+ "guzzlehttp/promises": "^1.4.0",
+ "guzzlehttp/psr7": "^1.9.1 || ^2.4.5",
+ "mtdowling/jmespath.php": "^2.6",
+ "php": ">=5.5",
+ "psr/http-message": "^1.0"
+ },
+ "require-dev": {
+ "andrewsville/php-token-reflection": "^1.4",
+ "aws/aws-php-sns-message-validator": "~1.0",
+ "behat/behat": "~3.0",
+ "composer/composer": "^1.10.22",
+ "dms/phpunit-arraysubset-asserts": "^0.4.0",
+ "doctrine/cache": "~1.4",
+ "ext-dom": "*",
+ "ext-openssl": "*",
+ "ext-pcntl": "*",
+ "ext-sockets": "*",
+ "nette/neon": "^2.3",
+ "paragonie/random_compat": ">= 2",
+ "phpunit/phpunit": "^4.8.35 || ^5.6.3 || ^9.5",
+ "psr/cache": "^1.0",
+ "psr/simple-cache": "^1.0",
+ "sebastian/comparator": "^1.2.3 || ^4.0",
+ "yoast/phpunit-polyfills": "^1.0"
+ },
+ "suggest": {
+ "aws/aws-php-sns-message-validator": "To validate incoming SNS notifications",
+ "doctrine/cache": "To use the DoctrineCacheAdapter",
+ "ext-curl": "To send requests using cURL",
+ "ext-openssl": "Allows working with CloudFront private distributions and verifying received SNS messages",
+ "ext-sockets": "To use client-side monitoring"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/functions.php"
+ ],
+ "psr-4": {
+ "Aws\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "Apache-2.0"
+ ],
+ "authors": [
+ {
+ "name": "Amazon Web Services",
+ "homepage": "http://aws.amazon.com"
+ }
+ ],
+ "description": "AWS SDK for PHP - Use Amazon Web Services in your PHP project",
+ "homepage": "http://aws.amazon.com/sdkforphp",
+ "keywords": [
+ "amazon",
+ "aws",
+ "cloud",
+ "dynamodb",
+ "ec2",
+ "glacier",
+ "s3",
+ "sdk"
+ ],
+ "support": {
+ "forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80",
+ "issues": "https://github.com/aws/aws-sdk-php/issues",
+ "source": "https://github.com/aws/aws-sdk-php/tree/3.274.1"
+ },
+ "time": "2023-06-28T18:21:54+00:00"
+ },
+ {
+ "name": "beberlei/assert",
+ "version": "v3.3.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/beberlei/assert.git",
+ "reference": "cb70015c04be1baee6f5f5c953703347c0ac1655"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/beberlei/assert/zipball/cb70015c04be1baee6f5f5c953703347c0ac1655",
+ "reference": "cb70015c04be1baee6f5f5c953703347c0ac1655",
+ "shasum": ""
+ },
+ "require": {
+ "ext-ctype": "*",
+ "ext-json": "*",
+ "ext-mbstring": "*",
+ "ext-simplexml": "*",
+ "php": "^7.0 || ^8.0"
+ },
+ "require-dev": {
+ "friendsofphp/php-cs-fixer": "*",
+ "phpstan/phpstan": "*",
+ "phpunit/phpunit": ">=6.0.0",
+ "yoast/phpunit-polyfills": "^0.1.0"
+ },
+ "suggest": {
+ "ext-intl": "Needed to allow Assertion::count(), Assertion::isCountable(), Assertion::minCount(), and Assertion::maxCount() to operate on ResourceBundles"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "lib/Assert/functions.php"
+ ],
+ "psr-4": {
+ "Assert\\": "lib/Assert"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-2-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Benjamin Eberlei",
+ "email": "kontakt@beberlei.de",
+ "role": "Lead Developer"
+ },
+ {
+ "name": "Richard Quadling",
+ "email": "rquadling@gmail.com",
+ "role": "Collaborator"
+ }
+ ],
+ "description": "Thin assertion library for input validation in business models.",
+ "keywords": [
+ "assert",
+ "assertion",
+ "validation"
],
"support": {
- "issues": "https://github.com/asm89/stack-cors/issues",
- "source": "https://github.com/asm89/stack-cors/tree/v2.0.3"
+ "issues": "https://github.com/beberlei/assert/issues",
+ "source": "https://github.com/beberlei/assert/tree/v3.3.2"
},
- "time": "2021-03-11T06:42:03+00:00"
+ "time": "2021-12-16T21:41:27+00:00"
},
{
"name": "brick/math",
- "version": "0.9.3",
+ "version": "0.11.0",
"source": {
"type": "git",
"url": "https://github.com/brick/math.git",
- "reference": "ca57d18f028f84f777b2168cd1911b0dee2343ae"
+ "reference": "0ad82ce168c82ba30d1c01ec86116ab52f589478"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/brick/math/zipball/ca57d18f028f84f777b2168cd1911b0dee2343ae",
- "reference": "ca57d18f028f84f777b2168cd1911b0dee2343ae",
+ "url": "https://api.github.com/repos/brick/math/zipball/0ad82ce168c82ba30d1c01ec86116ab52f589478",
+ "reference": "0ad82ce168c82ba30d1c01ec86116ab52f589478",
"shasum": ""
},
"require": {
- "ext-json": "*",
- "php": "^7.1 || ^8.0"
+ "php": "^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": "5.0.0"
},
"type": "library",
"autoload": {
@@ -108,32 +336,94 @@
],
"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.11.0"
},
"funding": [
{
"url": "https://github.com/BenMorel",
"type": "github"
+ }
+ ],
+ "time": "2023-01-15T23:15:59+00:00"
+ },
+ {
+ "name": "clue/stream-filter",
+ "version": "v1.6.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/clue/stream-filter.git",
+ "reference": "d6169430c7731d8509da7aecd0af756a5747b78e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/clue/stream-filter/zipball/d6169430c7731d8509da7aecd0af756a5747b78e",
+ "reference": "d6169430c7731d8509da7aecd0af756a5747b78e",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3 || ^5.7 || ^4.8.36"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "src/functions_include.php"
+ ],
+ "psr-4": {
+ "Clue\\StreamFilter\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Christian Lück",
+ "email": "christian@clue.engineering"
+ }
+ ],
+ "description": "A simple and modern approach to stream filtering in PHP",
+ "homepage": "https://github.com/clue/php-stream-filter",
+ "keywords": [
+ "bucket brigade",
+ "callback",
+ "filter",
+ "php_user_filter",
+ "stream",
+ "stream_filter_append",
+ "stream_filter_register"
+ ],
+ "support": {
+ "issues": "https://github.com/clue/stream-filter/issues",
+ "source": "https://github.com/clue/stream-filter/tree/v1.6.0"
+ },
+ "funding": [
+ {
+ "url": "https://clue.engineering/support",
+ "type": "custom"
},
{
- "url": "https://tidelift.com/funding/github/packagist/brick/math",
- "type": "tidelift"
+ "url": "https://github.com/clue",
+ "type": "github"
}
],
- "time": "2021-08-15T20:50:18+00:00"
+ "time": "2022-02-21T13:15:14+00:00"
},
{
"name": "dflydev/dot-access-data",
- "version": "v3.0.1",
+ "version": "v3.0.2",
"source": {
"type": "git",
"url": "https://github.com/dflydev/dflydev-dot-access-data.git",
- "reference": "0992cc19268b259a39e86f296da5f0677841f42c"
+ "reference": "f41715465d65213d644d3141a6a93081be5d3549"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/0992cc19268b259a39e86f296da5f0677841f42c",
- "reference": "0992cc19268b259a39e86f296da5f0677841f42c",
+ "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/f41715465d65213d644d3141a6a93081be5d3549",
+ "reference": "f41715465d65213d644d3141a6a93081be5d3549",
"shasum": ""
},
"require": {
@@ -144,7 +434,7 @@
"phpunit/phpunit": "^7.5 || ^8.5 || ^9.3",
"scrutinizer/ocular": "1.6.0",
"squizlabs/php_codesniffer": "^3.5",
- "vimeo/psalm": "^3.14"
+ "vimeo/psalm": "^4.0.0"
},
"type": "library",
"extra": {
@@ -193,40 +483,36 @@
],
"support": {
"issues": "https://github.com/dflydev/dflydev-dot-access-data/issues",
- "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.1"
+ "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.2"
},
- "time": "2021-08-13T13:06:58+00:00"
+ "time": "2022-10-27T11:44:00+00:00"
},
{
"name": "doctrine/inflector",
- "version": "2.0.3",
+ "version": "2.0.8",
"source": {
"type": "git",
"url": "https://github.com/doctrine/inflector.git",
- "reference": "9cf661f4eb38f7c881cac67c75ea9b00bf97b210"
+ "reference": "f9301a5b2fb1216b2b08f02ba04dc45423db6bff"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/inflector/zipball/9cf661f4eb38f7c881cac67c75ea9b00bf97b210",
- "reference": "9cf661f4eb38f7c881cac67c75ea9b00bf97b210",
+ "url": "https://api.github.com/repos/doctrine/inflector/zipball/f9301a5b2fb1216b2b08f02ba04dc45423db6bff",
+ "reference": "f9301a5b2fb1216b2b08f02ba04dc45423db6bff",
"shasum": ""
},
"require": {
"php": "^7.2 || ^8.0"
},
"require-dev": {
- "doctrine/coding-standard": "^7.0",
- "phpstan/phpstan": "^0.11",
- "phpstan/phpstan-phpunit": "^0.11",
- "phpstan/phpstan-strict-rules": "^0.11",
- "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0"
+ "doctrine/coding-standard": "^11.0",
+ "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 || ^5.4"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.0.x-dev"
- }
- },
"autoload": {
"psr-4": {
"Doctrine\\Inflector\\": "lib/Doctrine/Inflector"
@@ -274,7 +560,7 @@
],
"support": {
"issues": "https://github.com/doctrine/inflector/issues",
- "source": "https://github.com/doctrine/inflector/tree/2.0.x"
+ "source": "https://github.com/doctrine/inflector/tree/2.0.8"
},
"funding": [
{
@@ -290,39 +576,36 @@
"type": "tidelift"
}
],
- "time": "2020-05-29T15:13:26+00:00"
+ "time": "2023-06-16T13:40:37+00:00"
},
{
"name": "doctrine/lexer",
- "version": "1.2.1",
+ "version": "3.0.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/lexer.git",
- "reference": "e864bbf5904cb8f5bb334f99209b48018522f042"
+ "reference": "84a527db05647743d50373e0ec53a152f2cde568"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/lexer/zipball/e864bbf5904cb8f5bb334f99209b48018522f042",
- "reference": "e864bbf5904cb8f5bb334f99209b48018522f042",
+ "url": "https://api.github.com/repos/doctrine/lexer/zipball/84a527db05647743d50373e0ec53a152f2cde568",
+ "reference": "84a527db05647743d50373e0ec53a152f2cde568",
"shasum": ""
},
"require": {
- "php": "^7.2 || ^8.0"
+ "php": "^8.1"
},
"require-dev": {
- "doctrine/coding-standard": "^6.0",
- "phpstan/phpstan": "^0.11.8",
- "phpunit/phpunit": "^8.2"
+ "doctrine/coding-standard": "^10",
+ "phpstan/phpstan": "^1.9",
+ "phpunit/phpunit": "^9.5",
+ "psalm/plugin-phpunit": "^0.18.3",
+ "vimeo/psalm": "^5.0"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.2.x-dev"
- }
- },
"autoload": {
"psr-4": {
- "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer"
+ "Doctrine\\Common\\Lexer\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -354,7 +637,7 @@
],
"support": {
"issues": "https://github.com/doctrine/lexer/issues",
- "source": "https://github.com/doctrine/lexer/tree/1.2.1"
+ "source": "https://github.com/doctrine/lexer/tree/3.0.0"
},
"funding": [
{
@@ -370,33 +653,33 @@
"type": "tidelift"
}
],
- "time": "2020-05-25T17:44:05+00:00"
+ "time": "2022-12-15T16:57:16+00:00"
},
{
"name": "dragonmantank/cron-expression",
- "version": "v3.1.0",
+ "version": "v3.3.2",
"source": {
"type": "git",
"url": "https://github.com/dragonmantank/cron-expression.git",
- "reference": "7a8c6e56ab3ffcc538d05e8155bb42269abf1a0c"
+ "reference": "782ca5968ab8b954773518e9e49a6f892a34b2a8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/7a8c6e56ab3ffcc538d05e8155bb42269abf1a0c",
- "reference": "7a8c6e56ab3ffcc538d05e8155bb42269abf1a0c",
+ "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/782ca5968ab8b954773518e9e49a6f892a34b2a8",
+ "reference": "782ca5968ab8b954773518e9e49a6f892a34b2a8",
"shasum": ""
},
"require": {
"php": "^7.2|^8.0",
- "webmozart/assert": "^1.7.0"
+ "webmozart/assert": "^1.0"
},
"replace": {
"mtdowling/cron-expression": "^1.0"
},
"require-dev": {
"phpstan/extension-installer": "^1.0",
- "phpstan/phpstan": "^0.12",
- "phpstan/phpstan-webmozart-assert": "^0.12.7",
+ "phpstan/phpstan": "^1.0",
+ "phpstan/phpstan-webmozart-assert": "^1.0",
"phpunit/phpunit": "^7.0|^8.0|^9.0"
},
"type": "library",
@@ -423,7 +706,7 @@
],
"support": {
"issues": "https://github.com/dragonmantank/cron-expression/issues",
- "source": "https://github.com/dragonmantank/cron-expression/tree/v3.1.0"
+ "source": "https://github.com/dragonmantank/cron-expression/tree/v3.3.2"
},
"funding": [
{
@@ -431,31 +714,30 @@
"type": "github"
}
],
- "time": "2020-11-24T19:55:57+00:00"
+ "time": "2022-09-10T18:51:20+00:00"
},
{
"name": "egulias/email-validator",
- "version": "2.1.25",
+ "version": "4.0.1",
"source": {
"type": "git",
"url": "https://github.com/egulias/EmailValidator.git",
- "reference": "0dbf5d78455d4d6a41d186da50adc1122ec066f4"
+ "reference": "3a85486b709bc384dae8eb78fb2eec649bdb64ff"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/0dbf5d78455d4d6a41d186da50adc1122ec066f4",
- "reference": "0dbf5d78455d4d6a41d186da50adc1122ec066f4",
+ "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/3a85486b709bc384dae8eb78fb2eec649bdb64ff",
+ "reference": "3a85486b709bc384dae8eb78fb2eec649bdb64ff",
"shasum": ""
},
"require": {
- "doctrine/lexer": "^1.0.1",
- "php": ">=5.5",
- "symfony/polyfill-intl-idn": "^1.10"
+ "doctrine/lexer": "^2.0 || ^3.0",
+ "php": ">=8.1",
+ "symfony/polyfill-intl-idn": "^1.26"
},
"require-dev": {
- "dominicsayers/isemail": "^3.0.7",
- "phpunit/phpunit": "^4.8.36|^7.5.15",
- "satooshi/php-coveralls": "^1.0.1"
+ "phpunit/phpunit": "^9.5.27",
+ "vimeo/psalm": "^4.30"
},
"suggest": {
"ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation"
@@ -463,7 +745,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.1.x-dev"
+ "dev-master": "4.0.x-dev"
}
},
"autoload": {
@@ -491,7 +773,7 @@
],
"support": {
"issues": "https://github.com/egulias/EmailValidator/issues",
- "source": "https://github.com/egulias/EmailValidator/tree/2.1.25"
+ "source": "https://github.com/egulias/EmailValidator/tree/4.0.1"
},
"funding": [
{
@@ -499,112 +781,95 @@
"type": "github"
}
],
- "time": "2020-12-29T14:50:06+00:00"
+ "time": "2023-01-14T14:17:03+00:00"
},
{
- "name": "fruitcake/laravel-cors",
- "version": "v2.2.0",
+ "name": "elasticsearch/elasticsearch",
+ "version": "v7.17.2",
"source": {
"type": "git",
- "url": "https://github.com/fruitcake/laravel-cors.git",
- "reference": "783a74f5e3431d7b9805be8afb60fd0a8f743534"
+ "url": "git@github.com:elastic/elasticsearch-php.git",
+ "reference": "2d302233f2bb0926812d82823bb820d405e130fc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/fruitcake/laravel-cors/zipball/783a74f5e3431d7b9805be8afb60fd0a8f743534",
- "reference": "783a74f5e3431d7b9805be8afb60fd0a8f743534",
+ "url": "https://api.github.com/repos/elastic/elasticsearch-php/zipball/2d302233f2bb0926812d82823bb820d405e130fc",
+ "reference": "2d302233f2bb0926812d82823bb820d405e130fc",
"shasum": ""
},
"require": {
- "asm89/stack-cors": "^2.0.1",
- "illuminate/contracts": "^6|^7|^8|^9",
- "illuminate/support": "^6|^7|^8|^9",
- "php": ">=7.2"
+ "ext-json": ">=1.3.7",
+ "ezimuel/ringphp": "^1.1.2",
+ "php": "^7.3 || ^8.0",
+ "psr/log": "^1|^2|^3"
},
"require-dev": {
- "laravel/framework": "^6|^7.24|^8",
- "orchestra/testbench-dusk": "^4|^5|^6|^7",
- "phpunit/phpunit": "^6|^7|^8|^9",
- "squizlabs/php_codesniffer": "^3.5"
+ "ext-yaml": "*",
+ "ext-zip": "*",
+ "mockery/mockery": "^1.2",
+ "phpstan/phpstan": "^1.10",
+ "phpunit/phpunit": "^9.3",
+ "squizlabs/php_codesniffer": "^3.4",
+ "symfony/finder": "~4.0"
},
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.1-dev"
- },
- "laravel": {
- "providers": [
- "Fruitcake\\Cors\\CorsServiceProvider"
- ]
- }
+ "suggest": {
+ "ext-curl": "*",
+ "monolog/monolog": "Allows for client-level logging and tracing"
},
+ "type": "library",
"autoload": {
+ "files": [
+ "src/autoload.php"
+ ],
"psr-4": {
- "Fruitcake\\Cors\\": "src/"
+ "Elasticsearch\\": "src/Elasticsearch/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "MIT"
+ "Apache-2.0",
+ "LGPL-2.1-only"
],
"authors": [
{
- "name": "Fruitcake",
- "homepage": "https://fruitcake.nl"
+ "name": "Zachary Tong"
},
{
- "name": "Barry vd. Heuvel",
- "email": "barryvdh@gmail.com"
+ "name": "Enrico Zimuel"
}
],
- "description": "Adds CORS (Cross-Origin Resource Sharing) headers support in your Laravel application",
+ "description": "PHP Client for Elasticsearch",
"keywords": [
- "api",
- "cors",
- "crossdomain",
- "laravel"
- ],
- "support": {
- "issues": "https://github.com/fruitcake/laravel-cors/issues",
- "source": "https://github.com/fruitcake/laravel-cors/tree/v2.2.0"
- },
- "funding": [
- {
- "url": "https://fruitcake.nl",
- "type": "custom"
- },
- {
- "url": "https://github.com/barryvdh",
- "type": "github"
- }
+ "client",
+ "elasticsearch",
+ "search"
],
- "time": "2022-02-23T14:25:13+00:00"
+ "time": "2023-04-21T15:31:12+00:00"
},
{
- "name": "graham-campbell/result-type",
- "version": "v1.0.2",
+ "name": "evenement/evenement",
+ "version": "v3.0.1",
"source": {
"type": "git",
- "url": "https://github.com/GrahamCampbell/Result-Type.git",
- "reference": "84afea85c6841deeea872f36249a206e878a5de0"
+ "url": "https://github.com/igorw/evenement.git",
+ "reference": "531bfb9d15f8aa57454f5f0285b18bec903b8fb7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/84afea85c6841deeea872f36249a206e878a5de0",
- "reference": "84afea85c6841deeea872f36249a206e878a5de0",
+ "url": "https://api.github.com/repos/igorw/evenement/zipball/531bfb9d15f8aa57454f5f0285b18bec903b8fb7",
+ "reference": "531bfb9d15f8aa57454f5f0285b18bec903b8fb7",
"shasum": ""
},
"require": {
- "php": "^7.0 || ^8.0",
- "phpoption/phpoption": "^1.8"
+ "php": ">=7.0"
},
"require-dev": {
- "phpunit/phpunit": "^6.5.14 || ^7.5.20 || ^8.5.19 || ^9.5.8"
+ "phpunit/phpunit": "^6.0"
},
"type": "library",
"autoload": {
- "psr-4": {
- "GrahamCampbell\\ResultType\\": "src/"
+ "psr-0": {
+ "Evenement": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -613,83 +878,51 @@
],
"authors": [
{
- "name": "Graham Campbell",
- "email": "hello@gjcampbell.co.uk"
+ "name": "Igor Wiedler",
+ "email": "igor@wiedler.ch"
}
],
- "description": "An Implementation Of The Result Type",
+ "description": "Événement is a very simple event dispatching library for PHP",
"keywords": [
- "Graham Campbell",
- "GrahamCampbell",
- "Result Type",
- "Result-Type",
- "result"
+ "event-dispatcher",
+ "event-emitter"
],
"support": {
- "issues": "https://github.com/GrahamCampbell/Result-Type/issues",
- "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.0.2"
+ "issues": "https://github.com/igorw/evenement/issues",
+ "source": "https://github.com/igorw/evenement/tree/master"
},
- "funding": [
- {
- "url": "https://github.com/GrahamCampbell",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/graham-campbell/result-type",
- "type": "tidelift"
- }
- ],
- "time": "2021-08-28T21:34:50+00:00"
+ "time": "2017-07-23T21:35:13+00:00"
},
{
- "name": "guzzlehttp/guzzle",
- "version": "7.3.0",
+ "name": "ezimuel/guzzlestreams",
+ "version": "3.1.0",
"source": {
"type": "git",
- "url": "https://github.com/guzzle/guzzle.git",
- "reference": "7008573787b430c1c1f650e3722d9bba59967628"
+ "url": "https://github.com/ezimuel/guzzlestreams.git",
+ "reference": "b4b5a025dfee70d6cd34c780e07330eb93d5b997"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/guzzle/zipball/7008573787b430c1c1f650e3722d9bba59967628",
- "reference": "7008573787b430c1c1f650e3722d9bba59967628",
+ "url": "https://api.github.com/repos/ezimuel/guzzlestreams/zipball/b4b5a025dfee70d6cd34c780e07330eb93d5b997",
+ "reference": "b4b5a025dfee70d6cd34c780e07330eb93d5b997",
"shasum": ""
},
"require": {
- "ext-json": "*",
- "guzzlehttp/promises": "^1.4",
- "guzzlehttp/psr7": "^1.7 || ^2.0",
- "php": "^7.2.5 || ^8.0",
- "psr/http-client": "^1.0"
- },
- "provide": {
- "psr/http-client-implementation": "1.0"
+ "php": ">=5.4.0"
},
"require-dev": {
- "bamarni/composer-bin-plugin": "^1.4.1",
- "ext-curl": "*",
- "php-http/client-integration-tests": "^3.0",
- "phpunit/phpunit": "^8.5.5 || ^9.3.5",
- "psr/log": "^1.1"
- },
- "suggest": {
- "ext-curl": "Required for CURL handler support",
- "ext-intl": "Required for Internationalized Domain Name (IDN) support",
- "psr/log": "Required for using the Log middleware"
+ "phpunit/phpunit": "~9.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "7.3-dev"
+ "dev-master": "3.0-dev"
}
},
"autoload": {
"psr-4": {
- "GuzzleHttp\\": "src/"
- },
- "files": [
- "src/functions_include.php"
- ]
+ "GuzzleHttp\\Stream\\": "src/"
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -700,83 +933,58 @@
"name": "Michael Dowling",
"email": "mtdowling@gmail.com",
"homepage": "https://github.com/mtdowling"
- },
- {
- "name": "Márk Sági-Kazár",
- "email": "mark.sagikazar@gmail.com",
- "homepage": "https://sagikazarmark.hu"
}
],
- "description": "Guzzle is a PHP HTTP client library",
+ "description": "Fork of guzzle/streams (abandoned) to be used with elasticsearch-php",
"homepage": "http://guzzlephp.org/",
"keywords": [
- "client",
- "curl",
- "framework",
- "http",
- "http client",
- "psr-18",
- "psr-7",
- "rest",
- "web service"
+ "Guzzle",
+ "stream"
],
"support": {
- "issues": "https://github.com/guzzle/guzzle/issues",
- "source": "https://github.com/guzzle/guzzle/tree/7.3.0"
+ "source": "https://github.com/ezimuel/guzzlestreams/tree/3.1.0"
},
- "funding": [
- {
- "url": "https://github.com/GrahamCampbell",
- "type": "github"
- },
- {
- "url": "https://github.com/Nyholm",
- "type": "github"
- },
- {
- "url": "https://github.com/alexeyshockov",
- "type": "github"
- },
- {
- "url": "https://github.com/gmponos",
- "type": "github"
- }
- ],
- "time": "2021-03-23T11:33:13+00:00"
+ "time": "2022-10-24T12:58:50+00:00"
},
{
- "name": "guzzlehttp/promises",
- "version": "1.4.1",
+ "name": "ezimuel/ringphp",
+ "version": "1.2.2",
"source": {
"type": "git",
- "url": "https://github.com/guzzle/promises.git",
- "reference": "8e7d04f1f6450fef59366c399cfad4b9383aa30d"
+ "url": "https://github.com/ezimuel/ringphp.git",
+ "reference": "7887fc8488013065f72f977dcb281994f5fde9f4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/promises/zipball/8e7d04f1f6450fef59366c399cfad4b9383aa30d",
- "reference": "8e7d04f1f6450fef59366c399cfad4b9383aa30d",
+ "url": "https://api.github.com/repos/ezimuel/ringphp/zipball/7887fc8488013065f72f977dcb281994f5fde9f4",
+ "reference": "7887fc8488013065f72f977dcb281994f5fde9f4",
"shasum": ""
},
"require": {
- "php": ">=5.5"
+ "ezimuel/guzzlestreams": "^3.0.1",
+ "php": ">=5.4.0",
+ "react/promise": "~2.0"
+ },
+ "replace": {
+ "guzzlehttp/ringphp": "self.version"
},
"require-dev": {
- "symfony/phpunit-bridge": "^4.4 || ^5.1"
+ "ext-curl": "*",
+ "phpunit/phpunit": "~9.0"
+ },
+ "suggest": {
+ "ext-curl": "Guzzle will use specific adapters if cURL is present"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.4-dev"
+ "dev-master": "1.1-dev"
}
},
"autoload": {
"psr-4": {
- "GuzzleHttp\\Promise\\": "src/"
- },
- "files": [
- "src/functions_include.php"
- ]
+ "GuzzleHttp\\Ring\\": "src/"
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -789,57 +997,52 @@
"homepage": "https://github.com/mtdowling"
}
],
- "description": "Guzzle promises library",
- "keywords": [
- "promise"
- ],
+ "description": "Fork of guzzle/RingPHP (abandoned) to be used with elasticsearch-php",
"support": {
- "issues": "https://github.com/guzzle/promises/issues",
- "source": "https://github.com/guzzle/promises/tree/1.4.1"
+ "source": "https://github.com/ezimuel/ringphp/tree/1.2.2"
},
- "time": "2021-03-07T09:25:29+00:00"
+ "time": "2022-12-07T11:28:53+00:00"
},
{
- "name": "guzzlehttp/psr7",
- "version": "2.0.0",
+ "name": "fruitcake/laravel-cors",
+ "version": "v3.0.0",
"source": {
"type": "git",
- "url": "https://github.com/guzzle/psr7.git",
- "reference": "1dc8d9cba3897165e16d12bb13d813afb1eb3fe7"
+ "url": "https://github.com/fruitcake/laravel-cors.git",
+ "reference": "7c036ec08972d8d5d9db637e772af6887828faf5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/psr7/zipball/1dc8d9cba3897165e16d12bb13d813afb1eb3fe7",
- "reference": "1dc8d9cba3897165e16d12bb13d813afb1eb3fe7",
+ "url": "https://api.github.com/repos/fruitcake/laravel-cors/zipball/7c036ec08972d8d5d9db637e772af6887828faf5",
+ "reference": "7c036ec08972d8d5d9db637e772af6887828faf5",
"shasum": ""
},
"require": {
- "php": "^7.2.5 || ^8.0",
- "psr/http-factory": "^1.0",
- "psr/http-message": "^1.0",
- "ralouphie/getallheaders": "^3.0"
- },
- "provide": {
- "psr/http-factory-implementation": "1.0",
- "psr/http-message-implementation": "1.0"
+ "fruitcake/php-cors": "^1.2",
+ "illuminate/contracts": "^6|^7|^8|^9",
+ "illuminate/support": "^6|^7|^8|^9",
+ "php": "^7.4|^8.0"
},
"require-dev": {
- "bamarni/composer-bin-plugin": "^1.4.1",
- "http-interop/http-factory-tests": "^0.9",
- "phpunit/phpunit": "^8.5.8 || ^9.3.10"
- },
- "suggest": {
- "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses"
+ "laravel/framework": "^6|^7.24|^8",
+ "orchestra/testbench-dusk": "^4|^5|^6|^7",
+ "phpunit/phpunit": "^9",
+ "squizlabs/php_codesniffer": "^3.5"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.0-dev"
+ "dev-master": "3.0-dev"
+ },
+ "laravel": {
+ "providers": [
+ "Fruitcake\\Cors\\CorsServiceProvider"
+ ]
}
},
"autoload": {
"psr-4": {
- "GuzzleHttp\\Psr7\\": "src/"
+ "Fruitcake\\Cors\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -848,82 +1051,70 @@
],
"authors": [
{
- "name": "Michael Dowling",
- "email": "mtdowling@gmail.com",
- "homepage": "https://github.com/mtdowling"
- },
- {
- "name": "Tobias Schultze",
- "homepage": "https://github.com/Tobion"
+ "name": "Fruitcake",
+ "homepage": "https://fruitcake.nl"
},
{
- "name": "Márk Sági-Kazár",
- "email": "mark.sagikazar@gmail.com",
- "homepage": "https://sagikazarmark.hu"
+ "name": "Barry vd. Heuvel",
+ "email": "barryvdh@gmail.com"
}
],
- "description": "PSR-7 message implementation that also provides common utility methods",
+ "description": "Adds CORS (Cross-Origin Resource Sharing) headers support in your Laravel application",
"keywords": [
- "http",
- "message",
- "psr-7",
- "request",
- "response",
- "stream",
- "uri",
- "url"
+ "api",
+ "cors",
+ "crossdomain",
+ "laravel"
],
"support": {
- "issues": "https://github.com/guzzle/psr7/issues",
- "source": "https://github.com/guzzle/psr7/tree/2.0.0"
+ "issues": "https://github.com/fruitcake/laravel-cors/issues",
+ "source": "https://github.com/fruitcake/laravel-cors/tree/v3.0.0"
},
- "time": "2021-06-30T20:03:07+00:00"
+ "funding": [
+ {
+ "url": "https://fruitcake.nl",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/barryvdh",
+ "type": "github"
+ }
+ ],
+ "abandoned": true,
+ "time": "2022-02-23T14:53:22+00:00"
},
{
- "name": "intervention/image",
- "version": "2.7.2",
+ "name": "fruitcake/php-cors",
+ "version": "v1.2.0",
"source": {
"type": "git",
- "url": "https://github.com/Intervention/image.git",
- "reference": "04be355f8d6734c826045d02a1079ad658322dad"
+ "url": "https://github.com/fruitcake/php-cors.git",
+ "reference": "58571acbaa5f9f462c9c77e911700ac66f446d4e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Intervention/image/zipball/04be355f8d6734c826045d02a1079ad658322dad",
- "reference": "04be355f8d6734c826045d02a1079ad658322dad",
+ "url": "https://api.github.com/repos/fruitcake/php-cors/zipball/58571acbaa5f9f462c9c77e911700ac66f446d4e",
+ "reference": "58571acbaa5f9f462c9c77e911700ac66f446d4e",
"shasum": ""
},
"require": {
- "ext-fileinfo": "*",
- "guzzlehttp/psr7": "~1.1 || ^2.0",
- "php": ">=5.4.0"
+ "php": "^7.4|^8.0",
+ "symfony/http-foundation": "^4.4|^5.4|^6"
},
"require-dev": {
- "mockery/mockery": "~0.9.2",
- "phpunit/phpunit": "^4.8 || ^5.7 || ^7.5.15"
- },
- "suggest": {
- "ext-gd": "to use GD library based image processing.",
- "ext-imagick": "to use Imagick based image processing.",
- "intervention/imagecache": "Caching extension for the Intervention Image library"
+ "phpstan/phpstan": "^1.4",
+ "phpunit/phpunit": "^9",
+ "squizlabs/php_codesniffer": "^3.5"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.4-dev"
- },
- "laravel": {
- "providers": [
- "Intervention\\Image\\ImageServiceProvider"
- ],
- "aliases": {
- "Image": "Intervention\\Image\\Facades\\Image"
- }
+ "dev-main": "1.1-dev"
}
},
"autoload": {
"psr-4": {
- "Intervention\\Image\\": "src/Intervention/Image"
+ "Fruitcake\\Cors\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -932,184 +1123,2969 @@
],
"authors": [
{
- "name": "Oliver Vogel",
- "email": "oliver@intervention.io",
- "homepage": "https://intervention.io/"
+ "name": "Fruitcake",
+ "homepage": "https://fruitcake.nl"
+ },
+ {
+ "name": "Barryvdh",
+ "email": "barryvdh@gmail.com"
}
],
- "description": "Image handling and manipulation library with support for Laravel integration",
- "homepage": "http://image.intervention.io/",
+ "description": "Cross-origin resource sharing library for the Symfony HttpFoundation",
+ "homepage": "https://github.com/fruitcake/php-cors",
"keywords": [
- "gd",
- "image",
- "imagick",
+ "cors",
"laravel",
- "thumbnail",
- "watermark"
+ "symfony"
],
"support": {
- "issues": "https://github.com/Intervention/image/issues",
- "source": "https://github.com/Intervention/image/tree/2.7.2"
+ "issues": "https://github.com/fruitcake/php-cors/issues",
+ "source": "https://github.com/fruitcake/php-cors/tree/v1.2.0"
},
"funding": [
{
- "url": "https://paypal.me/interventionio",
+ "url": "https://fruitcake.nl",
"type": "custom"
},
{
- "url": "https://github.com/Intervention",
+ "url": "https://github.com/barryvdh",
"type": "github"
}
],
- "time": "2022-05-21T17:30:32+00:00"
+ "time": "2022-02-20T15:07:15+00:00"
},
{
- "name": "laravel/framework",
- "version": "v8.63.0",
+ "name": "graham-campbell/result-type",
+ "version": "v1.1.1",
"source": {
"type": "git",
- "url": "https://github.com/laravel/framework.git",
- "reference": "8f3d280f36a427730c8c8fa34316c79eed38781e"
+ "url": "https://github.com/GrahamCampbell/Result-Type.git",
+ "reference": "672eff8cf1d6fe1ef09ca0f89c4b287d6a3eb831"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/framework/zipball/8f3d280f36a427730c8c8fa34316c79eed38781e",
- "reference": "8f3d280f36a427730c8c8fa34316c79eed38781e",
+ "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/672eff8cf1d6fe1ef09ca0f89c4b287d6a3eb831",
+ "reference": "672eff8cf1d6fe1ef09ca0f89c4b287d6a3eb831",
"shasum": ""
},
"require": {
- "doctrine/inflector": "^1.4|^2.0",
- "dragonmantank/cron-expression": "^3.0.2",
- "egulias/email-validator": "^2.1.10",
- "ext-json": "*",
- "ext-mbstring": "*",
- "ext-openssl": "*",
- "laravel/serializable-closure": "^1.0",
- "league/commonmark": "^1.3|^2.0.2",
- "league/flysystem": "^1.1",
- "monolog/monolog": "^2.0",
- "nesbot/carbon": "^2.31",
- "opis/closure": "^3.6",
- "php": "^7.3|^8.0",
- "psr/container": "^1.0",
- "psr/log": "^1.0 || ^2.0",
- "psr/simple-cache": "^1.0",
- "ramsey/uuid": "^4.2.2",
- "swiftmailer/swiftmailer": "^6.0",
- "symfony/console": "^5.1.4",
- "symfony/error-handler": "^5.1.4",
- "symfony/finder": "^5.1.4",
- "symfony/http-foundation": "^5.1.4",
- "symfony/http-kernel": "^5.1.4",
- "symfony/mime": "^5.1.4",
- "symfony/process": "^5.1.4",
- "symfony/routing": "^5.1.4",
- "symfony/var-dumper": "^5.1.4",
- "tijsverkoyen/css-to-inline-styles": "^2.2.2",
- "vlucas/phpdotenv": "^5.2",
- "voku/portable-ascii": "^1.4.8"
+ "php": "^7.2.5 || ^8.0",
+ "phpoption/phpoption": "^1.9.1"
},
- "conflict": {
- "tightenco/collect": "<5.5.33"
+ "require-dev": {
+ "phpunit/phpunit": "^8.5.32 || ^9.6.3 || ^10.0.12"
},
- "provide": {
- "psr/container-implementation": "1.0",
- "psr/simple-cache-implementation": "1.0"
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "GrahamCampbell\\ResultType\\": "src/"
+ }
},
- "replace": {
- "illuminate/auth": "self.version",
- "illuminate/broadcasting": "self.version",
- "illuminate/bus": "self.version",
- "illuminate/cache": "self.version",
- "illuminate/collections": "self.version",
- "illuminate/config": "self.version",
- "illuminate/console": "self.version",
- "illuminate/container": "self.version",
- "illuminate/contracts": "self.version",
- "illuminate/cookie": "self.version",
- "illuminate/database": "self.version",
- "illuminate/encryption": "self.version",
- "illuminate/events": "self.version",
- "illuminate/filesystem": "self.version",
- "illuminate/hashing": "self.version",
- "illuminate/http": "self.version",
- "illuminate/log": "self.version",
- "illuminate/macroable": "self.version",
- "illuminate/mail": "self.version",
- "illuminate/notifications": "self.version",
- "illuminate/pagination": "self.version",
- "illuminate/pipeline": "self.version",
- "illuminate/queue": "self.version",
- "illuminate/redis": "self.version",
- "illuminate/routing": "self.version",
- "illuminate/session": "self.version",
- "illuminate/support": "self.version",
- "illuminate/testing": "self.version",
- "illuminate/translation": "self.version",
- "illuminate/validation": "self.version",
- "illuminate/view": "self.version"
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Graham Campbell",
+ "email": "hello@gjcampbell.co.uk",
+ "homepage": "https://github.com/GrahamCampbell"
+ }
+ ],
+ "description": "An Implementation Of The Result Type",
+ "keywords": [
+ "Graham Campbell",
+ "GrahamCampbell",
+ "Result Type",
+ "Result-Type",
+ "result"
+ ],
+ "support": {
+ "issues": "https://github.com/GrahamCampbell/Result-Type/issues",
+ "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/graham-campbell/result-type",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-02-25T20:23:15+00:00"
+ },
+ {
+ "name": "guzzlehttp/guzzle",
+ "version": "7.7.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/guzzle/guzzle.git",
+ "reference": "fb7566caccf22d74d1ab270de3551f72a58399f5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/guzzle/guzzle/zipball/fb7566caccf22d74d1ab270de3551f72a58399f5",
+ "reference": "fb7566caccf22d74d1ab270de3551f72a58399f5",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "guzzlehttp/promises": "^1.5.3 || ^2.0",
+ "guzzlehttp/psr7": "^1.9.1 || ^2.4.5",
+ "php": "^7.2.5 || ^8.0",
+ "psr/http-client": "^1.0",
+ "symfony/deprecation-contracts": "^2.2 || ^3.0"
+ },
+ "provide": {
+ "psr/http-client-implementation": "1.0"
},
"require-dev": {
- "aws/aws-sdk-php": "^3.189.0",
- "doctrine/dbal": "^2.13.3|^3.1.2",
- "filp/whoops": "^2.8",
- "guzzlehttp/guzzle": "^6.5.5|^7.0.1",
- "league/flysystem-cached-adapter": "^1.0",
- "mockery/mockery": "^1.4.4",
- "orchestra/testbench-core": "^6.23",
- "pda/pheanstalk": "^4.0",
- "phpunit/phpunit": "^8.5.19|^9.5.8",
- "predis/predis": "^1.1.2",
- "symfony/cache": "^5.1.4"
+ "bamarni/composer-bin-plugin": "^1.8.1",
+ "ext-curl": "*",
+ "php-http/client-integration-tests": "dev-master#2c025848417c1135031fdf9c728ee53d0a7ceaee as 3.0.999",
+ "php-http/message-factory": "^1.1",
+ "phpunit/phpunit": "^8.5.29 || ^9.5.23",
+ "psr/log": "^1.1 || ^2.0 || ^3.0"
},
"suggest": {
- "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage and SES mail driver (^3.189.0).",
- "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.2).",
- "ext-ftp": "Required to use the Flysystem FTP driver.",
- "ext-gd": "Required to use Illuminate\\Http\\Testing\\FileFactory::image().",
- "ext-memcached": "Required to use the memcache cache driver.",
- "ext-pcntl": "Required to use all features of the queue worker.",
- "ext-posix": "Required to use all features of the queue worker.",
- "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.8).",
- "guzzlehttp/guzzle": "Required to use the HTTP Client, Mailgun mail driver and the ping methods on schedules (^6.5.5|^7.0.1).",
- "laravel/tinker": "Required to use the tinker console command (^2.0).",
- "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^1.0).",
- "league/flysystem-cached-adapter": "Required to use the Flysystem cache (^1.0).",
- "league/flysystem-sftp": "Required to use the Flysystem SFTP driver (^1.0).",
- "mockery/mockery": "Required to use mocking (^1.4.4).",
- "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 (^8.5.19|^9.5.8).",
- "predis/predis": "Required to use the predis connector (^1.1.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 (^4.0|^5.0|^6.0).",
- "symfony/cache": "Required to PSR-6 cache bridge (^5.1.4).",
- "symfony/filesystem": "Required to enable support for relative symbolic links (^5.1.4).",
- "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^2.0).",
- "wildbit/swiftmailer-postmark": "Required to use Postmark mail driver (^3.0)."
+ "ext-curl": "Required for CURL handler support",
+ "ext-intl": "Required for Internationalized Domain Name (IDN) support",
+ "psr/log": "Required for using the Log middleware"
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-master": "8.x-dev"
+ "bamarni-bin": {
+ "bin-links": true,
+ "forward-command": false
}
},
"autoload": {
"files": [
- "src/Illuminate/Collections/helpers.php",
- "src/Illuminate/Events/functions.php",
- "src/Illuminate/Foundation/helpers.php",
- "src/Illuminate/Support/helpers.php"
+ "src/functions_include.php"
],
"psr-4": {
- "Illuminate\\": "src/Illuminate/",
- "Illuminate\\Support\\": [
- "src/Illuminate/Macroable/",
- "src/Illuminate/Collections/"
- ]
+ "GuzzleHttp\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Graham Campbell",
+ "email": "hello@gjcampbell.co.uk",
+ "homepage": "https://github.com/GrahamCampbell"
+ },
+ {
+ "name": "Michael Dowling",
+ "email": "mtdowling@gmail.com",
+ "homepage": "https://github.com/mtdowling"
+ },
+ {
+ "name": "Jeremy Lindblom",
+ "email": "jeremeamia@gmail.com",
+ "homepage": "https://github.com/jeremeamia"
+ },
+ {
+ "name": "George Mponos",
+ "email": "gmponos@gmail.com",
+ "homepage": "https://github.com/gmponos"
+ },
+ {
+ "name": "Tobias Nyholm",
+ "email": "tobias.nyholm@gmail.com",
+ "homepage": "https://github.com/Nyholm"
+ },
+ {
+ "name": "Márk Sági-Kazár",
+ "email": "mark.sagikazar@gmail.com",
+ "homepage": "https://github.com/sagikazarmark"
+ },
+ {
+ "name": "Tobias Schultze",
+ "email": "webmaster@tubo-world.de",
+ "homepage": "https://github.com/Tobion"
+ }
+ ],
+ "description": "Guzzle is a PHP HTTP client library",
+ "keywords": [
+ "client",
+ "curl",
+ "framework",
+ "http",
+ "http client",
+ "psr-18",
+ "psr-7",
+ "rest",
+ "web service"
+ ],
+ "support": {
+ "issues": "https://github.com/guzzle/guzzle/issues",
+ "source": "https://github.com/guzzle/guzzle/tree/7.7.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/Nyholm",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-05-21T14:04:53+00:00"
+ },
+ {
+ "name": "guzzlehttp/promises",
+ "version": "1.5.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/guzzle/promises.git",
+ "reference": "67ab6e18aaa14d753cc148911d273f6e6cb6721e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/guzzle/promises/zipball/67ab6e18aaa14d753cc148911d273f6e6cb6721e",
+ "reference": "67ab6e18aaa14d753cc148911d273f6e6cb6721e",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.5"
+ },
+ "require-dev": {
+ "symfony/phpunit-bridge": "^4.4 || ^5.1"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "src/functions_include.php"
+ ],
+ "psr-4": {
+ "GuzzleHttp\\Promise\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Graham Campbell",
+ "email": "hello@gjcampbell.co.uk",
+ "homepage": "https://github.com/GrahamCampbell"
+ },
+ {
+ "name": "Michael Dowling",
+ "email": "mtdowling@gmail.com",
+ "homepage": "https://github.com/mtdowling"
+ },
+ {
+ "name": "Tobias Nyholm",
+ "email": "tobias.nyholm@gmail.com",
+ "homepage": "https://github.com/Nyholm"
+ },
+ {
+ "name": "Tobias Schultze",
+ "email": "webmaster@tubo-world.de",
+ "homepage": "https://github.com/Tobion"
+ }
+ ],
+ "description": "Guzzle promises library",
+ "keywords": [
+ "promise"
+ ],
+ "support": {
+ "issues": "https://github.com/guzzle/promises/issues",
+ "source": "https://github.com/guzzle/promises/tree/1.5.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/Nyholm",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-05-21T12:31:43+00:00"
+ },
+ {
+ "name": "guzzlehttp/psr7",
+ "version": "2.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/guzzle/psr7.git",
+ "reference": "b635f279edd83fc275f822a1188157ffea568ff6"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/guzzle/psr7/zipball/b635f279edd83fc275f822a1188157ffea568ff6",
+ "reference": "b635f279edd83fc275f822a1188157ffea568ff6",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2.5 || ^8.0",
+ "psr/http-factory": "^1.0",
+ "psr/http-message": "^1.1 || ^2.0",
+ "ralouphie/getallheaders": "^3.0"
+ },
+ "provide": {
+ "psr/http-factory-implementation": "1.0",
+ "psr/http-message-implementation": "1.0"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.8.1",
+ "http-interop/http-factory-tests": "^0.9",
+ "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
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "GuzzleHttp\\Psr7\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Graham Campbell",
+ "email": "hello@gjcampbell.co.uk",
+ "homepage": "https://github.com/GrahamCampbell"
+ },
+ {
+ "name": "Michael Dowling",
+ "email": "mtdowling@gmail.com",
+ "homepage": "https://github.com/mtdowling"
+ },
+ {
+ "name": "George Mponos",
+ "email": "gmponos@gmail.com",
+ "homepage": "https://github.com/gmponos"
+ },
+ {
+ "name": "Tobias Nyholm",
+ "email": "tobias.nyholm@gmail.com",
+ "homepage": "https://github.com/Nyholm"
+ },
+ {
+ "name": "Márk Sági-Kazár",
+ "email": "mark.sagikazar@gmail.com",
+ "homepage": "https://github.com/sagikazarmark"
+ },
+ {
+ "name": "Tobias Schultze",
+ "email": "webmaster@tubo-world.de",
+ "homepage": "https://github.com/Tobion"
+ },
+ {
+ "name": "Márk Sági-Kazár",
+ "email": "mark.sagikazar@gmail.com",
+ "homepage": "https://sagikazarmark.hu"
+ }
+ ],
+ "description": "PSR-7 message implementation that also provides common utility methods",
+ "keywords": [
+ "http",
+ "message",
+ "psr-7",
+ "request",
+ "response",
+ "stream",
+ "uri",
+ "url"
+ ],
+ "support": {
+ "issues": "https://github.com/guzzle/psr7/issues",
+ "source": "https://github.com/guzzle/psr7/tree/2.5.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/Nyholm",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-04-17T16:11:26+00:00"
+ },
+ {
+ "name": "guzzlehttp/uri-template",
+ "version": "v1.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/guzzle/uri-template.git",
+ "reference": "b945d74a55a25a949158444f09ec0d3c120d69e2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/guzzle/uri-template/zipball/b945d74a55a25a949158444f09ec0d3c120d69e2",
+ "reference": "b945d74a55a25a949158444f09ec0d3c120d69e2",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2.5 || ^8.0",
+ "symfony/polyfill-php80": "^1.17"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^8.5.19 || ^9.5.8",
+ "uri-template/tests": "1.0.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "GuzzleHttp\\UriTemplate\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Graham Campbell",
+ "email": "hello@gjcampbell.co.uk",
+ "homepage": "https://github.com/GrahamCampbell"
+ },
+ {
+ "name": "Michael Dowling",
+ "email": "mtdowling@gmail.com",
+ "homepage": "https://github.com/mtdowling"
+ },
+ {
+ "name": "George Mponos",
+ "email": "gmponos@gmail.com",
+ "homepage": "https://github.com/gmponos"
+ },
+ {
+ "name": "Tobias Nyholm",
+ "email": "tobias.nyholm@gmail.com",
+ "homepage": "https://github.com/Nyholm"
+ }
+ ],
+ "description": "A polyfill class for uri_template of PHP",
+ "keywords": [
+ "guzzlehttp",
+ "uri-template"
+ ],
+ "support": {
+ "issues": "https://github.com/guzzle/uri-template/issues",
+ "source": "https://github.com/guzzle/uri-template/tree/v1.0.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/Nyholm",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/uri-template",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2021-10-07T12:57:01+00:00"
+ },
+ {
+ "name": "http-interop/http-factory-guzzle",
+ "version": "1.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/http-interop/http-factory-guzzle.git",
+ "reference": "8f06e92b95405216b237521cc64c804dd44c4a81"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/http-interop/http-factory-guzzle/zipball/8f06e92b95405216b237521cc64c804dd44c4a81",
+ "reference": "8f06e92b95405216b237521cc64c804dd44c4a81",
+ "shasum": ""
+ },
+ "require": {
+ "guzzlehttp/psr7": "^1.7||^2.0",
+ "php": ">=7.3",
+ "psr/http-factory": "^1.0"
+ },
+ "provide": {
+ "psr/http-factory-implementation": "^1.0"
+ },
+ "require-dev": {
+ "http-interop/http-factory-tests": "^0.9",
+ "phpunit/phpunit": "^9.5"
+ },
+ "suggest": {
+ "guzzlehttp/psr7": "Includes an HTTP factory starting in version 2.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Http\\Factory\\Guzzle\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "http://www.php-fig.org/"
+ }
+ ],
+ "description": "An HTTP Factory using Guzzle PSR7",
+ "keywords": [
+ "factory",
+ "http",
+ "psr-17",
+ "psr-7"
+ ],
+ "support": {
+ "issues": "https://github.com/http-interop/http-factory-guzzle/issues",
+ "source": "https://github.com/http-interop/http-factory-guzzle/tree/1.2.0"
+ },
+ "time": "2021-07-21T13:50:14+00:00"
+ },
+ {
+ "name": "intervention/image",
+ "version": "2.7.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Intervention/image.git",
+ "reference": "04be355f8d6734c826045d02a1079ad658322dad"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Intervention/image/zipball/04be355f8d6734c826045d02a1079ad658322dad",
+ "reference": "04be355f8d6734c826045d02a1079ad658322dad",
+ "shasum": ""
+ },
+ "require": {
+ "ext-fileinfo": "*",
+ "guzzlehttp/psr7": "~1.1 || ^2.0",
+ "php": ">=5.4.0"
+ },
+ "require-dev": {
+ "mockery/mockery": "~0.9.2",
+ "phpunit/phpunit": "^4.8 || ^5.7 || ^7.5.15"
+ },
+ "suggest": {
+ "ext-gd": "to use GD library based image processing.",
+ "ext-imagick": "to use Imagick based image processing.",
+ "intervention/imagecache": "Caching extension for the Intervention Image library"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.4-dev"
+ },
+ "laravel": {
+ "providers": [
+ "Intervention\\Image\\ImageServiceProvider"
+ ],
+ "aliases": {
+ "Image": "Intervention\\Image\\Facades\\Image"
+ }
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Intervention\\Image\\": "src/Intervention/Image"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Oliver Vogel",
+ "email": "oliver@intervention.io",
+ "homepage": "https://intervention.io/"
+ }
+ ],
+ "description": "Image handling and manipulation library with support for Laravel integration",
+ "homepage": "http://image.intervention.io/",
+ "keywords": [
+ "gd",
+ "image",
+ "imagick",
+ "laravel",
+ "thumbnail",
+ "watermark"
+ ],
+ "support": {
+ "issues": "https://github.com/Intervention/image/issues",
+ "source": "https://github.com/Intervention/image/tree/2.7.2"
+ },
+ "funding": [
+ {
+ "url": "https://paypal.me/interventionio",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/Intervention",
+ "type": "github"
+ }
+ ],
+ "time": "2022-05-21T17:30:32+00:00"
+ },
+ {
+ "name": "jean85/pretty-package-versions",
+ "version": "2.0.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Jean85/pretty-package-versions.git",
+ "reference": "ae547e455a3d8babd07b96966b17d7fd21d9c6af"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Jean85/pretty-package-versions/zipball/ae547e455a3d8babd07b96966b17d7fd21d9c6af",
+ "reference": "ae547e455a3d8babd07b96966b17d7fd21d9c6af",
+ "shasum": ""
+ },
+ "require": {
+ "composer-runtime-api": "^2.0.0",
+ "php": "^7.1|^8.0"
+ },
+ "require-dev": {
+ "friendsofphp/php-cs-fixer": "^2.17",
+ "jean85/composer-provided-replaced-stub-package": "^1.0",
+ "phpstan/phpstan": "^0.12.66",
+ "phpunit/phpunit": "^7.5|^8.5|^9.4",
+ "vimeo/psalm": "^4.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Jean85\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Alessandro Lai",
+ "email": "alessandro.lai85@gmail.com"
+ }
+ ],
+ "description": "A library to get pretty versions strings of installed dependencies",
+ "keywords": [
+ "composer",
+ "package",
+ "release",
+ "versions"
+ ],
+ "support": {
+ "issues": "https://github.com/Jean85/pretty-package-versions/issues",
+ "source": "https://github.com/Jean85/pretty-package-versions/tree/2.0.5"
+ },
+ "time": "2021-10-08T21:21:46+00:00"
+ },
+ {
+ "name": "jeroen-g/explorer",
+ "version": "3.7.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Jeroen-G/Explorer.git",
+ "reference": "3a109adb576f625058339964a3b2a3d7964a5906"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Jeroen-G/Explorer/zipball/3a109adb576f625058339964a3b2a3d7964a5906",
+ "reference": "3a109adb576f625058339964a3b2a3d7964a5906",
+ "shasum": ""
+ },
+ "require": {
+ "elasticsearch/elasticsearch": "^7.16",
+ "illuminate/support": "^9.0||^10.0",
+ "laravel/scout": "^9.0||^10.0",
+ "php": "8.0.*||8.1.*||8.2.*",
+ "webmozart/assert": "^1.10"
+ },
+ "require-dev": {
+ "infection/infection": "^0.26",
+ "mockery/mockery": "^1.5",
+ "nunomaduro/larastan": "^2.5",
+ "orchestra/testbench": "*",
+ "phpstan/phpstan-mockery": "^1.1",
+ "phpunit/phpunit": "~9.0",
+ "symplify/easy-coding-standard": "^9.0"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "JeroenG\\Explorer\\ExplorerServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "JeroenG\\Explorer\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jeroen",
+ "email": "jeroengjeroeng@gmail.com",
+ "homepage": "https://jeroeng.dev"
+ }
+ ],
+ "description": "Next-gen Elasticsearch driver for Laravel Scout.",
+ "homepage": "https://jeroen-g.github.io/Explorer/",
+ "keywords": [
+ "elastic",
+ "elasticsearch",
+ "explorer",
+ "laravel",
+ "scout",
+ "search"
+ ],
+ "support": {
+ "issues": "https://github.com/Jeroen-G/Explorer/issues",
+ "source": "https://github.com/Jeroen-G/Explorer/tree/3.7.0"
+ },
+ "time": "2023-06-03T18:25:48+00:00"
+ },
+ {
+ "name": "laravel/framework",
+ "version": "v9.52.10",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laravel/framework.git",
+ "reference": "858add225ce88a76c43aec0e7866288321ee0ee9"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/laravel/framework/zipball/858add225ce88a76c43aec0e7866288321ee0ee9",
+ "reference": "858add225ce88a76c43aec0e7866288321ee0ee9",
+ "shasum": ""
+ },
+ "require": {
+ "brick/math": "^0.9.3|^0.10.2|^0.11",
+ "doctrine/inflector": "^2.0.5",
+ "dragonmantank/cron-expression": "^3.3.2",
+ "egulias/email-validator": "^3.2.1|^4.0",
+ "ext-ctype": "*",
+ "ext-filter": "*",
+ "ext-hash": "*",
+ "ext-mbstring": "*",
+ "ext-openssl": "*",
+ "ext-session": "*",
+ "ext-tokenizer": "*",
+ "fruitcake/php-cors": "^1.2",
+ "guzzlehttp/uri-template": "^1.0",
+ "laravel/serializable-closure": "^1.2.2",
+ "league/commonmark": "^2.2.1",
+ "league/flysystem": "^3.8.0",
+ "monolog/monolog": "^2.0",
+ "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.7",
+ "symfony/console": "^6.0.9",
+ "symfony/error-handler": "^6.0",
+ "symfony/finder": "^6.0",
+ "symfony/http-foundation": "^6.0",
+ "symfony/http-kernel": "^6.0",
+ "symfony/mailer": "^6.0",
+ "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.5",
+ "vlucas/phpdotenv": "^5.4.1",
+ "voku/portable-ascii": "^2.0"
+ },
+ "conflict": {
+ "tightenco/collect": "<5.5.33"
+ },
+ "provide": {
+ "psr/container-implementation": "1.1|2.0",
+ "psr/simple-cache-implementation": "1.0|2.0|3.0"
+ },
+ "replace": {
+ "illuminate/auth": "self.version",
+ "illuminate/broadcasting": "self.version",
+ "illuminate/bus": "self.version",
+ "illuminate/cache": "self.version",
+ "illuminate/collections": "self.version",
+ "illuminate/conditionable": "self.version",
+ "illuminate/config": "self.version",
+ "illuminate/console": "self.version",
+ "illuminate/container": "self.version",
+ "illuminate/contracts": "self.version",
+ "illuminate/cookie": "self.version",
+ "illuminate/database": "self.version",
+ "illuminate/encryption": "self.version",
+ "illuminate/events": "self.version",
+ "illuminate/filesystem": "self.version",
+ "illuminate/hashing": "self.version",
+ "illuminate/http": "self.version",
+ "illuminate/log": "self.version",
+ "illuminate/macroable": "self.version",
+ "illuminate/mail": "self.version",
+ "illuminate/notifications": "self.version",
+ "illuminate/pagination": "self.version",
+ "illuminate/pipeline": "self.version",
+ "illuminate/queue": "self.version",
+ "illuminate/redis": "self.version",
+ "illuminate/routing": "self.version",
+ "illuminate/session": "self.version",
+ "illuminate/support": "self.version",
+ "illuminate/testing": "self.version",
+ "illuminate/translation": "self.version",
+ "illuminate/validation": "self.version",
+ "illuminate/view": "self.version"
+ },
+ "require-dev": {
+ "ably/ably-php": "^1.0",
+ "aws/aws-sdk-php": "^3.235.5",
+ "doctrine/dbal": "^2.13.3|^3.1.4",
+ "ext-gmp": "*",
+ "fakerphp/faker": "^1.21",
+ "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.5.1",
+ "orchestra/testbench-core": "^7.24",
+ "pda/pheanstalk": "^4.0",
+ "phpstan/phpdoc-parser": "^1.15",
+ "phpstan/phpstan": "^1.4.7",
+ "phpunit/phpunit": "^9.5.8",
+ "predis/predis": "^1.1.9|^2.0.2",
+ "symfony/cache": "^6.0",
+ "symfony/http-client": "^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.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-apcu": "Required to use the APC cache driver.",
+ "ext-fileinfo": "Required to use the Filesystem class.",
+ "ext-ftp": "Required to use the Flysystem FTP driver.",
+ "ext-gd": "Required to use Illuminate\\Http\\Testing\\FileFactory::image().",
+ "ext-memcached": "Required to use the memcache cache driver.",
+ "ext-pcntl": "Required to use all features of the queue worker and console signal trapping.",
+ "ext-pdo": "Required to use all database features.",
+ "ext-posix": "Required to use all features of the queue worker.",
+ "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.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.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.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).",
+ "symfony/filesystem": "Required to enable support for relative symbolic links (^6.0).",
+ "symfony/http-client": "Required to enable support for the Symfony API mail transports (^6.0).",
+ "symfony/mailgun-mailer": "Required to enable support for the Mailgun mail transport (^6.0).",
+ "symfony/postmark-mailer": "Required to enable support for the Postmark mail transport (^6.0).",
+ "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^2.0)."
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "9.x-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/Illuminate/Collections/helpers.php",
+ "src/Illuminate/Events/functions.php",
+ "src/Illuminate/Foundation/helpers.php",
+ "src/Illuminate/Support/helpers.php"
+ ],
+ "psr-4": {
+ "Illuminate\\": "src/Illuminate/",
+ "Illuminate\\Support\\": [
+ "src/Illuminate/Macroable/",
+ "src/Illuminate/Collections/",
+ "src/Illuminate/Conditionable/"
+ ]
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Taylor Otwell",
+ "email": "taylor@laravel.com"
+ }
+ ],
+ "description": "The Laravel Framework.",
+ "homepage": "https://laravel.com",
+ "keywords": [
+ "framework",
+ "laravel"
+ ],
+ "support": {
+ "issues": "https://github.com/laravel/framework/issues",
+ "source": "https://github.com/laravel/framework"
+ },
+ "time": "2023-06-27T13:25:54+00:00"
+ },
+ {
+ "name": "laravel/horizon",
+ "version": "v5.17.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laravel/horizon.git",
+ "reference": "569c7154033679a1ca05b43bfa640cc60aa3b37b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/laravel/horizon/zipball/569c7154033679a1ca05b43bfa640cc60aa3b37b",
+ "reference": "569c7154033679a1ca05b43bfa640cc60aa3b37b",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "ext-pcntl": "*",
+ "ext-posix": "*",
+ "illuminate/contracts": "^8.17|^9.0|^10.0",
+ "illuminate/queue": "^8.17|^9.0|^10.0",
+ "illuminate/support": "^8.17|^9.0|^10.0",
+ "nesbot/carbon": "^2.17",
+ "php": "^7.3|^8.0",
+ "ramsey/uuid": "^4.0",
+ "symfony/error-handler": "^5.0|^6.0",
+ "symfony/process": "^5.0|^6.0"
+ },
+ "require-dev": {
+ "mockery/mockery": "^1.0",
+ "orchestra/testbench": "^6.0|^7.0|^8.0",
+ "phpstan/phpstan": "^1.10",
+ "phpunit/phpunit": "^9.0",
+ "predis/predis": "^1.1|^2.0"
+ },
+ "suggest": {
+ "ext-redis": "Required to use the Redis PHP driver.",
+ "predis/predis": "Required when not using the Redis PHP driver (^1.1|^2.0)."
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.x-dev"
+ },
+ "laravel": {
+ "providers": [
+ "Laravel\\Horizon\\HorizonServiceProvider"
+ ],
+ "aliases": {
+ "Horizon": "Laravel\\Horizon\\Horizon"
+ }
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Laravel\\Horizon\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Taylor Otwell",
+ "email": "taylor@laravel.com"
+ }
+ ],
+ "description": "Dashboard and code-driven configuration for Laravel queues.",
+ "keywords": [
+ "laravel",
+ "queue"
+ ],
+ "support": {
+ "issues": "https://github.com/laravel/horizon/issues",
+ "source": "https://github.com/laravel/horizon/tree/v5.17.0"
+ },
+ "time": "2023-06-13T20:49:30+00:00"
+ },
+ {
+ "name": "laravel/sanctum",
+ "version": "v2.15.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laravel/sanctum.git",
+ "reference": "31fbe6f85aee080c4dc2f9b03dc6dd5d0ee72473"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/laravel/sanctum/zipball/31fbe6f85aee080c4dc2f9b03dc6dd5d0ee72473",
+ "reference": "31fbe6f85aee080c4dc2f9b03dc6dd5d0ee72473",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "illuminate/console": "^6.9|^7.0|^8.0|^9.0",
+ "illuminate/contracts": "^6.9|^7.0|^8.0|^9.0",
+ "illuminate/database": "^6.9|^7.0|^8.0|^9.0",
+ "illuminate/support": "^6.9|^7.0|^8.0|^9.0",
+ "php": "^7.2|^8.0"
+ },
+ "require-dev": {
+ "mockery/mockery": "^1.0",
+ "orchestra/testbench": "^4.0|^5.0|^6.0|^7.0",
+ "phpunit/phpunit": "^8.0|^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.x-dev"
+ },
+ "laravel": {
+ "providers": [
+ "Laravel\\Sanctum\\SanctumServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Laravel\\Sanctum\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Taylor Otwell",
+ "email": "taylor@laravel.com"
+ }
+ ],
+ "description": "Laravel Sanctum provides a featherweight authentication system for SPAs and simple APIs.",
+ "keywords": [
+ "auth",
+ "laravel",
+ "sanctum"
+ ],
+ "support": {
+ "issues": "https://github.com/laravel/sanctum/issues",
+ "source": "https://github.com/laravel/sanctum"
+ },
+ "time": "2022-04-08T13:39:49+00:00"
+ },
+ {
+ "name": "laravel/scout",
+ "version": "v9.8.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laravel/scout.git",
+ "reference": "38595717b396ce733d432b82e3225fa4e0d6c8ef"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/laravel/scout/zipball/38595717b396ce733d432b82e3225fa4e0d6c8ef",
+ "reference": "38595717b396ce733d432b82e3225fa4e0d6c8ef",
+ "shasum": ""
+ },
+ "require": {
+ "illuminate/bus": "^8.0|^9.0|^10.0",
+ "illuminate/contracts": "^8.0|^9.0|^10.0",
+ "illuminate/database": "^8.0|^9.0|^10.0",
+ "illuminate/http": "^8.0|^9.0|^10.0",
+ "illuminate/pagination": "^8.0|^9.0|^10.0",
+ "illuminate/queue": "^8.0|^9.0|^10.0",
+ "illuminate/support": "^8.0|^9.0|^10.0",
+ "php": "^7.3|^8.0"
+ },
+ "require-dev": {
+ "meilisearch/meilisearch-php": "^0.19",
+ "mockery/mockery": "^1.0",
+ "orchestra/testbench": "^6.17|^7.0|^8.0",
+ "php-http/guzzle7-adapter": "^1.0",
+ "phpunit/phpunit": "^9.3"
+ },
+ "suggest": {
+ "algolia/algoliasearch-client-php": "Required to use the Algolia engine (^3.2).",
+ "meilisearch/meilisearch-php": "Required to use the MeiliSearch engine (^0.23)."
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "9.x-dev"
+ },
+ "laravel": {
+ "providers": [
+ "Laravel\\Scout\\ScoutServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Laravel\\Scout\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Taylor Otwell",
+ "email": "taylor@laravel.com"
+ }
+ ],
+ "description": "Laravel Scout provides a driver based solution to searching your Eloquent models.",
+ "keywords": [
+ "algolia",
+ "laravel",
+ "search"
+ ],
+ "support": {
+ "issues": "https://github.com/laravel/scout/issues",
+ "source": "https://github.com/laravel/scout"
+ },
+ "time": "2023-02-14T16:53:14+00:00"
+ },
+ {
+ "name": "laravel/serializable-closure",
+ "version": "v1.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laravel/serializable-closure.git",
+ "reference": "f23fe9d4e95255dacee1bf3525e0810d1a1b0f37"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/f23fe9d4e95255dacee1bf3525e0810d1a1b0f37",
+ "reference": "f23fe9d4e95255dacee1bf3525e0810d1a1b0f37",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.3|^8.0"
+ },
+ "require-dev": {
+ "nesbot/carbon": "^2.61",
+ "pestphp/pest": "^1.21.3",
+ "phpstan/phpstan": "^1.8.2",
+ "symfony/var-dumper": "^5.4.11"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Laravel\\SerializableClosure\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Taylor Otwell",
+ "email": "taylor@laravel.com"
+ },
+ {
+ "name": "Nuno Maduro",
+ "email": "nuno@laravel.com"
+ }
+ ],
+ "description": "Laravel Serializable Closure provides an easy and secure way to serialize closures in PHP.",
+ "keywords": [
+ "closure",
+ "laravel",
+ "serializable"
+ ],
+ "support": {
+ "issues": "https://github.com/laravel/serializable-closure/issues",
+ "source": "https://github.com/laravel/serializable-closure"
+ },
+ "time": "2023-01-30T18:31:20+00:00"
+ },
+ {
+ "name": "laravel/tinker",
+ "version": "v2.8.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laravel/tinker.git",
+ "reference": "04a2d3bd0d650c0764f70bf49d1ee39393e4eb10"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/laravel/tinker/zipball/04a2d3bd0d650c0764f70bf49d1ee39393e4eb10",
+ "reference": "04a2d3bd0d650c0764f70bf49d1ee39393e4eb10",
+ "shasum": ""
+ },
+ "require": {
+ "illuminate/console": "^6.0|^7.0|^8.0|^9.0|^10.0",
+ "illuminate/contracts": "^6.0|^7.0|^8.0|^9.0|^10.0",
+ "illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0",
+ "php": "^7.2.5|^8.0",
+ "psy/psysh": "^0.10.4|^0.11.1",
+ "symfony/var-dumper": "^4.3.4|^5.0|^6.0"
+ },
+ "require-dev": {
+ "mockery/mockery": "~1.3.3|^1.4.2",
+ "phpunit/phpunit": "^8.5.8|^9.3.3"
+ },
+ "suggest": {
+ "illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0|^9.0|^10.0)."
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.x-dev"
+ },
+ "laravel": {
+ "providers": [
+ "Laravel\\Tinker\\TinkerServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Laravel\\Tinker\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Taylor Otwell",
+ "email": "taylor@laravel.com"
+ }
+ ],
+ "description": "Powerful REPL for the Laravel framework.",
+ "keywords": [
+ "REPL",
+ "Tinker",
+ "laravel",
+ "psysh"
+ ],
+ "support": {
+ "issues": "https://github.com/laravel/tinker/issues",
+ "source": "https://github.com/laravel/tinker/tree/v2.8.1"
+ },
+ "time": "2023-02-15T16:40:09+00:00"
+ },
+ {
+ "name": "league/commonmark",
+ "version": "2.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/thephpleague/commonmark.git",
+ "reference": "d44a24690f16b8c1808bf13b1bd54ae4c63ea048"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/d44a24690f16b8c1808bf13b1bd54ae4c63ea048",
+ "reference": "d44a24690f16b8c1808bf13b1bd54ae4c63ea048",
+ "shasum": ""
+ },
+ "require": {
+ "ext-mbstring": "*",
+ "league/config": "^1.1.1",
+ "php": "^7.4 || ^8.0",
+ "psr/event-dispatcher": "^1.0",
+ "symfony/deprecation-contracts": "^2.1 || ^3.0",
+ "symfony/polyfill-php80": "^1.16"
+ },
+ "require-dev": {
+ "cebe/markdown": "^1.0",
+ "commonmark/cmark": "0.30.0",
+ "commonmark/commonmark.js": "0.30.0",
+ "composer/package-versions-deprecated": "^1.8",
+ "embed/embed": "^4.4",
+ "erusev/parsedown": "^1.0",
+ "ext-json": "*",
+ "github/gfm": "0.29.0",
+ "michelf/php-markdown": "^1.4 || ^2.0",
+ "nyholm/psr7": "^1.5",
+ "phpstan/phpstan": "^1.8.2",
+ "phpunit/phpunit": "^9.5.21",
+ "scrutinizer/ocular": "^1.8.1",
+ "symfony/finder": "^5.3 | ^6.0",
+ "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0",
+ "unleashedtech/php-coding-standard": "^3.1.1",
+ "vimeo/psalm": "^4.24.0 || ^5.0.0"
+ },
+ "suggest": {
+ "symfony/yaml": "v2.3+ required if using the Front Matter extension"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "2.5-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "League\\CommonMark\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Colin O'Dell",
+ "email": "colinodell@gmail.com",
+ "homepage": "https://www.colinodell.com",
+ "role": "Lead Developer"
+ }
+ ],
+ "description": "Highly-extensible PHP Markdown parser which fully supports the CommonMark spec and GitHub-Flavored Markdown (GFM)",
+ "homepage": "https://commonmark.thephpleague.com",
+ "keywords": [
+ "commonmark",
+ "flavored",
+ "gfm",
+ "github",
+ "github-flavored",
+ "markdown",
+ "md",
+ "parser"
+ ],
+ "support": {
+ "docs": "https://commonmark.thephpleague.com/",
+ "forum": "https://github.com/thephpleague/commonmark/discussions",
+ "issues": "https://github.com/thephpleague/commonmark/issues",
+ "rss": "https://github.com/thephpleague/commonmark/releases.atom",
+ "source": "https://github.com/thephpleague/commonmark"
+ },
+ "funding": [
+ {
+ "url": "https://www.colinodell.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://www.paypal.me/colinpodell/10.00",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/colinodell",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/league/commonmark",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-03-24T15:16:10+00:00"
+ },
+ {
+ "name": "league/config",
+ "version": "v1.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/thephpleague/config.git",
+ "reference": "754b3604fb2984c71f4af4a9cbe7b57f346ec1f3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/thephpleague/config/zipball/754b3604fb2984c71f4af4a9cbe7b57f346ec1f3",
+ "reference": "754b3604fb2984c71f4af4a9cbe7b57f346ec1f3",
+ "shasum": ""
+ },
+ "require": {
+ "dflydev/dot-access-data": "^3.0.1",
+ "nette/schema": "^1.2",
+ "php": "^7.4 || ^8.0"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^1.8.2",
+ "phpunit/phpunit": "^9.5.5",
+ "scrutinizer/ocular": "^1.8.1",
+ "unleashedtech/php-coding-standard": "^3.1",
+ "vimeo/psalm": "^4.7.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.2-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "League\\Config\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Colin O'Dell",
+ "email": "colinodell@gmail.com",
+ "homepage": "https://www.colinodell.com",
+ "role": "Lead Developer"
+ }
+ ],
+ "description": "Define configuration arrays with strict schemas and access values with dot notation",
+ "homepage": "https://config.thephpleague.com",
+ "keywords": [
+ "array",
+ "config",
+ "configuration",
+ "dot",
+ "dot-access",
+ "nested",
+ "schema"
+ ],
+ "support": {
+ "docs": "https://config.thephpleague.com/",
+ "issues": "https://github.com/thephpleague/config/issues",
+ "rss": "https://github.com/thephpleague/config/releases.atom",
+ "source": "https://github.com/thephpleague/config"
+ },
+ "funding": [
+ {
+ "url": "https://www.colinodell.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://www.paypal.me/colinpodell/10.00",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/colinodell",
+ "type": "github"
+ }
+ ],
+ "time": "2022-12-11T20:36:23+00:00"
+ },
+ {
+ "name": "league/flysystem",
+ "version": "3.15.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/thephpleague/flysystem.git",
+ "reference": "a141d430414fcb8bf797a18716b09f759a385bed"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/a141d430414fcb8bf797a18716b09f759a385bed",
+ "reference": "a141d430414fcb8bf797a18716b09f759a385bed",
+ "shasum": ""
+ },
+ "require": {
+ "league/flysystem-local": "^3.0.0",
+ "league/mime-type-detection": "^1.0.0",
+ "php": "^8.0.2"
+ },
+ "conflict": {
+ "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.1",
+ "aws/aws-sdk-php": "^3.220.0",
+ "composer/semver": "^3.0",
+ "ext-fileinfo": "*",
+ "ext-ftp": "*",
+ "ext-zip": "*",
+ "friendsofphp/php-cs-fixer": "^3.5",
+ "google/cloud-storage": "^1.23",
+ "microsoft/azure-storage-blob": "^1.1",
+ "phpseclib/phpseclib": "^3.0.14",
+ "phpstan/phpstan": "^0.12.26",
+ "phpunit/phpunit": "^9.5.11",
+ "sabre/dav": "^4.3.1"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "League\\Flysystem\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Frank de Jonge",
+ "email": "info@frankdejonge.nl"
+ }
+ ],
+ "description": "File storage abstraction for PHP",
+ "keywords": [
+ "WebDAV",
+ "aws",
+ "cloud",
+ "file",
+ "files",
+ "filesystem",
+ "filesystems",
+ "ftp",
+ "s3",
+ "sftp",
+ "storage"
+ ],
+ "support": {
+ "issues": "https://github.com/thephpleague/flysystem/issues",
+ "source": "https://github.com/thephpleague/flysystem/tree/3.15.1"
+ },
+ "funding": [
+ {
+ "url": "https://ecologi.com/frankdejonge",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/frankdejonge",
+ "type": "github"
+ }
+ ],
+ "time": "2023-05-04T09:04:26+00:00"
+ },
+ {
+ "name": "league/flysystem-aws-s3-v3",
+ "version": "3.x-dev",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/thephpleague/flysystem-aws-s3-v3.git",
+ "reference": "d8de61ee10b6a607e7996cff388c5a3a663e8c8a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/d8de61ee10b6a607e7996cff388c5a3a663e8c8a",
+ "reference": "d8de61ee10b6a607e7996cff388c5a3a663e8c8a",
+ "shasum": ""
+ },
+ "require": {
+ "aws/aws-sdk-php": "^3.220.0",
+ "league/flysystem": "^3.10.0",
+ "league/mime-type-detection": "^1.0.0",
+ "php": "^8.0.2"
+ },
+ "conflict": {
+ "guzzlehttp/guzzle": "<7.0",
+ "guzzlehttp/ringphp": "<1.1.1"
+ },
+ "default-branch": true,
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "League\\Flysystem\\AwsS3V3\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Frank de Jonge",
+ "email": "info@frankdejonge.nl"
+ }
+ ],
+ "description": "AWS S3 filesystem adapter for Flysystem.",
+ "keywords": [
+ "Flysystem",
+ "aws",
+ "file",
+ "files",
+ "filesystem",
+ "s3",
+ "storage"
+ ],
+ "support": {
+ "issues": "https://github.com/thephpleague/flysystem-aws-s3-v3/issues",
+ "source": "https://github.com/thephpleague/flysystem-aws-s3-v3/tree/3.15.0"
+ },
+ "funding": [
+ {
+ "url": "https://ecologi.com/frankdejonge",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/frankdejonge",
+ "type": "github"
+ }
+ ],
+ "time": "2023-05-02T20:02:14+00:00"
+ },
+ {
+ "name": "league/flysystem-local",
+ "version": "3.15.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/thephpleague/flysystem-local.git",
+ "reference": "543f64c397fefdf9cfeac443ffb6beff602796b3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/543f64c397fefdf9cfeac443ffb6beff602796b3",
+ "reference": "543f64c397fefdf9cfeac443ffb6beff602796b3",
+ "shasum": ""
+ },
+ "require": {
+ "ext-fileinfo": "*",
+ "league/flysystem": "^3.0.0",
+ "league/mime-type-detection": "^1.0.0",
+ "php": "^8.0.2"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "League\\Flysystem\\Local\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Frank de Jonge",
+ "email": "info@frankdejonge.nl"
+ }
+ ],
+ "description": "Local filesystem adapter for Flysystem.",
+ "keywords": [
+ "Flysystem",
+ "file",
+ "files",
+ "filesystem",
+ "local"
+ ],
+ "support": {
+ "issues": "https://github.com/thephpleague/flysystem-local/issues",
+ "source": "https://github.com/thephpleague/flysystem-local/tree/3.15.0"
+ },
+ "funding": [
+ {
+ "url": "https://ecologi.com/frankdejonge",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/frankdejonge",
+ "type": "github"
+ }
+ ],
+ "time": "2023-05-02T20:02:14+00:00"
+ },
+ {
+ "name": "league/mime-type-detection",
+ "version": "1.11.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/thephpleague/mime-type-detection.git",
+ "reference": "ff6248ea87a9f116e78edd6002e39e5128a0d4dd"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/ff6248ea87a9f116e78edd6002e39e5128a0d4dd",
+ "reference": "ff6248ea87a9f116e78edd6002e39e5128a0d4dd",
+ "shasum": ""
+ },
+ "require": {
+ "ext-fileinfo": "*",
+ "php": "^7.2 || ^8.0"
+ },
+ "require-dev": {
+ "friendsofphp/php-cs-fixer": "^3.2",
+ "phpstan/phpstan": "^0.12.68",
+ "phpunit/phpunit": "^8.5.8 || ^9.3"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "League\\MimeTypeDetection\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Frank de Jonge",
+ "email": "info@frankdejonge.nl"
+ }
+ ],
+ "description": "Mime-type detection for Flysystem",
+ "support": {
+ "issues": "https://github.com/thephpleague/mime-type-detection/issues",
+ "source": "https://github.com/thephpleague/mime-type-detection/tree/1.11.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/frankdejonge",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/league/flysystem",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-04-17T13:12:02+00:00"
+ },
+ {
+ "name": "monolog/monolog",
+ "version": "2.9.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Seldaek/monolog.git",
+ "reference": "f259e2b15fb95494c83f52d3caad003bbf5ffaa1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Seldaek/monolog/zipball/f259e2b15fb95494c83f52d3caad003bbf5ffaa1",
+ "reference": "f259e2b15fb95494c83f52d3caad003bbf5ffaa1",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2",
+ "psr/log": "^1.0.1 || ^2.0 || ^3.0"
+ },
+ "provide": {
+ "psr/log-implementation": "1.0.0 || 2.0.0 || 3.0.0"
+ },
+ "require-dev": {
+ "aws/aws-sdk-php": "^2.4.9 || ^3.0",
+ "doctrine/couchdb": "~1.0@dev",
+ "elasticsearch/elasticsearch": "^7 || ^8",
+ "ext-json": "*",
+ "graylog2/gelf-php": "^1.4.2 || ^2@dev",
+ "guzzlehttp/guzzle": "^7.4",
+ "guzzlehttp/psr7": "^2.2",
+ "mongodb/mongodb": "^1.8",
+ "php-amqplib/php-amqplib": "~2.4 || ^3",
+ "phpspec/prophecy": "^1.15",
+ "phpstan/phpstan": "^0.12.91",
+ "phpunit/phpunit": "^8.5.14",
+ "predis/predis": "^1.1 || ^2.0",
+ "rollbar/rollbar": "^1.3 || ^2 || ^3",
+ "ruflin/elastica": "^7",
+ "swiftmailer/swiftmailer": "^5.3|^6.0",
+ "symfony/mailer": "^5.4 || ^6",
+ "symfony/mime": "^5.4 || ^6"
+ },
+ "suggest": {
+ "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB",
+ "doctrine/couchdb": "Allow sending log messages to a CouchDB server",
+ "elasticsearch/elasticsearch": "Allow sending log messages to an Elasticsearch server via official client",
+ "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)",
+ "ext-curl": "Required to send log messages using the IFTTTHandler, the LogglyHandler, the SendGridHandler, the SlackWebhookHandler or the TelegramBotHandler",
+ "ext-mbstring": "Allow to work properly with unicode symbols",
+ "ext-mongodb": "Allow sending log messages to a MongoDB server (via driver)",
+ "ext-openssl": "Required to send log messages using SSL",
+ "ext-sockets": "Allow sending log messages to a Syslog server (via UDP driver)",
+ "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",
+ "rollbar/rollbar": "Allow sending log messages to Rollbar",
+ "ruflin/elastica": "Allow sending log messages to an Elastic Search server"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "2.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Monolog\\": "src/Monolog"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be",
+ "homepage": "https://seld.be"
+ }
+ ],
+ "description": "Sends your logs to files, sockets, inboxes, databases and various web services",
+ "homepage": "https://github.com/Seldaek/monolog",
+ "keywords": [
+ "log",
+ "logging",
+ "psr-3"
+ ],
+ "support": {
+ "issues": "https://github.com/Seldaek/monolog/issues",
+ "source": "https://github.com/Seldaek/monolog/tree/2.9.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/Seldaek",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/monolog/monolog",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-02-06T13:44:46+00:00"
+ },
+ {
+ "name": "morilog/jalali",
+ "version": "v3.4.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/morilog/jalali.git",
+ "reference": "1cefc646c1488c508cf08c46eca1fd80447aa75c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/morilog/jalali/zipball/1cefc646c1488c508cf08c46eca1fd80447aa75c",
+ "reference": "1cefc646c1488c508cf08c46eca1fd80447aa75c",
+ "shasum": ""
+ },
+ "require": {
+ "beberlei/assert": "3.*",
+ "nesbot/carbon": "^1.21 || ^2.0",
+ "php": "^7.0 | ^7.1 | ^7.2 | ^8.0 | ^8.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "~4.0"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "src/helpers.php"
+ ],
+ "psr-4": {
+ "Morilog\\Jalali\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Milad Rey",
+ "email": "miladr@gmail.com"
+ },
+ {
+ "name": "Morteza Parvini",
+ "email": "m.parvini@outlook.com"
+ }
+ ],
+ "description": "This Package helps developers to easily work with Jalali (Shamsi or Iranian) dates in PHP applications, based on Jalali (Shamsi) DateTime class.",
+ "keywords": [
+ "Jalali",
+ "date",
+ "datetime",
+ "laravel",
+ "morilog"
+ ],
+ "support": {
+ "issues": "https://github.com/morilog/jalali/issues",
+ "source": "https://github.com/morilog/jalali/tree/v3.4.1"
+ },
+ "funding": [
+ {
+ "url": "https://issuehunt.io/r/morilog",
+ "type": "issuehunt"
+ }
+ ],
+ "time": "2023-03-22T22:34:01+00:00"
+ },
+ {
+ "name": "mtdowling/jmespath.php",
+ "version": "2.6.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/jmespath/jmespath.php.git",
+ "reference": "9b87907a81b87bc76d19a7fb2d61e61486ee9edb"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/jmespath/jmespath.php/zipball/9b87907a81b87bc76d19a7fb2d61e61486ee9edb",
+ "reference": "9b87907a81b87bc76d19a7fb2d61e61486ee9edb",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.4 || ^7.0 || ^8.0",
+ "symfony/polyfill-mbstring": "^1.17"
+ },
+ "require-dev": {
+ "composer/xdebug-handler": "^1.4 || ^2.0",
+ "phpunit/phpunit": "^4.8.36 || ^7.5.15"
+ },
+ "bin": [
+ "bin/jp.php"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.6-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/JmesPath.php"
+ ],
+ "psr-4": {
+ "JmesPath\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Michael Dowling",
+ "email": "mtdowling@gmail.com",
+ "homepage": "https://github.com/mtdowling"
+ }
+ ],
+ "description": "Declaratively specify how to extract elements from a JSON document",
+ "keywords": [
+ "json",
+ "jsonpath"
+ ],
+ "support": {
+ "issues": "https://github.com/jmespath/jmespath.php/issues",
+ "source": "https://github.com/jmespath/jmespath.php/tree/2.6.1"
+ },
+ "time": "2021-06-14T00:11:39+00:00"
+ },
+ {
+ "name": "nesbot/carbon",
+ "version": "2.67.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/briannesbitt/Carbon.git",
+ "reference": "c1001b3bc75039b07f38a79db5237c4c529e04c8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/c1001b3bc75039b07f38a79db5237c4c529e04c8",
+ "reference": "c1001b3bc75039b07f38a79db5237c4c529e04c8",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "php": "^7.1.8 || ^8.0",
+ "symfony/polyfill-mbstring": "^1.0",
+ "symfony/polyfill-php80": "^1.16",
+ "symfony/translation": "^3.4 || ^4.0 || ^5.0 || ^6.0"
+ },
+ "require-dev": {
+ "doctrine/dbal": "^2.0 || ^3.1.4",
+ "doctrine/orm": "^2.7",
+ "friendsofphp/php-cs-fixer": "^3.0",
+ "kylekatarnls/multi-tester": "^2.0",
+ "ondrejmirtes/better-reflection": "*",
+ "phpmd/phpmd": "^2.9",
+ "phpstan/extension-installer": "^1.0",
+ "phpstan/phpstan": "^0.12.99 || ^1.7.14",
+ "phpunit/php-file-iterator": "^2.0.5 || ^3.0.6",
+ "phpunit/phpunit": "^7.5.20 || ^8.5.26 || ^9.5.20",
+ "squizlabs/php_codesniffer": "^3.4"
+ },
+ "bin": [
+ "bin/carbon"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-3.x": "3.x-dev",
+ "dev-master": "2.x-dev"
+ },
+ "laravel": {
+ "providers": [
+ "Carbon\\Laravel\\ServiceProvider"
+ ]
+ },
+ "phpstan": {
+ "includes": [
+ "extension.neon"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Carbon\\": "src/Carbon/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Brian Nesbitt",
+ "email": "brian@nesbot.com",
+ "homepage": "https://markido.com"
+ },
+ {
+ "name": "kylekatarnls",
+ "homepage": "https://github.com/kylekatarnls"
+ }
+ ],
+ "description": "An API extension for DateTime that supports 281 different languages.",
+ "homepage": "https://carbon.nesbot.com",
+ "keywords": [
+ "date",
+ "datetime",
+ "time"
+ ],
+ "support": {
+ "docs": "https://carbon.nesbot.com/docs",
+ "issues": "https://github.com/briannesbitt/Carbon/issues",
+ "source": "https://github.com/briannesbitt/Carbon"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/kylekatarnls",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/Carbon#sponsor",
+ "type": "opencollective"
+ },
+ {
+ "url": "https://tidelift.com/subscription/pkg/packagist-nesbot-carbon?utm_source=packagist-nesbot-carbon&utm_medium=referral&utm_campaign=readme",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-05-25T22:09:47+00:00"
+ },
+ {
+ "name": "nette/schema",
+ "version": "v1.2.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nette/schema.git",
+ "reference": "abbdbb70e0245d5f3bf77874cea1dfb0c930d06f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nette/schema/zipball/abbdbb70e0245d5f3bf77874cea1dfb0c930d06f",
+ "reference": "abbdbb70e0245d5f3bf77874cea1dfb0c930d06f",
+ "shasum": ""
+ },
+ "require": {
+ "nette/utils": "^2.5.7 || ^3.1.5 || ^4.0",
+ "php": ">=7.1 <8.3"
+ },
+ "require-dev": {
+ "nette/tester": "^2.3 || ^2.4",
+ "phpstan/phpstan-nette": "^1.0",
+ "tracy/tracy": "^2.7"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.2-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause",
+ "GPL-2.0-only",
+ "GPL-3.0-only"
+ ],
+ "authors": [
+ {
+ "name": "David Grudl",
+ "homepage": "https://davidgrudl.com"
+ },
+ {
+ "name": "Nette Community",
+ "homepage": "https://nette.org/contributors"
+ }
+ ],
+ "description": "📐 Nette Schema: validating data structures against a given Schema.",
+ "homepage": "https://nette.org",
+ "keywords": [
+ "config",
+ "nette"
+ ],
+ "support": {
+ "issues": "https://github.com/nette/schema/issues",
+ "source": "https://github.com/nette/schema/tree/v1.2.3"
+ },
+ "time": "2022-10-13T01:24:26+00:00"
+ },
+ {
+ "name": "nette/utils",
+ "version": "v4.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nette/utils.git",
+ "reference": "cacdbf5a91a657ede665c541eda28941d4b09c1e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nette/utils/zipball/cacdbf5a91a657ede665c541eda28941d4b09c1e",
+ "reference": "cacdbf5a91a657ede665c541eda28941d4b09c1e",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.0 <8.3"
+ },
+ "conflict": {
+ "nette/finder": "<3",
+ "nette/schema": "<1.2.2"
+ },
+ "require-dev": {
+ "jetbrains/phpstorm-attributes": "dev-master",
+ "nette/tester": "^2.4",
+ "phpstan/phpstan": "^1.0",
+ "tracy/tracy": "^2.9"
+ },
+ "suggest": {
+ "ext-gd": "to use Image",
+ "ext-iconv": "to use Strings::webalize(), toAscii(), chr() and reverse()",
+ "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()",
+ "ext-json": "to use Nette\\Utils\\Json",
+ "ext-mbstring": "to use Strings::lower() etc...",
+ "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()",
+ "ext-xml": "to use Strings::length() etc. when mbstring is not available"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause",
+ "GPL-2.0-only",
+ "GPL-3.0-only"
+ ],
+ "authors": [
+ {
+ "name": "David Grudl",
+ "homepage": "https://davidgrudl.com"
+ },
+ {
+ "name": "Nette Community",
+ "homepage": "https://nette.org/contributors"
+ }
+ ],
+ "description": "🛠 Nette Utils: lightweight utilities for string & array manipulation, image handling, safe JSON encoding/decoding, validation, slug or strong password generating etc.",
+ "homepage": "https://nette.org",
+ "keywords": [
+ "array",
+ "core",
+ "datetime",
+ "images",
+ "json",
+ "nette",
+ "paginator",
+ "password",
+ "slugify",
+ "string",
+ "unicode",
+ "utf-8",
+ "utility",
+ "validation"
+ ],
+ "support": {
+ "issues": "https://github.com/nette/utils/issues",
+ "source": "https://github.com/nette/utils/tree/v4.0.0"
+ },
+ "time": "2023-02-02T10:41:53+00:00"
+ },
+ {
+ "name": "nikic/php-parser",
+ "version": "v4.16.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nikic/PHP-Parser.git",
+ "reference": "19526a33fb561ef417e822e85f08a00db4059c17"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/19526a33fb561ef417e822e85f08a00db4059c17",
+ "reference": "19526a33fb561ef417e822e85f08a00db4059c17",
+ "shasum": ""
+ },
+ "require": {
+ "ext-tokenizer": "*",
+ "php": ">=7.0"
+ },
+ "require-dev": {
+ "ircmaxell/php-yacc": "^0.0.7",
+ "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0"
+ },
+ "bin": [
+ "bin/php-parse"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.9-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "PhpParser\\": "lib/PhpParser"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Nikita Popov"
+ }
+ ],
+ "description": "A PHP parser written in PHP",
+ "keywords": [
+ "parser",
+ "php"
+ ],
+ "support": {
+ "issues": "https://github.com/nikic/PHP-Parser/issues",
+ "source": "https://github.com/nikic/PHP-Parser/tree/v4.16.0"
+ },
+ "time": "2023-06-25T14:52:30+00:00"
+ },
+ {
+ "name": "nunomaduro/termwind",
+ "version": "v1.15.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nunomaduro/termwind.git",
+ "reference": "8ab0b32c8caa4a2e09700ea32925441385e4a5dc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/8ab0b32c8caa4a2e09700ea32925441385e4a5dc",
+ "reference": "8ab0b32c8caa4a2e09700ea32925441385e4a5dc",
+ "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.15.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": "2023-02-08T01:06:31+00:00"
+ },
+ {
+ "name": "nyholm/psr7",
+ "version": "1.8.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Nyholm/psr7.git",
+ "reference": "3cb4d163b58589e47b35103e8e5e6a6a475b47be"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Nyholm/psr7/zipball/3cb4d163b58589e47b35103e8e5e6a6a475b47be",
+ "reference": "3cb4d163b58589e47b35103e8e5e6a6a475b47be",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2",
+ "psr/http-factory": "^1.0",
+ "psr/http-message": "^1.1 || ^2.0"
+ },
+ "provide": {
+ "php-http/message-factory-implementation": "1.0",
+ "psr/http-factory-implementation": "1.0",
+ "psr/http-message-implementation": "1.0"
+ },
+ "require-dev": {
+ "http-interop/http-factory-tests": "^0.9",
+ "php-http/message-factory": "^1.0",
+ "php-http/psr7-integration-tests": "^1.0",
+ "phpunit/phpunit": "^7.5 || ^8.5 || ^9.4",
+ "symfony/error-handler": "^4.4"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.8-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Nyholm\\Psr7\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Tobias Nyholm",
+ "email": "tobias.nyholm@gmail.com"
+ },
+ {
+ "name": "Martijn van der Ven",
+ "email": "martijn@vanderven.se"
+ }
+ ],
+ "description": "A fast PHP7 implementation of PSR-7",
+ "homepage": "https://tnyholm.se",
+ "keywords": [
+ "psr-17",
+ "psr-7"
+ ],
+ "support": {
+ "issues": "https://github.com/Nyholm/psr7/issues",
+ "source": "https://github.com/Nyholm/psr7/tree/1.8.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/Zegnat",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/nyholm",
+ "type": "github"
+ }
+ ],
+ "time": "2023-05-02T11:26:24+00:00"
+ },
+ {
+ "name": "paragonie/constant_time_encoding",
+ "version": "v2.6.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/paragonie/constant_time_encoding.git",
+ "reference": "58c3f47f650c94ec05a151692652a868995d2938"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/58c3f47f650c94ec05a151692652a868995d2938",
+ "reference": "58c3f47f650c94ec05a151692652a868995d2938",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7|^8"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^6|^7|^8|^9",
+ "vimeo/psalm": "^1|^2|^3|^4"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "ParagonIE\\ConstantTime\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Paragon Initiative Enterprises",
+ "email": "security@paragonie.com",
+ "homepage": "https://paragonie.com",
+ "role": "Maintainer"
+ },
+ {
+ "name": "Steve 'Sc00bz' Thomas",
+ "email": "steve@tobtu.com",
+ "homepage": "https://www.tobtu.com",
+ "role": "Original Developer"
+ }
+ ],
+ "description": "Constant-time Implementations of RFC 4648 Encoding (Base-64, Base-32, Base-16)",
+ "keywords": [
+ "base16",
+ "base32",
+ "base32_decode",
+ "base32_encode",
+ "base64",
+ "base64_decode",
+ "base64_encode",
+ "bin2hex",
+ "encoding",
+ "hex",
+ "hex2bin",
+ "rfc4648"
+ ],
+ "support": {
+ "email": "info@paragonie.com",
+ "issues": "https://github.com/paragonie/constant_time_encoding/issues",
+ "source": "https://github.com/paragonie/constant_time_encoding"
+ },
+ "time": "2022-06-14T06:56:20+00:00"
+ },
+ {
+ "name": "paragonie/random_compat",
+ "version": "v9.99.100",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/paragonie/random_compat.git",
+ "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/paragonie/random_compat/zipball/996434e5492cb4c3edcb9168db6fbb1359ef965a",
+ "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">= 7"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "4.*|5.*",
+ "vimeo/psalm": "^1"
+ },
+ "suggest": {
+ "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes."
+ },
+ "type": "library",
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Paragon Initiative Enterprises",
+ "email": "security@paragonie.com",
+ "homepage": "https://paragonie.com"
+ }
+ ],
+ "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7",
+ "keywords": [
+ "csprng",
+ "polyfill",
+ "pseudorandom",
+ "random"
+ ],
+ "support": {
+ "email": "info@paragonie.com",
+ "issues": "https://github.com/paragonie/random_compat/issues",
+ "source": "https://github.com/paragonie/random_compat"
+ },
+ "time": "2020-10-15T08:29:30+00:00"
+ },
+ {
+ "name": "paragonie/sodium_compat",
+ "version": "v1.20.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/paragonie/sodium_compat.git",
+ "reference": "e592a3e06d1fa0d43988c7c7d9948ca836f644b6"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/paragonie/sodium_compat/zipball/e592a3e06d1fa0d43988c7c7d9948ca836f644b6",
+ "reference": "e592a3e06d1fa0d43988c7c7d9948ca836f644b6",
+ "shasum": ""
+ },
+ "require": {
+ "paragonie/random_compat": ">=1",
+ "php": "^5.2.4|^5.3|^5.4|^5.5|^5.6|^7|^8"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^3|^4|^5|^6|^7|^8|^9"
+ },
+ "suggest": {
+ "ext-libsodium": "PHP < 7.0: Better performance, password hashing (Argon2i), secure memory management (memzero), and better security.",
+ "ext-sodium": "PHP >= 7.0: Better performance, password hashing (Argon2i), secure memory management (memzero), and better security."
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "autoload.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "ISC"
+ ],
+ "authors": [
+ {
+ "name": "Paragon Initiative Enterprises",
+ "email": "security@paragonie.com"
+ },
+ {
+ "name": "Frank Denis",
+ "email": "jedisct1@pureftpd.org"
+ }
+ ],
+ "description": "Pure PHP implementation of libsodium; uses the PHP extension if it exists",
+ "keywords": [
+ "Authentication",
+ "BLAKE2b",
+ "ChaCha20",
+ "ChaCha20-Poly1305",
+ "Chapoly",
+ "Curve25519",
+ "Ed25519",
+ "EdDSA",
+ "Edwards-curve Digital Signature Algorithm",
+ "Elliptic Curve Diffie-Hellman",
+ "Poly1305",
+ "Pure-PHP cryptography",
+ "RFC 7748",
+ "RFC 8032",
+ "Salpoly",
+ "Salsa20",
+ "X25519",
+ "XChaCha20-Poly1305",
+ "XSalsa20-Poly1305",
+ "Xchacha20",
+ "Xsalsa20",
+ "aead",
+ "cryptography",
+ "ecdh",
+ "elliptic curve",
+ "elliptic curve cryptography",
+ "encryption",
+ "libsodium",
+ "php",
+ "public-key cryptography",
+ "secret-key cryptography",
+ "side-channel resistant"
+ ],
+ "support": {
+ "issues": "https://github.com/paragonie/sodium_compat/issues",
+ "source": "https://github.com/paragonie/sodium_compat/tree/v1.20.0"
+ },
+ "time": "2023-04-30T00:54:53+00:00"
+ },
+ {
+ "name": "pbmedia/laravel-ffmpeg",
+ "version": "8.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/protonemedia/laravel-ffmpeg.git",
+ "reference": "820e7f1290918233a59d85f25bc78796dc3f57bb"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/protonemedia/laravel-ffmpeg/zipball/820e7f1290918233a59d85f25bc78796dc3f57bb",
+ "reference": "820e7f1290918233a59d85f25bc78796dc3f57bb",
+ "shasum": ""
+ },
+ "require": {
+ "illuminate/contracts": "^9.0|^10.0",
+ "php": "^8.1|^8.2",
+ "php-ffmpeg/php-ffmpeg": "^1.1",
+ "ramsey/collection": "^1.0|^2.0"
+ },
+ "require-dev": {
+ "league/flysystem-memory": "^3.10",
+ "mockery/mockery": "^1.4.4",
+ "nesbot/carbon": "^2.66",
+ "orchestra/testbench": "^7.0|^8.0",
+ "phpunit/phpunit": "^9.5.10",
+ "spatie/image": "^2.2",
+ "spatie/phpunit-snapshot-assertions": "^4.2"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "ProtoneMedia\\LaravelFFMpeg\\Support\\ServiceProvider"
+ ],
+ "aliases": {
+ "FFMpeg": "ProtoneMedia\\LaravelFFMpeg\\Support\\FFMpeg"
+ }
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "ProtoneMedia\\LaravelFFMpeg\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Pascal Baljet",
+ "email": "pascal@protone.media",
+ "homepage": "https://protone.media",
+ "role": "Developer"
+ }
+ ],
+ "description": "FFMpeg for Laravel",
+ "homepage": "https://github.com/protonemedia/laravel-ffmpeg",
+ "keywords": [
+ "ffmpeg",
+ "laravel",
+ "laravel-ffmpeg",
+ "protone media",
+ "protonemedia"
+ ],
+ "support": {
+ "issues": "https://github.com/protonemedia/laravel-ffmpeg/issues",
+ "source": "https://github.com/protonemedia/laravel-ffmpeg/tree/8.3.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/pascalbaljet",
+ "type": "github"
+ }
+ ],
+ "time": "2023-02-15T10:10:46+00:00"
+ },
+ {
+ "name": "php-amqplib/php-amqplib",
+ "version": "v3.5.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-amqplib/php-amqplib.git",
+ "reference": "bccaaf8ef8bcf18b4ab41e645e92537752b887bd"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-amqplib/php-amqplib/zipball/bccaaf8ef8bcf18b4ab41e645e92537752b887bd",
+ "reference": "bccaaf8ef8bcf18b4ab41e645e92537752b887bd",
+ "shasum": ""
+ },
+ "require": {
+ "ext-mbstring": "*",
+ "ext-sockets": "*",
+ "php": "^7.1||^8.0",
+ "phpseclib/phpseclib": "^2.0|^3.0"
+ },
+ "conflict": {
+ "php": "7.4.0 - 7.4.1"
+ },
+ "replace": {
+ "videlalvaro/php-amqplib": "self.version"
+ },
+ "require-dev": {
+ "ext-curl": "*",
+ "nategood/httpful": "^0.2.20",
+ "phpunit/phpunit": "^7.5|^9.5",
+ "squizlabs/php_codesniffer": "^3.6"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "PhpAmqpLib\\": "PhpAmqpLib/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "LGPL-2.1-or-later"
+ ],
+ "authors": [
+ {
+ "name": "Alvaro Videla",
+ "role": "Original Maintainer"
+ },
+ {
+ "name": "Raúl Araya",
+ "email": "nubeiro@gmail.com",
+ "role": "Maintainer"
+ },
+ {
+ "name": "Luke Bakken",
+ "email": "luke@bakken.io",
+ "role": "Maintainer"
+ },
+ {
+ "name": "Ramūnas Dronga",
+ "email": "github@ramuno.lt",
+ "role": "Maintainer"
+ }
+ ],
+ "description": "Formerly videlalvaro/php-amqplib. This library is a pure PHP implementation of the AMQP protocol. It's been tested against RabbitMQ.",
+ "homepage": "https://github.com/php-amqplib/php-amqplib/",
+ "keywords": [
+ "message",
+ "queue",
+ "rabbitmq"
+ ],
+ "support": {
+ "issues": "https://github.com/php-amqplib/php-amqplib/issues",
+ "source": "https://github.com/php-amqplib/php-amqplib/tree/v3.5.3"
+ },
+ "time": "2023-04-03T18:25:49+00:00"
+ },
+ {
+ "name": "php-ffmpeg/php-ffmpeg",
+ "version": "v1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/PHP-FFMpeg/PHP-FFMpeg.git",
+ "reference": "eace6f174ff6d206ba648483ebe59760f7f6a0e1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/PHP-FFMpeg/PHP-FFMpeg/zipball/eace6f174ff6d206ba648483ebe59760f7f6a0e1",
+ "reference": "eace6f174ff6d206ba648483ebe59760f7f6a0e1",
+ "shasum": ""
+ },
+ "require": {
+ "evenement/evenement": "^3.0",
+ "php": "^8.0 || ^8.1 || ^8.2",
+ "psr/log": "^1.0 || ^2.0 || ^3.0",
+ "spatie/temporary-directory": "^2.0",
+ "symfony/cache": "^5.4 || ^6.0",
+ "symfony/process": "^5.4 || ^6.0"
+ },
+ "require-dev": {
+ "mockery/mockery": "^1.5",
+ "phpunit/phpunit": "^9.5.10"
+ },
+ "suggest": {
+ "php-ffmpeg/extras": "A compilation of common audio & video drivers for PHP-FFMpeg"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "FFMpeg\\": "src/FFMpeg",
+ "Alchemy\\BinaryDriver\\": "src/Alchemy/BinaryDriver"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Romain Neutron",
+ "email": "imprec@gmail.com",
+ "homepage": "http://www.lickmychip.com/"
+ },
+ {
+ "name": "Phraseanet Team",
+ "email": "info@alchemy.fr",
+ "homepage": "http://www.phraseanet.com/"
+ },
+ {
+ "name": "Patrik Karisch",
+ "email": "patrik@karisch.guru",
+ "homepage": "http://www.karisch.guru"
+ },
+ {
+ "name": "Romain Biard",
+ "email": "romain.biard@gmail.com",
+ "homepage": "https://www.strime.io/"
+ },
+ {
+ "name": "Jens Hausdorf",
+ "email": "hello@jens-hausdorf.de",
+ "homepage": "https://jens-hausdorf.de"
+ },
+ {
+ "name": "Pascal Baljet",
+ "email": "pascal@protone.media",
+ "homepage": "https://protone.media"
+ }
+ ],
+ "description": "FFMpeg PHP, an Object Oriented library to communicate with AVconv / ffmpeg",
+ "keywords": [
+ "audio",
+ "audio processing",
+ "avconv",
+ "avprobe",
+ "ffmpeg",
+ "ffprobe",
+ "video",
+ "video processing"
+ ],
+ "support": {
+ "issues": "https://github.com/PHP-FFMpeg/PHP-FFMpeg/issues",
+ "source": "https://github.com/PHP-FFMpeg/PHP-FFMpeg/tree/v1.1.0"
+ },
+ "time": "2022-12-09T13:57:05+00:00"
+ },
+ {
+ "name": "php-http/client-common",
+ "version": "2.7.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-http/client-common.git",
+ "reference": "880509727a447474d2a71b7d7fa5d268ddd3db4b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-http/client-common/zipball/880509727a447474d2a71b7d7fa5d268ddd3db4b",
+ "reference": "880509727a447474d2a71b7d7fa5d268ddd3db4b",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1 || ^8.0",
+ "php-http/httplug": "^2.0",
+ "php-http/message": "^1.6",
+ "psr/http-client": "^1.0",
+ "psr/http-factory": "^1.0",
+ "psr/http-message": "^1.0 || ^2.0",
+ "symfony/options-resolver": "~4.0.15 || ~4.1.9 || ^4.2.1 || ^5.0 || ^6.0",
+ "symfony/polyfill-php80": "^1.17"
+ },
+ "require-dev": {
+ "doctrine/instantiator": "^1.1",
+ "guzzlehttp/psr7": "^1.4",
+ "nyholm/psr7": "^1.2",
+ "phpspec/phpspec": "^5.1 || ^6.3 || ^7.1",
+ "phpspec/prophecy": "^1.10.2",
+ "phpunit/phpunit": "^7.5.20 || ^8.5.33 || ^9.6.7"
+ },
+ "suggest": {
+ "ext-json": "To detect JSON responses with the ContentTypePlugin",
+ "ext-libxml": "To detect XML responses with the ContentTypePlugin",
+ "php-http/cache-plugin": "PSR-6 Cache plugin",
+ "php-http/logger-plugin": "PSR-3 Logger plugin",
+ "php-http/stopwatch-plugin": "Symfony Stopwatch plugin"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Http\\Client\\Common\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -1118,63 +4094,73 @@
],
"authors": [
{
- "name": "Taylor Otwell",
- "email": "taylor@laravel.com"
+ "name": "Márk Sági-Kazár",
+ "email": "mark.sagikazar@gmail.com"
}
],
- "description": "The Laravel Framework.",
- "homepage": "https://laravel.com",
+ "description": "Common HTTP Client implementations and tools for HTTPlug",
+ "homepage": "http://httplug.io",
"keywords": [
- "framework",
- "laravel"
+ "client",
+ "common",
+ "http",
+ "httplug"
],
"support": {
- "issues": "https://github.com/laravel/framework/issues",
- "source": "https://github.com/laravel/framework"
+ "issues": "https://github.com/php-http/client-common/issues",
+ "source": "https://github.com/php-http/client-common/tree/2.7.0"
},
- "time": "2021-10-05T14:04:25+00:00"
+ "time": "2023-05-17T06:46:59+00:00"
},
{
- "name": "laravel/sanctum",
- "version": "v2.11.2",
+ "name": "php-http/discovery",
+ "version": "1.19.0",
"source": {
"type": "git",
- "url": "https://github.com/laravel/sanctum.git",
- "reference": "b21e65cbe13896946986cb0868180cd69e1bd5d3"
+ "url": "https://github.com/php-http/discovery.git",
+ "reference": "1856a119a0b0ba8da8b5c33c080aa7af8fac25b4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/sanctum/zipball/b21e65cbe13896946986cb0868180cd69e1bd5d3",
- "reference": "b21e65cbe13896946986cb0868180cd69e1bd5d3",
+ "url": "https://api.github.com/repos/php-http/discovery/zipball/1856a119a0b0ba8da8b5c33c080aa7af8fac25b4",
+ "reference": "1856a119a0b0ba8da8b5c33c080aa7af8fac25b4",
"shasum": ""
},
"require": {
- "ext-json": "*",
- "illuminate/contracts": "^6.9|^7.0|^8.0",
- "illuminate/database": "^6.9|^7.0|^8.0",
- "illuminate/support": "^6.9|^7.0|^8.0",
- "php": "^7.2|^8.0"
+ "composer-plugin-api": "^1.0|^2.0",
+ "php": "^7.1 || ^8.0"
+ },
+ "conflict": {
+ "nyholm/psr7": "<1.0",
+ "zendframework/zend-diactoros": "*"
+ },
+ "provide": {
+ "php-http/async-client-implementation": "*",
+ "php-http/client-implementation": "*",
+ "psr/http-client-implementation": "*",
+ "psr/http-factory-implementation": "*",
+ "psr/http-message-implementation": "*"
},
"require-dev": {
- "mockery/mockery": "^1.0",
- "orchestra/testbench": "^4.0|^5.0|^6.0",
- "phpunit/phpunit": "^8.0|^9.3"
+ "composer/composer": "^1.0.2|^2.0",
+ "graham-campbell/phpspec-skip-example-extension": "^5.0",
+ "php-http/httplug": "^1.0 || ^2.0",
+ "php-http/message-factory": "^1.0",
+ "phpspec/phpspec": "^5.1 || ^6.1 || ^7.3",
+ "symfony/phpunit-bridge": "^6.2"
},
- "type": "library",
+ "type": "composer-plugin",
"extra": {
- "branch-alias": {
- "dev-master": "2.x-dev"
- },
- "laravel": {
- "providers": [
- "Laravel\\Sanctum\\SanctumServiceProvider"
- ]
- }
+ "class": "Http\\Discovery\\Composer\\Plugin",
+ "plugin-optional": true
},
"autoload": {
"psr-4": {
- "Laravel\\Sanctum\\": "src/"
- }
+ "Http\\Discovery\\": "src/"
+ },
+ "exclude-from-classmap": [
+ "src/Composer/Plugin.php"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -1182,53 +4168,56 @@
],
"authors": [
{
- "name": "Taylor Otwell",
- "email": "taylor@laravel.com"
+ "name": "Márk Sági-Kazár",
+ "email": "mark.sagikazar@gmail.com"
}
],
- "description": "Laravel Sanctum provides a featherweight authentication system for SPAs and simple APIs.",
+ "description": "Finds and installs PSR-7, PSR-17, PSR-18 and HTTPlug implementations",
+ "homepage": "http://php-http.org",
"keywords": [
- "auth",
- "laravel",
- "sanctum"
+ "adapter",
+ "client",
+ "discovery",
+ "factory",
+ "http",
+ "message",
+ "psr17",
+ "psr7"
],
"support": {
- "issues": "https://github.com/laravel/sanctum/issues",
- "source": "https://github.com/laravel/sanctum"
+ "issues": "https://github.com/php-http/discovery/issues",
+ "source": "https://github.com/php-http/discovery/tree/1.19.0"
},
- "time": "2021-06-15T15:56:21+00:00"
+ "time": "2023-06-19T08:45:36+00:00"
},
{
- "name": "laravel/serializable-closure",
- "version": "v1.0.2",
+ "name": "php-http/httplug",
+ "version": "2.4.0",
"source": {
"type": "git",
- "url": "https://github.com/laravel/serializable-closure.git",
- "reference": "679e24d36ff8b9be0e36f5222244ec8602e18867"
+ "url": "https://github.com/php-http/httplug.git",
+ "reference": "625ad742c360c8ac580fcc647a1541d29e257f67"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/679e24d36ff8b9be0e36f5222244ec8602e18867",
- "reference": "679e24d36ff8b9be0e36f5222244ec8602e18867",
+ "url": "https://api.github.com/repos/php-http/httplug/zipball/625ad742c360c8ac580fcc647a1541d29e257f67",
+ "reference": "625ad742c360c8ac580fcc647a1541d29e257f67",
"shasum": ""
},
"require": {
- "php": "^7.3|^8.0"
+ "php": "^7.1 || ^8.0",
+ "php-http/promise": "^1.1",
+ "psr/http-client": "^1.0",
+ "psr/http-message": "^1.0 || ^2.0"
},
"require-dev": {
- "pestphp/pest": "^1.18",
- "phpstan/phpstan": "^0.12.98",
- "symfony/var-dumper": "^5.3"
+ "friends-of-phpspec/phpspec-code-coverage": "^4.1 || ^5.0 || ^6.0",
+ "phpspec/phpspec": "^5.1 || ^6.0 || ^7.0"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.x-dev"
- }
- },
"autoload": {
"psr-4": {
- "Laravel\\SerializableClosure\\": "src/"
+ "Http\\Client\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -1237,69 +4226,123 @@
],
"authors": [
{
- "name": "Taylor Otwell",
- "email": "taylor@laravel.com"
+ "name": "Eric GELOEN",
+ "email": "geloen.eric@gmail.com"
},
{
- "name": "Nuno Maduro",
- "email": "nuno@laravel.com"
+ "name": "Márk Sági-Kazár",
+ "email": "mark.sagikazar@gmail.com",
+ "homepage": "https://sagikazarmark.hu"
}
],
- "description": "Laravel Serializable Closure provides an easy and secure way to serialize closures in PHP.",
+ "description": "HTTPlug, the HTTP client abstraction for PHP",
+ "homepage": "http://httplug.io",
"keywords": [
- "closure",
- "laravel",
- "serializable"
+ "client",
+ "http"
],
"support": {
- "issues": "https://github.com/laravel/serializable-closure/issues",
- "source": "https://github.com/laravel/serializable-closure"
+ "issues": "https://github.com/php-http/httplug/issues",
+ "source": "https://github.com/php-http/httplug/tree/2.4.0"
},
- "time": "2021-09-29T13:25:52+00:00"
+ "time": "2023-04-14T15:10:03+00:00"
},
{
- "name": "laravel/tinker",
- "version": "v2.6.2",
+ "name": "php-http/message",
+ "version": "1.16.0",
"source": {
"type": "git",
- "url": "https://github.com/laravel/tinker.git",
- "reference": "c808a7227f97ecfd9219fbf913bad842ea854ddc"
+ "url": "https://github.com/php-http/message.git",
+ "reference": "47a14338bf4ebd67d317bf1144253d7db4ab55fd"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/tinker/zipball/c808a7227f97ecfd9219fbf913bad842ea854ddc",
- "reference": "c808a7227f97ecfd9219fbf913bad842ea854ddc",
+ "url": "https://api.github.com/repos/php-http/message/zipball/47a14338bf4ebd67d317bf1144253d7db4ab55fd",
+ "reference": "47a14338bf4ebd67d317bf1144253d7db4ab55fd",
"shasum": ""
},
"require": {
- "illuminate/console": "^6.0|^7.0|^8.0",
- "illuminate/contracts": "^6.0|^7.0|^8.0",
- "illuminate/support": "^6.0|^7.0|^8.0",
- "php": "^7.2.5|^8.0",
- "psy/psysh": "^0.10.4",
- "symfony/var-dumper": "^4.3.4|^5.0"
+ "clue/stream-filter": "^1.5",
+ "php": "^7.2 || ^8.0",
+ "psr/http-message": "^1.1 || ^2.0"
+ },
+ "provide": {
+ "php-http/message-factory-implementation": "1.0"
},
"require-dev": {
- "mockery/mockery": "~1.3.3|^1.4.2",
- "phpunit/phpunit": "^8.5.8|^9.3.3"
+ "ergebnis/composer-normalize": "^2.6",
+ "ext-zlib": "*",
+ "guzzlehttp/psr7": "^1.0 || ^2.0",
+ "laminas/laminas-diactoros": "^2.0 || ^3.0",
+ "php-http/message-factory": "^1.0.2",
+ "phpspec/phpspec": "^5.1 || ^6.3 || ^7.1",
+ "slim/slim": "^3.0"
},
"suggest": {
- "illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0)."
+ "ext-zlib": "Used with compressor/decompressor streams",
+ "guzzlehttp/psr7": "Used with Guzzle PSR-7 Factories",
+ "laminas/laminas-diactoros": "Used with Diactoros Factories",
+ "slim/slim": "Used with Slim Framework PSR-7 implementation"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "src/filters.php"
+ ],
+ "psr-4": {
+ "Http\\Message\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Márk Sági-Kazár",
+ "email": "mark.sagikazar@gmail.com"
+ }
+ ],
+ "description": "HTTP Message related tools",
+ "homepage": "http://php-http.org",
+ "keywords": [
+ "http",
+ "message",
+ "psr-7"
+ ],
+ "support": {
+ "issues": "https://github.com/php-http/message/issues",
+ "source": "https://github.com/php-http/message/tree/1.16.0"
+ },
+ "time": "2023-05-17T06:43:38+00:00"
+ },
+ {
+ "name": "php-http/message-factory",
+ "version": "1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-http/message-factory.git",
+ "reference": "4d8778e1c7d405cbb471574821c1ff5b68cc8f57"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-http/message-factory/zipball/4d8778e1c7d405cbb471574821c1ff5b68cc8f57",
+ "reference": "4d8778e1c7d405cbb471574821c1ff5b68cc8f57",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.4",
+ "psr/http-message": "^1.0 || ^2.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.x-dev"
- },
- "laravel": {
- "providers": [
- "Laravel\\Tinker\\TinkerServiceProvider"
- ]
+ "dev-master": "1.x-dev"
}
},
"autoload": {
"psr-4": {
- "Laravel\\Tinker\\": "src/"
+ "Http\\Message\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -1308,266 +4351,194 @@
],
"authors": [
{
- "name": "Taylor Otwell",
- "email": "taylor@laravel.com"
+ "name": "Márk Sági-Kazár",
+ "email": "mark.sagikazar@gmail.com"
}
],
- "description": "Powerful REPL for the Laravel framework.",
+ "description": "Factory interfaces for PSR-7 HTTP Message",
+ "homepage": "http://php-http.org",
"keywords": [
- "REPL",
- "Tinker",
- "laravel",
- "psysh"
+ "factory",
+ "http",
+ "message",
+ "stream",
+ "uri"
],
"support": {
- "issues": "https://github.com/laravel/tinker/issues",
- "source": "https://github.com/laravel/tinker/tree/v2.6.2"
+ "issues": "https://github.com/php-http/message-factory/issues",
+ "source": "https://github.com/php-http/message-factory/tree/1.1.0"
},
- "time": "2021-09-28T15:47:34+00:00"
+ "abandoned": "psr/http-factory",
+ "time": "2023-04-14T14:16:17+00:00"
},
{
- "name": "league/commonmark",
- "version": "2.0.2",
+ "name": "php-http/promise",
+ "version": "1.1.0",
"source": {
"type": "git",
- "url": "https://github.com/thephpleague/commonmark.git",
- "reference": "2df87709f44b0dd733df86aef0830dce9b1f0f13"
+ "url": "https://github.com/php-http/promise.git",
+ "reference": "4c4c1f9b7289a2ec57cde7f1e9762a5789506f88"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/2df87709f44b0dd733df86aef0830dce9b1f0f13",
- "reference": "2df87709f44b0dd733df86aef0830dce9b1f0f13",
+ "url": "https://api.github.com/repos/php-http/promise/zipball/4c4c1f9b7289a2ec57cde7f1e9762a5789506f88",
+ "reference": "4c4c1f9b7289a2ec57cde7f1e9762a5789506f88",
"shasum": ""
},
"require": {
- "ext-mbstring": "*",
- "league/config": "^1.1.1",
- "php": "^7.4 || ^8.0",
- "psr/event-dispatcher": "^1.0",
- "symfony/polyfill-php80": "^1.15"
+ "php": "^7.1 || ^8.0"
},
"require-dev": {
- "cebe/markdown": "^1.0",
- "commonmark/cmark": "0.30.0",
- "commonmark/commonmark.js": "0.30.0",
- "composer/package-versions-deprecated": "^1.8",
- "erusev/parsedown": "^1.0",
- "ext-json": "*",
- "github/gfm": "0.29.0",
- "michelf/php-markdown": "^1.4",
- "phpstan/phpstan": "^0.12.88",
- "phpunit/phpunit": "^9.5.5",
- "scrutinizer/ocular": "^1.8.1",
- "symfony/finder": "^5.3",
- "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0",
- "unleashedtech/php-coding-standard": "^3.1",
- "vimeo/psalm": "^4.7.3"
- },
- "suggest": {
- "symfony/yaml": "v2.3+ required if using the Front Matter extension"
+ "friends-of-phpspec/phpspec-code-coverage": "^4.3.2",
+ "phpspec/phpspec": "^5.1.2 || ^6.2"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "2.1-dev"
+ "dev-master": "1.1-dev"
}
},
"autoload": {
"psr-4": {
- "League\\CommonMark\\": "src"
+ "Http\\Promise\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Colin O'Dell",
- "email": "colinodell@gmail.com",
- "homepage": "https://www.colinodell.com",
- "role": "Lead Developer"
+ "name": "Joel Wurtz",
+ "email": "joel.wurtz@gmail.com"
+ },
+ {
+ "name": "Márk Sági-Kazár",
+ "email": "mark.sagikazar@gmail.com"
}
],
- "description": "Highly-extensible PHP Markdown parser which fully supports the CommonMark spec and GitHub-Flavored Markdown (GFM)",
- "homepage": "https://commonmark.thephpleague.com",
+ "description": "Promise used for asynchronous HTTP requests",
+ "homepage": "http://httplug.io",
"keywords": [
- "commonmark",
- "flavored",
- "gfm",
- "github",
- "github-flavored",
- "markdown",
- "md",
- "parser"
+ "promise"
],
"support": {
- "docs": "https://commonmark.thephpleague.com/",
- "forum": "https://github.com/thephpleague/commonmark/discussions",
- "issues": "https://github.com/thephpleague/commonmark/issues",
- "rss": "https://github.com/thephpleague/commonmark/releases.atom",
- "source": "https://github.com/thephpleague/commonmark"
+ "issues": "https://github.com/php-http/promise/issues",
+ "source": "https://github.com/php-http/promise/tree/1.1.0"
},
- "funding": [
- {
- "url": "https://enjoy.gitstore.app/repositories/thephpleague/commonmark",
- "type": "custom"
- },
- {
- "url": "https://www.colinodell.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://www.paypal.me/colinpodell/10.00",
- "type": "custom"
- },
- {
- "url": "https://github.com/colinodell",
- "type": "github"
- },
- {
- "url": "https://www.patreon.com/colinodell",
- "type": "patreon"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/league/commonmark",
- "type": "tidelift"
- }
- ],
- "time": "2021-08-14T14:06:04+00:00"
+ "time": "2020-07-07T09:29:14+00:00"
},
{
- "name": "league/config",
- "version": "v1.1.1",
+ "name": "phpoption/phpoption",
+ "version": "1.9.1",
"source": {
"type": "git",
- "url": "https://github.com/thephpleague/config.git",
- "reference": "a9d39eeeb6cc49d10a6e6c36f22c4c1f4a767f3e"
+ "url": "https://github.com/schmittjoh/php-option.git",
+ "reference": "dd3a383e599f49777d8b628dadbb90cae435b87e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/config/zipball/a9d39eeeb6cc49d10a6e6c36f22c4c1f4a767f3e",
- "reference": "a9d39eeeb6cc49d10a6e6c36f22c4c1f4a767f3e",
+ "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/dd3a383e599f49777d8b628dadbb90cae435b87e",
+ "reference": "dd3a383e599f49777d8b628dadbb90cae435b87e",
"shasum": ""
},
"require": {
- "dflydev/dot-access-data": "^3.0.1",
- "nette/schema": "^1.2",
- "php": "^7.4 || ^8.0"
+ "php": "^7.2.5 || ^8.0"
},
"require-dev": {
- "phpstan/phpstan": "^0.12.90",
- "phpunit/phpunit": "^9.5.5",
- "scrutinizer/ocular": "^1.8.1",
- "unleashedtech/php-coding-standard": "^3.1",
- "vimeo/psalm": "^4.7.3"
+ "bamarni/composer-bin-plugin": "^1.8.2",
+ "phpunit/phpunit": "^8.5.32 || ^9.6.3 || ^10.0.12"
},
"type": "library",
"extra": {
+ "bamarni-bin": {
+ "bin-links": true,
+ "forward-command": true
+ },
"branch-alias": {
- "dev-main": "1.2-dev"
+ "dev-master": "1.9-dev"
}
},
"autoload": {
"psr-4": {
- "League\\Config\\": "src"
+ "PhpOption\\": "src/PhpOption/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "Apache-2.0"
],
"authors": [
{
- "name": "Colin O'Dell",
- "email": "colinodell@gmail.com",
- "homepage": "https://www.colinodell.com",
- "role": "Lead Developer"
+ "name": "Johannes M. Schmitt",
+ "email": "schmittjoh@gmail.com",
+ "homepage": "https://github.com/schmittjoh"
+ },
+ {
+ "name": "Graham Campbell",
+ "email": "hello@gjcampbell.co.uk",
+ "homepage": "https://github.com/GrahamCampbell"
}
],
- "description": "Define configuration arrays with strict schemas and access values with dot notation",
- "homepage": "https://config.thephpleague.com",
+ "description": "Option Type for PHP",
"keywords": [
- "array",
- "config",
- "configuration",
- "dot",
- "dot-access",
- "nested",
- "schema"
+ "language",
+ "option",
+ "php",
+ "type"
],
"support": {
- "docs": "https://config.thephpleague.com/",
- "issues": "https://github.com/thephpleague/config/issues",
- "rss": "https://github.com/thephpleague/config/releases.atom",
- "source": "https://github.com/thephpleague/config"
+ "issues": "https://github.com/schmittjoh/php-option/issues",
+ "source": "https://github.com/schmittjoh/php-option/tree/1.9.1"
},
"funding": [
{
- "url": "https://www.colinodell.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://www.paypal.me/colinpodell/10.00",
- "type": "custom"
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
},
{
- "url": "https://github.com/colinodell",
- "type": "github"
+ "url": "https://tidelift.com/funding/github/packagist/phpoption/phpoption",
+ "type": "tidelift"
}
],
- "time": "2021-08-14T12:15:32+00:00"
+ "time": "2023-02-25T19:38:58+00:00"
},
{
- "name": "league/flysystem",
- "version": "1.1.5",
+ "name": "phpseclib/phpseclib",
+ "version": "3.0.20",
"source": {
"type": "git",
- "url": "https://github.com/thephpleague/flysystem.git",
- "reference": "18634df356bfd4119fe3d6156bdb990c414c14ea"
+ "url": "https://github.com/phpseclib/phpseclib.git",
+ "reference": "543a1da81111a0bfd6ae7bbc2865c5e89ed3fc67"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/18634df356bfd4119fe3d6156bdb990c414c14ea",
- "reference": "18634df356bfd4119fe3d6156bdb990c414c14ea",
+ "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/543a1da81111a0bfd6ae7bbc2865c5e89ed3fc67",
+ "reference": "543a1da81111a0bfd6ae7bbc2865c5e89ed3fc67",
"shasum": ""
},
"require": {
- "ext-fileinfo": "*",
- "league/mime-type-detection": "^1.3",
- "php": "^7.2.5 || ^8.0"
- },
- "conflict": {
- "league/flysystem-sftp": "<1.0.6"
+ "paragonie/constant_time_encoding": "^1|^2",
+ "paragonie/random_compat": "^1.4|^2.0|^9.99.99",
+ "php": ">=5.6.1"
},
"require-dev": {
- "phpspec/prophecy": "^1.11.1",
- "phpunit/phpunit": "^8.5.8"
+ "phpunit/phpunit": "*"
},
"suggest": {
- "ext-ftp": "Allows you to use FTP server storage",
- "ext-openssl": "Allows you to use FTPS server storage",
- "league/flysystem-aws-s3-v2": "Allows you to use S3 storage with AWS SDK v2",
- "league/flysystem-aws-s3-v3": "Allows you to use S3 storage with AWS SDK v3",
- "league/flysystem-azure": "Allows you to use Windows Azure Blob storage",
- "league/flysystem-cached-adapter": "Flysystem adapter decorator for metadata caching",
- "league/flysystem-eventable-filesystem": "Allows you to use EventableFilesystem",
- "league/flysystem-rackspace": "Allows you to use Rackspace Cloud Files",
- "league/flysystem-sftp": "Allows you to use SFTP server storage via phpseclib",
- "league/flysystem-webdav": "Allows you to use WebDAV storage",
- "league/flysystem-ziparchive": "Allows you to use ZipArchive adapter",
- "spatie/flysystem-dropbox": "Allows you to use Dropbox storage",
- "srmklive/flysystem-dropbox-v2": "Allows you to use Dropbox storage for PHP 5 applications"
+ "ext-dom": "Install the DOM extension to load XML formatted public keys.",
+ "ext-gmp": "Install the GMP (GNU Multiple Precision) extension in order to speed up arbitrary precision integer arithmetic operations.",
+ "ext-libsodium": "SSH2/SFTP can make use of some algorithms provided by the libsodium-php extension.",
+ "ext-mcrypt": "Install the Mcrypt extension in order to speed up a few other cryptographic operations.",
+ "ext-openssl": "Install the OpenSSL extension in order to speed up a wide variety of cryptographic operations."
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.1-dev"
- }
- },
"autoload": {
+ "files": [
+ "phpseclib/bootstrap.php"
+ ],
"psr-4": {
- "League\\Flysystem\\": "src/"
+ "phpseclib3\\": "phpseclib/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -1576,69 +4547,101 @@
],
"authors": [
{
- "name": "Frank de Jonge",
- "email": "info@frenky.net"
+ "name": "Jim Wigginton",
+ "email": "terrafrost@php.net",
+ "role": "Lead Developer"
+ },
+ {
+ "name": "Patrick Monnerat",
+ "email": "pm@datasphere.ch",
+ "role": "Developer"
+ },
+ {
+ "name": "Andreas Fischer",
+ "email": "bantu@phpbb.com",
+ "role": "Developer"
+ },
+ {
+ "name": "Hans-Jürgen Petrich",
+ "email": "petrich@tronic-media.com",
+ "role": "Developer"
+ },
+ {
+ "name": "Graham Campbell",
+ "email": "graham@alt-three.com",
+ "role": "Developer"
}
],
- "description": "Filesystem abstraction: Many filesystems, one API.",
+ "description": "PHP Secure Communications Library - Pure-PHP implementations of RSA, AES, SSH2, SFTP, X.509 etc.",
+ "homepage": "http://phpseclib.sourceforge.net",
"keywords": [
- "Cloud Files",
- "WebDAV",
- "abstraction",
- "aws",
- "cloud",
- "copy.com",
- "dropbox",
- "file systems",
- "files",
- "filesystem",
- "filesystems",
- "ftp",
- "rackspace",
- "remote",
- "s3",
+ "BigInteger",
+ "aes",
+ "asn.1",
+ "asn1",
+ "blowfish",
+ "crypto",
+ "cryptography",
+ "encryption",
+ "rsa",
+ "security",
"sftp",
- "storage"
+ "signature",
+ "signing",
+ "ssh",
+ "twofish",
+ "x.509",
+ "x509"
],
"support": {
- "issues": "https://github.com/thephpleague/flysystem/issues",
- "source": "https://github.com/thephpleague/flysystem/tree/1.1.5"
+ "issues": "https://github.com/phpseclib/phpseclib/issues",
+ "source": "https://github.com/phpseclib/phpseclib/tree/3.0.20"
},
"funding": [
{
- "url": "https://offset.earth/frankdejonge",
- "type": "other"
+ "url": "https://github.com/terrafrost",
+ "type": "github"
+ },
+ {
+ "url": "https://www.patreon.com/phpseclib",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/phpseclib/phpseclib",
+ "type": "tidelift"
}
],
- "time": "2021-08-17T13:49:42+00:00"
+ "time": "2023-06-13T06:30:34+00:00"
},
{
- "name": "league/mime-type-detection",
- "version": "1.8.0",
+ "name": "predis/predis",
+ "version": "v2.2.0",
"source": {
"type": "git",
- "url": "https://github.com/thephpleague/mime-type-detection.git",
- "reference": "b38b25d7b372e9fddb00335400467b223349fd7e"
+ "url": "https://github.com/predis/predis.git",
+ "reference": "33b70b971a32b0d28b4f748b0547593dce316e0d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/b38b25d7b372e9fddb00335400467b223349fd7e",
- "reference": "b38b25d7b372e9fddb00335400467b223349fd7e",
+ "url": "https://api.github.com/repos/predis/predis/zipball/33b70b971a32b0d28b4f748b0547593dce316e0d",
+ "reference": "33b70b971a32b0d28b4f748b0547593dce316e0d",
"shasum": ""
},
"require": {
- "ext-fileinfo": "*",
"php": "^7.2 || ^8.0"
},
"require-dev": {
- "friendsofphp/php-cs-fixer": "^2.18",
- "phpstan/phpstan": "^0.12.68",
- "phpunit/phpunit": "^8.5.8 || ^9.3"
+ "friendsofphp/php-cs-fixer": "^3.3",
+ "phpstan/phpstan": "^1.9",
+ "phpunit/phpunit": "^8.0 || ~9.4.4"
+ },
+ "suggest": {
+ "ext-relay": "Faster connection with in-memory caching (>=0.6.2)"
},
"type": "library",
"autoload": {
"psr-4": {
- "League\\MimeTypeDetection\\": "src"
+ "Predis\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -1647,90 +4650,56 @@
],
"authors": [
{
- "name": "Frank de Jonge",
- "email": "info@frankdejonge.nl"
+ "name": "Till Krüss",
+ "homepage": "https://till.im",
+ "role": "Maintainer"
}
],
- "description": "Mime-type detection for Flysystem",
+ "description": "A flexible and feature-complete Redis client for PHP.",
+ "homepage": "http://github.com/predis/predis",
+ "keywords": [
+ "nosql",
+ "predis",
+ "redis"
+ ],
"support": {
- "issues": "https://github.com/thephpleague/mime-type-detection/issues",
- "source": "https://github.com/thephpleague/mime-type-detection/tree/1.8.0"
+ "issues": "https://github.com/predis/predis/issues",
+ "source": "https://github.com/predis/predis/tree/v2.2.0"
},
"funding": [
{
- "url": "https://github.com/frankdejonge",
+ "url": "https://github.com/sponsors/tillkruss",
"type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/league/flysystem",
- "type": "tidelift"
}
],
- "time": "2021-09-25T08:23:19+00:00"
+ "time": "2023-06-14T10:37:31+00:00"
},
{
- "name": "monolog/monolog",
- "version": "2.3.5",
+ "name": "psr/cache",
+ "version": "3.0.0",
"source": {
"type": "git",
- "url": "https://github.com/Seldaek/monolog.git",
- "reference": "fd4380d6fc37626e2f799f29d91195040137eba9"
+ "url": "https://github.com/php-fig/cache.git",
+ "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Seldaek/monolog/zipball/fd4380d6fc37626e2f799f29d91195040137eba9",
- "reference": "fd4380d6fc37626e2f799f29d91195040137eba9",
+ "url": "https://api.github.com/repos/php-fig/cache/zipball/aa5030cfa5405eccfdcb1083ce040c2cb8d253bf",
+ "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf",
"shasum": ""
},
"require": {
- "php": ">=7.2",
- "psr/log": "^1.0.1 || ^2.0 || ^3.0"
- },
- "provide": {
- "psr/log-implementation": "1.0.0 || 2.0.0 || 3.0.0"
- },
- "require-dev": {
- "aws/aws-sdk-php": "^2.4.9 || ^3.0",
- "doctrine/couchdb": "~1.0@dev",
- "elasticsearch/elasticsearch": "^7",
- "graylog2/gelf-php": "^1.4.2",
- "mongodb/mongodb": "^1.8",
- "php-amqplib/php-amqplib": "~2.4 || ^3",
- "php-console/php-console": "^3.1.3",
- "phpspec/prophecy": "^1.6.1",
- "phpstan/phpstan": "^0.12.91",
- "phpunit/phpunit": "^8.5",
- "predis/predis": "^1.1",
- "rollbar/rollbar": "^1.3",
- "ruflin/elastica": ">=0.90@dev",
- "swiftmailer/swiftmailer": "^5.3|^6.0"
- },
- "suggest": {
- "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB",
- "doctrine/couchdb": "Allow sending log messages to a CouchDB server",
- "elasticsearch/elasticsearch": "Allow sending log messages to an Elasticsearch server via official client",
- "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)",
- "ext-curl": "Required to send log messages using the IFTTTHandler, the LogglyHandler, the SendGridHandler, the SlackWebhookHandler or the TelegramBotHandler",
- "ext-mbstring": "Allow to work properly with unicode symbols",
- "ext-mongodb": "Allow sending log messages to a MongoDB server (via driver)",
- "ext-openssl": "Required to send log messages using SSL",
- "ext-sockets": "Allow sending log messages to a Syslog server (via UDP driver)",
- "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"
+ "php": ">=8.0.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "2.x-dev"
+ "dev-master": "1.0.x-dev"
}
},
"autoload": {
"psr-4": {
- "Monolog\\": "src/Monolog"
+ "Psr\\Cache\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -1739,88 +4708,47 @@
],
"authors": [
{
- "name": "Jordi Boggiano",
- "email": "j.boggiano@seld.be",
- "homepage": "https://seld.be"
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
}
],
- "description": "Sends your logs to files, sockets, inboxes, databases and various web services",
- "homepage": "https://github.com/Seldaek/monolog",
+ "description": "Common interface for caching libraries",
"keywords": [
- "log",
- "logging",
- "psr-3"
+ "cache",
+ "psr",
+ "psr-6"
],
"support": {
- "issues": "https://github.com/Seldaek/monolog/issues",
- "source": "https://github.com/Seldaek/monolog/tree/2.3.5"
+ "source": "https://github.com/php-fig/cache/tree/3.0.0"
},
- "funding": [
- {
- "url": "https://github.com/Seldaek",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/monolog/monolog",
- "type": "tidelift"
- }
- ],
- "time": "2021-10-01T21:08:31+00:00"
+ "time": "2021-02-03T23:26:27+00:00"
},
{
- "name": "nesbot/carbon",
- "version": "2.53.1",
+ "name": "psr/container",
+ "version": "2.0.2",
"source": {
"type": "git",
- "url": "https://github.com/briannesbitt/Carbon.git",
- "reference": "f4655858a784988f880c1b8c7feabbf02dfdf045"
+ "url": "https://github.com/php-fig/container.git",
+ "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/f4655858a784988f880c1b8c7feabbf02dfdf045",
- "reference": "f4655858a784988f880c1b8c7feabbf02dfdf045",
+ "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963",
+ "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963",
"shasum": ""
},
"require": {
- "ext-json": "*",
- "php": "^7.1.8 || ^8.0",
- "symfony/polyfill-mbstring": "^1.0",
- "symfony/polyfill-php80": "^1.16",
- "symfony/translation": "^3.4 || ^4.0 || ^5.0"
- },
- "require-dev": {
- "doctrine/orm": "^2.7",
- "friendsofphp/php-cs-fixer": "^3.0",
- "kylekatarnls/multi-tester": "^2.0",
- "phpmd/phpmd": "^2.9",
- "phpstan/extension-installer": "^1.0",
- "phpstan/phpstan": "^0.12.54",
- "phpunit/phpunit": "^7.5.20 || ^8.5.14",
- "squizlabs/php_codesniffer": "^3.4"
+ "php": ">=7.4.0"
},
- "bin": [
- "bin/carbon"
- ],
"type": "library",
"extra": {
"branch-alias": {
- "dev-3.x": "3.x-dev",
- "dev-master": "2.x-dev"
- },
- "laravel": {
- "providers": [
- "Carbon\\Laravel\\ServiceProvider"
- ]
- },
- "phpstan": {
- "includes": [
- "extension.neon"
- ]
+ "dev-master": "2.0.x-dev"
}
},
"autoload": {
"psr-4": {
- "Carbon\\": "src/Carbon/"
+ "Psr\\Container\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -1829,275 +4757,209 @@
],
"authors": [
{
- "name": "Brian Nesbitt",
- "email": "brian@nesbot.com",
- "homepage": "https://markido.com"
- },
- {
- "name": "kylekatarnls",
- "homepage": "https://github.com/kylekatarnls"
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
}
],
- "description": "An API extension for DateTime that supports 281 different languages.",
- "homepage": "https://carbon.nesbot.com",
+ "description": "Common Container Interface (PHP FIG PSR-11)",
+ "homepage": "https://github.com/php-fig/container",
"keywords": [
- "date",
- "datetime",
- "time"
+ "PSR-11",
+ "container",
+ "container-interface",
+ "container-interop",
+ "psr"
],
"support": {
- "issues": "https://github.com/briannesbitt/Carbon/issues",
- "source": "https://github.com/briannesbitt/Carbon"
+ "issues": "https://github.com/php-fig/container/issues",
+ "source": "https://github.com/php-fig/container/tree/2.0.2"
},
- "funding": [
- {
- "url": "https://opencollective.com/Carbon",
- "type": "open_collective"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/nesbot/carbon",
- "type": "tidelift"
- }
- ],
- "time": "2021-09-06T09:29:23+00:00"
+ "time": "2021-11-05T16:47:00+00:00"
},
{
- "name": "nette/schema",
- "version": "v1.2.1",
+ "name": "psr/event-dispatcher",
+ "version": "1.0.0",
"source": {
"type": "git",
- "url": "https://github.com/nette/schema.git",
- "reference": "f5ed39fc96358f922cedfd1e516f0dadf5d2be0d"
+ "url": "https://github.com/php-fig/event-dispatcher.git",
+ "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nette/schema/zipball/f5ed39fc96358f922cedfd1e516f0dadf5d2be0d",
- "reference": "f5ed39fc96358f922cedfd1e516f0dadf5d2be0d",
+ "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0",
+ "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0",
"shasum": ""
},
"require": {
- "nette/utils": "^3.1.4 || ^4.0",
- "php": ">=7.1 <8.1"
- },
- "require-dev": {
- "nette/tester": "^2.3 || ^2.4",
- "phpstan/phpstan-nette": "^0.12",
- "tracy/tracy": "^2.7"
+ "php": ">=7.2.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.2-dev"
+ "dev-master": "1.0.x-dev"
}
},
"autoload": {
- "classmap": [
- "src/"
- ]
+ "psr-4": {
+ "Psr\\EventDispatcher\\": "src/"
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause",
- "GPL-2.0-only",
- "GPL-3.0-only"
+ "MIT"
],
"authors": [
{
- "name": "David Grudl",
- "homepage": "https://davidgrudl.com"
- },
- {
- "name": "Nette Community",
- "homepage": "https://nette.org/contributors"
+ "name": "PHP-FIG",
+ "homepage": "http://www.php-fig.org/"
}
],
- "description": "📐 Nette Schema: validating data structures against a given Schema.",
- "homepage": "https://nette.org",
+ "description": "Standard interfaces for event handling.",
"keywords": [
- "config",
- "nette"
+ "events",
+ "psr",
+ "psr-14"
],
"support": {
- "issues": "https://github.com/nette/schema/issues",
- "source": "https://github.com/nette/schema/tree/v1.2.1"
+ "issues": "https://github.com/php-fig/event-dispatcher/issues",
+ "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0"
},
- "time": "2021-03-04T17:51:11+00:00"
+ "time": "2019-01-08T18:20:26+00:00"
},
{
- "name": "nette/utils",
- "version": "v3.2.5",
+ "name": "psr/http-client",
+ "version": "1.0.2",
"source": {
"type": "git",
- "url": "https://github.com/nette/utils.git",
- "reference": "9cd80396ca58d7969ab44fc7afcf03624dfa526e"
+ "url": "https://github.com/php-fig/http-client.git",
+ "reference": "0955afe48220520692d2d09f7ab7e0f93ffd6a31"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nette/utils/zipball/9cd80396ca58d7969ab44fc7afcf03624dfa526e",
- "reference": "9cd80396ca58d7969ab44fc7afcf03624dfa526e",
+ "url": "https://api.github.com/repos/php-fig/http-client/zipball/0955afe48220520692d2d09f7ab7e0f93ffd6a31",
+ "reference": "0955afe48220520692d2d09f7ab7e0f93ffd6a31",
"shasum": ""
},
"require": {
- "php": ">=7.2 <8.2"
- },
- "conflict": {
- "nette/di": "<3.0.6"
- },
- "require-dev": {
- "nette/tester": "~2.0",
- "phpstan/phpstan": "^0.12",
- "tracy/tracy": "^2.3"
- },
- "suggest": {
- "ext-gd": "to use Image",
- "ext-iconv": "to use Strings::webalize(), toAscii(), chr() and reverse()",
- "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()",
- "ext-json": "to use Nette\\Utils\\Json",
- "ext-mbstring": "to use Strings::lower() etc...",
- "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()",
- "ext-xml": "to use Strings::length() etc. when mbstring is not available"
+ "php": "^7.0 || ^8.0",
+ "psr/http-message": "^1.0 || ^2.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.2-dev"
+ "dev-master": "1.0.x-dev"
}
},
"autoload": {
- "classmap": [
- "src/"
- ]
+ "psr-4": {
+ "Psr\\Http\\Client\\": "src/"
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause",
- "GPL-2.0-only",
- "GPL-3.0-only"
+ "MIT"
],
"authors": [
{
- "name": "David Grudl",
- "homepage": "https://davidgrudl.com"
- },
- {
- "name": "Nette Community",
- "homepage": "https://nette.org/contributors"
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
}
],
- "description": "🛠 Nette Utils: lightweight utilities for string & array manipulation, image handling, safe JSON encoding/decoding, validation, slug or strong password generating etc.",
- "homepage": "https://nette.org",
+ "description": "Common interface for HTTP clients",
+ "homepage": "https://github.com/php-fig/http-client",
"keywords": [
- "array",
- "core",
- "datetime",
- "images",
- "json",
- "nette",
- "paginator",
- "password",
- "slugify",
- "string",
- "unicode",
- "utf-8",
- "utility",
- "validation"
+ "http",
+ "http-client",
+ "psr",
+ "psr-18"
],
"support": {
- "issues": "https://github.com/nette/utils/issues",
- "source": "https://github.com/nette/utils/tree/v3.2.5"
+ "source": "https://github.com/php-fig/http-client/tree/1.0.2"
},
- "time": "2021-09-20T10:50:11+00:00"
+ "time": "2023-04-10T20:12:12+00:00"
},
{
- "name": "nikic/php-parser",
- "version": "v4.13.0",
+ "name": "psr/http-factory",
+ "version": "1.0.2",
"source": {
"type": "git",
- "url": "https://github.com/nikic/PHP-Parser.git",
- "reference": "50953a2691a922aa1769461637869a0a2faa3f53"
+ "url": "https://github.com/php-fig/http-factory.git",
+ "reference": "e616d01114759c4c489f93b099585439f795fe35"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/50953a2691a922aa1769461637869a0a2faa3f53",
- "reference": "50953a2691a922aa1769461637869a0a2faa3f53",
+ "url": "https://api.github.com/repos/php-fig/http-factory/zipball/e616d01114759c4c489f93b099585439f795fe35",
+ "reference": "e616d01114759c4c489f93b099585439f795fe35",
"shasum": ""
},
"require": {
- "ext-tokenizer": "*",
- "php": ">=7.0"
- },
- "require-dev": {
- "ircmaxell/php-yacc": "^0.0.7",
- "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0"
+ "php": ">=7.0.0",
+ "psr/http-message": "^1.0 || ^2.0"
},
- "bin": [
- "bin/php-parse"
- ],
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.9-dev"
+ "dev-master": "1.0.x-dev"
}
},
"autoload": {
"psr-4": {
- "PhpParser\\": "lib/PhpParser"
+ "Psr\\Http\\Message\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Nikita Popov"
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
}
],
- "description": "A PHP parser written in PHP",
+ "description": "Common interfaces for PSR-7 HTTP message factories",
"keywords": [
- "parser",
- "php"
+ "factory",
+ "http",
+ "message",
+ "psr",
+ "psr-17",
+ "psr-7",
+ "request",
+ "response"
],
"support": {
- "issues": "https://github.com/nikic/PHP-Parser/issues",
- "source": "https://github.com/nikic/PHP-Parser/tree/v4.13.0"
+ "source": "https://github.com/php-fig/http-factory/tree/1.0.2"
},
- "time": "2021-09-20T12:20:58+00:00"
+ "time": "2023-04-10T20:10:41+00:00"
},
{
- "name": "opis/closure",
- "version": "3.6.2",
+ "name": "psr/http-message",
+ "version": "1.1",
"source": {
"type": "git",
- "url": "https://github.com/opis/closure.git",
- "reference": "06e2ebd25f2869e54a306dda991f7db58066f7f6"
+ "url": "https://github.com/php-fig/http-message.git",
+ "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/opis/closure/zipball/06e2ebd25f2869e54a306dda991f7db58066f7f6",
- "reference": "06e2ebd25f2869e54a306dda991f7db58066f7f6",
+ "url": "https://api.github.com/repos/php-fig/http-message/zipball/cb6ce4845ce34a8ad9e68117c10ee90a29919eba",
+ "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba",
"shasum": ""
},
"require": {
- "php": "^5.4 || ^7.0 || ^8.0"
- },
- "require-dev": {
- "jeremeamia/superclosure": "^2.0",
- "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0"
+ "php": "^7.2 || ^8.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.6.x-dev"
+ "dev-master": "1.1.x-dev"
}
},
"autoload": {
"psr-4": {
- "Opis\\Closure\\": "src/"
- },
- "files": [
- "functions.php"
- ]
+ "Psr\\Http\\Message\\": "src/"
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -2105,127 +4967,101 @@
],
"authors": [
{
- "name": "Marius Sarca",
- "email": "marius.sarca@gmail.com"
- },
- {
- "name": "Sorin Sarca",
- "email": "sarca_sorin@hotmail.com"
+ "name": "PHP-FIG",
+ "homepage": "http://www.php-fig.org/"
}
],
- "description": "A library that can be used to serialize closures (anonymous functions) and arbitrary objects.",
- "homepage": "https://opis.io/closure",
+ "description": "Common interface for HTTP messages",
+ "homepage": "https://github.com/php-fig/http-message",
"keywords": [
- "anonymous functions",
- "closure",
- "function",
- "serializable",
- "serialization",
- "serialize"
+ "http",
+ "http-message",
+ "psr",
+ "psr-7",
+ "request",
+ "response"
],
"support": {
- "issues": "https://github.com/opis/closure/issues",
- "source": "https://github.com/opis/closure/tree/3.6.2"
+ "source": "https://github.com/php-fig/http-message/tree/1.1"
},
- "time": "2021-04-09T13:42:10+00:00"
+ "time": "2023-04-04T09:50:52+00:00"
},
{
- "name": "phpoption/phpoption",
- "version": "1.8.0",
+ "name": "psr/log",
+ "version": "3.0.0",
"source": {
"type": "git",
- "url": "https://github.com/schmittjoh/php-option.git",
- "reference": "5455cb38aed4523f99977c4a12ef19da4bfe2a28"
+ "url": "https://github.com/php-fig/log.git",
+ "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/5455cb38aed4523f99977c4a12ef19da4bfe2a28",
- "reference": "5455cb38aed4523f99977c4a12ef19da4bfe2a28",
+ "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001",
+ "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001",
"shasum": ""
},
"require": {
- "php": "^7.0 || ^8.0"
- },
- "require-dev": {
- "bamarni/composer-bin-plugin": "^1.4.1",
- "phpunit/phpunit": "^6.5.14 || ^7.0.20 || ^8.5.19 || ^9.5.8"
+ "php": ">=8.0.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.8-dev"
+ "dev-master": "3.x-dev"
}
},
"autoload": {
"psr-4": {
- "PhpOption\\": "src/PhpOption/"
+ "Psr\\Log\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "Apache-2.0"
+ "MIT"
],
"authors": [
{
- "name": "Johannes M. Schmitt",
- "email": "schmittjoh@gmail.com"
- },
- {
- "name": "Graham Campbell",
- "email": "hello@gjcampbell.co.uk"
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
}
],
- "description": "Option Type for PHP",
+ "description": "Common interface for logging libraries",
+ "homepage": "https://github.com/php-fig/log",
"keywords": [
- "language",
- "option",
- "php",
- "type"
+ "log",
+ "psr",
+ "psr-3"
],
"support": {
- "issues": "https://github.com/schmittjoh/php-option/issues",
- "source": "https://github.com/schmittjoh/php-option/tree/1.8.0"
+ "source": "https://github.com/php-fig/log/tree/3.0.0"
},
- "funding": [
- {
- "url": "https://github.com/GrahamCampbell",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/phpoption/phpoption",
- "type": "tidelift"
- }
- ],
- "time": "2021-08-28T21:27:29+00:00"
+ "time": "2021-07-14T16:46:02+00:00"
},
{
- "name": "predis/predis",
- "version": "v1.1.10",
+ "name": "psr/simple-cache",
+ "version": "3.0.0",
"source": {
"type": "git",
- "url": "https://github.com/predis/predis.git",
- "reference": "a2fb02d738bedadcffdbb07efa3a5e7bd57f8d6e"
+ "url": "https://github.com/php-fig/simple-cache.git",
+ "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/predis/predis/zipball/a2fb02d738bedadcffdbb07efa3a5e7bd57f8d6e",
- "reference": "a2fb02d738bedadcffdbb07efa3a5e7bd57f8d6e",
+ "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/764e0b3939f5ca87cb904f570ef9be2d78a07865",
+ "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865",
"shasum": ""
},
"require": {
- "php": ">=5.3.9"
- },
- "require-dev": {
- "phpunit/phpunit": "~4.8"
- },
- "suggest": {
- "ext-curl": "Allows access to Webdis when paired with phpiredis",
- "ext-phpiredis": "Allows faster serialization and deserialization of the Redis protocol"
+ "php": ">=8.0.0"
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0.x-dev"
+ }
+ },
"autoload": {
"psr-4": {
- "Predis\\": "src/"
+ "Psr\\SimpleCache\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -2234,57 +5070,72 @@
],
"authors": [
{
- "name": "Daniele Alessandri",
- "email": "suppakilla@gmail.com",
- "homepage": "http://clorophilla.net",
- "role": "Creator & Maintainer"
- },
- {
- "name": "Till Krüss",
- "homepage": "https://till.im",
- "role": "Maintainer"
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
}
],
- "description": "Flexible and feature-complete Redis client for PHP and HHVM",
- "homepage": "http://github.com/predis/predis",
+ "description": "Common interfaces for simple caching",
"keywords": [
- "nosql",
- "predis",
- "redis"
+ "cache",
+ "caching",
+ "psr",
+ "psr-16",
+ "simple-cache"
],
"support": {
- "issues": "https://github.com/predis/predis/issues",
- "source": "https://github.com/predis/predis/tree/v1.1.10"
+ "source": "https://github.com/php-fig/simple-cache/tree/3.0.0"
},
- "funding": [
- {
- "url": "https://github.com/sponsors/tillkruss",
- "type": "github"
- }
- ],
- "time": "2022-01-05T17:46:08+00:00"
+ "time": "2021-10-29T13:26:27+00:00"
},
{
- "name": "psr/container",
- "version": "1.1.1",
+ "name": "psy/psysh",
+ "version": "v0.11.18",
"source": {
"type": "git",
- "url": "https://github.com/php-fig/container.git",
- "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf"
+ "url": "https://github.com/bobthecow/psysh.git",
+ "reference": "4f00ee9e236fa6a48f4560d1300b9c961a70a7ec"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf",
- "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf",
+ "url": "https://api.github.com/repos/bobthecow/psysh/zipball/4f00ee9e236fa6a48f4560d1300b9c961a70a7ec",
+ "reference": "4f00ee9e236fa6a48f4560d1300b9c961a70a7ec",
"shasum": ""
},
"require": {
- "php": ">=7.2.0"
+ "ext-json": "*",
+ "ext-tokenizer": "*",
+ "nikic/php-parser": "^4.0 || ^3.1",
+ "php": "^8.0 || ^7.0.8",
+ "symfony/console": "^6.0 || ^5.0 || ^4.0 || ^3.4",
+ "symfony/var-dumper": "^6.0 || ^5.0 || ^4.0 || ^3.4"
+ },
+ "conflict": {
+ "symfony/console": "4.4.37 || 5.3.14 || 5.3.15 || 5.4.3 || 5.4.4 || 6.0.3 || 6.0.4"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.2"
+ },
+ "suggest": {
+ "ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)",
+ "ext-pdo-sqlite": "The doc command requires SQLite to work.",
+ "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well.",
+ "ext-readline": "Enables support for arrow-key history navigation, and showing and manipulating command history."
},
+ "bin": [
+ "bin/psysh"
+ ],
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "0.11.x-dev"
+ }
+ },
"autoload": {
+ "files": [
+ "src/functions.php"
+ ],
"psr-4": {
- "Psr\\Container\\": "src/"
+ "Psy\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -2293,103 +5144,112 @@
],
"authors": [
{
- "name": "PHP-FIG",
- "homepage": "https://www.php-fig.org/"
+ "name": "Justin Hileman",
+ "email": "justin@justinhileman.info",
+ "homepage": "http://justinhileman.com"
}
- ],
- "description": "Common Container Interface (PHP FIG PSR-11)",
- "homepage": "https://github.com/php-fig/container",
+ ],
+ "description": "An interactive shell for modern PHP.",
+ "homepage": "http://psysh.org",
"keywords": [
- "PSR-11",
- "container",
- "container-interface",
- "container-interop",
- "psr"
+ "REPL",
+ "console",
+ "interactive",
+ "shell"
],
"support": {
- "issues": "https://github.com/php-fig/container/issues",
- "source": "https://github.com/php-fig/container/tree/1.1.1"
+ "issues": "https://github.com/bobthecow/psysh/issues",
+ "source": "https://github.com/bobthecow/psysh/tree/v0.11.18"
},
- "time": "2021-03-05T17:36:06+00:00"
+ "time": "2023-05-23T02:31:11+00:00"
},
{
- "name": "psr/event-dispatcher",
- "version": "1.0.0",
+ "name": "pusher/pusher-php-server",
+ "version": "7.2.3",
"source": {
"type": "git",
- "url": "https://github.com/php-fig/event-dispatcher.git",
- "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0"
+ "url": "https://github.com/pusher/pusher-http-php.git",
+ "reference": "416e68dd5f640175ad5982131c42a7a666d1d8e9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0",
- "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0",
+ "url": "https://api.github.com/repos/pusher/pusher-http-php/zipball/416e68dd5f640175ad5982131c42a7a666d1d8e9",
+ "reference": "416e68dd5f640175ad5982131c42a7a666d1d8e9",
"shasum": ""
},
"require": {
- "php": ">=7.2.0"
+ "ext-curl": "*",
+ "ext-json": "*",
+ "guzzlehttp/guzzle": "^7.2",
+ "paragonie/sodium_compat": "^1.6",
+ "php": "^7.3|^8.0",
+ "psr/log": "^1.0|^2.0|^3.0"
+ },
+ "require-dev": {
+ "overtrue/phplint": "^2.3",
+ "phpunit/phpunit": "^9.3"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.0.x-dev"
+ "dev-master": "5.0-dev"
}
},
"autoload": {
"psr-4": {
- "Psr\\EventDispatcher\\": "src/"
+ "Pusher\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
- "authors": [
- {
- "name": "PHP-FIG",
- "homepage": "http://www.php-fig.org/"
- }
- ],
- "description": "Standard interfaces for event handling.",
+ "description": "Library for interacting with the Pusher REST API",
"keywords": [
"events",
- "psr",
- "psr-14"
+ "messaging",
+ "php-pusher-server",
+ "publish",
+ "push",
+ "pusher",
+ "real time",
+ "real-time",
+ "realtime",
+ "rest",
+ "trigger"
],
"support": {
- "issues": "https://github.com/php-fig/event-dispatcher/issues",
- "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0"
+ "issues": "https://github.com/pusher/pusher-http-php/issues",
+ "source": "https://github.com/pusher/pusher-http-php/tree/7.2.3"
},
- "time": "2019-01-08T18:20:26+00:00"
+ "time": "2023-05-17T16:00:06+00:00"
},
{
- "name": "psr/http-client",
- "version": "1.0.1",
+ "name": "ralouphie/getallheaders",
+ "version": "3.0.3",
"source": {
"type": "git",
- "url": "https://github.com/php-fig/http-client.git",
- "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621"
+ "url": "https://github.com/ralouphie/getallheaders.git",
+ "reference": "120b605dfeb996808c31b6477290a714d356e822"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/http-client/zipball/2dfb5f6c5eff0e91e20e913f8c5452ed95b86621",
- "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621",
+ "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822",
+ "reference": "120b605dfeb996808c31b6477290a714d356e822",
"shasum": ""
},
"require": {
- "php": "^7.0 || ^8.0",
- "psr/http-message": "^1.0"
+ "php": ">=5.6"
},
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
+ "require-dev": {
+ "php-coveralls/php-coveralls": "^2.1",
+ "phpunit/phpunit": "^5 || ^6.5"
},
+ "type": "library",
"autoload": {
- "psr-4": {
- "Psr\\Http\\Client\\": "src/"
- }
+ "files": [
+ "src/getallheaders.php"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -2397,50 +5257,68 @@
],
"authors": [
{
- "name": "PHP-FIG",
- "homepage": "http://www.php-fig.org/"
+ "name": "Ralph Khattar",
+ "email": "ralph.khattar@gmail.com"
}
],
- "description": "Common interface for HTTP clients",
- "homepage": "https://github.com/php-fig/http-client",
- "keywords": [
- "http",
- "http-client",
- "psr",
- "psr-18"
- ],
+ "description": "A polyfill for getallheaders.",
"support": {
- "source": "https://github.com/php-fig/http-client/tree/master"
+ "issues": "https://github.com/ralouphie/getallheaders/issues",
+ "source": "https://github.com/ralouphie/getallheaders/tree/develop"
},
- "time": "2020-06-29T06:28:15+00:00"
+ "time": "2019-03-08T08:55:37+00:00"
},
{
- "name": "psr/http-factory",
- "version": "1.0.1",
+ "name": "ramsey/collection",
+ "version": "2.0.0",
"source": {
"type": "git",
- "url": "https://github.com/php-fig/http-factory.git",
- "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be"
+ "url": "https://github.com/ramsey/collection.git",
+ "reference": "a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/http-factory/zipball/12ac7fcd07e5b077433f5f2bee95b3a771bf61be",
- "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be",
+ "url": "https://api.github.com/repos/ramsey/collection/zipball/a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5",
+ "reference": "a4b48764bfbb8f3a6a4d1aeb1a35bb5e9ecac4a5",
"shasum": ""
},
"require": {
- "php": ">=7.0.0",
- "psr/http-message": "^1.0"
+ "php": "^8.1"
+ },
+ "require-dev": {
+ "captainhook/plugin-composer": "^5.3",
+ "ergebnis/composer-normalize": "^2.28.3",
+ "fakerphp/faker": "^1.21",
+ "hamcrest/hamcrest-php": "^2.0",
+ "jangregor/phpstan-prophecy": "^1.0",
+ "mockery/mockery": "^1.5",
+ "php-parallel-lint/php-console-highlighter": "^1.0",
+ "php-parallel-lint/php-parallel-lint": "^1.3",
+ "phpcsstandards/phpcsutils": "^1.0.0-rc1",
+ "phpspec/prophecy-phpunit": "^2.0",
+ "phpstan/extension-installer": "^1.2",
+ "phpstan/phpstan": "^1.9",
+ "phpstan/phpstan-mockery": "^1.1",
+ "phpstan/phpstan-phpunit": "^1.3",
+ "phpunit/phpunit": "^9.5",
+ "psalm/plugin-mockery": "^1.1",
+ "psalm/plugin-phpunit": "^0.18.4",
+ "ramsey/coding-standard": "^2.0.3",
+ "ramsey/conventional-commits": "^1.3",
+ "vimeo/psalm": "^5.4"
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
+ "captainhook": {
+ "force-install": true
+ },
+ "ramsey/conventional-commits": {
+ "configFile": "conventional-commits.json"
}
},
"autoload": {
"psr-4": {
- "Psr\\Http\\Message\\": "src/"
+ "Ramsey\\Collection\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -2449,105 +5327,155 @@
],
"authors": [
{
- "name": "PHP-FIG",
- "homepage": "http://www.php-fig.org/"
+ "name": "Ben Ramsey",
+ "email": "ben@benramsey.com",
+ "homepage": "https://benramsey.com"
}
],
- "description": "Common interfaces for PSR-7 HTTP message factories",
+ "description": "A PHP library for representing and manipulating collections.",
"keywords": [
- "factory",
- "http",
- "message",
- "psr",
- "psr-17",
- "psr-7",
- "request",
- "response"
+ "array",
+ "collection",
+ "hash",
+ "map",
+ "queue",
+ "set"
],
"support": {
- "source": "https://github.com/php-fig/http-factory/tree/master"
+ "issues": "https://github.com/ramsey/collection/issues",
+ "source": "https://github.com/ramsey/collection/tree/2.0.0"
},
- "time": "2019-04-30T12:38:16+00:00"
+ "funding": [
+ {
+ "url": "https://github.com/ramsey",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/ramsey/collection",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-12-31T21:50:55+00:00"
},
{
- "name": "psr/http-message",
- "version": "1.0.1",
+ "name": "ramsey/uuid",
+ "version": "4.7.4",
"source": {
"type": "git",
- "url": "https://github.com/php-fig/http-message.git",
- "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363"
+ "url": "https://github.com/ramsey/uuid.git",
+ "reference": "60a4c63ab724854332900504274f6150ff26d286"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363",
- "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363",
+ "url": "https://api.github.com/repos/ramsey/uuid/zipball/60a4c63ab724854332900504274f6150ff26d286",
+ "reference": "60a4c63ab724854332900504274f6150ff26d286",
"shasum": ""
},
"require": {
- "php": ">=5.3.0"
+ "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11",
+ "ext-json": "*",
+ "php": "^8.0",
+ "ramsey/collection": "^1.2 || ^2.0"
+ },
+ "replace": {
+ "rhumsaa/uuid": "self.version"
+ },
+ "require-dev": {
+ "captainhook/captainhook": "^5.10",
+ "captainhook/plugin-composer": "^5.3",
+ "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0",
+ "doctrine/annotations": "^1.8",
+ "ergebnis/composer-normalize": "^2.15",
+ "mockery/mockery": "^1.3",
+ "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.1",
+ "phpstan/phpstan": "^1.8",
+ "phpstan/phpstan-mockery": "^1.1",
+ "phpstan/phpstan-phpunit": "^1.1",
+ "phpunit/phpunit": "^8.5 || ^9",
+ "ramsey/composer-repl": "^1.4",
+ "slevomat/coding-standard": "^8.4",
+ "squizlabs/php_codesniffer": "^3.5",
+ "vimeo/psalm": "^4.9"
+ },
+ "suggest": {
+ "ext-bcmath": "Enables faster math with arbitrary-precision integers using BCMath.",
+ "ext-gmp": "Enables faster math with arbitrary-precision integers using GMP.",
+ "ext-uuid": "Enables the use of PeclUuidTimeGenerator and PeclUuidRandomGenerator.",
+ "paragonie/random-lib": "Provides RandomLib for use with the RandomLibAdapter",
+ "ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type."
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
+ "captainhook": {
+ "force-install": true
}
},
"autoload": {
+ "files": [
+ "src/functions.php"
+ ],
"psr-4": {
- "Psr\\Http\\Message\\": "src/"
+ "Ramsey\\Uuid\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
- "authors": [
- {
- "name": "PHP-FIG",
- "homepage": "http://www.php-fig.org/"
- }
- ],
- "description": "Common interface for HTTP messages",
- "homepage": "https://github.com/php-fig/http-message",
+ "description": "A PHP library for generating and working with universally unique identifiers (UUIDs).",
"keywords": [
- "http",
- "http-message",
- "psr",
- "psr-7",
- "request",
- "response"
+ "guid",
+ "identifier",
+ "uuid"
],
"support": {
- "source": "https://github.com/php-fig/http-message/tree/master"
+ "issues": "https://github.com/ramsey/uuid/issues",
+ "source": "https://github.com/ramsey/uuid/tree/4.7.4"
},
- "time": "2016-08-06T14:39:51+00:00"
+ "funding": [
+ {
+ "url": "https://github.com/ramsey",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/ramsey/uuid",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-04-15T23:01:58+00:00"
},
{
- "name": "psr/log",
- "version": "1.1.4",
+ "name": "react/promise",
+ "version": "v2.10.0",
"source": {
"type": "git",
- "url": "https://github.com/php-fig/log.git",
- "reference": "d49695b909c3b7628b6289db5479a1c204601f11"
+ "url": "https://github.com/reactphp/promise.git",
+ "reference": "f913fb8cceba1e6644b7b90c4bfb678ed8a3ef38"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11",
- "reference": "d49695b909c3b7628b6289db5479a1c204601f11",
+ "url": "https://api.github.com/repos/reactphp/promise/zipball/f913fb8cceba1e6644b7b90c4bfb678ed8a3ef38",
+ "reference": "f913fb8cceba1e6644b7b90c4bfb678ed8a3ef38",
"shasum": ""
},
"require": {
- "php": ">=5.3.0"
+ "php": ">=5.4.0"
},
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.1.x-dev"
- }
+ "require-dev": {
+ "phpunit/phpunit": "^9.5 || ^5.7 || ^4.8.36"
},
+ "type": "library",
"autoload": {
+ "files": [
+ "src/functions_include.php"
+ ],
"psr-4": {
- "Psr\\Log\\": "Psr/Log/"
+ "React\\Promise\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -2556,113 +5484,158 @@
],
"authors": [
{
- "name": "PHP-FIG",
- "homepage": "https://www.php-fig.org/"
+ "name": "Jan Sorgalla",
+ "email": "jsorgalla@gmail.com",
+ "homepage": "https://sorgalla.com/"
+ },
+ {
+ "name": "Christian Lück",
+ "email": "christian@clue.engineering",
+ "homepage": "https://clue.engineering/"
+ },
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "reactphp@ceesjankiewiet.nl",
+ "homepage": "https://wyrihaximus.net/"
+ },
+ {
+ "name": "Chris Boden",
+ "email": "cboden@gmail.com",
+ "homepage": "https://cboden.dev/"
}
],
- "description": "Common interface for logging libraries",
- "homepage": "https://github.com/php-fig/log",
+ "description": "A lightweight implementation of CommonJS Promises/A for PHP",
"keywords": [
- "log",
- "psr",
- "psr-3"
+ "promise",
+ "promises"
],
"support": {
- "source": "https://github.com/php-fig/log/tree/1.1.4"
+ "issues": "https://github.com/reactphp/promise/issues",
+ "source": "https://github.com/reactphp/promise/tree/v2.10.0"
},
- "time": "2021-05-03T11:20:27+00:00"
+ "funding": [
+ {
+ "url": "https://opencollective.com/reactphp",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2023-05-02T15:15:43+00:00"
},
{
- "name": "psr/simple-cache",
- "version": "1.0.1",
+ "name": "sentry/sdk",
+ "version": "3.5.0",
"source": {
"type": "git",
- "url": "https://github.com/php-fig/simple-cache.git",
- "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
- "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
+ "url": "https://github.com/getsentry/sentry-php-sdk.git",
+ "reference": "cd91b752f07c4bab9fb3b173f81af68a78a78d6d"
},
- "autoload": {
- "psr-4": {
- "Psr\\SimpleCache\\": "src/"
- }
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/getsentry/sentry-php-sdk/zipball/cd91b752f07c4bab9fb3b173f81af68a78a78d6d",
+ "reference": "cd91b752f07c4bab9fb3b173f81af68a78a78d6d",
+ "shasum": ""
+ },
+ "require": {
+ "http-interop/http-factory-guzzle": "^1.0",
+ "sentry/sentry": "^3.19",
+ "symfony/http-client": "^4.3|^5.0|^6.0"
},
+ "type": "metapackage",
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
- "name": "PHP-FIG",
- "homepage": "http://www.php-fig.org/"
+ "name": "Sentry",
+ "email": "accounts@sentry.io"
}
],
- "description": "Common interfaces for simple caching",
+ "description": "This is a metapackage shipping sentry/sentry with a recommended HTTP client.",
+ "homepage": "http://sentry.io",
"keywords": [
- "cache",
- "caching",
- "psr",
- "psr-16",
- "simple-cache"
+ "crash-reporting",
+ "crash-reports",
+ "error-handler",
+ "error-monitoring",
+ "log",
+ "logging",
+ "sentry"
],
"support": {
- "source": "https://github.com/php-fig/simple-cache/tree/master"
+ "issues": "https://github.com/getsentry/sentry-php-sdk/issues",
+ "source": "https://github.com/getsentry/sentry-php-sdk/tree/3.5.0"
},
- "time": "2017-10-23T01:57:42+00:00"
+ "funding": [
+ {
+ "url": "https://sentry.io/",
+ "type": "custom"
+ },
+ {
+ "url": "https://sentry.io/pricing/",
+ "type": "custom"
+ }
+ ],
+ "time": "2023-06-12T17:50:36+00:00"
},
{
- "name": "psy/psysh",
- "version": "v0.10.8",
+ "name": "sentry/sentry",
+ "version": "3.20.1",
"source": {
"type": "git",
- "url": "https://github.com/bobthecow/psysh.git",
- "reference": "e4573f47750dd6c92dca5aee543fa77513cbd8d3"
+ "url": "https://github.com/getsentry/sentry-php.git",
+ "reference": "644ad9768c18139a80ac510090fad000d9ffd8a4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/bobthecow/psysh/zipball/e4573f47750dd6c92dca5aee543fa77513cbd8d3",
- "reference": "e4573f47750dd6c92dca5aee543fa77513cbd8d3",
+ "url": "https://api.github.com/repos/getsentry/sentry-php/zipball/644ad9768c18139a80ac510090fad000d9ffd8a4",
+ "reference": "644ad9768c18139a80ac510090fad000d9ffd8a4",
"shasum": ""
},
"require": {
"ext-json": "*",
- "ext-tokenizer": "*",
- "nikic/php-parser": "~4.0|~3.0|~2.0|~1.3",
- "php": "^8.0 || ^7.0 || ^5.5.9",
- "symfony/console": "~5.0|~4.0|~3.0|^2.4.2|~2.3.10",
- "symfony/var-dumper": "~5.0|~4.0|~3.0|~2.7"
+ "ext-mbstring": "*",
+ "guzzlehttp/promises": "^1.5.3|^2.0",
+ "jean85/pretty-package-versions": "^1.5|^2.0.4",
+ "php": "^7.2|^8.0",
+ "php-http/async-client-implementation": "^1.0",
+ "php-http/client-common": "^1.5|^2.0",
+ "php-http/discovery": "^1.15",
+ "php-http/httplug": "^1.1|^2.0",
+ "php-http/message": "^1.5",
+ "php-http/message-factory": "^1.1",
+ "psr/http-factory": "^1.0",
+ "psr/http-factory-implementation": "^1.0",
+ "psr/log": "^1.0|^2.0|^3.0",
+ "symfony/options-resolver": "^3.4.43|^4.4.30|^5.0.11|^6.0",
+ "symfony/polyfill-php80": "^1.17"
+ },
+ "conflict": {
+ "php-http/client-common": "1.8.0",
+ "raven/raven": "*"
},
"require-dev": {
- "bamarni/composer-bin-plugin": "^1.2",
- "hoa/console": "3.17.*"
+ "friendsofphp/php-cs-fixer": "^2.19|3.4.*",
+ "guzzlehttp/psr7": "^1.8.4|^2.1.1",
+ "http-interop/http-factory-guzzle": "^1.0",
+ "monolog/monolog": "^1.6|^2.0|^3.0",
+ "nikic/php-parser": "^4.10.3",
+ "php-http/mock-client": "^1.3",
+ "phpbench/phpbench": "^1.0",
+ "phpstan/extension-installer": "^1.0",
+ "phpstan/phpstan": "^1.3",
+ "phpstan/phpstan-phpunit": "^1.0",
+ "phpunit/phpunit": "^8.5.14|^9.4",
+ "symfony/phpunit-bridge": "^5.2|^6.0",
+ "vimeo/psalm": "^4.17"
},
"suggest": {
- "ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)",
- "ext-pdo-sqlite": "The doc command requires SQLite to work.",
- "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well.",
- "ext-readline": "Enables support for arrow-key history navigation, and showing and manipulating command history.",
- "hoa/console": "A pure PHP readline implementation. You'll want this if your PHP install doesn't already support readline or libedit."
+ "monolog/monolog": "Allow sending log messages to Sentry by using the included Monolog handler."
},
- "bin": [
- "bin/psysh"
- ],
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "0.10.x-dev"
+ "dev-master": "3.13.x-dev"
}
},
"autoload": {
@@ -2670,7 +5643,7 @@
"src/functions.php"
],
"psr-4": {
- "Psy\\": "src/"
+ "Sentry\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -2679,51 +5652,88 @@
],
"authors": [
{
- "name": "Justin Hileman",
- "email": "justin@justinhileman.info",
- "homepage": "http://justinhileman.com"
+ "name": "Sentry",
+ "email": "accounts@sentry.io"
}
],
- "description": "An interactive shell for modern PHP.",
- "homepage": "http://psysh.org",
+ "description": "A PHP SDK for Sentry (http://sentry.io)",
+ "homepage": "http://sentry.io",
"keywords": [
- "REPL",
- "console",
- "interactive",
- "shell"
+ "crash-reporting",
+ "crash-reports",
+ "error-handler",
+ "error-monitoring",
+ "log",
+ "logging",
+ "sentry"
],
"support": {
- "issues": "https://github.com/bobthecow/psysh/issues",
- "source": "https://github.com/bobthecow/psysh/tree/v0.10.8"
+ "issues": "https://github.com/getsentry/sentry-php/issues",
+ "source": "https://github.com/getsentry/sentry-php/tree/3.20.1"
},
- "time": "2021-04-10T16:23:39+00:00"
+ "funding": [
+ {
+ "url": "https://sentry.io/",
+ "type": "custom"
+ },
+ {
+ "url": "https://sentry.io/pricing/",
+ "type": "custom"
+ }
+ ],
+ "time": "2023-06-26T11:01:40+00:00"
},
{
- "name": "ralouphie/getallheaders",
- "version": "3.0.3",
+ "name": "sentry/sentry-laravel",
+ "version": "3.6.0",
"source": {
"type": "git",
- "url": "https://github.com/ralouphie/getallheaders.git",
- "reference": "120b605dfeb996808c31b6477290a714d356e822"
+ "url": "https://github.com/getsentry/sentry-laravel.git",
+ "reference": "6aacef4d12c22046f68ab617ee1496b9655b8eb9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822",
- "reference": "120b605dfeb996808c31b6477290a714d356e822",
+ "url": "https://api.github.com/repos/getsentry/sentry-laravel/zipball/6aacef4d12c22046f68ab617ee1496b9655b8eb9",
+ "reference": "6aacef4d12c22046f68ab617ee1496b9655b8eb9",
"shasum": ""
},
"require": {
- "php": ">=5.6"
+ "illuminate/support": "^6.0 | ^7.0 | ^8.0 | ^9.0 | ^10.0",
+ "nyholm/psr7": "^1.0",
+ "php": "^7.2 | ^8.0",
+ "sentry/sdk": "^3.4",
+ "sentry/sentry": "^3.20",
+ "symfony/psr-http-message-bridge": "^1.0 | ^2.0"
},
"require-dev": {
- "php-coveralls/php-coveralls": "^2.1",
- "phpunit/phpunit": "^5 || ^6.5"
+ "friendsofphp/php-cs-fixer": "^3.11",
+ "laravel/framework": "^6.0 | ^7.0 | ^8.0 | ^9.0 | ^10.0",
+ "mockery/mockery": "^1.3",
+ "orchestra/testbench": "^4.7 | ^5.1 | ^6.0 | ^7.0 | ^8.0",
+ "phpunit/phpunit": "^8.4 | ^9.3"
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.x-dev",
+ "dev-2.x": "2.x-dev",
+ "dev-1.x": "1.x-dev",
+ "dev-0.x": "0.x-dev"
+ },
+ "laravel": {
+ "providers": [
+ "Sentry\\Laravel\\ServiceProvider",
+ "Sentry\\Laravel\\Tracing\\ServiceProvider"
+ ],
+ "aliases": {
+ "Sentry": "Sentry\\Laravel\\Facade"
+ }
+ }
+ },
"autoload": {
- "files": [
- "src/getallheaders.php"
- ]
+ "psr-0": {
+ "Sentry\\Laravel\\": "src/"
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -2731,58 +5741,62 @@
],
"authors": [
{
- "name": "Ralph Khattar",
- "email": "ralph.khattar@gmail.com"
+ "name": "Sentry",
+ "email": "accounts@sentry.io"
}
],
- "description": "A polyfill for getallheaders.",
+ "description": "Laravel SDK for Sentry (https://sentry.io)",
+ "homepage": "https://sentry.io",
+ "keywords": [
+ "crash-reporting",
+ "crash-reports",
+ "error-handler",
+ "error-monitoring",
+ "laravel",
+ "log",
+ "logging",
+ "sentry"
+ ],
"support": {
- "issues": "https://github.com/ralouphie/getallheaders/issues",
- "source": "https://github.com/ralouphie/getallheaders/tree/develop"
+ "issues": "https://github.com/getsentry/sentry-laravel/issues",
+ "source": "https://github.com/getsentry/sentry-laravel/tree/3.6.0"
},
- "time": "2019-03-08T08:55:37+00:00"
+ "funding": [
+ {
+ "url": "https://sentry.io/",
+ "type": "custom"
+ },
+ {
+ "url": "https://sentry.io/pricing/",
+ "type": "custom"
+ }
+ ],
+ "time": "2023-06-29T10:31:13+00:00"
},
{
- "name": "ramsey/collection",
- "version": "1.2.1",
+ "name": "spatie/temporary-directory",
+ "version": "2.1.2",
"source": {
"type": "git",
- "url": "https://github.com/ramsey/collection.git",
- "reference": "eaca1dc1054ddd10cbd83c1461907bee6fb528fa"
+ "url": "https://github.com/spatie/temporary-directory.git",
+ "reference": "0c804873f6b4042aa8836839dca683c7d0f71831"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/ramsey/collection/zipball/eaca1dc1054ddd10cbd83c1461907bee6fb528fa",
- "reference": "eaca1dc1054ddd10cbd83c1461907bee6fb528fa",
+ "url": "https://api.github.com/repos/spatie/temporary-directory/zipball/0c804873f6b4042aa8836839dca683c7d0f71831",
+ "reference": "0c804873f6b4042aa8836839dca683c7d0f71831",
"shasum": ""
},
"require": {
- "php": "^7.3 || ^8",
- "symfony/polyfill-php81": "^1.23"
+ "php": "^8.0"
},
"require-dev": {
- "captainhook/captainhook": "^5.3",
- "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0",
- "ergebnis/composer-normalize": "^2.6",
- "fakerphp/faker": "^1.5",
- "hamcrest/hamcrest-php": "^2",
- "jangregor/phpstan-prophecy": "^0.8",
- "mockery/mockery": "^1.3",
- "phpspec/prophecy-phpunit": "^2.0",
- "phpstan/extension-installer": "^1",
- "phpstan/phpstan": "^0.12.32",
- "phpstan/phpstan-mockery": "^0.12.5",
- "phpstan/phpstan-phpunit": "^0.12.11",
- "phpunit/phpunit": "^8.5 || ^9",
- "psy/psysh": "^0.10.4",
- "slevomat/coding-standard": "^6.3",
- "squizlabs/php_codesniffer": "^3.5",
- "vimeo/psalm": "^4.4"
+ "phpunit/phpunit": "^9.5"
},
"type": "library",
"autoload": {
"psr-4": {
- "Ramsey\\Collection\\": "src/"
+ "Spatie\\TemporaryDirectory\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -2791,172 +5805,163 @@
],
"authors": [
{
- "name": "Ben Ramsey",
- "email": "ben@benramsey.com",
- "homepage": "https://benramsey.com"
+ "name": "Alex Vanderbist",
+ "email": "alex@spatie.be",
+ "homepage": "https://spatie.be",
+ "role": "Developer"
}
],
- "description": "A PHP library for representing and manipulating collections.",
+ "description": "Easily create, use and destroy temporary directories",
+ "homepage": "https://github.com/spatie/temporary-directory",
"keywords": [
- "array",
- "collection",
- "hash",
- "map",
- "queue",
- "set"
+ "php",
+ "spatie",
+ "temporary-directory"
],
"support": {
- "issues": "https://github.com/ramsey/collection/issues",
- "source": "https://github.com/ramsey/collection/tree/1.2.1"
+ "issues": "https://github.com/spatie/temporary-directory/issues",
+ "source": "https://github.com/spatie/temporary-directory/tree/2.1.2"
},
"funding": [
{
- "url": "https://github.com/ramsey",
- "type": "github"
+ "url": "https://spatie.be/open-source/support-us",
+ "type": "custom"
},
{
- "url": "https://tidelift.com/funding/github/packagist/ramsey/collection",
- "type": "tidelift"
+ "url": "https://github.com/spatie",
+ "type": "github"
}
],
- "time": "2021-08-06T03:41:06+00:00"
+ "time": "2023-04-28T07:47:42+00:00"
},
{
- "name": "ramsey/uuid",
- "version": "4.2.3",
+ "name": "symfony/cache",
+ "version": "v6.3.1",
"source": {
"type": "git",
- "url": "https://github.com/ramsey/uuid.git",
- "reference": "fc9bb7fb5388691fd7373cd44dcb4d63bbcf24df"
+ "url": "https://github.com/symfony/cache.git",
+ "reference": "52cff7608ef6e38376ac11bd1fbb0a220107f066"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/ramsey/uuid/zipball/fc9bb7fb5388691fd7373cd44dcb4d63bbcf24df",
- "reference": "fc9bb7fb5388691fd7373cd44dcb4d63bbcf24df",
+ "url": "https://api.github.com/repos/symfony/cache/zipball/52cff7608ef6e38376ac11bd1fbb0a220107f066",
+ "reference": "52cff7608ef6e38376ac11bd1fbb0a220107f066",
"shasum": ""
},
"require": {
- "brick/math": "^0.8 || ^0.9",
- "ext-json": "*",
- "php": "^7.2 || ^8.0",
- "ramsey/collection": "^1.0",
- "symfony/polyfill-ctype": "^1.8",
- "symfony/polyfill-php80": "^1.14"
+ "php": ">=8.1",
+ "psr/cache": "^2.0|^3.0",
+ "psr/log": "^1.1|^2|^3",
+ "symfony/cache-contracts": "^2.5|^3",
+ "symfony/service-contracts": "^2.5|^3",
+ "symfony/var-exporter": "^6.2.10"
},
- "replace": {
- "rhumsaa/uuid": "self.version"
+ "conflict": {
+ "doctrine/dbal": "<2.13.1",
+ "symfony/dependency-injection": "<5.4",
+ "symfony/http-kernel": "<5.4",
+ "symfony/var-dumper": "<5.4"
},
- "require-dev": {
- "captainhook/captainhook": "^5.10",
- "captainhook/plugin-composer": "^5.3",
- "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0",
- "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",
- "phpunit/phpunit": "^8.5 || ^9",
- "slevomat/coding-standard": "^7.0",
- "squizlabs/php_codesniffer": "^3.5",
- "vimeo/psalm": "^4.9"
+ "provide": {
+ "psr/cache-implementation": "2.0|3.0",
+ "psr/simple-cache-implementation": "1.0|2.0|3.0",
+ "symfony/cache-implementation": "1.1|2.0|3.0"
},
- "suggest": {
- "ext-bcmath": "Enables faster math with arbitrary-precision integers using BCMath.",
- "ext-ctype": "Enables faster processing of character classification using ctype functions.",
- "ext-gmp": "Enables faster math with arbitrary-precision integers using GMP.",
- "ext-uuid": "Enables the use of PeclUuidTimeGenerator and PeclUuidRandomGenerator.",
- "paragonie/random-lib": "Provides RandomLib for use with the RandomLibAdapter",
- "ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type."
+ "require-dev": {
+ "cache/integration-tests": "dev-master",
+ "doctrine/dbal": "^2.13.1|^3.0",
+ "predis/predis": "^1.1|^2.0",
+ "psr/simple-cache": "^1.0|^2.0|^3.0",
+ "symfony/config": "^5.4|^6.0",
+ "symfony/dependency-injection": "^5.4|^6.0",
+ "symfony/filesystem": "^5.4|^6.0",
+ "symfony/http-kernel": "^5.4|^6.0",
+ "symfony/messenger": "^5.4|^6.0",
+ "symfony/var-dumper": "^5.4|^6.0"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "4.x-dev"
- },
- "captainhook": {
- "force-install": true
- }
- },
"autoload": {
"psr-4": {
- "Ramsey\\Uuid\\": "src/"
+ "Symfony\\Component\\Cache\\": ""
},
- "files": [
- "src/functions.php"
+ "classmap": [
+ "Traits/ValueWrapper.php"
+ ],
+ "exclude-from-classmap": [
+ "/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
- "description": "A PHP library for generating and working with universally unique identifiers (UUIDs).",
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides extended PSR-6, PSR-16 (and tags) implementations",
+ "homepage": "https://symfony.com",
"keywords": [
- "guid",
- "identifier",
- "uuid"
+ "caching",
+ "psr6"
],
"support": {
- "issues": "https://github.com/ramsey/uuid/issues",
- "source": "https://github.com/ramsey/uuid/tree/4.2.3"
+ "source": "https://github.com/symfony/cache/tree/v6.3.1"
},
"funding": [
{
- "url": "https://github.com/ramsey",
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
"type": "github"
},
{
- "url": "https://tidelift.com/funding/github/packagist/ramsey/uuid",
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
- "time": "2021-09-25T23:10:38+00:00"
+ "time": "2023-06-24T11:51:27+00:00"
},
{
- "name": "swiftmailer/swiftmailer",
- "version": "v6.2.7",
+ "name": "symfony/cache-contracts",
+ "version": "v3.3.0",
"source": {
"type": "git",
- "url": "https://github.com/swiftmailer/swiftmailer.git",
- "reference": "15f7faf8508e04471f666633addacf54c0ab5933"
+ "url": "https://github.com/symfony/cache-contracts.git",
+ "reference": "ad945640ccc0ae6e208bcea7d7de4b39b569896b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/15f7faf8508e04471f666633addacf54c0ab5933",
- "reference": "15f7faf8508e04471f666633addacf54c0ab5933",
+ "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/ad945640ccc0ae6e208bcea7d7de4b39b569896b",
+ "reference": "ad945640ccc0ae6e208bcea7d7de4b39b569896b",
"shasum": ""
},
"require": {
- "egulias/email-validator": "^2.0|^3.1",
- "php": ">=7.0.0",
- "symfony/polyfill-iconv": "^1.0",
- "symfony/polyfill-intl-idn": "^1.10",
- "symfony/polyfill-mbstring": "^1.0"
- },
- "require-dev": {
- "mockery/mockery": "^1.0",
- "symfony/phpunit-bridge": "^4.4|^5.0"
- },
- "suggest": {
- "ext-intl": "Needed to support internationalized email addresses"
+ "php": ">=8.1",
+ "psr/cache": "^3.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "6.2-dev"
+ "dev-main": "3.4-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
}
},
"autoload": {
- "files": [
- "lib/swift_required.php"
- ]
+ "psr-4": {
+ "Symfony\\Contracts\\Cache\\": ""
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -2964,84 +5969,82 @@
],
"authors": [
{
- "name": "Chris Corbyn"
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
},
{
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
}
],
- "description": "Swiftmailer, free feature-rich PHP mailer",
- "homepage": "https://swiftmailer.symfony.com",
+ "description": "Generic abstractions related to caching",
+ "homepage": "https://symfony.com",
"keywords": [
- "email",
- "mail",
- "mailer"
+ "abstractions",
+ "contracts",
+ "decoupling",
+ "interfaces",
+ "interoperability",
+ "standards"
],
"support": {
- "issues": "https://github.com/swiftmailer/swiftmailer/issues",
- "source": "https://github.com/swiftmailer/swiftmailer/tree/v6.2.7"
+ "source": "https://github.com/symfony/cache-contracts/tree/v3.3.0"
},
"funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
{
"url": "https://github.com/fabpot",
"type": "github"
},
{
- "url": "https://tidelift.com/funding/github/packagist/swiftmailer/swiftmailer",
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
- "time": "2021-03-09T12:30:35+00:00"
+ "time": "2023-05-23T14:45:45+00:00"
},
{
"name": "symfony/console",
- "version": "v5.3.7",
+ "version": "v6.3.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
- "reference": "8b1008344647462ae6ec57559da166c2bfa5e16a"
+ "reference": "8788808b07cf0bdd6e4b7fdd23d8ddb1470c83b7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/8b1008344647462ae6ec57559da166c2bfa5e16a",
- "reference": "8b1008344647462ae6ec57559da166c2bfa5e16a",
+ "url": "https://api.github.com/repos/symfony/console/zipball/8788808b07cf0bdd6e4b7fdd23d8ddb1470c83b7",
+ "reference": "8788808b07cf0bdd6e4b7fdd23d8ddb1470c83b7",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "symfony/deprecation-contracts": "^2.1",
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
"symfony/polyfill-mbstring": "~1.0",
- "symfony/polyfill-php73": "^1.8",
- "symfony/polyfill-php80": "^1.16",
- "symfony/service-contracts": "^1.1|^2",
- "symfony/string": "^5.1"
+ "symfony/service-contracts": "^2.5|^3",
+ "symfony/string": "^5.4|^6.0"
},
"conflict": {
- "psr/log": ">=3",
- "symfony/dependency-injection": "<4.4",
- "symfony/dotenv": "<5.1",
- "symfony/event-dispatcher": "<4.4",
- "symfony/lock": "<4.4",
- "symfony/process": "<4.4"
+ "symfony/dependency-injection": "<5.4",
+ "symfony/dotenv": "<5.4",
+ "symfony/event-dispatcher": "<5.4",
+ "symfony/lock": "<5.4",
+ "symfony/process": "<5.4"
},
"provide": {
- "psr/log-implementation": "1.0|2.0"
+ "psr/log-implementation": "1.0|2.0|3.0"
},
"require-dev": {
- "psr/log": "^1|^2",
- "symfony/config": "^4.4|^5.0",
- "symfony/dependency-injection": "^4.4|^5.0",
- "symfony/event-dispatcher": "^4.4|^5.0",
- "symfony/lock": "^4.4|^5.0",
- "symfony/process": "^4.4|^5.0",
- "symfony/var-dumper": "^4.4|^5.0"
- },
- "suggest": {
- "psr/log": "For using the console logger",
- "symfony/event-dispatcher": "",
- "symfony/lock": "",
- "symfony/process": ""
+ "psr/log": "^1|^2|^3",
+ "symfony/config": "^5.4|^6.0",
+ "symfony/dependency-injection": "^5.4|^6.0",
+ "symfony/event-dispatcher": "^5.4|^6.0",
+ "symfony/lock": "^5.4|^6.0",
+ "symfony/process": "^5.4|^6.0",
+ "symfony/var-dumper": "^5.4|^6.0"
},
"type": "library",
"autoload": {
@@ -3070,12 +6073,12 @@
"homepage": "https://symfony.com",
"keywords": [
"cli",
- "command line",
+ "command-line",
"console",
"terminal"
],
"support": {
- "source": "https://github.com/symfony/console/tree/v5.3.7"
+ "source": "https://github.com/symfony/console/tree/v6.3.0"
},
"funding": [
{
@@ -3091,25 +6094,24 @@
"type": "tidelift"
}
],
- "time": "2021-08-25T20:02:16+00:00"
+ "time": "2023-05-29T12:49:39+00:00"
},
{
"name": "symfony/css-selector",
- "version": "v5.3.4",
+ "version": "v6.3.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/css-selector.git",
- "reference": "7fb120adc7f600a59027775b224c13a33530dd90"
+ "reference": "88453e64cd86c5b60e8d2fb2c6f953bbc353ffbf"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/css-selector/zipball/7fb120adc7f600a59027775b224c13a33530dd90",
- "reference": "7fb120adc7f600a59027775b224c13a33530dd90",
+ "url": "https://api.github.com/repos/symfony/css-selector/zipball/88453e64cd86c5b60e8d2fb2c6f953bbc353ffbf",
+ "reference": "88453e64cd86c5b60e8d2fb2c6f953bbc353ffbf",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "symfony/polyfill-php80": "^1.16"
+ "php": ">=8.1"
},
"type": "library",
"autoload": {
@@ -3141,7 +6143,7 @@
"description": "Converts CSS selectors to XPath expressions",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/css-selector/tree/v5.3.4"
+ "source": "https://github.com/symfony/css-selector/tree/v6.3.0"
},
"funding": [
{
@@ -3157,29 +6159,29 @@
"type": "tidelift"
}
],
- "time": "2021-07-21T12:38:00+00:00"
+ "time": "2023-03-20T16:43:42+00:00"
},
{
"name": "symfony/deprecation-contracts",
- "version": "v2.4.0",
+ "version": "v3.3.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/deprecation-contracts.git",
- "reference": "5f38c8804a9e97d23e0c8d63341088cd8a22d627"
+ "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5f38c8804a9e97d23e0c8d63341088cd8a22d627",
- "reference": "5f38c8804a9e97d23e0c8d63341088cd8a22d627",
+ "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/7c3aff79d10325257a001fcf92d991f24fc967cf",
+ "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=8.1"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "2.4-dev"
+ "dev-main": "3.4-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -3208,7 +6210,7 @@
"description": "A generic function and convention to trigger deprecation notices",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/deprecation-contracts/tree/v2.4.0"
+ "source": "https://github.com/symfony/deprecation-contracts/tree/v3.3.0"
},
"funding": [
{
@@ -3224,32 +6226,38 @@
"type": "tidelift"
}
],
- "time": "2021-03-23T23:28:01+00:00"
+ "time": "2023-05-23T14:45:45+00:00"
},
{
"name": "symfony/error-handler",
- "version": "v5.3.7",
+ "version": "v6.3.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/error-handler.git",
- "reference": "3bc60d0fba00ae8d1eaa9eb5ab11a2bbdd1fc321"
+ "reference": "99d2d814a6351461af350ead4d963bd67451236f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/error-handler/zipball/3bc60d0fba00ae8d1eaa9eb5ab11a2bbdd1fc321",
- "reference": "3bc60d0fba00ae8d1eaa9eb5ab11a2bbdd1fc321",
+ "url": "https://api.github.com/repos/symfony/error-handler/zipball/99d2d814a6351461af350ead4d963bd67451236f",
+ "reference": "99d2d814a6351461af350ead4d963bd67451236f",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
+ "php": ">=8.1",
"psr/log": "^1|^2|^3",
- "symfony/var-dumper": "^4.4|^5.0"
+ "symfony/var-dumper": "^5.4|^6.0"
+ },
+ "conflict": {
+ "symfony/deprecation-contracts": "<2.5"
},
"require-dev": {
- "symfony/deprecation-contracts": "^2.1",
- "symfony/http-kernel": "^4.4|^5.0",
- "symfony/serializer": "^4.4|^5.0"
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/http-kernel": "^5.4|^6.0",
+ "symfony/serializer": "^5.4|^6.0"
},
+ "bin": [
+ "Resources/bin/patch-type-declarations"
+ ],
"type": "library",
"autoload": {
"psr-4": {
@@ -3276,7 +6284,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/v5.3.7"
+ "source": "https://github.com/symfony/error-handler/tree/v6.3.0"
},
"funding": [
{
@@ -3292,48 +6300,43 @@
"type": "tidelift"
}
],
- "time": "2021-08-28T15:07:08+00:00"
+ "time": "2023-05-10T12:03:13+00:00"
},
{
"name": "symfony/event-dispatcher",
- "version": "v5.3.7",
+ "version": "v6.3.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher.git",
- "reference": "ce7b20d69c66a20939d8952b617506a44d102130"
+ "reference": "3af8ac1a3f98f6dbc55e10ae59c9e44bfc38dfaa"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/ce7b20d69c66a20939d8952b617506a44d102130",
- "reference": "ce7b20d69c66a20939d8952b617506a44d102130",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/3af8ac1a3f98f6dbc55e10ae59c9e44bfc38dfaa",
+ "reference": "3af8ac1a3f98f6dbc55e10ae59c9e44bfc38dfaa",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "symfony/deprecation-contracts": "^2.1",
- "symfony/event-dispatcher-contracts": "^2",
- "symfony/polyfill-php80": "^1.16"
+ "php": ">=8.1",
+ "symfony/event-dispatcher-contracts": "^2.5|^3"
},
"conflict": {
- "symfony/dependency-injection": "<4.4"
+ "symfony/dependency-injection": "<5.4",
+ "symfony/service-contracts": "<2.5"
},
"provide": {
"psr/event-dispatcher-implementation": "1.0",
- "symfony/event-dispatcher-implementation": "2.0"
+ "symfony/event-dispatcher-implementation": "2.0|3.0"
},
"require-dev": {
"psr/log": "^1|^2|^3",
- "symfony/config": "^4.4|^5.0",
- "symfony/dependency-injection": "^4.4|^5.0",
- "symfony/error-handler": "^4.4|^5.0",
- "symfony/expression-language": "^4.4|^5.0",
- "symfony/http-foundation": "^4.4|^5.0",
- "symfony/service-contracts": "^1.1|^2",
- "symfony/stopwatch": "^4.4|^5.0"
- },
- "suggest": {
- "symfony/dependency-injection": "",
- "symfony/http-kernel": ""
+ "symfony/config": "^5.4|^6.0",
+ "symfony/dependency-injection": "^5.4|^6.0",
+ "symfony/error-handler": "^5.4|^6.0",
+ "symfony/expression-language": "^5.4|^6.0",
+ "symfony/http-foundation": "^5.4|^6.0",
+ "symfony/service-contracts": "^2.5|^3",
+ "symfony/stopwatch": "^5.4|^6.0"
},
"type": "library",
"autoload": {
@@ -3361,7 +6364,7 @@
"description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/event-dispatcher/tree/v5.3.7"
+ "source": "https://github.com/symfony/event-dispatcher/tree/v6.3.0"
},
"funding": [
{
@@ -3377,33 +6380,30 @@
"type": "tidelift"
}
],
- "time": "2021-08-04T21:20:46+00:00"
+ "time": "2023-04-21T14:41:17+00:00"
},
{
"name": "symfony/event-dispatcher-contracts",
- "version": "v2.4.0",
+ "version": "v3.3.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher-contracts.git",
- "reference": "69fee1ad2332a7cbab3aca13591953da9cdb7a11"
+ "reference": "a76aed96a42d2b521153fb382d418e30d18b59df"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/69fee1ad2332a7cbab3aca13591953da9cdb7a11",
- "reference": "69fee1ad2332a7cbab3aca13591953da9cdb7a11",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/a76aed96a42d2b521153fb382d418e30d18b59df",
+ "reference": "a76aed96a42d2b521153fb382d418e30d18b59df",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
+ "php": ">=8.1",
"psr/event-dispatcher": "^1"
},
- "suggest": {
- "symfony/event-dispatcher-implementation": ""
- },
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "2.4-dev"
+ "dev-main": "3.4-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -3440,7 +6440,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.4.0"
+ "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.3.0"
},
"funding": [
{
@@ -3456,25 +6456,27 @@
"type": "tidelift"
}
],
- "time": "2021-03-23T23:28:01+00:00"
+ "time": "2023-05-23T14:45:45+00:00"
},
{
"name": "symfony/finder",
- "version": "v5.3.7",
+ "version": "v6.3.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/finder.git",
- "reference": "a10000ada1e600d109a6c7632e9ac42e8bf2fb93"
+ "reference": "d9b01ba073c44cef617c7907ce2419f8d00d75e2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/finder/zipball/a10000ada1e600d109a6c7632e9ac42e8bf2fb93",
- "reference": "a10000ada1e600d109a6c7632e9ac42e8bf2fb93",
+ "url": "https://api.github.com/repos/symfony/finder/zipball/d9b01ba073c44cef617c7907ce2419f8d00d75e2",
+ "reference": "d9b01ba073c44cef617c7907ce2419f8d00d75e2",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "symfony/polyfill-php80": "^1.16"
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "symfony/filesystem": "^6.0"
},
"type": "library",
"autoload": {
@@ -3502,7 +6504,99 @@
"description": "Finds files and directories via an intuitive fluent interface",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/finder/tree/v5.3.7"
+ "source": "https://github.com/symfony/finder/tree/v6.3.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": "2023-04-02T01:25:41+00:00"
+ },
+ {
+ "name": "symfony/http-client",
+ "version": "v6.3.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/http-client.git",
+ "reference": "1c828a06aef2f5eeba42026dfc532d4fc5406123"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/http-client/zipball/1c828a06aef2f5eeba42026dfc532d4fc5406123",
+ "reference": "1c828a06aef2f5eeba42026dfc532d4fc5406123",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "psr/log": "^1|^2|^3",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/http-client-contracts": "^3",
+ "symfony/service-contracts": "^2.5|^3"
+ },
+ "conflict": {
+ "php-http/discovery": "<1.15",
+ "symfony/http-foundation": "<6.3"
+ },
+ "provide": {
+ "php-http/async-client-implementation": "*",
+ "php-http/client-implementation": "*",
+ "psr/http-client-implementation": "1.0",
+ "symfony/http-client-implementation": "3.0"
+ },
+ "require-dev": {
+ "amphp/amp": "^2.5",
+ "amphp/http-client": "^4.2.1",
+ "amphp/http-tunnel": "^1.0",
+ "amphp/socket": "^1.1",
+ "guzzlehttp/promises": "^1.4",
+ "nyholm/psr7": "^1.0",
+ "php-http/httplug": "^1.0|^2.0",
+ "psr/http-client": "^1.0",
+ "symfony/dependency-injection": "^5.4|^6.0",
+ "symfony/http-kernel": "^5.4|^6.0",
+ "symfony/process": "^5.4|^6.0",
+ "symfony/stopwatch": "^5.4|^6.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\HttpClient\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides powerful methods to fetch HTTP resources synchronously or asynchronously",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "http"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/http-client/tree/v6.3.1"
},
"funding": [
{
@@ -3518,32 +6612,29 @@
"type": "tidelift"
}
],
- "time": "2021-08-04T21:20:46+00:00"
+ "time": "2023-06-24T11:51:27+00:00"
},
{
"name": "symfony/http-client-contracts",
- "version": "v2.4.0",
+ "version": "v3.3.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-client-contracts.git",
- "reference": "7e82f6084d7cae521a75ef2cb5c9457bbda785f4"
+ "reference": "3b66325d0176b4ec826bffab57c9037d759c31fb"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/7e82f6084d7cae521a75ef2cb5c9457bbda785f4",
- "reference": "7e82f6084d7cae521a75ef2cb5c9457bbda785f4",
+ "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/3b66325d0176b4ec826bffab57c9037d759c31fb",
+ "reference": "3b66325d0176b4ec826bffab57c9037d759c31fb",
"shasum": ""
},
"require": {
- "php": ">=7.2.5"
- },
- "suggest": {
- "symfony/http-client-implementation": ""
+ "php": ">=8.1"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "2.4-dev"
+ "dev-main": "3.4-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -3553,7 +6644,10 @@
"autoload": {
"psr-4": {
"Symfony\\Contracts\\HttpClient\\": ""
- }
+ },
+ "exclude-from-classmap": [
+ "/Test/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -3580,7 +6674,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/http-client-contracts/tree/v2.4.0"
+ "source": "https://github.com/symfony/http-client-contracts/tree/v3.3.0"
},
"funding": [
{
@@ -3596,36 +6690,40 @@
"type": "tidelift"
}
],
- "time": "2021-04-11T23:07:08+00:00"
+ "time": "2023-05-23T14:45:45+00:00"
},
{
"name": "symfony/http-foundation",
- "version": "v5.3.7",
+ "version": "v6.3.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-foundation.git",
- "reference": "e36c8e5502b4f3f0190c675f1c1f1248a64f04e5"
+ "reference": "e0ad0d153e1c20069250986cd9e9dd1ccebb0d66"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-foundation/zipball/e36c8e5502b4f3f0190c675f1c1f1248a64f04e5",
- "reference": "e36c8e5502b4f3f0190c675f1c1f1248a64f04e5",
+ "url": "https://api.github.com/repos/symfony/http-foundation/zipball/e0ad0d153e1c20069250986cd9e9dd1ccebb0d66",
+ "reference": "e0ad0d153e1c20069250986cd9e9dd1ccebb0d66",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "symfony/deprecation-contracts": "^2.1",
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
"symfony/polyfill-mbstring": "~1.1",
- "symfony/polyfill-php80": "^1.16"
+ "symfony/polyfill-php83": "^1.27"
},
- "require-dev": {
- "predis/predis": "~1.0",
- "symfony/cache": "^4.4|^5.0",
- "symfony/expression-language": "^4.4|^5.0",
- "symfony/mime": "^4.4|^5.0"
+ "conflict": {
+ "symfony/cache": "<6.2"
},
- "suggest": {
- "symfony/mime": "To use the file extension guesser"
+ "require-dev": {
+ "doctrine/dbal": "^2.13.1|^3.0",
+ "predis/predis": "^1.1|^2.0",
+ "symfony/cache": "^5.4|^6.0",
+ "symfony/dependency-injection": "^5.4|^6.0",
+ "symfony/expression-language": "^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"
},
"type": "library",
"autoload": {
@@ -3653,7 +6751,7 @@
"description": "Defines an object-oriented layer for the HTTP specification",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/http-foundation/tree/v5.3.7"
+ "source": "https://github.com/symfony/http-foundation/tree/v6.3.1"
},
"funding": [
{
@@ -3669,76 +6767,77 @@
"type": "tidelift"
}
],
- "time": "2021-08-27T11:20:35+00:00"
+ "time": "2023-06-24T11:51:27+00:00"
},
{
"name": "symfony/http-kernel",
- "version": "v5.3.9",
+ "version": "v6.3.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-kernel.git",
- "reference": "ceaf46a992f60e90645e7279825a830f733a17c5"
+ "reference": "161e16fd2e35fb4881a43bc8b383dfd5be4ac374"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-kernel/zipball/ceaf46a992f60e90645e7279825a830f733a17c5",
- "reference": "ceaf46a992f60e90645e7279825a830f733a17c5",
+ "url": "https://api.github.com/repos/symfony/http-kernel/zipball/161e16fd2e35fb4881a43bc8b383dfd5be4ac374",
+ "reference": "161e16fd2e35fb4881a43bc8b383dfd5be4ac374",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "psr/log": "^1|^2",
- "symfony/deprecation-contracts": "^2.1",
- "symfony/error-handler": "^4.4|^5.0",
- "symfony/event-dispatcher": "^5.0",
- "symfony/http-client-contracts": "^1.1|^2",
- "symfony/http-foundation": "^5.3.7",
- "symfony/polyfill-ctype": "^1.8",
- "symfony/polyfill-php73": "^1.9",
- "symfony/polyfill-php80": "^1.16"
+ "php": ">=8.1",
+ "psr/log": "^1|^2|^3",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/error-handler": "^6.3",
+ "symfony/event-dispatcher": "^5.4|^6.0",
+ "symfony/http-foundation": "^6.2.7",
+ "symfony/polyfill-ctype": "^1.8"
},
"conflict": {
- "symfony/browser-kit": "<4.4",
- "symfony/cache": "<5.0",
- "symfony/config": "<5.0",
- "symfony/console": "<4.4",
- "symfony/dependency-injection": "<5.3",
- "symfony/doctrine-bridge": "<5.0",
- "symfony/form": "<5.0",
- "symfony/http-client": "<5.0",
- "symfony/mailer": "<5.0",
- "symfony/messenger": "<5.0",
- "symfony/translation": "<5.0",
- "symfony/twig-bridge": "<5.0",
- "symfony/validator": "<5.0",
+ "symfony/browser-kit": "<5.4",
+ "symfony/cache": "<5.4",
+ "symfony/config": "<6.1",
+ "symfony/console": "<5.4",
+ "symfony/dependency-injection": "<6.3",
+ "symfony/doctrine-bridge": "<5.4",
+ "symfony/form": "<5.4",
+ "symfony/http-client": "<5.4",
+ "symfony/http-client-contracts": "<2.5",
+ "symfony/mailer": "<5.4",
+ "symfony/messenger": "<5.4",
+ "symfony/translation": "<5.4",
+ "symfony/translation-contracts": "<2.5",
+ "symfony/twig-bridge": "<5.4",
+ "symfony/validator": "<5.4",
+ "symfony/var-dumper": "<6.3",
"twig/twig": "<2.13"
},
"provide": {
- "psr/log-implementation": "1.0|2.0"
+ "psr/log-implementation": "1.0|2.0|3.0"
},
"require-dev": {
"psr/cache": "^1.0|^2.0|^3.0",
- "symfony/browser-kit": "^4.4|^5.0",
- "symfony/config": "^5.0",
- "symfony/console": "^4.4|^5.0",
- "symfony/css-selector": "^4.4|^5.0",
- "symfony/dependency-injection": "^5.3",
- "symfony/dom-crawler": "^4.4|^5.0",
- "symfony/expression-language": "^4.4|^5.0",
- "symfony/finder": "^4.4|^5.0",
- "symfony/process": "^4.4|^5.0",
- "symfony/routing": "^4.4|^5.0",
- "symfony/stopwatch": "^4.4|^5.0",
- "symfony/translation": "^4.4|^5.0",
- "symfony/translation-contracts": "^1.1|^2",
+ "symfony/browser-kit": "^5.4|^6.0",
+ "symfony/clock": "^6.2",
+ "symfony/config": "^6.1",
+ "symfony/console": "^5.4|^6.0",
+ "symfony/css-selector": "^5.4|^6.0",
+ "symfony/dependency-injection": "^6.3",
+ "symfony/dom-crawler": "^5.4|^6.0",
+ "symfony/expression-language": "^5.4|^6.0",
+ "symfony/finder": "^5.4|^6.0",
+ "symfony/http-client-contracts": "^2.5|^3",
+ "symfony/process": "^5.4|^6.0",
+ "symfony/property-access": "^5.4.5|^6.0.5",
+ "symfony/routing": "^5.4|^6.0",
+ "symfony/serializer": "^6.3",
+ "symfony/stopwatch": "^5.4|^6.0",
+ "symfony/translation": "^5.4|^6.0",
+ "symfony/translation-contracts": "^2.5|^3",
+ "symfony/uid": "^5.4|^6.0",
+ "symfony/validator": "^6.3",
+ "symfony/var-exporter": "^6.2",
"twig/twig": "^2.13|^3.0.4"
},
- "suggest": {
- "symfony/browser-kit": "",
- "symfony/config": "",
- "symfony/console": "",
- "symfony/dependency-injection": ""
- },
"type": "library",
"autoload": {
"psr-4": {
@@ -3765,7 +6864,87 @@
"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/v5.3.9"
+ "source": "https://github.com/symfony/http-kernel/tree/v6.3.1"
+ },
+ "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": "2023-06-26T06:07:32+00:00"
+ },
+ {
+ "name": "symfony/mailer",
+ "version": "v6.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/mailer.git",
+ "reference": "7b03d9be1dea29bfec0a6c7b603f5072a4c97435"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/mailer/zipball/7b03d9be1dea29bfec0a6c7b603f5072a4c97435",
+ "reference": "7b03d9be1dea29bfec0a6c7b603f5072a4c97435",
+ "shasum": ""
+ },
+ "require": {
+ "egulias/email-validator": "^2.1.10|^3|^4",
+ "php": ">=8.1",
+ "psr/event-dispatcher": "^1",
+ "psr/log": "^1|^2|^3",
+ "symfony/event-dispatcher": "^5.4|^6.0",
+ "symfony/mime": "^6.2",
+ "symfony/service-contracts": "^2.5|^3"
+ },
+ "conflict": {
+ "symfony/http-client-contracts": "<2.5",
+ "symfony/http-kernel": "<5.4",
+ "symfony/messenger": "<6.2",
+ "symfony/mime": "<6.2",
+ "symfony/twig-bridge": "<6.2.1"
+ },
+ "require-dev": {
+ "symfony/console": "^5.4|^6.0",
+ "symfony/http-client": "^5.4|^6.0",
+ "symfony/messenger": "^6.2",
+ "symfony/twig-bridge": "^6.2"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Mailer\\": ""
+ },
+ "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": "Helps sending emails",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/mailer/tree/v6.3.0"
},
"funding": [
{
@@ -3781,42 +6960,42 @@
"type": "tidelift"
}
],
- "time": "2021-09-28T10:25:11+00:00"
+ "time": "2023-05-29T12:49:39+00:00"
},
{
"name": "symfony/mime",
- "version": "v5.3.8",
+ "version": "v6.3.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/mime.git",
- "reference": "a756033d0a7e53db389618653ae991eba5a19a11"
+ "reference": "7b5d2121858cd6efbed778abce9cfdd7ab1f62ad"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/mime/zipball/a756033d0a7e53db389618653ae991eba5a19a11",
- "reference": "a756033d0a7e53db389618653ae991eba5a19a11",
+ "url": "https://api.github.com/repos/symfony/mime/zipball/7b5d2121858cd6efbed778abce9cfdd7ab1f62ad",
+ "reference": "7b5d2121858cd6efbed778abce9cfdd7ab1f62ad",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "symfony/deprecation-contracts": "^2.1",
+ "php": ">=8.1",
"symfony/polyfill-intl-idn": "^1.10",
- "symfony/polyfill-mbstring": "^1.0",
- "symfony/polyfill-php80": "^1.16"
+ "symfony/polyfill-mbstring": "^1.0"
},
"conflict": {
"egulias/email-validator": "~3.0.0",
"phpdocumentor/reflection-docblock": "<3.2.2",
"phpdocumentor/type-resolver": "<1.4.0",
- "symfony/mailer": "<4.4"
+ "symfony/mailer": "<5.4",
+ "symfony/serializer": "<6.2"
},
"require-dev": {
- "egulias/email-validator": "^2.1.10|^3.1",
+ "egulias/email-validator": "^2.1.10|^3.1|^4",
+ "league/html-to-markdown": "^5.0",
"phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0",
- "symfony/dependency-injection": "^4.4|^5.0",
- "symfony/property-access": "^4.4|^5.1",
- "symfony/property-info": "^4.4|^5.1",
- "symfony/serializer": "^5.2"
+ "symfony/dependency-injection": "^5.4|^6.0",
+ "symfony/property-access": "^5.4|^6.0",
+ "symfony/property-info": "^5.4|^6.0",
+ "symfony/serializer": "^6.2"
},
"type": "library",
"autoload": {
@@ -3848,7 +7027,7 @@
"mime-type"
],
"support": {
- "source": "https://github.com/symfony/mime/tree/v5.3.8"
+ "source": "https://github.com/symfony/mime/tree/v6.3.0"
},
"funding": [
{
@@ -3864,44 +7043,33 @@
"type": "tidelift"
}
],
- "time": "2021-09-10T12:30:38+00:00"
+ "time": "2023-04-28T15:57:00+00:00"
},
{
- "name": "symfony/polyfill-ctype",
- "version": "v1.23.0",
+ "name": "symfony/options-resolver",
+ "version": "v6.3.0",
"source": {
"type": "git",
- "url": "https://github.com/symfony/polyfill-ctype.git",
- "reference": "46cd95797e9df938fdd2b03693b5fca5e64b01ce"
+ "url": "https://github.com/symfony/options-resolver.git",
+ "reference": "a10f19f5198d589d5c33333cffe98dc9820332dd"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/46cd95797e9df938fdd2b03693b5fca5e64b01ce",
- "reference": "46cd95797e9df938fdd2b03693b5fca5e64b01ce",
+ "url": "https://api.github.com/repos/symfony/options-resolver/zipball/a10f19f5198d589d5c33333cffe98dc9820332dd",
+ "reference": "a10f19f5198d589d5c33333cffe98dc9820332dd",
"shasum": ""
},
"require": {
- "php": ">=7.1"
- },
- "suggest": {
- "ext-ctype": "For best performance"
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "1.23-dev"
- },
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
"autoload": {
"psr-4": {
- "Symfony\\Polyfill\\Ctype\\": ""
+ "Symfony\\Component\\OptionsResolver\\": ""
},
- "files": [
- "bootstrap.php"
+ "exclude-from-classmap": [
+ "/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
@@ -3910,24 +7078,23 @@
],
"authors": [
{
- "name": "Gert de Pagter",
- "email": "BackEndTea@gmail.com"
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Symfony polyfill for ctype functions",
+ "description": "Provides an improved replacement for the array_replace PHP function",
"homepage": "https://symfony.com",
"keywords": [
- "compatibility",
- "ctype",
- "polyfill",
- "portable"
+ "config",
+ "configuration",
+ "options"
],
"support": {
- "source": "https://github.com/symfony/polyfill-ctype/tree/v1.23.0"
+ "source": "https://github.com/symfony/options-resolver/tree/v6.3.0"
},
"funding": [
{
@@ -3943,32 +7110,35 @@
"type": "tidelift"
}
],
- "time": "2021-02-19T12:13:01+00:00"
+ "time": "2023-05-12T14:21:09+00:00"
},
{
- "name": "symfony/polyfill-iconv",
- "version": "v1.23.0",
+ "name": "symfony/polyfill-ctype",
+ "version": "v1.27.0",
"source": {
"type": "git",
- "url": "https://github.com/symfony/polyfill-iconv.git",
- "reference": "63b5bb7db83e5673936d6e3b8b3e022ff6474933"
+ "url": "https://github.com/symfony/polyfill-ctype.git",
+ "reference": "5bbc823adecdae860bb64756d639ecfec17b050a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/63b5bb7db83e5673936d6e3b8b3e022ff6474933",
- "reference": "63b5bb7db83e5673936d6e3b8b3e022ff6474933",
+ "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/5bbc823adecdae860bb64756d639ecfec17b050a",
+ "reference": "5bbc823adecdae860bb64756d639ecfec17b050a",
"shasum": ""
},
"require": {
"php": ">=7.1"
},
+ "provide": {
+ "ext-ctype": "*"
+ },
"suggest": {
- "ext-iconv": "For best performance"
+ "ext-ctype": "For best performance"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.23-dev"
+ "dev-main": "1.27-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -3976,12 +7146,12 @@
}
},
"autoload": {
- "psr-4": {
- "Symfony\\Polyfill\\Iconv\\": ""
- },
"files": [
"bootstrap.php"
- ]
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Ctype\\": ""
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -3989,25 +7159,24 @@
],
"authors": [
{
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
+ "name": "Gert de Pagter",
+ "email": "BackEndTea@gmail.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Symfony polyfill for the Iconv extension",
+ "description": "Symfony polyfill for ctype functions",
"homepage": "https://symfony.com",
"keywords": [
"compatibility",
- "iconv",
+ "ctype",
"polyfill",
- "portable",
- "shim"
+ "portable"
],
"support": {
- "source": "https://github.com/symfony/polyfill-iconv/tree/v1.23.0"
+ "source": "https://github.com/symfony/polyfill-ctype/tree/v1.27.0"
},
"funding": [
{
@@ -4023,20 +7192,20 @@
"type": "tidelift"
}
],
- "time": "2021-05-27T09:27:20+00:00"
+ "time": "2022-11-03T14:55:06+00:00"
},
{
"name": "symfony/polyfill-intl-grapheme",
- "version": "v1.23.1",
+ "version": "v1.27.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-grapheme.git",
- "reference": "16880ba9c5ebe3642d1995ab866db29270b36535"
+ "reference": "511a08c03c1960e08a883f4cffcacd219b758354"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/16880ba9c5ebe3642d1995ab866db29270b36535",
- "reference": "16880ba9c5ebe3642d1995ab866db29270b36535",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/511a08c03c1960e08a883f4cffcacd219b758354",
+ "reference": "511a08c03c1960e08a883f4cffcacd219b758354",
"shasum": ""
},
"require": {
@@ -4048,7 +7217,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.23-dev"
+ "dev-main": "1.27-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -4056,12 +7225,12 @@
}
},
"autoload": {
- "psr-4": {
- "Symfony\\Polyfill\\Intl\\Grapheme\\": ""
- },
"files": [
"bootstrap.php"
- ]
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Intl\\Grapheme\\": ""
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -4088,7 +7257,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.23.1"
+ "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.27.0"
},
"funding": [
{
@@ -4104,20 +7273,20 @@
"type": "tidelift"
}
],
- "time": "2021-05-27T12:26:48+00:00"
+ "time": "2022-11-03T14:55:06+00:00"
},
{
"name": "symfony/polyfill-intl-idn",
- "version": "v1.23.0",
+ "version": "v1.27.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-idn.git",
- "reference": "65bd267525e82759e7d8c4e8ceea44f398838e65"
+ "reference": "639084e360537a19f9ee352433b84ce831f3d2da"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/65bd267525e82759e7d8c4e8ceea44f398838e65",
- "reference": "65bd267525e82759e7d8c4e8ceea44f398838e65",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/639084e360537a19f9ee352433b84ce831f3d2da",
+ "reference": "639084e360537a19f9ee352433b84ce831f3d2da",
"shasum": ""
},
"require": {
@@ -4131,7 +7300,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.23-dev"
+ "dev-main": "1.27-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -4139,12 +7308,12 @@
}
},
"autoload": {
- "psr-4": {
- "Symfony\\Polyfill\\Intl\\Idn\\": ""
- },
"files": [
"bootstrap.php"
- ]
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Intl\\Idn\\": ""
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -4175,7 +7344,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.23.0"
+ "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.27.0"
},
"funding": [
{
@@ -4191,20 +7360,20 @@
"type": "tidelift"
}
],
- "time": "2021-05-27T09:27:20+00:00"
+ "time": "2022-11-03T14:55:06+00:00"
},
{
"name": "symfony/polyfill-intl-normalizer",
- "version": "v1.23.0",
+ "version": "v1.27.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
- "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8"
+ "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8590a5f561694770bdcd3f9b5c69dde6945028e8",
- "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/19bd1e4fcd5b91116f14d8533c57831ed00571b6",
+ "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6",
"shasum": ""
},
"require": {
@@ -4216,7 +7385,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.23-dev"
+ "dev-main": "1.27-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -4224,12 +7393,12 @@
}
},
"autoload": {
- "psr-4": {
- "Symfony\\Polyfill\\Intl\\Normalizer\\": ""
- },
"files": [
"bootstrap.php"
],
+ "psr-4": {
+ "Symfony\\Polyfill\\Intl\\Normalizer\\": ""
+ },
"classmap": [
"Resources/stubs"
]
@@ -4259,7 +7428,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.23.0"
+ "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.27.0"
},
"funding": [
{
@@ -4275,32 +7444,35 @@
"type": "tidelift"
}
],
- "time": "2021-02-19T12:13:01+00:00"
+ "time": "2022-11-03T14:55:06+00:00"
},
{
"name": "symfony/polyfill-mbstring",
- "version": "v1.23.1",
+ "version": "v1.27.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git",
- "reference": "9174a3d80210dca8daa7f31fec659150bbeabfc6"
+ "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9174a3d80210dca8daa7f31fec659150bbeabfc6",
- "reference": "9174a3d80210dca8daa7f31fec659150bbeabfc6",
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534",
+ "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534",
"shasum": ""
},
"require": {
"php": ">=7.1"
},
+ "provide": {
+ "ext-mbstring": "*"
+ },
"suggest": {
"ext-mbstring": "For best performance"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.23-dev"
+ "dev-main": "1.27-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -4308,12 +7480,12 @@
}
},
"autoload": {
- "psr-4": {
- "Symfony\\Polyfill\\Mbstring\\": ""
- },
"files": [
"bootstrap.php"
- ]
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Mbstring\\": ""
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -4339,7 +7511,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.23.1"
+ "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0"
},
"funding": [
{
@@ -4355,20 +7527,20 @@
"type": "tidelift"
}
],
- "time": "2021-05-27T12:26:48+00:00"
+ "time": "2022-11-03T14:55:06+00:00"
},
{
"name": "symfony/polyfill-php72",
- "version": "v1.23.0",
+ "version": "v1.27.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php72.git",
- "reference": "9a142215a36a3888e30d0a9eeea9766764e96976"
+ "reference": "869329b1e9894268a8a61dabb69153029b7a8c97"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/9a142215a36a3888e30d0a9eeea9766764e96976",
- "reference": "9a142215a36a3888e30d0a9eeea9766764e96976",
+ "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/869329b1e9894268a8a61dabb69153029b7a8c97",
+ "reference": "869329b1e9894268a8a61dabb69153029b7a8c97",
"shasum": ""
},
"require": {
@@ -4377,7 +7549,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.23-dev"
+ "dev-main": "1.27-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -4385,12 +7557,12 @@
}
},
"autoload": {
- "psr-4": {
- "Symfony\\Polyfill\\Php72\\": ""
- },
"files": [
"bootstrap.php"
- ]
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Php72\\": ""
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -4415,7 +7587,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php72/tree/v1.23.0"
+ "source": "https://github.com/symfony/polyfill-php72/tree/v1.27.0"
},
"funding": [
{
@@ -4431,20 +7603,20 @@
"type": "tidelift"
}
],
- "time": "2021-05-27T09:17:38+00:00"
+ "time": "2022-11-03T14:55:06+00:00"
},
{
- "name": "symfony/polyfill-php73",
- "version": "v1.23.0",
+ "name": "symfony/polyfill-php80",
+ "version": "v1.27.0",
"source": {
"type": "git",
- "url": "https://github.com/symfony/polyfill-php73.git",
- "reference": "fba8933c384d6476ab14fb7b8526e5287ca7e010"
+ "url": "https://github.com/symfony/polyfill-php80.git",
+ "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/fba8933c384d6476ab14fb7b8526e5287ca7e010",
- "reference": "fba8933c384d6476ab14fb7b8526e5287ca7e010",
+ "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936",
+ "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936",
"shasum": ""
},
"require": {
@@ -4453,7 +7625,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.23-dev"
+ "dev-main": "1.27-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -4461,12 +7633,12 @@
}
},
"autoload": {
- "psr-4": {
- "Symfony\\Polyfill\\Php73\\": ""
- },
"files": [
"bootstrap.php"
],
+ "psr-4": {
+ "Symfony\\Polyfill\\Php80\\": ""
+ },
"classmap": [
"Resources/stubs"
]
@@ -4476,6 +7648,10 @@
"MIT"
],
"authors": [
+ {
+ "name": "Ion Bazan",
+ "email": "ion.bazan@gmail.com"
+ },
{
"name": "Nicolas Grekas",
"email": "p@tchwork.com"
@@ -4485,7 +7661,7 @@
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions",
+ "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
"homepage": "https://symfony.com",
"keywords": [
"compatibility",
@@ -4494,7 +7670,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php73/tree/v1.23.0"
+ "source": "https://github.com/symfony/polyfill-php80/tree/v1.27.0"
},
"funding": [
{
@@ -4510,29 +7686,30 @@
"type": "tidelift"
}
],
- "time": "2021-02-19T12:13:01+00:00"
+ "time": "2022-11-03T14:55:06+00:00"
},
{
- "name": "symfony/polyfill-php80",
- "version": "v1.23.1",
+ "name": "symfony/polyfill-php83",
+ "version": "v1.27.0",
"source": {
"type": "git",
- "url": "https://github.com/symfony/polyfill-php80.git",
- "reference": "1100343ed1a92e3a38f9ae122fc0eb21602547be"
+ "url": "https://github.com/symfony/polyfill-php83.git",
+ "reference": "508c652ba3ccf69f8c97f251534f229791b52a57"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/1100343ed1a92e3a38f9ae122fc0eb21602547be",
- "reference": "1100343ed1a92e3a38f9ae122fc0eb21602547be",
+ "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/508c652ba3ccf69f8c97f251534f229791b52a57",
+ "reference": "508c652ba3ccf69f8c97f251534f229791b52a57",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.1",
+ "symfony/polyfill-php80": "^1.14"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.23-dev"
+ "dev-main": "1.27-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -4540,25 +7717,18 @@
}
},
"autoload": {
- "psr-4": {
- "Symfony\\Polyfill\\Php80\\": ""
- },
"files": [
"bootstrap.php"
],
- "classmap": [
- "Resources/stubs"
- ]
+ "psr-4": {
+ "Symfony\\Polyfill\\Php83\\": ""
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
- {
- "name": "Ion Bazan",
- "email": "ion.bazan@gmail.com"
- },
{
"name": "Nicolas Grekas",
"email": "p@tchwork.com"
@@ -4568,7 +7738,7 @@
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
+ "description": "Symfony polyfill backporting some PHP 8.3+ features to lower PHP versions",
"homepage": "https://symfony.com",
"keywords": [
"compatibility",
@@ -4577,7 +7747,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php80/tree/v1.23.1"
+ "source": "https://github.com/symfony/polyfill-php83/tree/v1.27.0"
},
"funding": [
{
@@ -4593,29 +7763,35 @@
"type": "tidelift"
}
],
- "time": "2021-07-28T13:41:28+00:00"
+ "time": "2022-11-03T14:55:06+00:00"
},
{
- "name": "symfony/polyfill-php81",
- "version": "v1.23.0",
+ "name": "symfony/polyfill-uuid",
+ "version": "v1.27.0",
"source": {
"type": "git",
- "url": "https://github.com/symfony/polyfill-php81.git",
- "reference": "e66119f3de95efc359483f810c4c3e6436279436"
+ "url": "https://github.com/symfony/polyfill-uuid.git",
+ "reference": "f3cf1a645c2734236ed1e2e671e273eeb3586166"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/e66119f3de95efc359483f810c4c3e6436279436",
- "reference": "e66119f3de95efc359483f810c4c3e6436279436",
+ "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/f3cf1a645c2734236ed1e2e671e273eeb3586166",
+ "reference": "f3cf1a645c2734236ed1e2e671e273eeb3586166",
"shasum": ""
},
"require": {
"php": ">=7.1"
},
+ "provide": {
+ "ext-uuid": "*"
+ },
+ "suggest": {
+ "ext-uuid": "For best performance"
+ },
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.23-dev"
+ "dev-main": "1.27-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -4623,15 +7799,12 @@
}
},
"autoload": {
- "psr-4": {
- "Symfony\\Polyfill\\Php81\\": ""
- },
"files": [
"bootstrap.php"
],
- "classmap": [
- "Resources/stubs"
- ]
+ "psr-4": {
+ "Symfony\\Polyfill\\Uuid\\": ""
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -4639,24 +7812,24 @@
],
"authors": [
{
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
+ "name": "Grégoire Pineau",
+ "email": "lyrixx@lyrixx.info"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions",
+ "description": "Symfony polyfill for uuid functions",
"homepage": "https://symfony.com",
"keywords": [
"compatibility",
"polyfill",
"portable",
- "shim"
+ "uuid"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php81/tree/v1.23.0"
+ "source": "https://github.com/symfony/polyfill-uuid/tree/v1.27.0"
},
"funding": [
{
@@ -4672,25 +7845,24 @@
"type": "tidelift"
}
],
- "time": "2021-05-21T13:25:03+00:00"
+ "time": "2022-11-03T14:55:06+00:00"
},
{
"name": "symfony/process",
- "version": "v5.3.7",
+ "version": "v6.3.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/process.git",
- "reference": "38f26c7d6ed535217ea393e05634cb0b244a1967"
+ "reference": "8741e3ed7fe2e91ec099e02446fb86667a0f1628"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/process/zipball/38f26c7d6ed535217ea393e05634cb0b244a1967",
- "reference": "38f26c7d6ed535217ea393e05634cb0b244a1967",
+ "url": "https://api.github.com/repos/symfony/process/zipball/8741e3ed7fe2e91ec099e02446fb86667a0f1628",
+ "reference": "8741e3ed7fe2e91ec099e02446fb86667a0f1628",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "symfony/polyfill-php80": "^1.16"
+ "php": ">=8.1"
},
"type": "library",
"autoload": {
@@ -4718,7 +7890,7 @@
"description": "Executes commands in sub-processes",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/process/tree/v5.3.7"
+ "source": "https://github.com/symfony/process/tree/v6.3.0"
},
"funding": [
{
@@ -4734,213 +7906,50 @@
"type": "tidelift"
}
],
- "time": "2021-08-04T21:20:46+00:00"
+ "time": "2023-05-19T08:06:44+00:00"
},
{
- "name": "symfony/routing",
- "version": "v5.3.7",
+ "name": "symfony/psr-http-message-bridge",
+ "version": "v2.2.0",
"source": {
"type": "git",
- "url": "https://github.com/symfony/routing.git",
- "reference": "be865017746fe869007d94220ad3f5297951811b"
+ "url": "https://github.com/symfony/psr-http-message-bridge.git",
+ "reference": "28a732c05bbad801304ad5a5c674cf2970508993"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/routing/zipball/be865017746fe869007d94220ad3f5297951811b",
- "reference": "be865017746fe869007d94220ad3f5297951811b",
+ "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/28a732c05bbad801304ad5a5c674cf2970508993",
+ "reference": "28a732c05bbad801304ad5a5c674cf2970508993",
"shasum": ""
},
"require": {
"php": ">=7.2.5",
- "symfony/deprecation-contracts": "^2.1",
- "symfony/polyfill-php80": "^1.16"
- },
- "conflict": {
- "doctrine/annotations": "<1.12",
- "symfony/config": "<5.3",
- "symfony/dependency-injection": "<4.4",
- "symfony/yaml": "<4.4"
+ "psr/http-message": "^1.0 || ^2.0",
+ "symfony/http-foundation": "^5.4 || ^6.0"
},
"require-dev": {
- "doctrine/annotations": "^1.12",
- "psr/log": "^1|^2|^3",
- "symfony/config": "^5.3",
- "symfony/dependency-injection": "^4.4|^5.0",
- "symfony/expression-language": "^4.4|^5.0",
- "symfony/http-foundation": "^4.4|^5.0",
- "symfony/yaml": "^4.4|^5.0"
- },
- "suggest": {
- "symfony/config": "For using the all-in-one router or any loader",
- "symfony/expression-language": "For using expression matching",
- "symfony/http-foundation": "For using a Symfony Request object",
- "symfony/yaml": "For using the YAML loader"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Routing\\": ""
- },
- "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": "Maps an HTTP request to a set of configuration variables",
- "homepage": "https://symfony.com",
- "keywords": [
- "router",
- "routing",
- "uri",
- "url"
- ],
- "support": {
- "source": "https://github.com/symfony/routing/tree/v5.3.7"
- },
- "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": "2021-08-04T21:42:42+00:00"
- },
- {
- "name": "symfony/service-contracts",
- "version": "v2.4.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/service-contracts.git",
- "reference": "f040a30e04b57fbcc9c6cbcf4dbaa96bd318b9bb"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/service-contracts/zipball/f040a30e04b57fbcc9c6cbcf4dbaa96bd318b9bb",
- "reference": "f040a30e04b57fbcc9c6cbcf4dbaa96bd318b9bb",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2.5",
- "psr/container": "^1.1"
+ "nyholm/psr7": "^1.1",
+ "psr/log": "^1.1 || ^2 || ^3",
+ "symfony/browser-kit": "^5.4 || ^6.0",
+ "symfony/config": "^5.4 || ^6.0",
+ "symfony/event-dispatcher": "^5.4 || ^6.0",
+ "symfony/framework-bundle": "^5.4 || ^6.0",
+ "symfony/http-kernel": "^5.4 || ^6.0",
+ "symfony/phpunit-bridge": "^6.2"
},
"suggest": {
- "symfony/service-implementation": ""
+ "nyholm/psr7": "For a super lightweight PSR-7/17 implementation"
},
- "type": "library",
+ "type": "symfony-bridge",
"extra": {
"branch-alias": {
- "dev-main": "2.4-dev"
- },
- "thanks": {
- "name": "symfony/contracts",
- "url": "https://github.com/symfony/contracts"
- }
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Contracts\\Service\\": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Generic abstractions related to writing services",
- "homepage": "https://symfony.com",
- "keywords": [
- "abstractions",
- "contracts",
- "decoupling",
- "interfaces",
- "interoperability",
- "standards"
- ],
- "support": {
- "source": "https://github.com/symfony/service-contracts/tree/v2.4.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"
+ "dev-main": "2.2-dev"
}
- ],
- "time": "2021-04-01T10:43:52+00:00"
- },
- {
- "name": "symfony/string",
- "version": "v5.3.7",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/string.git",
- "reference": "8d224396e28d30f81969f083a58763b8b9ceb0a5"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/string/zipball/8d224396e28d30f81969f083a58763b8b9ceb0a5",
- "reference": "8d224396e28d30f81969f083a58763b8b9ceb0a5",
- "shasum": ""
},
- "require": {
- "php": ">=7.2.5",
- "symfony/polyfill-ctype": "~1.8",
- "symfony/polyfill-intl-grapheme": "~1.0",
- "symfony/polyfill-intl-normalizer": "~1.0",
- "symfony/polyfill-mbstring": "~1.0",
- "symfony/polyfill-php80": "~1.15"
- },
- "require-dev": {
- "symfony/error-handler": "^4.4|^5.0",
- "symfony/http-client": "^4.4|^5.0",
- "symfony/translation-contracts": "^1.1|^2",
- "symfony/var-exporter": "^4.4|^5.0"
- },
- "type": "library",
"autoload": {
"psr-4": {
- "Symfony\\Component\\String\\": ""
+ "Symfony\\Bridge\\PsrHttpMessage\\": ""
},
- "files": [
- "Resources/functions.php"
- ],
"exclude-from-classmap": [
"/Tests/"
]
@@ -4951,26 +7960,25 @@
],
"authors": [
{
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
+ "homepage": "http://symfony.com/contributors"
}
],
- "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way",
- "homepage": "https://symfony.com",
+ "description": "PSR HTTP message bridge",
+ "homepage": "http://symfony.com",
"keywords": [
- "grapheme",
- "i18n",
- "string",
- "unicode",
- "utf-8",
- "utf8"
+ "http",
+ "http-message",
+ "psr-17",
+ "psr-7"
],
"support": {
- "source": "https://github.com/symfony/string/tree/v5.3.7"
+ "issues": "https://github.com/symfony/psr-http-message-bridge/issues",
+ "source": "https://github.com/symfony/psr-http-message-bridge/tree/v2.2.0"
},
"funding": [
{
@@ -4986,63 +7994,44 @@
"type": "tidelift"
}
],
- "time": "2021-08-26T08:00:08+00:00"
+ "time": "2023-04-21T08:40:19+00:00"
},
{
- "name": "symfony/translation",
- "version": "v5.3.9",
+ "name": "symfony/routing",
+ "version": "v6.3.1",
"source": {
"type": "git",
- "url": "https://github.com/symfony/translation.git",
- "reference": "6e69f3551c1a3356cf6ea8d019bf039a0f8b6886"
+ "url": "https://github.com/symfony/routing.git",
+ "reference": "d37ad1779c38b8eb71996d17dc13030dcb7f9cf5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/translation/zipball/6e69f3551c1a3356cf6ea8d019bf039a0f8b6886",
- "reference": "6e69f3551c1a3356cf6ea8d019bf039a0f8b6886",
+ "url": "https://api.github.com/repos/symfony/routing/zipball/d37ad1779c38b8eb71996d17dc13030dcb7f9cf5",
+ "reference": "d37ad1779c38b8eb71996d17dc13030dcb7f9cf5",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "symfony/deprecation-contracts": "^2.1",
- "symfony/polyfill-mbstring": "~1.0",
- "symfony/polyfill-php80": "^1.16",
- "symfony/translation-contracts": "^2.3"
+ "php": ">=8.1"
},
"conflict": {
- "symfony/config": "<4.4",
- "symfony/dependency-injection": "<5.0",
- "symfony/http-kernel": "<5.0",
- "symfony/twig-bundle": "<5.0",
- "symfony/yaml": "<4.4"
- },
- "provide": {
- "symfony/translation-implementation": "2.3"
+ "doctrine/annotations": "<1.12",
+ "symfony/config": "<6.2",
+ "symfony/dependency-injection": "<5.4",
+ "symfony/yaml": "<5.4"
},
"require-dev": {
+ "doctrine/annotations": "^1.12|^2",
"psr/log": "^1|^2|^3",
- "symfony/config": "^4.4|^5.0",
- "symfony/console": "^4.4|^5.0",
- "symfony/dependency-injection": "^5.0",
- "symfony/finder": "^4.4|^5.0",
- "symfony/http-kernel": "^5.0",
- "symfony/intl": "^4.4|^5.0",
- "symfony/polyfill-intl-icu": "^1.21",
- "symfony/service-contracts": "^1.1.2|^2",
- "symfony/yaml": "^4.4|^5.0"
- },
- "suggest": {
- "psr/log-implementation": "To use logging capability in translator",
- "symfony/config": "",
- "symfony/yaml": ""
+ "symfony/config": "^6.2",
+ "symfony/dependency-injection": "^5.4|^6.0",
+ "symfony/expression-language": "^5.4|^6.0",
+ "symfony/http-foundation": "^5.4|^6.0",
+ "symfony/yaml": "^5.4|^6.0"
},
"type": "library",
"autoload": {
- "files": [
- "Resources/functions.php"
- ],
"psr-4": {
- "Symfony\\Component\\Translation\\": ""
+ "Symfony\\Component\\Routing\\": ""
},
"exclude-from-classmap": [
"/Tests/"
@@ -5062,10 +8051,16 @@
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Provides tools to internationalize your application",
+ "description": "Maps an HTTP request to a set of configuration variables",
"homepage": "https://symfony.com",
+ "keywords": [
+ "router",
+ "routing",
+ "uri",
+ "url"
+ ],
"support": {
- "source": "https://github.com/symfony/translation/tree/v5.3.9"
+ "source": "https://github.com/symfony/routing/tree/v6.3.1"
},
"funding": [
{
@@ -5081,32 +8076,33 @@
"type": "tidelift"
}
],
- "time": "2021-08-26T08:22:53+00:00"
+ "time": "2023-06-05T15:30:22+00:00"
},
{
- "name": "symfony/translation-contracts",
- "version": "v2.4.0",
+ "name": "symfony/service-contracts",
+ "version": "v3.3.0",
"source": {
"type": "git",
- "url": "https://github.com/symfony/translation-contracts.git",
- "reference": "95c812666f3e91db75385749fe219c5e494c7f95"
+ "url": "https://github.com/symfony/service-contracts.git",
+ "reference": "40da9cc13ec349d9e4966ce18b5fbcd724ab10a4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/95c812666f3e91db75385749fe219c5e494c7f95",
- "reference": "95c812666f3e91db75385749fe219c5e494c7f95",
+ "url": "https://api.github.com/repos/symfony/service-contracts/zipball/40da9cc13ec349d9e4966ce18b5fbcd724ab10a4",
+ "reference": "40da9cc13ec349d9e4966ce18b5fbcd724ab10a4",
"shasum": ""
},
"require": {
- "php": ">=7.2.5"
+ "php": ">=8.1",
+ "psr/container": "^2.0"
},
- "suggest": {
- "symfony/translation-implementation": ""
+ "conflict": {
+ "ext-psr": "<1.1|>=2"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "2.4-dev"
+ "dev-main": "3.4-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -5115,8 +8111,11 @@
},
"autoload": {
"psr-4": {
- "Symfony\\Contracts\\Translation\\": ""
- }
+ "Symfony\\Contracts\\Service\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Test/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -5132,7 +8131,7 @@
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Generic abstractions related to translation",
+ "description": "Generic abstractions related to writing services",
"homepage": "https://symfony.com",
"keywords": [
"abstractions",
@@ -5143,7 +8142,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/translation-contracts/tree/v2.4.0"
+ "source": "https://github.com/symfony/service-contracts/tree/v3.3.0"
},
"funding": [
{
@@ -5159,52 +8158,46 @@
"type": "tidelift"
}
],
- "time": "2021-03-23T23:28:01+00:00"
+ "time": "2023-05-23T14:45:45+00:00"
},
{
- "name": "symfony/var-dumper",
- "version": "v5.3.8",
+ "name": "symfony/string",
+ "version": "v6.3.0",
"source": {
"type": "git",
- "url": "https://github.com/symfony/var-dumper.git",
- "reference": "eaaea4098be1c90c8285543e1356a09c8aa5c8da"
+ "url": "https://github.com/symfony/string.git",
+ "reference": "f2e190ee75ff0f5eced645ec0be5c66fac81f51f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/var-dumper/zipball/eaaea4098be1c90c8285543e1356a09c8aa5c8da",
- "reference": "eaaea4098be1c90c8285543e1356a09c8aa5c8da",
+ "url": "https://api.github.com/repos/symfony/string/zipball/f2e190ee75ff0f5eced645ec0be5c66fac81f51f",
+ "reference": "f2e190ee75ff0f5eced645ec0be5c66fac81f51f",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "symfony/polyfill-mbstring": "~1.0",
- "symfony/polyfill-php80": "^1.16"
+ "php": ">=8.1",
+ "symfony/polyfill-ctype": "~1.8",
+ "symfony/polyfill-intl-grapheme": "~1.0",
+ "symfony/polyfill-intl-normalizer": "~1.0",
+ "symfony/polyfill-mbstring": "~1.0"
},
"conflict": {
- "phpunit/phpunit": "<5.4.3",
- "symfony/console": "<4.4"
+ "symfony/translation-contracts": "<2.5"
},
"require-dev": {
- "ext-iconv": "*",
- "symfony/console": "^4.4|^5.0",
- "symfony/process": "^4.4|^5.0",
- "twig/twig": "^2.13|^3.0.4"
- },
- "suggest": {
- "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).",
- "ext-intl": "To show region name in time zone dump",
- "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script"
+ "symfony/error-handler": "^5.4|^6.0",
+ "symfony/http-client": "^5.4|^6.0",
+ "symfony/intl": "^6.2",
+ "symfony/translation-contracts": "^2.5|^3.0",
+ "symfony/var-exporter": "^5.4|^6.0"
},
- "bin": [
- "Resources/bin/var-dump-server"
- ],
"type": "library",
"autoload": {
"files": [
- "Resources/functions/dump.php"
+ "Resources/functions.php"
],
"psr-4": {
- "Symfony\\Component\\VarDumper\\": ""
+ "Symfony\\Component\\String\\": ""
},
"exclude-from-classmap": [
"/Tests/"
@@ -5224,14 +8217,18 @@
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Provides mechanisms for walking through any arbitrary PHP variable",
+ "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way",
"homepage": "https://symfony.com",
"keywords": [
- "debug",
- "dump"
+ "grapheme",
+ "i18n",
+ "string",
+ "unicode",
+ "utf-8",
+ "utf8"
],
"support": {
- "source": "https://github.com/symfony/var-dumper/tree/v5.3.8"
+ "source": "https://github.com/symfony/string/tree/v6.3.0"
},
"funding": [
{
@@ -5247,167 +8244,66 @@
"type": "tidelift"
}
],
- "time": "2021-09-24T15:59:58+00:00"
+ "time": "2023-03-21T21:06:29+00:00"
},
{
- "name": "tijsverkoyen/css-to-inline-styles",
- "version": "2.2.3",
+ "name": "symfony/translation",
+ "version": "v6.3.0",
"source": {
"type": "git",
- "url": "https://github.com/tijsverkoyen/CssToInlineStyles.git",
- "reference": "b43b05cf43c1b6d849478965062b6ef73e223bb5"
+ "url": "https://github.com/symfony/translation.git",
+ "reference": "f72b2cba8f79dd9d536f534f76874b58ad37876f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/b43b05cf43c1b6d849478965062b6ef73e223bb5",
- "reference": "b43b05cf43c1b6d849478965062b6ef73e223bb5",
+ "url": "https://api.github.com/repos/symfony/translation/zipball/f72b2cba8f79dd9d536f534f76874b58ad37876f",
+ "reference": "f72b2cba8f79dd9d536f534f76874b58ad37876f",
"shasum": ""
},
"require": {
- "ext-dom": "*",
- "ext-libxml": "*",
- "php": "^5.5 || ^7.0 || ^8.0",
- "symfony/css-selector": "^2.7 || ^3.0 || ^4.0 || ^5.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^7.5"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.2.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "TijsVerkoyen\\CssToInlineStyles\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Tijs Verkoyen",
- "email": "css_to_inline_styles@verkoyen.eu",
- "role": "Developer"
- }
- ],
- "description": "CssToInlineStyles is a class that enables you to convert HTML-pages/files into HTML-pages/files with inline styles. This is very useful when you're sending emails.",
- "homepage": "https://github.com/tijsverkoyen/CssToInlineStyles",
- "support": {
- "issues": "https://github.com/tijsverkoyen/CssToInlineStyles/issues",
- "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/2.2.3"
- },
- "time": "2020-07-13T06:12:54+00:00"
- },
- {
- "name": "vlucas/phpdotenv",
- "version": "v5.3.1",
- "source": {
- "type": "git",
- "url": "https://github.com/vlucas/phpdotenv.git",
- "reference": "accaddf133651d4b5cf81a119f25296736ffc850"
+ "php": ">=8.1",
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/translation-contracts": "^2.5|^3.0"
},
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/accaddf133651d4b5cf81a119f25296736ffc850",
- "reference": "accaddf133651d4b5cf81a119f25296736ffc850",
- "shasum": ""
+ "conflict": {
+ "symfony/config": "<5.4",
+ "symfony/console": "<5.4",
+ "symfony/dependency-injection": "<5.4",
+ "symfony/http-client-contracts": "<2.5",
+ "symfony/http-kernel": "<5.4",
+ "symfony/service-contracts": "<2.5",
+ "symfony/twig-bundle": "<5.4",
+ "symfony/yaml": "<5.4"
},
- "require": {
- "ext-pcre": "*",
- "graham-campbell/result-type": "^1.0.2",
- "php": "^7.1.3 || ^8.0",
- "phpoption/phpoption": "^1.8",
- "symfony/polyfill-ctype": "^1.23",
- "symfony/polyfill-mbstring": "^1.23.1",
- "symfony/polyfill-php80": "^1.23.1"
+ "provide": {
+ "symfony/translation-implementation": "2.3|3.0"
},
"require-dev": {
- "bamarni/composer-bin-plugin": "^1.4.1",
- "ext-filter": "*",
- "phpunit/phpunit": "^7.5.20 || ^8.5.21 || ^9.5.10"
- },
- "suggest": {
- "ext-filter": "Required to use the boolean validator."
+ "nikic/php-parser": "^4.13",
+ "psr/log": "^1|^2|^3",
+ "symfony/config": "^5.4|^6.0",
+ "symfony/console": "^5.4|^6.0",
+ "symfony/dependency-injection": "^5.4|^6.0",
+ "symfony/finder": "^5.4|^6.0",
+ "symfony/http-client-contracts": "^2.5|^3.0",
+ "symfony/http-kernel": "^5.4|^6.0",
+ "symfony/intl": "^5.4|^6.0",
+ "symfony/polyfill-intl-icu": "^1.21",
+ "symfony/routing": "^5.4|^6.0",
+ "symfony/service-contracts": "^2.5|^3",
+ "symfony/yaml": "^5.4|^6.0"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "5.3-dev"
- }
- },
"autoload": {
+ "files": [
+ "Resources/functions.php"
+ ],
"psr-4": {
- "Dotenv\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Graham Campbell",
- "email": "hello@gjcampbell.co.uk"
- },
- {
- "name": "Vance Lucas",
- "email": "vance@vancelucas.com"
- }
- ],
- "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.",
- "keywords": [
- "dotenv",
- "env",
- "environment"
- ],
- "support": {
- "issues": "https://github.com/vlucas/phpdotenv/issues",
- "source": "https://github.com/vlucas/phpdotenv/tree/v5.3.1"
- },
- "funding": [
- {
- "url": "https://github.com/GrahamCampbell",
- "type": "github"
+ "Symfony\\Component\\Translation\\": ""
},
- {
- "url": "https://tidelift.com/funding/github/packagist/vlucas/phpdotenv",
- "type": "tidelift"
- }
- ],
- "time": "2021-10-02T19:24:42+00:00"
- },
- {
- "name": "voku/portable-ascii",
- "version": "1.5.6",
- "source": {
- "type": "git",
- "url": "https://github.com/voku/portable-ascii.git",
- "reference": "80953678b19901e5165c56752d087fc11526017c"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/voku/portable-ascii/zipball/80953678b19901e5165c56752d087fc11526017c",
- "reference": "80953678b19901e5165c56752d087fc11526017c",
- "shasum": ""
- },
- "require": {
- "php": ">=7.0.0"
- },
- "require-dev": {
- "phpunit/phpunit": "~6.0 || ~7.0 || ~9.0"
- },
- "suggest": {
- "ext-intl": "Use Intl for transliterator_transliterate() support"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "voku\\": "src/voku/"
- }
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -5415,80 +8311,69 @@
],
"authors": [
{
- "name": "Lars Moelleken",
- "homepage": "http://www.moelleken.org/"
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
}
],
- "description": "Portable ASCII library - performance optimized (ascii) string functions for php.",
- "homepage": "https://github.com/voku/portable-ascii",
- "keywords": [
- "ascii",
- "clean",
- "php"
- ],
+ "description": "Provides tools to internationalize your application",
+ "homepage": "https://symfony.com",
"support": {
- "issues": "https://github.com/voku/portable-ascii/issues",
- "source": "https://github.com/voku/portable-ascii/tree/1.5.6"
+ "source": "https://github.com/symfony/translation/tree/v6.3.0"
},
"funding": [
{
- "url": "https://www.paypal.me/moelleken",
+ "url": "https://symfony.com/sponsor",
"type": "custom"
},
{
- "url": "https://github.com/voku",
+ "url": "https://github.com/fabpot",
"type": "github"
},
{
- "url": "https://opencollective.com/portable-ascii",
- "type": "open_collective"
- },
- {
- "url": "https://www.patreon.com/voku",
- "type": "patreon"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/voku/portable-ascii",
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
- "time": "2020-11-12T00:07:28+00:00"
+ "time": "2023-05-19T12:46:45+00:00"
},
{
- "name": "webmozart/assert",
- "version": "1.10.0",
+ "name": "symfony/translation-contracts",
+ "version": "v3.3.0",
"source": {
"type": "git",
- "url": "https://github.com/webmozarts/assert.git",
- "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25"
+ "url": "https://github.com/symfony/translation-contracts.git",
+ "reference": "02c24deb352fb0d79db5486c0c79905a85e37e86"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/webmozarts/assert/zipball/6964c76c7804814a842473e0c8fd15bab0f18e25",
- "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25",
+ "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/02c24deb352fb0d79db5486c0c79905a85e37e86",
+ "reference": "02c24deb352fb0d79db5486c0c79905a85e37e86",
"shasum": ""
},
"require": {
- "php": "^7.2 || ^8.0",
- "symfony/polyfill-ctype": "^1.8"
- },
- "conflict": {
- "phpstan/phpstan": "<0.12.20",
- "vimeo/psalm": "<4.6.1 || 4.6.2"
- },
- "require-dev": {
- "phpunit/phpunit": "^8.5.13"
+ "php": ">=8.1"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.10-dev"
+ "dev-main": "3.4-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
}
},
"autoload": {
"psr-4": {
- "Webmozart\\Assert\\": "src/"
- }
+ "Symfony\\Contracts\\Translation\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Test/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -5496,56 +8381,72 @@
],
"authors": [
{
- "name": "Bernhard Schussek",
- "email": "bschussek@gmail.com"
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
}
],
- "description": "Assertions to validate method input/output with nice error messages.",
+ "description": "Generic abstractions related to translation",
+ "homepage": "https://symfony.com",
"keywords": [
- "assert",
- "check",
- "validate"
+ "abstractions",
+ "contracts",
+ "decoupling",
+ "interfaces",
+ "interoperability",
+ "standards"
],
"support": {
- "issues": "https://github.com/webmozarts/assert/issues",
- "source": "https://github.com/webmozarts/assert/tree/1.10.0"
+ "source": "https://github.com/symfony/translation-contracts/tree/v3.3.0"
},
- "time": "2021-03-09T10:59:23+00:00"
- }
- ],
- "packages-dev": [
+ "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": "2023-05-30T17:17:10+00:00"
+ },
{
- "name": "composer/pcre",
- "version": "1.0.1",
+ "name": "symfony/uid",
+ "version": "v6.3.0",
"source": {
"type": "git",
- "url": "https://github.com/composer/pcre.git",
- "reference": "67a32d7d6f9f560b726ab25a061b38ff3a80c560"
+ "url": "https://github.com/symfony/uid.git",
+ "reference": "01b0f20b1351d997711c56f1638f7a8c3061e384"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/composer/pcre/zipball/67a32d7d6f9f560b726ab25a061b38ff3a80c560",
- "reference": "67a32d7d6f9f560b726ab25a061b38ff3a80c560",
+ "url": "https://api.github.com/repos/symfony/uid/zipball/01b0f20b1351d997711c56f1638f7a8c3061e384",
+ "reference": "01b0f20b1351d997711c56f1638f7a8c3061e384",
"shasum": ""
},
"require": {
- "php": "^5.3.2 || ^7.0 || ^8.0"
+ "php": ">=8.1",
+ "symfony/polyfill-uuid": "^1.15"
},
"require-dev": {
- "phpstan/phpstan": "^1.3",
- "phpstan/phpstan-strict-rules": "^1.1",
- "symfony/phpunit-bridge": "^4.2 || ^5"
+ "symfony/console": "^5.4|^6.0"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "1.x-dev"
- }
- },
"autoload": {
"psr-4": {
- "Composer\\Pcre\\": "src"
- }
+ "Symfony\\Component\\Uid\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -5553,69 +8454,86 @@
],
"authors": [
{
- "name": "Jordi Boggiano",
- "email": "j.boggiano@seld.be",
- "homepage": "http://seld.be"
+ "name": "Grégoire Pineau",
+ "email": "lyrixx@lyrixx.info"
+ },
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
}
],
- "description": "PCRE wrapping library that offers type-safe preg_* replacements.",
+ "description": "Provides an object-oriented API to generate and represent UIDs",
+ "homepage": "https://symfony.com",
"keywords": [
- "PCRE",
- "preg",
- "regex",
- "regular expression"
+ "UID",
+ "ulid",
+ "uuid"
],
"support": {
- "issues": "https://github.com/composer/pcre/issues",
- "source": "https://github.com/composer/pcre/tree/1.0.1"
+ "source": "https://github.com/symfony/uid/tree/v6.3.0"
},
"funding": [
{
- "url": "https://packagist.com",
+ "url": "https://symfony.com/sponsor",
"type": "custom"
},
{
- "url": "https://github.com/composer",
+ "url": "https://github.com/fabpot",
"type": "github"
},
{
- "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
- "time": "2022-01-21T20:24:37+00:00"
+ "time": "2023-04-08T07:25:02+00:00"
},
{
- "name": "composer/semver",
- "version": "3.3.2",
+ "name": "symfony/var-dumper",
+ "version": "v6.3.1",
"source": {
"type": "git",
- "url": "https://github.com/composer/semver.git",
- "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9"
+ "url": "https://github.com/symfony/var-dumper.git",
+ "reference": "c81268d6960ddb47af17391a27d222bd58cf0515"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/composer/semver/zipball/3953f23262f2bff1919fc82183ad9acb13ff62c9",
- "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9",
+ "url": "https://api.github.com/repos/symfony/var-dumper/zipball/c81268d6960ddb47af17391a27d222bd58cf0515",
+ "reference": "c81268d6960ddb47af17391a27d222bd58cf0515",
"shasum": ""
},
"require": {
- "php": "^5.3.2 || ^7.0 || ^8.0"
+ "php": ">=8.1",
+ "symfony/polyfill-mbstring": "~1.0"
+ },
+ "conflict": {
+ "symfony/console": "<5.4"
},
"require-dev": {
- "phpstan/phpstan": "^1.4",
- "symfony/phpunit-bridge": "^4.2 || ^5"
+ "ext-iconv": "*",
+ "symfony/console": "^5.4|^6.0",
+ "symfony/process": "^5.4|^6.0",
+ "symfony/uid": "^5.4|^6.0",
+ "twig/twig": "^2.13|^3.0.4"
},
+ "bin": [
+ "Resources/bin/var-dump-server"
+ ],
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "3.x-dev"
- }
- },
"autoload": {
+ "files": [
+ "Resources/functions/dump.php"
+ ],
"psr-4": {
- "Composer\\Semver\\": "src"
- }
+ "Symfony\\Component\\VarDumper\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -5623,78 +8541,67 @@
],
"authors": [
{
- "name": "Nils Adermann",
- "email": "naderman@naderman.de",
- "homepage": "http://www.naderman.de"
- },
- {
- "name": "Jordi Boggiano",
- "email": "j.boggiano@seld.be",
- "homepage": "http://seld.be"
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
},
{
- "name": "Rob Bast",
- "email": "rob.bast@gmail.com",
- "homepage": "http://robbast.nl"
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
}
],
- "description": "Semver library that offers utilities, version constraint parsing and validation.",
+ "description": "Provides mechanisms for walking through any arbitrary PHP variable",
+ "homepage": "https://symfony.com",
"keywords": [
- "semantic",
- "semver",
- "validation",
- "versioning"
+ "debug",
+ "dump"
],
"support": {
- "irc": "irc://irc.freenode.org/composer",
- "issues": "https://github.com/composer/semver/issues",
- "source": "https://github.com/composer/semver/tree/3.3.2"
+ "source": "https://github.com/symfony/var-dumper/tree/v6.3.1"
},
"funding": [
{
- "url": "https://packagist.com",
+ "url": "https://symfony.com/sponsor",
"type": "custom"
},
{
- "url": "https://github.com/composer",
+ "url": "https://github.com/fabpot",
"type": "github"
},
{
- "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
- "time": "2022-04-01T19:23:25+00:00"
+ "time": "2023-06-21T12:08:28+00:00"
},
{
- "name": "composer/xdebug-handler",
- "version": "2.0.5",
+ "name": "symfony/var-exporter",
+ "version": "v6.3.0",
"source": {
"type": "git",
- "url": "https://github.com/composer/xdebug-handler.git",
- "reference": "9e36aeed4616366d2b690bdce11f71e9178c579a"
+ "url": "https://github.com/symfony/var-exporter.git",
+ "reference": "db5416d04269f2827d8c54331ba4cfa42620d350"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/9e36aeed4616366d2b690bdce11f71e9178c579a",
- "reference": "9e36aeed4616366d2b690bdce11f71e9178c579a",
+ "url": "https://api.github.com/repos/symfony/var-exporter/zipball/db5416d04269f2827d8c54331ba4cfa42620d350",
+ "reference": "db5416d04269f2827d8c54331ba4cfa42620d350",
"shasum": ""
},
"require": {
- "composer/pcre": "^1",
- "php": "^5.3.2 || ^7.0 || ^8.0",
- "psr/log": "^1 || ^2 || ^3"
+ "php": ">=8.1"
},
"require-dev": {
- "phpstan/phpstan": "^1.0",
- "phpstan/phpstan-strict-rules": "^1.1",
- "symfony/phpunit-bridge": "^4.2 || ^5.0 || ^6.0"
+ "symfony/var-dumper": "^5.4|^6.0"
},
"type": "library",
"autoload": {
"psr-4": {
- "Composer\\XdebugHandler\\": "src"
- }
+ "Symfony\\Component\\VarExporter\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -5702,143 +8609,143 @@
],
"authors": [
{
- "name": "John Stevenson",
- "email": "john-stevenson@blueyonder.co.uk"
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
}
],
- "description": "Restarts a process without Xdebug.",
+ "description": "Allows exporting any serializable PHP data structure to plain PHP code",
+ "homepage": "https://symfony.com",
"keywords": [
- "Xdebug",
- "performance"
+ "clone",
+ "construct",
+ "export",
+ "hydrate",
+ "instantiate",
+ "lazy-loading",
+ "proxy",
+ "serialize"
],
"support": {
- "irc": "irc://irc.freenode.org/composer",
- "issues": "https://github.com/composer/xdebug-handler/issues",
- "source": "https://github.com/composer/xdebug-handler/tree/2.0.5"
+ "source": "https://github.com/symfony/var-exporter/tree/v6.3.0"
},
"funding": [
{
- "url": "https://packagist.com",
+ "url": "https://symfony.com/sponsor",
"type": "custom"
},
{
- "url": "https://github.com/composer",
+ "url": "https://github.com/fabpot",
"type": "github"
},
{
- "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
"type": "tidelift"
}
],
- "time": "2022-02-24T20:20:32+00:00"
+ "time": "2023-04-21T08:48:44+00:00"
},
{
- "name": "dealerdirect/phpcodesniffer-composer-installer",
- "version": "v0.7.2",
+ "name": "tijsverkoyen/css-to-inline-styles",
+ "version": "2.2.6",
"source": {
"type": "git",
- "url": "https://github.com/Dealerdirect/phpcodesniffer-composer-installer.git",
- "reference": "1c968e542d8843d7cd71de3c5c9c3ff3ad71a1db"
+ "url": "https://github.com/tijsverkoyen/CssToInlineStyles.git",
+ "reference": "c42125b83a4fa63b187fdf29f9c93cb7733da30c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Dealerdirect/phpcodesniffer-composer-installer/zipball/1c968e542d8843d7cd71de3c5c9c3ff3ad71a1db",
- "reference": "1c968e542d8843d7cd71de3c5c9c3ff3ad71a1db",
+ "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/c42125b83a4fa63b187fdf29f9c93cb7733da30c",
+ "reference": "c42125b83a4fa63b187fdf29f9c93cb7733da30c",
"shasum": ""
},
"require": {
- "composer-plugin-api": "^1.0 || ^2.0",
- "php": ">=5.3",
- "squizlabs/php_codesniffer": "^2.0 || ^3.1.0 || ^4.0"
+ "ext-dom": "*",
+ "ext-libxml": "*",
+ "php": "^5.5 || ^7.0 || ^8.0",
+ "symfony/css-selector": "^2.7 || ^3.0 || ^4.0 || ^5.0 || ^6.0"
},
"require-dev": {
- "composer/composer": "*",
- "php-parallel-lint/php-parallel-lint": "^1.3.1",
- "phpcompatibility/php-compatibility": "^9.0"
+ "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^7.5 || ^8.5.21 || ^9.5.10"
},
- "type": "composer-plugin",
+ "type": "library",
"extra": {
- "class": "Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\Plugin"
+ "branch-alias": {
+ "dev-master": "2.2.x-dev"
+ }
},
"autoload": {
"psr-4": {
- "Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\": "src/"
+ "TijsVerkoyen\\CssToInlineStyles\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "MIT"
+ "BSD-3-Clause"
],
"authors": [
{
- "name": "Franck Nijhof",
- "email": "franck.nijhof@dealerdirect.com",
- "homepage": "http://www.frenck.nl",
- "role": "Developer / IT Manager"
- },
- {
- "name": "Contributors",
- "homepage": "https://github.com/Dealerdirect/phpcodesniffer-composer-installer/graphs/contributors"
+ "name": "Tijs Verkoyen",
+ "email": "css_to_inline_styles@verkoyen.eu",
+ "role": "Developer"
}
],
- "description": "PHP_CodeSniffer Standards Composer Installer Plugin",
- "homepage": "http://www.dealerdirect.com",
- "keywords": [
- "PHPCodeSniffer",
- "PHP_CodeSniffer",
- "code quality",
- "codesniffer",
- "composer",
- "installer",
- "phpcbf",
- "phpcs",
- "plugin",
- "qa",
- "quality",
- "standard",
- "standards",
- "style guide",
- "stylecheck",
- "tests"
- ],
+ "description": "CssToInlineStyles is a class that enables you to convert HTML-pages/files into HTML-pages/files with inline styles. This is very useful when you're sending emails.",
+ "homepage": "https://github.com/tijsverkoyen/CssToInlineStyles",
"support": {
- "issues": "https://github.com/dealerdirect/phpcodesniffer-composer-installer/issues",
- "source": "https://github.com/dealerdirect/phpcodesniffer-composer-installer"
+ "issues": "https://github.com/tijsverkoyen/CssToInlineStyles/issues",
+ "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/2.2.6"
},
- "time": "2022-02-04T12:51:07+00:00"
+ "time": "2023-01-03T09:29:04+00:00"
},
{
- "name": "doctrine/annotations",
- "version": "1.13.3",
+ "name": "vladimir-yuldashev/laravel-queue-rabbitmq",
+ "version": "13.3.2",
"source": {
"type": "git",
- "url": "https://github.com/doctrine/annotations.git",
- "reference": "648b0343343565c4a056bfc8392201385e8d89f0"
+ "url": "https://github.com/vyuldashev/laravel-queue-rabbitmq.git",
+ "reference": "9f6b340a0a93ff5099eb0c2640791287435b0be0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/annotations/zipball/648b0343343565c4a056bfc8392201385e8d89f0",
- "reference": "648b0343343565c4a056bfc8392201385e8d89f0",
+ "url": "https://api.github.com/repos/vyuldashev/laravel-queue-rabbitmq/zipball/9f6b340a0a93ff5099eb0c2640791287435b0be0",
+ "reference": "9f6b340a0a93ff5099eb0c2640791287435b0be0",
"shasum": ""
},
"require": {
- "doctrine/lexer": "1.*",
- "ext-tokenizer": "*",
- "php": "^7.1 || ^8.0",
- "psr/cache": "^1 || ^2 || ^3"
+ "ext-json": "*",
+ "illuminate/queue": "^9.0|^10.0",
+ "php": "^8.0",
+ "php-amqplib/php-amqplib": "^v3.2"
},
"require-dev": {
- "doctrine/cache": "^1.11 || ^2.0",
- "doctrine/coding-standard": "^6.0 || ^8.1",
- "phpstan/phpstan": "^1.4.10 || ^1.8.0",
- "phpunit/phpunit": "^7.5 || ^8.0 || ^9.1.5",
- "symfony/cache": "^4.4 || ^5.2",
- "vimeo/psalm": "^4.10"
+ "laravel/framework": "^9.0|^10.0",
+ "laravel/horizon": "^5.0",
+ "laravel/pint": "^1.2",
+ "mockery/mockery": "^1.0",
+ "orchestra/testbench": "^7.0|^8.0",
+ "phpunit/phpunit": "^9.3"
+ },
+ "suggest": {
+ "ext-pcntl": "Required to use all features of the queue consumer."
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "13.0-dev"
+ },
+ "laravel": {
+ "providers": [
+ "VladimirYuldashev\\LaravelQueueRabbitMQ\\LaravelQueueRabbitMQServiceProvider"
+ ]
+ }
+ },
"autoload": {
"psr-4": {
- "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations"
+ "VladimirYuldashev\\LaravelQueueRabbitMQ\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -5847,275 +8754,266 @@
],
"authors": [
{
- "name": "Guilherme Blanco",
- "email": "guilhermeblanco@gmail.com"
- },
- {
- "name": "Roman Borschel",
- "email": "roman@code-factory.org"
- },
- {
- "name": "Benjamin Eberlei",
- "email": "kontakt@beberlei.de"
- },
- {
- "name": "Jonathan Wage",
- "email": "jonwage@gmail.com"
- },
- {
- "name": "Johannes Schmitt",
- "email": "schmittjoh@gmail.com"
+ "name": "Vladimir Yuldashev",
+ "email": "misterio92@gmail.com"
}
],
- "description": "Docblock Annotations Parser",
- "homepage": "https://www.doctrine-project.org/projects/annotations.html",
- "keywords": [
- "annotations",
- "docblock",
- "parser"
- ],
+ "description": "RabbitMQ driver for Laravel Queue. Supports Laravel Horizon.",
"support": {
- "issues": "https://github.com/doctrine/annotations/issues",
- "source": "https://github.com/doctrine/annotations/tree/1.13.3"
+ "issues": "https://github.com/vyuldashev/laravel-queue-rabbitmq/issues",
+ "source": "https://github.com/vyuldashev/laravel-queue-rabbitmq/tree/13.3.2"
},
- "time": "2022-07-02T10:48:51+00:00"
+ "time": "2023-06-15T18:20:31+00:00"
},
{
- "name": "doctrine/instantiator",
- "version": "1.4.0",
+ "name": "vlucas/phpdotenv",
+ "version": "v5.5.0",
"source": {
"type": "git",
- "url": "https://github.com/doctrine/instantiator.git",
- "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b"
+ "url": "https://github.com/vlucas/phpdotenv.git",
+ "reference": "1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/instantiator/zipball/d56bf6102915de5702778fe20f2de3b2fe570b5b",
- "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b",
+ "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7",
+ "reference": "1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7",
"shasum": ""
},
"require": {
- "php": "^7.1 || ^8.0"
+ "ext-pcre": "*",
+ "graham-campbell/result-type": "^1.0.2",
+ "php": "^7.1.3 || ^8.0",
+ "phpoption/phpoption": "^1.8",
+ "symfony/polyfill-ctype": "^1.23",
+ "symfony/polyfill-mbstring": "^1.23.1",
+ "symfony/polyfill-php80": "^1.23.1"
},
"require-dev": {
- "doctrine/coding-standard": "^8.0",
- "ext-pdo": "*",
- "ext-phar": "*",
- "phpbench/phpbench": "^0.13 || 1.0.0-alpha2",
- "phpstan/phpstan": "^0.12",
- "phpstan/phpstan-phpunit": "^0.12",
- "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0"
+ "bamarni/composer-bin-plugin": "^1.4.1",
+ "ext-filter": "*",
+ "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.5-dev"
+ }
+ },
"autoload": {
"psr-4": {
- "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
+ "Dotenv\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "MIT"
+ "BSD-3-Clause"
],
"authors": [
{
- "name": "Marco Pivetta",
- "email": "ocramius@gmail.com",
- "homepage": "https://ocramius.github.io/"
+ "name": "Graham Campbell",
+ "email": "hello@gjcampbell.co.uk",
+ "homepage": "https://github.com/GrahamCampbell"
+ },
+ {
+ "name": "Vance Lucas",
+ "email": "vance@vancelucas.com",
+ "homepage": "https://github.com/vlucas"
}
],
- "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
- "homepage": "https://www.doctrine-project.org/projects/instantiator.html",
+ "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.",
"keywords": [
- "constructor",
- "instantiate"
+ "dotenv",
+ "env",
+ "environment"
],
"support": {
- "issues": "https://github.com/doctrine/instantiator/issues",
- "source": "https://github.com/doctrine/instantiator/tree/1.4.0"
+ "issues": "https://github.com/vlucas/phpdotenv/issues",
+ "source": "https://github.com/vlucas/phpdotenv/tree/v5.5.0"
},
"funding": [
{
- "url": "https://www.doctrine-project.org/sponsorship.html",
- "type": "custom"
- },
- {
- "url": "https://www.patreon.com/phpdoctrine",
- "type": "patreon"
+ "url": "https://github.com/GrahamCampbell",
+ "type": "github"
},
{
- "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator",
+ "url": "https://tidelift.com/funding/github/packagist/vlucas/phpdotenv",
"type": "tidelift"
}
],
- "time": "2020-11-10T18:47:58+00:00"
+ "time": "2022-10-16T01:01:54+00:00"
},
{
- "name": "facade/flare-client-php",
- "version": "1.9.1",
+ "name": "voku/portable-ascii",
+ "version": "2.0.1",
"source": {
"type": "git",
- "url": "https://github.com/facade/flare-client-php.git",
- "reference": "b2adf1512755637d0cef4f7d1b54301325ac78ed"
+ "url": "https://github.com/voku/portable-ascii.git",
+ "reference": "b56450eed252f6801410d810c8e1727224ae0743"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/facade/flare-client-php/zipball/b2adf1512755637d0cef4f7d1b54301325ac78ed",
- "reference": "b2adf1512755637d0cef4f7d1b54301325ac78ed",
+ "url": "https://api.github.com/repos/voku/portable-ascii/zipball/b56450eed252f6801410d810c8e1727224ae0743",
+ "reference": "b56450eed252f6801410d810c8e1727224ae0743",
"shasum": ""
},
"require": {
- "facade/ignition-contracts": "~1.0",
- "illuminate/pipeline": "^5.5|^6.0|^7.0|^8.0",
- "php": "^7.1|^8.0",
- "symfony/http-foundation": "^3.3|^4.1|^5.0",
- "symfony/mime": "^3.4|^4.0|^5.1",
- "symfony/var-dumper": "^3.4|^4.0|^5.0"
+ "php": ">=7.0.0"
},
"require-dev": {
- "friendsofphp/php-cs-fixer": "^2.14",
- "phpunit/phpunit": "^7.5.16",
- "spatie/phpunit-snapshot-assertions": "^2.0"
+ "phpunit/phpunit": "~6.0 || ~7.0 || ~9.0"
},
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0-dev"
- }
+ "suggest": {
+ "ext-intl": "Use Intl for transliterator_transliterate() support"
},
+ "type": "library",
"autoload": {
- "psr-4": {
- "Facade\\FlareClient\\": "src"
- },
- "files": [
- "src/helpers.php"
- ]
+ "psr-4": {
+ "voku\\": "src/voku/"
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
- "description": "Send PHP errors to Flare",
- "homepage": "https://github.com/facade/flare-client-php",
+ "authors": [
+ {
+ "name": "Lars Moelleken",
+ "homepage": "http://www.moelleken.org/"
+ }
+ ],
+ "description": "Portable ASCII library - performance optimized (ascii) string functions for php.",
+ "homepage": "https://github.com/voku/portable-ascii",
"keywords": [
- "exception",
- "facade",
- "flare",
- "reporting"
+ "ascii",
+ "clean",
+ "php"
],
"support": {
- "issues": "https://github.com/facade/flare-client-php/issues",
- "source": "https://github.com/facade/flare-client-php/tree/1.9.1"
+ "issues": "https://github.com/voku/portable-ascii/issues",
+ "source": "https://github.com/voku/portable-ascii/tree/2.0.1"
},
"funding": [
{
- "url": "https://github.com/spatie",
+ "url": "https://www.paypal.me/moelleken",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/voku",
"type": "github"
+ },
+ {
+ "url": "https://opencollective.com/portable-ascii",
+ "type": "open_collective"
+ },
+ {
+ "url": "https://www.patreon.com/voku",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/voku/portable-ascii",
+ "type": "tidelift"
}
],
- "time": "2021-09-13T12:16:46+00:00"
+ "time": "2022-03-08T17:03:00+00:00"
},
{
- "name": "facade/ignition",
- "version": "2.14.0",
+ "name": "webmozart/assert",
+ "version": "1.11.0",
"source": {
"type": "git",
- "url": "https://github.com/facade/ignition.git",
- "reference": "c6126e291bd44ad3fe482537a145fc70e3320598"
+ "url": "https://github.com/webmozarts/assert.git",
+ "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/facade/ignition/zipball/c6126e291bd44ad3fe482537a145fc70e3320598",
- "reference": "c6126e291bd44ad3fe482537a145fc70e3320598",
+ "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991",
+ "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991",
"shasum": ""
},
"require": {
- "ext-json": "*",
- "ext-mbstring": "*",
- "facade/flare-client-php": "^1.9.1",
- "facade/ignition-contracts": "^1.0.2",
- "illuminate/support": "^7.0|^8.0",
- "monolog/monolog": "^2.0",
- "php": "^7.2.5|^8.0",
- "symfony/console": "^5.0",
- "symfony/var-dumper": "^5.0"
+ "ext-ctype": "*",
+ "php": "^7.2 || ^8.0"
},
- "require-dev": {
- "friendsofphp/php-cs-fixer": "^2.14",
- "mockery/mockery": "^1.3",
- "orchestra/testbench": "^5.0|^6.0",
- "psalm/plugin-laravel": "^1.2"
+ "conflict": {
+ "phpstan/phpstan": "<0.12.20",
+ "vimeo/psalm": "<4.6.1 || 4.6.2"
},
- "suggest": {
- "laravel/telescope": "^3.1"
+ "require-dev": {
+ "phpunit/phpunit": "^8.5.13"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.x-dev"
- },
- "laravel": {
- "providers": [
- "Facade\\Ignition\\IgnitionServiceProvider"
- ],
- "aliases": {
- "Flare": "Facade\\Ignition\\Facades\\Flare"
- }
+ "dev-master": "1.10-dev"
}
},
"autoload": {
"psr-4": {
- "Facade\\Ignition\\": "src"
- },
- "files": [
- "src/helpers.php"
- ]
+ "Webmozart\\Assert\\": "src/"
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
- "description": "A beautiful error page for Laravel applications.",
- "homepage": "https://github.com/facade/ignition",
+ "authors": [
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@gmail.com"
+ }
+ ],
+ "description": "Assertions to validate method input/output with nice error messages.",
"keywords": [
- "error",
- "flare",
- "laravel",
- "page"
+ "assert",
+ "check",
+ "validate"
],
"support": {
- "docs": "https://flareapp.io/docs/ignition-for-laravel/introduction",
- "forum": "https://twitter.com/flareappio",
- "issues": "https://github.com/facade/ignition/issues",
- "source": "https://github.com/facade/ignition"
+ "issues": "https://github.com/webmozarts/assert/issues",
+ "source": "https://github.com/webmozarts/assert/tree/1.11.0"
},
- "time": "2021-10-01T12:58:45+00:00"
- },
+ "time": "2022-06-03T18:03:27+00:00"
+ }
+ ],
+ "packages-dev": [
{
- "name": "facade/ignition-contracts",
- "version": "1.0.2",
+ "name": "doctrine/instantiator",
+ "version": "2.0.0",
"source": {
"type": "git",
- "url": "https://github.com/facade/ignition-contracts.git",
- "reference": "3c921a1cdba35b68a7f0ccffc6dffc1995b18267"
+ "url": "https://github.com/doctrine/instantiator.git",
+ "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/facade/ignition-contracts/zipball/3c921a1cdba35b68a7f0ccffc6dffc1995b18267",
- "reference": "3c921a1cdba35b68a7f0ccffc6dffc1995b18267",
+ "url": "https://api.github.com/repos/doctrine/instantiator/zipball/c6222283fa3f4ac679f8b9ced9a4e23f163e80d0",
+ "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0",
"shasum": ""
},
"require": {
- "php": "^7.3|^8.0"
+ "php": "^8.1"
},
"require-dev": {
- "friendsofphp/php-cs-fixer": "^v2.15.8",
- "phpunit/phpunit": "^9.3.11",
- "vimeo/psalm": "^3.17.1"
+ "doctrine/coding-standard": "^11",
+ "ext-pdo": "*",
+ "ext-phar": "*",
+ "phpbench/phpbench": "^1.2",
+ "phpstan/phpstan": "^1.9.4",
+ "phpstan/phpstan-phpunit": "^1.3",
+ "phpunit/phpunit": "^9.5.27",
+ "vimeo/psalm": "^5.4"
},
"type": "library",
"autoload": {
"psr-4": {
- "Facade\\IgnitionContracts\\": "src"
+ "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -6124,53 +9022,68 @@
],
"authors": [
{
- "name": "Freek Van der Herten",
- "email": "freek@spatie.be",
- "homepage": "https://flareapp.io",
- "role": "Developer"
+ "name": "Marco Pivetta",
+ "email": "ocramius@gmail.com",
+ "homepage": "https://ocramius.github.io/"
}
],
- "description": "Solution contracts for Ignition",
- "homepage": "https://github.com/facade/ignition-contracts",
+ "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
+ "homepage": "https://www.doctrine-project.org/projects/instantiator.html",
"keywords": [
- "contracts",
- "flare",
- "ignition"
+ "constructor",
+ "instantiate"
],
"support": {
- "issues": "https://github.com/facade/ignition-contracts/issues",
- "source": "https://github.com/facade/ignition-contracts/tree/1.0.2"
+ "issues": "https://github.com/doctrine/instantiator/issues",
+ "source": "https://github.com/doctrine/instantiator/tree/2.0.0"
},
- "time": "2020-10-16T08:27:54+00:00"
+ "funding": [
+ {
+ "url": "https://www.doctrine-project.org/sponsorship.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://www.patreon.com/phpdoctrine",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-12-30T00:23:10+00:00"
},
{
"name": "fakerphp/faker",
- "version": "v1.16.0",
+ "version": "v1.23.0",
"source": {
"type": "git",
"url": "https://github.com/FakerPHP/Faker.git",
- "reference": "271d384d216e5e5c468a6b28feedf95d49f83b35"
+ "reference": "e3daa170d00fde61ea7719ef47bb09bb8f1d9b01"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/271d384d216e5e5c468a6b28feedf95d49f83b35",
- "reference": "271d384d216e5e5c468a6b28feedf95d49f83b35",
+ "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/e3daa170d00fde61ea7719ef47bb09bb8f1d9b01",
+ "reference": "e3daa170d00fde61ea7719ef47bb09bb8f1d9b01",
"shasum": ""
},
"require": {
- "php": "^7.1 || ^8.0",
+ "php": "^7.4 || ^8.0",
"psr/container": "^1.0 || ^2.0",
- "symfony/deprecation-contracts": "^2.2"
+ "symfony/deprecation-contracts": "^2.2 || ^3.0"
},
"conflict": {
"fzaninotto/faker": "*"
},
"require-dev": {
"bamarni/composer-bin-plugin": "^1.4.1",
+ "doctrine/persistence": "^1.3 || ^2.0",
"ext-intl": "*",
- "symfony/phpunit-bridge": "^4.4 || ^5.2"
+ "phpunit/phpunit": "^9.5.26",
+ "symfony/phpunit-bridge": "^5.4.16"
},
"suggest": {
+ "doctrine/orm": "Required to use Faker\\ORM\\Doctrine",
"ext-curl": "Required by Faker\\Provider\\Image to download images.",
"ext-dom": "Required by Faker\\Provider\\HtmlLorem for generating random HTML.",
"ext-iconv": "Required by Faker\\Provider\\ru_RU\\Text::realText() for generating real Russian text.",
@@ -6179,7 +9092,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "v1.16-dev"
+ "dev-main": "v1.21-dev"
}
},
"autoload": {
@@ -6204,22 +9117,22 @@
],
"support": {
"issues": "https://github.com/FakerPHP/Faker/issues",
- "source": "https://github.com/FakerPHP/Faker/tree/v1.16.0"
+ "source": "https://github.com/FakerPHP/Faker/tree/v1.23.0"
},
- "time": "2021-09-06T14:53:37+00:00"
+ "time": "2023-06-12T08:44:38+00:00"
},
{
"name": "filp/whoops",
- "version": "2.14.4",
+ "version": "2.15.2",
"source": {
"type": "git",
"url": "https://github.com/filp/whoops.git",
- "reference": "f056f1fe935d9ed86e698905a957334029899895"
+ "reference": "aac9304c5ed61bf7b1b7a6064bf9806ab842ce73"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/filp/whoops/zipball/f056f1fe935d9ed86e698905a957334029899895",
- "reference": "f056f1fe935d9ed86e698905a957334029899895",
+ "url": "https://api.github.com/repos/filp/whoops/zipball/aac9304c5ed61bf7b1b7a6064bf9806ab842ce73",
+ "reference": "aac9304c5ed61bf7b1b7a6064bf9806ab842ce73",
"shasum": ""
},
"require": {
@@ -6269,7 +9182,7 @@
],
"support": {
"issues": "https://github.com/filp/whoops/issues",
- "source": "https://github.com/filp/whoops/tree/2.14.4"
+ "source": "https://github.com/filp/whoops/tree/2.15.2"
},
"funding": [
{
@@ -6277,96 +9190,7 @@
"type": "github"
}
],
- "time": "2021-10-03T12:00:00+00:00"
- },
- {
- "name": "friendsofphp/php-cs-fixer",
- "version": "v3.4.0",
- "source": {
- "type": "git",
- "url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git",
- "reference": "47177af1cfb9dab5d1cc4daf91b7179c2efe7fad"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/47177af1cfb9dab5d1cc4daf91b7179c2efe7fad",
- "reference": "47177af1cfb9dab5d1cc4daf91b7179c2efe7fad",
- "shasum": ""
- },
- "require": {
- "composer/semver": "^3.2",
- "composer/xdebug-handler": "^2.0",
- "doctrine/annotations": "^1.12",
- "ext-json": "*",
- "ext-tokenizer": "*",
- "php": "^7.2.5 || ^8.0",
- "php-cs-fixer/diff": "^2.0",
- "symfony/console": "^4.4.20 || ^5.1.3 || ^6.0",
- "symfony/event-dispatcher": "^4.4.20 || ^5.0 || ^6.0",
- "symfony/filesystem": "^4.4.20 || ^5.0 || ^6.0",
- "symfony/finder": "^4.4.20 || ^5.0 || ^6.0",
- "symfony/options-resolver": "^4.4.20 || ^5.0 || ^6.0",
- "symfony/polyfill-mbstring": "^1.23",
- "symfony/polyfill-php80": "^1.23",
- "symfony/polyfill-php81": "^1.23",
- "symfony/process": "^4.4.20 || ^5.0 || ^6.0",
- "symfony/stopwatch": "^4.4.20 || ^5.0 || ^6.0"
- },
- "require-dev": {
- "justinrainbow/json-schema": "^5.2",
- "keradus/cli-executor": "^1.5",
- "mikey179/vfsstream": "^1.6.8",
- "php-coveralls/php-coveralls": "^2.5.2",
- "php-cs-fixer/accessible-object": "^1.1",
- "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.2",
- "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.2.1",
- "phpspec/prophecy": "^1.15",
- "phpspec/prophecy-phpunit": "^1.1 || ^2.0",
- "phpunit/phpunit": "^8.5.21 || ^9.5",
- "phpunitgoodpractices/polyfill": "^1.5",
- "phpunitgoodpractices/traits": "^1.9.1",
- "symfony/phpunit-bridge": "^5.2.4 || ^6.0",
- "symfony/yaml": "^4.4.20 || ^5.0 || ^6.0"
- },
- "suggest": {
- "ext-dom": "For handling output formats in XML",
- "ext-mbstring": "For handling non-UTF8 characters."
- },
- "bin": [
- "php-cs-fixer"
- ],
- "type": "application",
- "autoload": {
- "psr-4": {
- "PhpCsFixer\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Dariusz Rumiński",
- "email": "dariusz.ruminski@gmail.com"
- }
- ],
- "description": "A tool to automatically fix PHP code style",
- "support": {
- "issues": "https://github.com/FriendsOfPHP/PHP-CS-Fixer/issues",
- "source": "https://github.com/FriendsOfPHP/PHP-CS-Fixer/tree/v3.4.0"
- },
- "funding": [
- {
- "url": "https://github.com/keradus",
- "type": "github"
- }
- ],
- "time": "2021-12-11T16:25:08+00:00"
+ "time": "2023-04-12T12:00:00+00:00"
},
{
"name": "hamcrest/hamcrest-php",
@@ -6420,39 +9244,44 @@
"time": "2020-07-09T08:09:16+00:00"
},
{
- "name": "justinrainbow/json-schema",
- "version": "5.2.12",
+ "name": "laravel/pint",
+ "version": "v1.10.3",
"source": {
"type": "git",
- "url": "https://github.com/justinrainbow/json-schema.git",
- "reference": "ad87d5a5ca981228e0e205c2bc7dfb8e24559b60"
+ "url": "https://github.com/laravel/pint.git",
+ "reference": "c472786bca01e4812a9bb7933b23edfc5b6877b7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/ad87d5a5ca981228e0e205c2bc7dfb8e24559b60",
- "reference": "ad87d5a5ca981228e0e205c2bc7dfb8e24559b60",
+ "url": "https://api.github.com/repos/laravel/pint/zipball/c472786bca01e4812a9bb7933b23edfc5b6877b7",
+ "reference": "c472786bca01e4812a9bb7933b23edfc5b6877b7",
"shasum": ""
},
"require": {
- "php": ">=5.3.3"
+ "ext-json": "*",
+ "ext-mbstring": "*",
+ "ext-tokenizer": "*",
+ "ext-xml": "*",
+ "php": "^8.1.0"
},
"require-dev": {
- "friendsofphp/php-cs-fixer": "~2.2.20||~2.15.1",
- "json-schema/json-schema-test-suite": "1.2.0",
- "phpunit/phpunit": "^4.8.35"
+ "friendsofphp/php-cs-fixer": "^3.18.0",
+ "illuminate/view": "^10.5.1",
+ "laravel-zero/framework": "^10.0.2",
+ "mockery/mockery": "^1.5.1",
+ "nunomaduro/larastan": "^2.5.1",
+ "nunomaduro/termwind": "^1.15.1",
+ "pestphp/pest": "^2.4.0"
},
"bin": [
- "bin/validate-json"
+ "builds/pint"
],
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "5.0.x-dev"
- }
- },
+ "type": "project",
"autoload": {
"psr-4": {
- "JsonSchema\\": "src/JsonSchema/"
+ "App\\": "app/",
+ "Database\\Seeders\\": "database/seeders/",
+ "Database\\Factories\\": "database/factories/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -6461,53 +9290,49 @@
],
"authors": [
{
- "name": "Bruno Prieto Reis",
- "email": "bruno.p.reis@gmail.com"
- },
- {
- "name": "Justin Rainbow",
- "email": "justin.rainbow@gmail.com"
- },
- {
- "name": "Igor Wiedler",
- "email": "igor@wiedler.ch"
- },
- {
- "name": "Robert Schönthal",
- "email": "seroscho@googlemail.com"
+ "name": "Nuno Maduro",
+ "email": "enunomaduro@gmail.com"
}
],
- "description": "A library to validate a json schema.",
- "homepage": "https://github.com/justinrainbow/json-schema",
+ "description": "An opinionated code formatter for PHP.",
+ "homepage": "https://laravel.com",
"keywords": [
- "json",
- "schema"
+ "format",
+ "formatter",
+ "lint",
+ "linter",
+ "php"
],
"support": {
- "issues": "https://github.com/justinrainbow/json-schema/issues",
- "source": "https://github.com/justinrainbow/json-schema/tree/5.2.12"
+ "issues": "https://github.com/laravel/pint/issues",
+ "source": "https://github.com/laravel/pint"
},
- "time": "2022-04-13T08:02:27+00:00"
+ "time": "2023-06-20T15:55:03+00:00"
},
{
"name": "laravel/sail",
- "version": "v1.11.0",
+ "version": "v1.23.0",
"source": {
"type": "git",
"url": "https://github.com/laravel/sail.git",
- "reference": "5c91d33949e43500dc1d49abc5d7c2ffb6c96f44"
+ "reference": "a2e046f748e87d3ef8b2b381e0e5c5a11f34e46b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/sail/zipball/5c91d33949e43500dc1d49abc5d7c2ffb6c96f44",
- "reference": "5c91d33949e43500dc1d49abc5d7c2ffb6c96f44",
+ "url": "https://api.github.com/repos/laravel/sail/zipball/a2e046f748e87d3ef8b2b381e0e5c5a11f34e46b",
+ "reference": "a2e046f748e87d3ef8b2b381e0e5c5a11f34e46b",
"shasum": ""
},
"require": {
- "illuminate/console": "^8.0|^9.0",
- "illuminate/contracts": "^8.0|^9.0",
- "illuminate/support": "^8.0|^9.0",
- "php": "^7.3|^8.0"
+ "illuminate/console": "^8.0|^9.0|^10.0",
+ "illuminate/contracts": "^8.0|^9.0|^10.0",
+ "illuminate/support": "^8.0|^9.0|^10.0",
+ "php": "^8.0",
+ "symfony/yaml": "^6.0"
+ },
+ "require-dev": {
+ "orchestra/testbench": "^6.0|^7.0|^8.0",
+ "phpstan/phpstan": "^1.10"
},
"bin": [
"bin/sail"
@@ -6544,125 +9369,54 @@
"laravel"
],
"support": {
- "issues": "https://github.com/laravel/sail/issues",
- "source": "https://github.com/laravel/sail"
- },
- "time": "2021-10-01T13:32:17+00:00"
- },
- {
- "name": "laravel/telescope",
- "version": "v4.9.0",
- "source": {
- "type": "git",
- "url": "https://github.com/laravel/telescope.git",
- "reference": "d0cf8d6a54a1831dbe189a1f194e8271a4a5435a"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/laravel/telescope/zipball/d0cf8d6a54a1831dbe189a1f194e8271a4a5435a",
- "reference": "d0cf8d6a54a1831dbe189a1f194e8271a4a5435a",
- "shasum": ""
- },
- "require": {
- "ext-json": "*",
- "laravel/framework": "^8.37|^9.0",
- "php": "^7.3|^8.0",
- "symfony/var-dumper": "^5.0|^6.0"
- },
- "require-dev": {
- "ext-gd": "*",
- "guzzlehttp/guzzle": "^6.0|^7.0",
- "orchestra/testbench": "^6.0|^7.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "4.x-dev"
- },
- "laravel": {
- "providers": [
- "Laravel\\Telescope\\TelescopeServiceProvider"
- ]
- }
- },
- "autoload": {
- "psr-4": {
- "Laravel\\Telescope\\": "src/",
- "Laravel\\Telescope\\Database\\Factories\\": "database/factories/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Taylor Otwell",
- "email": "taylor@laravel.com"
- },
- {
- "name": "Mohamed Said",
- "email": "mohamed@laravel.com"
- }
- ],
- "description": "An elegant debug assistant for the Laravel framework.",
- "keywords": [
- "debugging",
- "laravel",
- "monitoring"
- ],
- "support": {
- "issues": "https://github.com/laravel/telescope/issues",
- "source": "https://github.com/laravel/telescope/tree/v4.9.0"
+ "issues": "https://github.com/laravel/sail/issues",
+ "source": "https://github.com/laravel/sail"
},
- "time": "2022-04-19T15:48:51+00:00"
+ "time": "2023-06-16T21:20:12+00:00"
},
{
- "name": "league/container",
- "version": "4.2.0",
+ "name": "laravel/telescope",
+ "version": "v4.15.0",
"source": {
"type": "git",
- "url": "https://github.com/thephpleague/container.git",
- "reference": "375d13cb828649599ef5d48a339c4af7a26cd0ab"
+ "url": "https://github.com/laravel/telescope.git",
+ "reference": "572a19b4c9b09295848de9a2352737a756a0fb05"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/container/zipball/375d13cb828649599ef5d48a339c4af7a26cd0ab",
- "reference": "375d13cb828649599ef5d48a339c4af7a26cd0ab",
+ "url": "https://api.github.com/repos/laravel/telescope/zipball/572a19b4c9b09295848de9a2352737a756a0fb05",
+ "reference": "572a19b4c9b09295848de9a2352737a756a0fb05",
"shasum": ""
},
"require": {
- "php": "^7.2 || ^8.0",
- "psr/container": "^1.1 || ^2.0"
- },
- "provide": {
- "psr/container-implementation": "^1.0"
- },
- "replace": {
- "orno/di": "~2.0"
+ "ext-json": "*",
+ "laravel/framework": "^8.37|^9.0|^10.0",
+ "php": "^8.0",
+ "symfony/var-dumper": "^5.0|^6.0"
},
"require-dev": {
- "nette/php-generator": "^3.4",
- "nikic/php-parser": "^4.10",
- "phpstan/phpstan": "^0.12.47",
- "phpunit/phpunit": "^8.5.17",
- "roave/security-advisories": "dev-latest",
- "scrutinizer/ocular": "^1.8",
- "squizlabs/php_codesniffer": "^3.6"
+ "ext-gd": "*",
+ "guzzlehttp/guzzle": "^6.0|^7.0",
+ "laravel/octane": "^1.4",
+ "orchestra/testbench": "^6.0|^7.0|^8.0",
+ "phpstan/phpstan": "^1.10",
+ "phpunit/phpunit": "^9.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.x-dev",
- "dev-4.x": "4.x-dev",
- "dev-3.x": "3.x-dev",
- "dev-2.x": "2.x-dev",
- "dev-1.x": "1.x-dev"
+ "dev-master": "4.x-dev"
+ },
+ "laravel": {
+ "providers": [
+ "Laravel\\Telescope\\TelescopeServiceProvider"
+ ]
}
},
"autoload": {
"psr-4": {
- "League\\Container\\": "src"
+ "Laravel\\Telescope\\": "src/",
+ "Laravel\\Telescope\\Database\\Factories\\": "database/factories/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -6671,68 +9425,66 @@
],
"authors": [
{
- "name": "Phil Bennett",
- "email": "mail@philbennett.co.uk",
- "role": "Developer"
+ "name": "Taylor Otwell",
+ "email": "taylor@laravel.com"
+ },
+ {
+ "name": "Mohamed Said",
+ "email": "mohamed@laravel.com"
}
],
- "description": "A fast and intuitive dependency injection container.",
- "homepage": "https://github.com/thephpleague/container",
+ "description": "An elegant debug assistant for the Laravel framework.",
"keywords": [
- "container",
- "dependency",
- "di",
- "injection",
- "league",
- "provider",
- "service"
+ "debugging",
+ "laravel",
+ "monitoring"
],
"support": {
- "issues": "https://github.com/thephpleague/container/issues",
- "source": "https://github.com/thephpleague/container/tree/4.2.0"
+ "issues": "https://github.com/laravel/telescope/issues",
+ "source": "https://github.com/laravel/telescope/tree/v4.15.0"
},
- "funding": [
- {
- "url": "https://github.com/philipobenito",
- "type": "github"
- }
- ],
- "time": "2021-11-16T10:29:06+00:00"
+ "time": "2023-06-08T13:57:22+00:00"
},
{
"name": "mockery/mockery",
- "version": "1.4.4",
+ "version": "1.6.2",
"source": {
"type": "git",
"url": "https://github.com/mockery/mockery.git",
- "reference": "e01123a0e847d52d186c5eb4b9bf58b0c6d00346"
+ "reference": "13a7fa2642c76c58fa2806ef7f565344c817a191"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/mockery/mockery/zipball/e01123a0e847d52d186c5eb4b9bf58b0c6d00346",
- "reference": "e01123a0e847d52d186c5eb4b9bf58b0c6d00346",
+ "url": "https://api.github.com/repos/mockery/mockery/zipball/13a7fa2642c76c58fa2806ef7f565344c817a191",
+ "reference": "13a7fa2642c76c58fa2806ef7f565344c817a191",
"shasum": ""
},
"require": {
"hamcrest/hamcrest-php": "^2.0.1",
"lib-pcre": ">=7.0",
- "php": "^7.3 || ^8.0"
+ "php": "^7.4 || ^8.0"
},
"conflict": {
"phpunit/phpunit": "<8.0"
},
"require-dev": {
- "phpunit/phpunit": "^8.5 || ^9.3"
+ "phpunit/phpunit": "^8.5 || ^9.3",
+ "psalm/plugin-phpunit": "^0.18",
+ "vimeo/psalm": "^5.9"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.4.x-dev"
+ "dev-main": "1.6.x-dev"
}
},
"autoload": {
- "psr-0": {
- "Mockery": "library/"
+ "files": [
+ "library/helpers.php",
+ "library/Mockery.php"
+ ],
+ "psr-4": {
+ "Mockery\\": "library/Mockery"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -6767,43 +9519,44 @@
],
"support": {
"issues": "https://github.com/mockery/mockery/issues",
- "source": "https://github.com/mockery/mockery/tree/1.4.4"
+ "source": "https://github.com/mockery/mockery/tree/1.6.2"
},
- "time": "2021-09-13T15:28:59+00:00"
+ "time": "2023-06-07T09:07:52+00:00"
},
{
"name": "myclabs/deep-copy",
- "version": "1.10.2",
+ "version": "1.11.1",
"source": {
"type": "git",
"url": "https://github.com/myclabs/DeepCopy.git",
- "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220"
+ "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/776f831124e9c62e1a2c601ecc52e776d8bb7220",
- "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220",
+ "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c",
+ "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c",
"shasum": ""
},
"require": {
"php": "^7.1 || ^8.0"
},
- "replace": {
- "myclabs/deep-copy": "self.version"
+ "conflict": {
+ "doctrine/collections": "<1.6.8",
+ "doctrine/common": "<2.13.3 || >=3,<3.2.2"
},
"require-dev": {
- "doctrine/collections": "^1.0",
- "doctrine/common": "^2.6",
- "phpunit/phpunit": "^7.1"
+ "doctrine/collections": "^1.6.8",
+ "doctrine/common": "^2.13.3 || ^3.2.2",
+ "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13"
},
"type": "library",
"autoload": {
- "psr-4": {
- "DeepCopy\\": "src/DeepCopy/"
- },
"files": [
"src/DeepCopy/deep_copy.php"
- ]
+ ],
+ "psr-4": {
+ "DeepCopy\\": "src/DeepCopy/"
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -6819,7 +9572,7 @@
],
"support": {
"issues": "https://github.com/myclabs/DeepCopy/issues",
- "source": "https://github.com/myclabs/DeepCopy/tree/1.10.2"
+ "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1"
},
"funding": [
{
@@ -6827,41 +9580,42 @@
"type": "tidelift"
}
],
- "time": "2020-11-13T09:40:50+00:00"
+ "time": "2023-03-08T13:26:56+00:00"
},
{
"name": "nunomaduro/collision",
- "version": "v5.10.0",
+ "version": "v6.4.0",
"source": {
"type": "git",
"url": "https://github.com/nunomaduro/collision.git",
- "reference": "3004cfa49c022183395eabc6d0e5207dfe498d00"
+ "reference": "f05978827b9343cba381ca05b8c7deee346b6015"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nunomaduro/collision/zipball/3004cfa49c022183395eabc6d0e5207dfe498d00",
- "reference": "3004cfa49c022183395eabc6d0e5207dfe498d00",
+ "url": "https://api.github.com/repos/nunomaduro/collision/zipball/f05978827b9343cba381ca05b8c7deee346b6015",
+ "reference": "f05978827b9343cba381ca05b8c7deee346b6015",
"shasum": ""
},
"require": {
- "facade/ignition-contracts": "^1.0",
- "filp/whoops": "^2.14.3",
- "php": "^7.3 || ^8.0",
- "symfony/console": "^5.0"
+ "filp/whoops": "^2.14.5",
+ "php": "^8.0.0",
+ "symfony/console": "^6.0.2"
},
"require-dev": {
- "brianium/paratest": "^6.1",
- "fideloper/proxy": "^4.4.1",
- "fruitcake/laravel-cors": "^2.0.3",
- "laravel/framework": "8.x-dev",
- "nunomaduro/larastan": "^0.6.2",
- "nunomaduro/mock-final-classes": "^1.0",
- "orchestra/testbench": "^6.0",
- "phpstan/phpstan": "^0.12.64",
- "phpunit/phpunit": "^9.5.0"
+ "brianium/paratest": "^6.4.1",
+ "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.7",
+ "phpunit/phpunit": "^9.5.23",
+ "spatie/ignition": "^1.4.1"
},
"type": "library",
"extra": {
+ "branch-alias": {
+ "dev-develop": "6.x-dev"
+ },
"laravel": {
"providers": [
"NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider"
@@ -6902,7 +9656,7 @@
},
"funding": [
{
- "url": "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66BYDWAT92N6L",
+ "url": "https://www.paypal.com/paypalme/enunomaduro",
"type": "custom"
},
{
@@ -6914,71 +9668,160 @@
"type": "patreon"
}
],
- "time": "2021-09-20T15:06:32+00:00"
+ "time": "2023-01-03T12:54:54+00:00"
},
{
- "name": "nunomaduro/phpinsights",
- "version": "v2.4.0",
+ "name": "nunomaduro/larastan",
+ "version": "v2.6.4",
"source": {
"type": "git",
- "url": "https://github.com/nunomaduro/phpinsights.git",
- "reference": "4697df8300741268e75dad4f523a468734375deb"
+ "url": "https://github.com/nunomaduro/larastan.git",
+ "reference": "6c5e8820f3db6397546f3ce48520af9d312aed27"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nunomaduro/phpinsights/zipball/4697df8300741268e75dad4f523a468734375deb",
- "reference": "4697df8300741268e75dad4f523a468734375deb",
+ "url": "https://api.github.com/repos/nunomaduro/larastan/zipball/6c5e8820f3db6397546f3ce48520af9d312aed27",
+ "reference": "6c5e8820f3db6397546f3ce48520af9d312aed27",
"shasum": ""
},
"require": {
- "composer/semver": "^3.3",
- "ext-iconv": "*",
"ext-json": "*",
- "ext-mbstring": "*",
- "ext-tokenizer": "*",
- "friendsofphp/php-cs-fixer": "^3.0.0",
- "justinrainbow/json-schema": "^5.1",
- "league/container": "^3.2|^4.2",
- "php": "^7.4 || ^8.0",
- "php-parallel-lint/php-parallel-lint": "^1.3",
- "phploc/phploc": "^5.0|^6.0|^7.0",
- "psr/container": "^1.0|^2.0",
- "psr/simple-cache": "^1.0|^2.0|^3.0",
- "slevomat/coding-standard": "^7.0.8",
- "squizlabs/php_codesniffer": "^3.5",
- "symfony/cache": "^4.4|^5.0|^6.0",
- "symfony/console": "^4.2|^5.0|^6.0",
- "symfony/finder": "^4.2|^5.0|^6.0",
- "symfony/http-client": "^4.3|^5.0|^6.0"
+ "illuminate/console": "^9.47.0 || ^10.0.0",
+ "illuminate/container": "^9.47.0 || ^10.0.0",
+ "illuminate/contracts": "^9.47.0 || ^10.0.0",
+ "illuminate/database": "^9.47.0 || ^10.0.0",
+ "illuminate/http": "^9.47.0 || ^10.0.0",
+ "illuminate/pipeline": "^9.47.0 || ^10.0.0",
+ "illuminate/support": "^9.47.0 || ^10.0.0",
+ "php": "^8.0.2",
+ "phpmyadmin/sql-parser": "^5.6.0",
+ "phpstan/phpstan": "~1.10.6"
},
"require-dev": {
- "ergebnis/phpstan-rules": "^0.15.0",
- "illuminate/console": "^5.8|^6.0|^7.0|^8.0|^9.0",
- "illuminate/support": "^5.8|^6.0|^7.0|^8.0|^9.0",
- "mockery/mockery": "^1.0",
- "phpstan/phpstan-strict-rules": "^0.12",
- "phpunit/phpunit": "^8.0|^9.0",
- "rector/rector": "0.11.56",
- "symfony/var-dumper": "^4.2|^5.0|^6.0",
- "thecodingmachine/phpstan-strict-rules": "^0.12.0"
+ "nikic/php-parser": "^4.15.2",
+ "orchestra/testbench": "^7.19.0 || ^8.0.0",
+ "phpunit/phpunit": "^9.5.27"
},
"suggest": {
- "ext-simplexml": "It is needed for the checkstyle formatter"
+ "orchestra/testbench": "Using Larastan for analysing a package needs Testbench"
+ },
+ "type": "phpstan-extension",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0-dev"
+ },
+ "phpstan": {
+ "includes": [
+ "extension.neon"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "NunoMaduro\\Larastan\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nuno Maduro",
+ "email": "enunomaduro@gmail.com"
+ }
+ ],
+ "description": "Larastan - Discover bugs in your code without running it. A phpstan/phpstan wrapper for Laravel",
+ "keywords": [
+ "PHPStan",
+ "code analyse",
+ "code analysis",
+ "larastan",
+ "laravel",
+ "package",
+ "php",
+ "static analysis"
+ ],
+ "support": {
+ "issues": "https://github.com/nunomaduro/larastan/issues",
+ "source": "https://github.com/nunomaduro/larastan/tree/v2.6.4"
+ },
+ "funding": [
+ {
+ "url": "https://www.paypal.com/paypalme/enunomaduro",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/canvural",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/nunomaduro",
+ "type": "github"
+ },
+ {
+ "url": "https://www.patreon.com/nunomaduro",
+ "type": "patreon"
+ }
+ ],
+ "time": "2023-07-29T12:13:13+00:00"
+ },
+ {
+ "name": "pestphp/pest",
+ "version": "v1.22.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/pestphp/pest.git",
+ "reference": "9f6a88232733f9d1e33f49531340f447bd255c9e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/pestphp/pest/zipball/9f6a88232733f9d1e33f49531340f447bd255c9e",
+ "reference": "9f6a88232733f9d1e33f49531340f447bd255c9e",
+ "shasum": ""
+ },
+ "require": {
+ "nunomaduro/collision": "^5.11.0|^6.4.0",
+ "pestphp/pest-plugin": "^1.1.0",
+ "php": "^7.3 || ^8.0",
+ "phpunit/phpunit": "^9.6.5"
+ },
+ "require-dev": {
+ "illuminate/console": "^8.83.27",
+ "illuminate/support": "^8.83.27",
+ "laravel/dusk": "^6.25.2",
+ "pestphp/pest-dev-tools": "^1.0.0",
+ "pestphp/pest-plugin-parallel": "^1.2.1"
},
"bin": [
- "bin/phpinsights"
+ "bin/pest"
],
"type": "library",
"extra": {
+ "branch-alias": {
+ "dev-1.x": "1.x-dev"
+ },
+ "pest": {
+ "plugins": [
+ "Pest\\Plugins\\Coverage",
+ "Pest\\Plugins\\Init",
+ "Pest\\Plugins\\Version",
+ "Pest\\Plugins\\Environment"
+ ]
+ },
"laravel": {
"providers": [
- "NunoMaduro\\PhpInsights\\Application\\Adapters\\Laravel\\InsightsServiceProvider"
+ "Pest\\Laravel\\PestServiceProvider"
]
}
},
"autoload": {
+ "files": [
+ "src/Functions.php",
+ "src/Pest.php"
+ ],
"psr-4": {
- "NunoMaduro\\PhpInsights\\": "src"
+ "Pest\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -6991,18 +9834,167 @@
"email": "enunomaduro@gmail.com"
}
],
- "description": "Instant PHP quality checks from your console.",
+ "description": "An elegant PHP Testing Framework.",
"keywords": [
- "Insights",
- "code",
- "console",
+ "framework",
+ "pest",
+ "php",
+ "test",
+ "testing",
+ "unit"
+ ],
+ "support": {
+ "issues": "https://github.com/pestphp/pest/issues",
+ "source": "https://github.com/pestphp/pest/tree/v1.22.6"
+ },
+ "funding": [
+ {
+ "url": "https://www.paypal.com/paypalme/enunomaduro",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/lukeraymonddowning",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/nunomaduro",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/olivernybroe",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/owenvoke",
+ "type": "github"
+ },
+ {
+ "url": "https://www.patreon.com/nunomaduro",
+ "type": "patreon"
+ }
+ ],
+ "time": "2023-03-17T23:24:14+00:00"
+ },
+ {
+ "name": "pestphp/pest-plugin",
+ "version": "v1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/pestphp/pest-plugin.git",
+ "reference": "606c5f79c6a339b49838ffbee0151ca519efe378"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/pestphp/pest-plugin/zipball/606c5f79c6a339b49838ffbee0151ca519efe378",
+ "reference": "606c5f79c6a339b49838ffbee0151ca519efe378",
+ "shasum": ""
+ },
+ "require": {
+ "composer-plugin-api": "^1.1.0 || ^2.0.0",
+ "php": "^7.3 || ^8.0"
+ },
+ "conflict": {
+ "pestphp/pest": "<1.0"
+ },
+ "require-dev": {
+ "composer/composer": "^2.4.2",
+ "pestphp/pest": "^1.22.1",
+ "pestphp/pest-dev-tools": "^1.0.0"
+ },
+ "type": "composer-plugin",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.x-dev"
+ },
+ "class": "Pest\\Plugin\\Manager"
+ },
+ "autoload": {
+ "psr-4": {
+ "Pest\\Plugin\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "The Pest plugin manager",
+ "keywords": [
+ "framework",
+ "manager",
+ "pest",
+ "php",
+ "plugin",
+ "test",
+ "testing",
+ "unit"
+ ],
+ "support": {
+ "source": "https://github.com/pestphp/pest-plugin/tree/v1.1.0"
+ },
+ "funding": [
+ {
+ "url": "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66BYDWAT92N6L",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/nunomaduro",
+ "type": "github"
+ },
+ {
+ "url": "https://www.patreon.com/nunomaduro",
+ "type": "patreon"
+ }
+ ],
+ "time": "2022-09-18T13:18:17+00:00"
+ },
+ {
+ "name": "pestphp/pest-plugin-laravel",
+ "version": "v1.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/pestphp/pest-plugin-laravel.git",
+ "reference": "61935be0deae1732a3ead780fbd9277aa93e2f6d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/pestphp/pest-plugin-laravel/zipball/61935be0deae1732a3ead780fbd9277aa93e2f6d",
+ "reference": "61935be0deae1732a3ead780fbd9277aa93e2f6d",
+ "shasum": ""
+ },
+ "require": {
+ "laravel/framework": "^7.30.6 || ^8.83.27 || ^9.47.0 || ^10.0.0",
+ "pestphp/pest": "^1.22.1",
+ "php": "^7.3 || ^8.0"
+ },
+ "require-dev": {
+ "orchestra/testbench": "^5.20.0 || ^6.25.0 || ^7.7.0 || ^8.0",
+ "pestphp/pest-dev-tools": "^1.0.0"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "src/Autoload.php"
+ ],
+ "psr-4": {
+ "Pest\\Laravel\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "The Pest Laravel Plugin",
+ "keywords": [
+ "framework",
+ "laravel",
+ "pest",
"php",
- "quality",
- "source"
+ "test",
+ "testing",
+ "unit"
],
"support": {
- "issues": "https://github.com/nunomaduro/phpinsights/issues",
- "source": "https://github.com/nunomaduro/phpinsights/tree/v2.4.0"
+ "source": "https://github.com/pestphp/pest-plugin-laravel/tree/v1.4.0"
},
"funding": [
{
@@ -7013,16 +10005,12 @@
"url": "https://github.com/nunomaduro",
"type": "github"
},
- {
- "url": "https://github.com/olivernybroe",
- "type": "github"
- },
{
"url": "https://www.patreon.com/nunomaduro",
"type": "patreon"
}
],
- "time": "2022-05-27T14:45:21+00:00"
+ "time": "2023-01-13T16:54:07+00:00"
},
{
"name": "phar-io/manifest",
@@ -7086,16 +10074,16 @@
},
{
"name": "phar-io/version",
- "version": "3.1.0",
+ "version": "3.2.1",
"source": {
"type": "git",
"url": "https://github.com/phar-io/version.git",
- "reference": "bae7c545bef187884426f042434e561ab1ddb182"
+ "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phar-io/version/zipball/bae7c545bef187884426f042434e561ab1ddb182",
- "reference": "bae7c545bef187884426f042434e561ab1ddb182",
+ "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74",
+ "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74",
"shasum": ""
},
"require": {
@@ -7131,470 +10119,178 @@
"description": "Library for handling version information and constraints",
"support": {
"issues": "https://github.com/phar-io/version/issues",
- "source": "https://github.com/phar-io/version/tree/3.1.0"
- },
- "time": "2021-02-23T14:00:09+00:00"
- },
- {
- "name": "php-cs-fixer/diff",
- "version": "v2.0.2",
- "source": {
- "type": "git",
- "url": "https://github.com/PHP-CS-Fixer/diff.git",
- "reference": "29dc0d507e838c4580d018bd8b5cb412474f7ec3"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/PHP-CS-Fixer/diff/zipball/29dc0d507e838c4580d018bd8b5cb412474f7ec3",
- "reference": "29dc0d507e838c4580d018bd8b5cb412474f7ec3",
- "shasum": ""
- },
- "require": {
- "php": "^5.6 || ^7.0 || ^8.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^5.7.23 || ^6.4.3 || ^7.0",
- "symfony/process": "^3.3"
- },
- "type": "library",
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- },
- {
- "name": "Kore Nordmann",
- "email": "mail@kore-nordmann.de"
- }
- ],
- "description": "sebastian/diff v3 backport support for PHP 5.6+",
- "homepage": "https://github.com/PHP-CS-Fixer",
- "keywords": [
- "diff"
- ],
- "support": {
- "issues": "https://github.com/PHP-CS-Fixer/diff/issues",
- "source": "https://github.com/PHP-CS-Fixer/diff/tree/v2.0.2"
+ "source": "https://github.com/phar-io/version/tree/3.2.1"
},
- "time": "2020-10-14T08:32:19+00:00"
+ "time": "2022-02-21T01:04:05+00:00"
},
{
- "name": "php-parallel-lint/php-parallel-lint",
- "version": "v1.3.2",
+ "name": "phpmyadmin/sql-parser",
+ "version": "5.8.0",
"source": {
"type": "git",
- "url": "https://github.com/php-parallel-lint/PHP-Parallel-Lint.git",
- "reference": "6483c9832e71973ed29cf71bd6b3f4fde438a9de"
+ "url": "https://github.com/phpmyadmin/sql-parser.git",
+ "reference": "db1b3069b5dbc220d393d67ff911e0ae76732755"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-parallel-lint/PHP-Parallel-Lint/zipball/6483c9832e71973ed29cf71bd6b3f4fde438a9de",
- "reference": "6483c9832e71973ed29cf71bd6b3f4fde438a9de",
+ "url": "https://api.github.com/repos/phpmyadmin/sql-parser/zipball/db1b3069b5dbc220d393d67ff911e0ae76732755",
+ "reference": "db1b3069b5dbc220d393d67ff911e0ae76732755",
"shasum": ""
},
"require": {
- "ext-json": "*",
- "php": ">=5.3.0"
+ "php": "^7.2 || ^8.0",
+ "symfony/polyfill-mbstring": "^1.3",
+ "symfony/polyfill-php80": "^1.16"
},
- "replace": {
- "grogy/php-parallel-lint": "*",
- "jakub-onderka/php-parallel-lint": "*"
+ "conflict": {
+ "phpmyadmin/motranslator": "<3.0"
},
"require-dev": {
- "nette/tester": "^1.3 || ^2.0",
- "php-parallel-lint/php-console-highlighter": "0.* || ^1.0",
- "squizlabs/php_codesniffer": "^3.6"
+ "phpbench/phpbench": "^1.1",
+ "phpmyadmin/coding-standard": "^3.0",
+ "phpmyadmin/motranslator": "^4.0 || ^5.0",
+ "phpstan/extension-installer": "^1.1",
+ "phpstan/phpstan": "^1.9.12",
+ "phpstan/phpstan-phpunit": "^1.3.3",
+ "phpunit/php-code-coverage": "*",
+ "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
+ "psalm/plugin-phpunit": "^0.16.1",
+ "vimeo/psalm": "^4.11",
+ "zumba/json-serializer": "^3.0"
},
"suggest": {
- "php-parallel-lint/php-console-highlighter": "Highlight syntax in code snippet"
+ "ext-mbstring": "For best performance",
+ "phpmyadmin/motranslator": "Translate messages to your favorite locale"
},
"bin": [
- "parallel-lint"
- ],
- "type": "library",
- "autoload": {
- "classmap": [
- "./src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-2-Clause"
- ],
- "authors": [
- {
- "name": "Jakub Onderka",
- "email": "ahoj@jakubonderka.cz"
- }
+ "bin/highlight-query",
+ "bin/lint-query",
+ "bin/tokenize-query"
],
- "description": "This tool check syntax of PHP files about 20x faster than serial check.",
- "homepage": "https://github.com/php-parallel-lint/PHP-Parallel-Lint",
- "support": {
- "issues": "https://github.com/php-parallel-lint/PHP-Parallel-Lint/issues",
- "source": "https://github.com/php-parallel-lint/PHP-Parallel-Lint/tree/v1.3.2"
- },
- "time": "2022-02-21T12:50:22+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/"
+ "PhpMyAdmin\\SqlParser\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "MIT"
+ "GPL-2.0-or-later"
],
"authors": [
{
- "name": "Jaap van Otterdijk",
- "email": "opensource@ijaap.nl"
+ "name": "The phpMyAdmin Team",
+ "email": "developers@phpmyadmin.net",
+ "homepage": "https://www.phpmyadmin.net/team/"
}
],
- "description": "Common reflection classes used by phpdocumentor to reflect the code structure",
- "homepage": "http://www.phpdoc.org",
+ "description": "A validating SQL lexer and parser with a focus on MySQL dialect.",
+ "homepage": "https://github.com/phpmyadmin/sql-parser",
"keywords": [
- "FQSEN",
- "phpDocumentor",
- "phpdoc",
- "reflection",
- "static analysis"
+ "analysis",
+ "lexer",
+ "parser",
+ "query linter",
+ "sql",
+ "sql lexer",
+ "sql linter",
+ "sql parser",
+ "sql syntax highlighter",
+ "sql tokenizer"
],
"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.2.2",
- "source": {
- "type": "git",
- "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
- "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/069a785b2141f5bcf49f3e353548dc1cce6df556",
- "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556",
- "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"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "5.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "phpDocumentor\\Reflection\\": "src"
- }
+ "issues": "https://github.com/phpmyadmin/sql-parser/issues",
+ "source": "https://github.com/phpmyadmin/sql-parser"
},
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Mike van Riel",
- "email": "me@mikevanriel.com"
- },
+ "funding": [
{
- "name": "Jaap van Otterdijk",
- "email": "account@ijaap.nl"
+ "url": "https://www.phpmyadmin.net/donate/",
+ "type": "other"
}
],
- "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/master"
- },
- "time": "2020-09-03T19:13:55+00:00"
+ "time": "2023-06-05T18:19:38+00:00"
},
{
- "name": "phpdocumentor/type-resolver",
- "version": "1.5.1",
+ "name": "phpstan/phpstan",
+ "version": "1.10.34",
"source": {
"type": "git",
- "url": "https://github.com/phpDocumentor/TypeResolver.git",
- "reference": "a12f7e301eb7258bb68acd89d4aefa05c2906cae"
+ "url": "https://github.com/phpstan/phpstan.git",
+ "reference": "7f806b6f1403e6914c778140e2ba07c293cb4901"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/a12f7e301eb7258bb68acd89d4aefa05c2906cae",
- "reference": "a12f7e301eb7258bb68acd89d4aefa05c2906cae",
+ "url": "https://api.github.com/repos/phpstan/phpstan/zipball/7f806b6f1403e6914c778140e2ba07c293cb4901",
+ "reference": "7f806b6f1403e6914c778140e2ba07c293cb4901",
"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.5.1"
- },
- "time": "2021-10-02T14:08:47+00:00"
- },
- {
- "name": "phploc/phploc",
- "version": "7.0.2",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/phploc.git",
- "reference": "af0d5fc84f3f7725513ba59cdcbe670ac2a4532a"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phploc/zipball/af0d5fc84f3f7725513ba59cdcbe670ac2a4532a",
- "reference": "af0d5fc84f3f7725513ba59cdcbe670ac2a4532a",
- "shasum": ""
+ "php": "^7.2|^8.0"
},
- "require": {
- "ext-dom": "*",
- "ext-json": "*",
- "php": ">=7.3",
- "phpunit/php-file-iterator": "^3.0",
- "sebastian/cli-parser": "^1.0",
- "sebastian/version": "^3.0"
+ "conflict": {
+ "phpstan/phpstan-shim": "*"
},
"bin": [
- "phploc"
+ "phpstan",
+ "phpstan.phar"
],
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "7.0-dev"
- }
- },
"autoload": {
- "classmap": [
- "src/"
+ "files": [
+ "bootstrap.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
- }
+ "description": "PHPStan - PHP Static Analysis Tool",
+ "keywords": [
+ "dev",
+ "static analysis"
],
- "description": "A tool for quickly measuring the size of a PHP project.",
- "homepage": "https://github.com/sebastianbergmann/phploc",
"support": {
- "issues": "https://github.com/sebastianbergmann/phploc/issues",
- "source": "https://github.com/sebastianbergmann/phploc/tree/7.0.2"
+ "docs": "https://phpstan.org/user-guide/getting-started",
+ "forum": "https://github.com/phpstan/phpstan/discussions",
+ "issues": "https://github.com/phpstan/phpstan/issues",
+ "security": "https://github.com/phpstan/phpstan/security/policy",
+ "source": "https://github.com/phpstan/phpstan-src"
},
"funding": [
{
- "url": "https://github.com/sebastianbergmann",
+ "url": "https://github.com/ondrejmirtes",
"type": "github"
- }
- ],
- "time": "2020-12-07T05:51:20+00:00"
- },
- {
- "name": "phpspec/prophecy",
- "version": "1.14.0",
- "source": {
- "type": "git",
- "url": "https://github.com/phpspec/prophecy.git",
- "reference": "d86dfc2e2a3cd366cee475e52c6bb3bbc371aa0e"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpspec/prophecy/zipball/d86dfc2e2a3cd366cee475e52c6bb3bbc371aa0e",
- "reference": "d86dfc2e2a3cd366cee475e52c6bb3bbc371aa0e",
- "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"
+ "url": "https://github.com/phpstan",
+ "type": "github"
},
{
- "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/1.14.0"
- },
- "time": "2021-09-10T09:02:12+00:00"
- },
- {
- "name": "phpstan/phpdoc-parser",
- "version": "1.6.4",
- "source": {
- "type": "git",
- "url": "https://github.com/phpstan/phpdoc-parser.git",
- "reference": "135607f9ccc297d6923d49c2bcf309f509413215"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/135607f9ccc297d6923d49c2bcf309f509413215",
- "reference": "135607f9ccc297d6923d49c2bcf309f509413215",
- "shasum": ""
- },
- "require": {
- "php": "^7.2 || ^8.0"
- },
- "require-dev": {
- "php-parallel-lint/php-parallel-lint": "^1.2",
- "phpstan/extension-installer": "^1.0",
- "phpstan/phpstan": "^1.5",
- "phpstan/phpstan-phpunit": "^1.1",
- "phpstan/phpstan-strict-rules": "^1.0",
- "phpunit/phpunit": "^9.5",
- "symfony/process": "^5.2"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "PHPStan\\PhpDocParser\\": [
- "src/"
- ]
+ "url": "https://tidelift.com/funding/github/packagist/phpstan/phpstan",
+ "type": "tidelift"
}
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
],
- "description": "PHPDoc parser with support for nullable, intersection and generic types",
- "support": {
- "issues": "https://github.com/phpstan/phpdoc-parser/issues",
- "source": "https://github.com/phpstan/phpdoc-parser/tree/1.6.4"
- },
- "time": "2022-06-26T13:09:08+00:00"
+ "time": "2023-09-13T09:49:47+00:00"
},
{
"name": "phpunit/php-code-coverage",
- "version": "9.2.7",
+ "version": "9.2.26",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
- "reference": "d4c798ed8d51506800b441f7a13ecb0f76f12218"
+ "reference": "443bc6912c9bd5b409254a40f4b0f4ced7c80ea1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/d4c798ed8d51506800b441f7a13ecb0f76f12218",
- "reference": "d4c798ed8d51506800b441f7a13ecb0f76f12218",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/443bc6912c9bd5b409254a40f4b0f4ced7c80ea1",
+ "reference": "443bc6912c9bd5b409254a40f4b0f4ced7c80ea1",
"shasum": ""
},
"require": {
"ext-dom": "*",
"ext-libxml": "*",
"ext-xmlwriter": "*",
- "nikic/php-parser": "^4.12.0",
+ "nikic/php-parser": "^4.15",
"php": ">=7.3",
"phpunit/php-file-iterator": "^3.0.3",
"phpunit/php-text-template": "^2.0.2",
@@ -7609,8 +10305,8 @@
"phpunit/phpunit": "^9.3"
},
"suggest": {
- "ext-pcov": "*",
- "ext-xdebug": "*"
+ "ext-pcov": "PHP extension that provides line coverage",
+ "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage"
},
"type": "library",
"extra": {
@@ -7643,7 +10339,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
- "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.7"
+ "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.26"
},
"funding": [
{
@@ -7651,20 +10347,20 @@
"type": "github"
}
],
- "time": "2021-09-17T05:39:03+00:00"
+ "time": "2023-03-06T12:58:08+00:00"
},
{
"name": "phpunit/php-file-iterator",
- "version": "3.0.5",
+ "version": "3.0.6",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-file-iterator.git",
- "reference": "aa4be8575f26070b100fccb67faabb28f21f66f8"
+ "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/aa4be8575f26070b100fccb67faabb28f21f66f8",
- "reference": "aa4be8575f26070b100fccb67faabb28f21f66f8",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf",
+ "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf",
"shasum": ""
},
"require": {
@@ -7703,7 +10399,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/php-file-iterator/issues",
- "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.5"
+ "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6"
},
"funding": [
{
@@ -7711,7 +10407,7 @@
"type": "github"
}
],
- "time": "2020-09-28T05:57:25+00:00"
+ "time": "2021-12-02T12:48:52+00:00"
},
{
"name": "phpunit/php-invoker",
@@ -7896,20 +10592,20 @@
},
{
"name": "phpunit/phpunit",
- "version": "9.5.10",
+ "version": "9.6.9",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "c814a05837f2edb0d1471d6e3f4ab3501ca3899a"
+ "reference": "a9aceaf20a682aeacf28d582654a1670d8826778"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c814a05837f2edb0d1471d6e3f4ab3501ca3899a",
- "reference": "c814a05837f2edb0d1471d6e3f4ab3501ca3899a",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/a9aceaf20a682aeacf28d582654a1670d8826778",
+ "reference": "a9aceaf20a682aeacf28d582654a1670d8826778",
"shasum": ""
},
"require": {
- "doctrine/instantiator": "^1.3.1",
+ "doctrine/instantiator": "^1.3.1 || ^2",
"ext-dom": "*",
"ext-json": "*",
"ext-libxml": "*",
@@ -7920,31 +10616,26 @@
"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.7",
+ "phpunit/php-code-coverage": "^9.2.13",
"phpunit/php-file-iterator": "^3.0.5",
"phpunit/php-invoker": "^3.1.1",
"phpunit/php-text-template": "^2.0.3",
"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": "^2.3.4",
+ "sebastian/type": "^3.2",
"sebastian/version": "^3.0.2"
},
- "require-dev": {
- "ext-pdo": "*",
- "phpspec/prophecy-phpunit": "^2.0.1"
- },
"suggest": {
- "ext-soap": "*",
- "ext-xdebug": "*"
+ "ext-soap": "To be able to generate mocks based on WSDL files",
+ "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage"
},
"bin": [
"phpunit"
@@ -7952,15 +10643,15 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "9.5-dev"
+ "dev-master": "9.6-dev"
}
- },
- "autoload": {
- "classmap": [
- "src/"
- ],
+ },
+ "autoload": {
"files": [
"src/Framework/Assert/Functions.php"
+ ],
+ "classmap": [
+ "src/"
]
},
"notification-url": "https://packagist.org/downloads/",
@@ -7983,68 +10674,24 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
- "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.10"
+ "security": "https://github.com/sebastianbergmann/phpunit/security/policy",
+ "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.9"
},
"funding": [
{
- "url": "https://phpunit.de/donate.html",
+ "url": "https://phpunit.de/sponsors.html",
"type": "custom"
},
{
"url": "https://github.com/sebastianbergmann",
"type": "github"
- }
- ],
- "time": "2021-09-25T07:38:51+00:00"
- },
- {
- "name": "psr/cache",
- "version": "1.0.1",
- "source": {
- "type": "git",
- "url": "https://github.com/php-fig/cache.git",
- "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8",
- "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Psr\\Cache\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
+ },
{
- "name": "PHP-FIG",
- "homepage": "http://www.php-fig.org/"
+ "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit",
+ "type": "tidelift"
}
],
- "description": "Common interface for caching libraries",
- "keywords": [
- "cache",
- "psr",
- "psr-6"
- ],
- "support": {
- "source": "https://github.com/php-fig/cache/tree/master"
- },
- "time": "2016-08-06T20:24:11+00:00"
+ "time": "2023-06-11T06:13:56+00:00"
},
{
"name": "sebastian/cli-parser",
@@ -8215,16 +10862,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": {
@@ -8277,7 +10924,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": [
{
@@ -8285,7 +10932,7 @@
"type": "github"
}
],
- "time": "2020-10-26T15:49:45+00:00"
+ "time": "2022-09-14T12:41:17+00:00"
},
{
"name": "sebastian/complexity",
@@ -8346,16 +10993,16 @@
},
{
"name": "sebastian/diff",
- "version": "4.0.4",
+ "version": "4.0.5",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/diff.git",
- "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d"
+ "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d",
- "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d",
+ "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/74be17022044ebaaecfdf0c5cd504fc9cd5a7131",
+ "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131",
"shasum": ""
},
"require": {
@@ -8400,7 +11047,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/diff/issues",
- "source": "https://github.com/sebastianbergmann/diff/tree/4.0.4"
+ "source": "https://github.com/sebastianbergmann/diff/tree/4.0.5"
},
"funding": [
{
@@ -8408,20 +11055,20 @@
"type": "github"
}
],
- "time": "2020-10-26T13:10:38+00:00"
+ "time": "2023-05-07T05:35:17+00:00"
},
{
"name": "sebastian/environment",
- "version": "5.1.3",
+ "version": "5.1.5",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/environment.git",
- "reference": "388b6ced16caa751030f6a69e588299fa09200ac"
+ "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/388b6ced16caa751030f6a69e588299fa09200ac",
- "reference": "388b6ced16caa751030f6a69e588299fa09200ac",
+ "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/830c43a844f1f8d5b7a1f6d6076b784454d8b7ed",
+ "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed",
"shasum": ""
},
"require": {
@@ -8463,7 +11110,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/environment/issues",
- "source": "https://github.com/sebastianbergmann/environment/tree/5.1.3"
+ "source": "https://github.com/sebastianbergmann/environment/tree/5.1.5"
},
"funding": [
{
@@ -8471,20 +11118,20 @@
"type": "github"
}
],
- "time": "2020-09-28T05:52:38+00:00"
+ "time": "2023-02-03T06:03:51+00:00"
},
{
"name": "sebastian/exporter",
- "version": "4.0.3",
+ "version": "4.0.5",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/exporter.git",
- "reference": "d89cc98761b8cb5a1a235a6b703ae50d34080e65"
+ "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/d89cc98761b8cb5a1a235a6b703ae50d34080e65",
- "reference": "d89cc98761b8cb5a1a235a6b703ae50d34080e65",
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d",
+ "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d",
"shasum": ""
},
"require": {
@@ -8533,14 +11180,14 @@
}
],
"description": "Provides the functionality to export PHP variables for visualization",
- "homepage": "http://www.github.com/sebastianbergmann/exporter",
+ "homepage": "https://www.github.com/sebastianbergmann/exporter",
"keywords": [
"export",
"exporter"
],
"support": {
"issues": "https://github.com/sebastianbergmann/exporter/issues",
- "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.3"
+ "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.5"
},
"funding": [
{
@@ -8548,20 +11195,20 @@
"type": "github"
}
],
- "time": "2020-09-28T05:24:23+00:00"
+ "time": "2022-09-14T06:03:37+00:00"
},
{
"name": "sebastian/global-state",
- "version": "5.0.3",
+ "version": "5.0.5",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/global-state.git",
- "reference": "23bd5951f7ff26f12d4e3242864df3e08dec4e49"
+ "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/23bd5951f7ff26f12d4e3242864df3e08dec4e49",
- "reference": "23bd5951f7ff26f12d4e3242864df3e08dec4e49",
+ "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/0ca8db5a5fc9c8646244e629625ac486fa286bf2",
+ "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2",
"shasum": ""
},
"require": {
@@ -8604,7 +11251,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/global-state/issues",
- "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.3"
+ "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.5"
},
"funding": [
{
@@ -8612,7 +11259,7 @@
"type": "github"
}
],
- "time": "2021-06-11T13:31:12+00:00"
+ "time": "2022-02-14T08:28:10+00:00"
},
{
"name": "sebastian/lines-of-code",
@@ -8785,16 +11432,16 @@
},
{
"name": "sebastian/recursion-context",
- "version": "4.0.4",
+ "version": "4.0.5",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/recursion-context.git",
- "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172"
+ "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/cd9d8cf3c5804de4341c283ed787f099f5506172",
- "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172",
+ "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1",
+ "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1",
"shasum": ""
},
"require": {
@@ -8833,10 +11480,10 @@
}
],
"description": "Provides functionality to recursively process PHP variables",
- "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
+ "homepage": "https://github.com/sebastianbergmann/recursion-context",
"support": {
"issues": "https://github.com/sebastianbergmann/recursion-context/issues",
- "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.4"
+ "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.5"
},
"funding": [
{
@@ -8844,7 +11491,7 @@
"type": "github"
}
],
- "time": "2020-10-26T13:17:30+00:00"
+ "time": "2023-02-03T06:07:39+00:00"
},
{
"name": "sebastian/resource-operations",
@@ -8903,28 +11550,28 @@
},
{
"name": "sebastian/type",
- "version": "2.3.4",
+ "version": "3.2.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/type.git",
- "reference": "b8cd8a1c753c90bc1a0f5372170e3e489136f914"
+ "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/b8cd8a1c753c90bc1a0f5372170e3e489136f914",
- "reference": "b8cd8a1c753c90bc1a0f5372170e3e489136f914",
+ "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7",
+ "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7",
"shasum": ""
},
"require": {
"php": ">=7.3"
},
"require-dev": {
- "phpunit/phpunit": "^9.3"
+ "phpunit/phpunit": "^9.5"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.3-dev"
+ "dev-master": "3.2-dev"
}
},
"autoload": {
@@ -8947,7 +11594,7 @@
"homepage": "https://github.com/sebastianbergmann/type",
"support": {
"issues": "https://github.com/sebastianbergmann/type/issues",
- "source": "https://github.com/sebastianbergmann/type/tree/2.3.4"
+ "source": "https://github.com/sebastianbergmann/type/tree/3.2.1"
},
"funding": [
{
@@ -8955,7 +11602,7 @@
"type": "github"
}
],
- "time": "2021-06-15T12:49:02+00:00"
+ "time": "2023-02-03T06:13:03+00:00"
},
{
"name": "sebastian/version",
@@ -8975,362 +11622,69 @@
"php": ">=7.3"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.0-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
- }
- ],
- "description": "Library that helps with managing the version number of Git-hosted PHP projects",
- "homepage": "https://github.com/sebastianbergmann/version",
- "support": {
- "issues": "https://github.com/sebastianbergmann/version/issues",
- "source": "https://github.com/sebastianbergmann/version/tree/3.0.2"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2020-09-28T06:39:44+00:00"
- },
- {
- "name": "slevomat/coding-standard",
- "version": "7.2.1",
- "source": {
- "type": "git",
- "url": "https://github.com/slevomat/coding-standard.git",
- "reference": "aff06ae7a84e4534bf6f821dc982a93a5d477c90"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/slevomat/coding-standard/zipball/aff06ae7a84e4534bf6f821dc982a93a5d477c90",
- "reference": "aff06ae7a84e4534bf6f821dc982a93a5d477c90",
- "shasum": ""
- },
- "require": {
- "dealerdirect/phpcodesniffer-composer-installer": "^0.6.2 || ^0.7",
- "php": "^7.2 || ^8.0",
- "phpstan/phpdoc-parser": "^1.5.1",
- "squizlabs/php_codesniffer": "^3.6.2"
- },
- "require-dev": {
- "phing/phing": "2.17.3",
- "php-parallel-lint/php-parallel-lint": "1.3.2",
- "phpstan/phpstan": "1.4.10|1.7.1",
- "phpstan/phpstan-deprecation-rules": "1.0.0",
- "phpstan/phpstan-phpunit": "1.0.0|1.1.1",
- "phpstan/phpstan-strict-rules": "1.2.3",
- "phpunit/phpunit": "7.5.20|8.5.21|9.5.20"
- },
- "type": "phpcodesniffer-standard",
- "extra": {
- "branch-alias": {
- "dev-master": "7.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "SlevomatCodingStandard\\": "SlevomatCodingStandard"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "description": "Slevomat Coding Standard for PHP_CodeSniffer complements Consistence Coding Standard by providing sniffs with additional checks.",
- "support": {
- "issues": "https://github.com/slevomat/coding-standard/issues",
- "source": "https://github.com/slevomat/coding-standard/tree/7.2.1"
- },
- "funding": [
- {
- "url": "https://github.com/kukulich",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/slevomat/coding-standard",
- "type": "tidelift"
- }
- ],
- "time": "2022-05-25T10:58:12+00:00"
- },
- {
- "name": "squizlabs/php_codesniffer",
- "version": "3.7.1",
- "source": {
- "type": "git",
- "url": "https://github.com/squizlabs/PHP_CodeSniffer.git",
- "reference": "1359e176e9307e906dc3d890bcc9603ff6d90619"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/1359e176e9307e906dc3d890bcc9603ff6d90619",
- "reference": "1359e176e9307e906dc3d890bcc9603ff6d90619",
- "shasum": ""
- },
- "require": {
- "ext-simplexml": "*",
- "ext-tokenizer": "*",
- "ext-xmlwriter": "*",
- "php": ">=5.4.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0"
- },
- "bin": [
- "bin/phpcs",
- "bin/phpcbf"
- ],
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.x-dev"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Greg Sherwood",
- "role": "lead"
- }
- ],
- "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.",
- "homepage": "https://github.com/squizlabs/PHP_CodeSniffer",
- "keywords": [
- "phpcs",
- "standards"
- ],
- "support": {
- "issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues",
- "source": "https://github.com/squizlabs/PHP_CodeSniffer",
- "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki"
- },
- "time": "2022-06-18T07:21:10+00:00"
- },
- {
- "name": "symfony/cache",
- "version": "v5.4.10",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/cache.git",
- "reference": "c4e387b739022fd4b20abd8edb2143c44c5daa14"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/cache/zipball/c4e387b739022fd4b20abd8edb2143c44c5daa14",
- "reference": "c4e387b739022fd4b20abd8edb2143c44c5daa14",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2.5",
- "psr/cache": "^1.0|^2.0",
- "psr/log": "^1.1|^2|^3",
- "symfony/cache-contracts": "^1.1.7|^2",
- "symfony/deprecation-contracts": "^2.1|^3",
- "symfony/polyfill-php73": "^1.9",
- "symfony/polyfill-php80": "^1.16",
- "symfony/service-contracts": "^1.1|^2|^3",
- "symfony/var-exporter": "^4.4|^5.0|^6.0"
- },
- "conflict": {
- "doctrine/dbal": "<2.13.1",
- "symfony/dependency-injection": "<4.4",
- "symfony/http-kernel": "<4.4",
- "symfony/var-dumper": "<4.4"
- },
- "provide": {
- "psr/cache-implementation": "1.0|2.0",
- "psr/simple-cache-implementation": "1.0|2.0",
- "symfony/cache-implementation": "1.0|2.0"
- },
- "require-dev": {
- "cache/integration-tests": "dev-master",
- "doctrine/cache": "^1.6|^2.0",
- "doctrine/dbal": "^2.13.1|^3.0",
- "predis/predis": "^1.1",
- "psr/simple-cache": "^1.0|^2.0",
- "symfony/config": "^4.4|^5.0|^6.0",
- "symfony/dependency-injection": "^4.4|^5.0|^6.0",
- "symfony/filesystem": "^4.4|^5.0|^6.0",
- "symfony/http-kernel": "^4.4|^5.0|^6.0",
- "symfony/messenger": "^4.4|^5.0|^6.0",
- "symfony/var-dumper": "^4.4|^5.0|^6.0"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Cache\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Provides an extended PSR-6, PSR-16 (and tags) implementation",
- "homepage": "https://symfony.com",
- "keywords": [
- "caching",
- "psr6"
- ],
- "support": {
- "source": "https://github.com/symfony/cache/tree/v5.4.10"
- },
- "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-06-19T12:03:50+00:00"
- },
- {
- "name": "symfony/cache-contracts",
- "version": "v2.5.2",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/cache-contracts.git",
- "reference": "64be4a7acb83b6f2bf6de9a02cee6dad41277ebc"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/64be4a7acb83b6f2bf6de9a02cee6dad41277ebc",
- "reference": "64be4a7acb83b6f2bf6de9a02cee6dad41277ebc",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2.5",
- "psr/cache": "^1.0|^2.0|^3.0"
- },
- "suggest": {
- "symfony/cache-implementation": ""
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "2.5-dev"
- },
- "thanks": {
- "name": "symfony/contracts",
- "url": "https://github.com/symfony/contracts"
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0-dev"
}
},
"autoload": {
- "psr-4": {
- "Symfony\\Contracts\\Cache\\": ""
- }
+ "classmap": [
+ "src/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "MIT"
+ "BSD-3-Clause"
],
"authors": [
{
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
}
],
- "description": "Generic abstractions related to caching",
- "homepage": "https://symfony.com",
- "keywords": [
- "abstractions",
- "contracts",
- "decoupling",
- "interfaces",
- "interoperability",
- "standards"
- ],
+ "description": "Library that helps with managing the version number of Git-hosted PHP projects",
+ "homepage": "https://github.com/sebastianbergmann/version",
"support": {
- "source": "https://github.com/symfony/cache-contracts/tree/v2.5.2"
+ "issues": "https://github.com/sebastianbergmann/version/issues",
+ "source": "https://github.com/sebastianbergmann/version/tree/3.0.2"
},
"funding": [
{
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
+ "url": "https://github.com/sebastianbergmann",
"type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
}
],
- "time": "2022-01-02T09:53:40+00:00"
+ "time": "2020-09-28T06:39:44+00:00"
},
{
- "name": "symfony/filesystem",
- "version": "v5.4.9",
+ "name": "spatie/backtrace",
+ "version": "1.5.3",
"source": {
"type": "git",
- "url": "https://github.com/symfony/filesystem.git",
- "reference": "36a017fa4cce1eff1b8e8129ff53513abcef05ba"
+ "url": "https://github.com/spatie/backtrace.git",
+ "reference": "483f76a82964a0431aa836b6ed0edde0c248e3ab"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/filesystem/zipball/36a017fa4cce1eff1b8e8129ff53513abcef05ba",
- "reference": "36a017fa4cce1eff1b8e8129ff53513abcef05ba",
+ "url": "https://api.github.com/repos/spatie/backtrace/zipball/483f76a82964a0431aa836b6ed0edde0c248e3ab",
+ "reference": "483f76a82964a0431aa836b6ed0edde0c248e3ab",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "symfony/polyfill-ctype": "~1.8",
- "symfony/polyfill-mbstring": "~1.8",
- "symfony/polyfill-php80": "^1.16"
+ "php": "^7.3|^8.0"
+ },
+ "require-dev": {
+ "ext-json": "*",
+ "phpunit/phpunit": "^9.3",
+ "spatie/phpunit-snapshot-assertions": "^4.2",
+ "symfony/var-dumper": "^5.1"
},
"type": "library",
"autoload": {
"psr-4": {
- "Symfony\\Component\\Filesystem\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
+ "Spatie\\Backtrace\\": "src"
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -9338,150 +11692,152 @@
],
"authors": [
{
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
+ "name": "Freek Van de Herten",
+ "email": "freek@spatie.be",
+ "homepage": "https://spatie.be",
+ "role": "Developer"
}
],
- "description": "Provides basic utilities for the filesystem",
- "homepage": "https://symfony.com",
+ "description": "A better backtrace",
+ "homepage": "https://github.com/spatie/backtrace",
+ "keywords": [
+ "Backtrace",
+ "spatie"
+ ],
"support": {
- "source": "https://github.com/symfony/filesystem/tree/v5.4.9"
+ "source": "https://github.com/spatie/backtrace/tree/1.5.3"
},
"funding": [
{
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
+ "url": "https://github.com/sponsors/spatie",
"type": "github"
},
{
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
+ "url": "https://spatie.be/open-source/support-us",
+ "type": "other"
}
],
- "time": "2022-05-20T13:55:35+00:00"
+ "time": "2023-06-28T12:59:17+00:00"
},
{
- "name": "symfony/http-client",
- "version": "v5.4.9",
+ "name": "spatie/flare-client-php",
+ "version": "1.4.0",
"source": {
"type": "git",
- "url": "https://github.com/symfony/http-client.git",
- "reference": "dc0b15e42b762c040761c1eb9ce86a55d47cf672"
+ "url": "https://github.com/spatie/flare-client-php.git",
+ "reference": "82138174d5fe2829a7f085a6bdb2a06f6def9f7a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-client/zipball/dc0b15e42b762c040761c1eb9ce86a55d47cf672",
- "reference": "dc0b15e42b762c040761c1eb9ce86a55d47cf672",
+ "url": "https://api.github.com/repos/spatie/flare-client-php/zipball/82138174d5fe2829a7f085a6bdb2a06f6def9f7a",
+ "reference": "82138174d5fe2829a7f085a6bdb2a06f6def9f7a",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "psr/log": "^1|^2|^3",
- "symfony/deprecation-contracts": "^2.1|^3",
- "symfony/http-client-contracts": "^2.4",
- "symfony/polyfill-php73": "^1.11",
- "symfony/polyfill-php80": "^1.16",
- "symfony/service-contracts": "^1.0|^2|^3"
- },
- "provide": {
- "php-http/async-client-implementation": "*",
- "php-http/client-implementation": "*",
- "psr/http-client-implementation": "1.0",
- "symfony/http-client-implementation": "2.4"
+ "illuminate/pipeline": "^8.0|^9.0|^10.0",
+ "nesbot/carbon": "^2.62.1",
+ "php": "^8.0",
+ "spatie/backtrace": "^1.5.2",
+ "symfony/http-foundation": "^5.0|^6.0",
+ "symfony/mime": "^5.2|^6.0",
+ "symfony/process": "^5.2|^6.0",
+ "symfony/var-dumper": "^5.2|^6.0"
},
"require-dev": {
- "amphp/amp": "^2.5",
- "amphp/http-client": "^4.2.1",
- "amphp/http-tunnel": "^1.0",
- "amphp/socket": "^1.1",
- "guzzlehttp/promises": "^1.4",
- "nyholm/psr7": "^1.0",
- "php-http/httplug": "^1.0|^2.0",
- "psr/http-client": "^1.0",
- "symfony/dependency-injection": "^4.4|^5.0|^6.0",
- "symfony/http-kernel": "^4.4.13|^5.1.5|^6.0",
- "symfony/process": "^4.4|^5.0|^6.0",
- "symfony/stopwatch": "^4.4|^5.0|^6.0"
+ "dms/phpunit-arraysubset-asserts": "^0.3.0",
+ "pestphp/pest": "^1.20",
+ "phpstan/extension-installer": "^1.1",
+ "phpstan/phpstan-deprecation-rules": "^1.0",
+ "phpstan/phpstan-phpunit": "^1.0",
+ "spatie/phpunit-snapshot-assertions": "^4.0"
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.3.x-dev"
+ }
+ },
"autoload": {
+ "files": [
+ "src/helpers.php"
+ ],
"psr-4": {
- "Symfony\\Component\\HttpClient\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
+ "Spatie\\FlareClient\\": "src"
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
- "authors": [
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
+ "description": "Send PHP errors to Flare",
+ "homepage": "https://github.com/spatie/flare-client-php",
+ "keywords": [
+ "exception",
+ "flare",
+ "reporting",
+ "spatie"
],
- "description": "Provides powerful methods to fetch HTTP resources synchronously or asynchronously",
- "homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/http-client/tree/v5.4.9"
+ "issues": "https://github.com/spatie/flare-client-php/issues",
+ "source": "https://github.com/spatie/flare-client-php/tree/1.4.0"
},
"funding": [
{
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
+ "url": "https://github.com/spatie",
"type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
}
],
- "time": "2022-05-21T08:57:05+00:00"
+ "time": "2023-06-28T11:08:09+00:00"
},
{
- "name": "symfony/options-resolver",
- "version": "v5.4.3",
+ "name": "spatie/ignition",
+ "version": "1.9.0",
"source": {
"type": "git",
- "url": "https://github.com/symfony/options-resolver.git",
- "reference": "cc1147cb11af1b43f503ac18f31aa3bec213aba8"
+ "url": "https://github.com/spatie/ignition.git",
+ "reference": "de24ff1e01814d5043bd6eb4ab36a5a852a04973"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/options-resolver/zipball/cc1147cb11af1b43f503ac18f31aa3bec213aba8",
- "reference": "cc1147cb11af1b43f503ac18f31aa3bec213aba8",
+ "url": "https://api.github.com/repos/spatie/ignition/zipball/de24ff1e01814d5043bd6eb4ab36a5a852a04973",
+ "reference": "de24ff1e01814d5043bd6eb4ab36a5a852a04973",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "symfony/deprecation-contracts": "^2.1|^3",
- "symfony/polyfill-php73": "~1.0",
- "symfony/polyfill-php80": "^1.16"
+ "ext-json": "*",
+ "ext-mbstring": "*",
+ "php": "^8.0",
+ "spatie/backtrace": "^1.5.3",
+ "spatie/flare-client-php": "^1.4.0",
+ "symfony/console": "^5.4|^6.0",
+ "symfony/var-dumper": "^5.4|^6.0"
+ },
+ "require-dev": {
+ "illuminate/cache": "^9.52",
+ "mockery/mockery": "^1.4",
+ "pestphp/pest": "^1.20",
+ "phpstan/extension-installer": "^1.1",
+ "phpstan/phpstan-deprecation-rules": "^1.0",
+ "phpstan/phpstan-phpunit": "^1.0",
+ "psr/simple-cache-implementation": "*",
+ "symfony/cache": "^6.0",
+ "symfony/process": "^5.4|^6.0",
+ "vlucas/phpdotenv": "^5.5"
+ },
+ "suggest": {
+ "openai-php/client": "Require get solutions from OpenAI",
+ "simple-cache-implementation": "To cache solutions from OpenAI"
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.5.x-dev"
+ }
+ },
"autoload": {
"psr-4": {
- "Symfony\\Component\\OptionsResolver\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
+ "Spatie\\Ignition\\": "src"
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -9489,66 +11845,89 @@
],
"authors": [
{
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
+ "name": "Spatie",
+ "email": "info@spatie.be",
+ "role": "Developer"
}
],
- "description": "Provides an improved replacement for the array_replace PHP function",
- "homepage": "https://symfony.com",
+ "description": "A beautiful error page for PHP applications.",
+ "homepage": "https://flareapp.io/ignition",
"keywords": [
- "config",
- "configuration",
- "options"
+ "error",
+ "flare",
+ "laravel",
+ "page"
],
"support": {
- "source": "https://github.com/symfony/options-resolver/tree/v5.4.3"
+ "docs": "https://flareapp.io/docs/ignition-for-laravel/introduction",
+ "forum": "https://twitter.com/flareappio",
+ "issues": "https://github.com/spatie/ignition/issues",
+ "source": "https://github.com/spatie/ignition"
},
"funding": [
{
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
+ "url": "https://github.com/spatie",
"type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
}
],
- "time": "2022-01-02T09:53:40+00:00"
+ "time": "2023-06-28T13:24:59+00:00"
},
{
- "name": "symfony/stopwatch",
- "version": "v5.4.5",
+ "name": "spatie/laravel-ignition",
+ "version": "1.6.4",
"source": {
"type": "git",
- "url": "https://github.com/symfony/stopwatch.git",
- "reference": "4d04b5c24f3c9a1a168a131f6cbe297155bc0d30"
+ "url": "https://github.com/spatie/laravel-ignition.git",
+ "reference": "1a2b4bd3d48c72526c0ba417687e5c56b5cf49bc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/stopwatch/zipball/4d04b5c24f3c9a1a168a131f6cbe297155bc0d30",
- "reference": "4d04b5c24f3c9a1a168a131f6cbe297155bc0d30",
+ "url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/1a2b4bd3d48c72526c0ba417687e5c56b5cf49bc",
+ "reference": "1a2b4bd3d48c72526c0ba417687e5c56b5cf49bc",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "symfony/service-contracts": "^1|^2|^3"
+ "ext-curl": "*",
+ "ext-json": "*",
+ "ext-mbstring": "*",
+ "illuminate/support": "^8.77|^9.27",
+ "monolog/monolog": "^2.3",
+ "php": "^8.0",
+ "spatie/flare-client-php": "^1.0.1",
+ "spatie/ignition": "^1.4.1",
+ "symfony/console": "^5.0|^6.0",
+ "symfony/var-dumper": "^5.0|^6.0"
+ },
+ "require-dev": {
+ "filp/whoops": "^2.14",
+ "livewire/livewire": "^2.8|dev-develop",
+ "mockery/mockery": "^1.4",
+ "nunomaduro/larastan": "^1.0",
+ "orchestra/testbench": "^6.23|^7.0",
+ "pestphp/pest": "^1.20",
+ "phpstan/extension-installer": "^1.1",
+ "phpstan/phpstan-deprecation-rules": "^1.0",
+ "phpstan/phpstan-phpunit": "^1.0",
+ "spatie/laravel-ray": "^1.27"
},
"type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "Spatie\\LaravelIgnition\\IgnitionServiceProvider"
+ ],
+ "aliases": {
+ "Flare": "Spatie\\LaravelIgnition\\Facades\\Flare"
+ }
+ }
+ },
"autoload": {
+ "files": [
+ "src/helpers.php"
+ ],
"psr-4": {
- "Symfony\\Component\\Stopwatch\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
+ "Spatie\\LaravelIgnition\\": "src"
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -9556,60 +11935,64 @@
],
"authors": [
{
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
+ "name": "Spatie",
+ "email": "info@spatie.be",
+ "role": "Developer"
}
],
- "description": "Provides a way to profile code",
- "homepage": "https://symfony.com",
+ "description": "A beautiful error page for Laravel applications.",
+ "homepage": "https://flareapp.io/ignition",
+ "keywords": [
+ "error",
+ "flare",
+ "laravel",
+ "page"
+ ],
"support": {
- "source": "https://github.com/symfony/stopwatch/tree/v5.4.5"
+ "docs": "https://flareapp.io/docs/ignition-for-laravel/introduction",
+ "forum": "https://twitter.com/flareappio",
+ "issues": "https://github.com/spatie/laravel-ignition/issues",
+ "source": "https://github.com/spatie/laravel-ignition"
},
"funding": [
{
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
+ "url": "https://github.com/spatie",
"type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
}
],
- "time": "2022-02-18T16:06:09+00:00"
+ "time": "2023-01-03T19:28:04+00:00"
},
{
- "name": "symfony/var-exporter",
- "version": "v5.4.10",
+ "name": "symfony/yaml",
+ "version": "v6.3.0",
"source": {
"type": "git",
- "url": "https://github.com/symfony/var-exporter.git",
- "reference": "8fc03ee75eeece3d9be1ef47d26d79bea1afb340"
+ "url": "https://github.com/symfony/yaml.git",
+ "reference": "a9a8337aa641ef2aa39c3e028f9107ec391e5927"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/var-exporter/zipball/8fc03ee75eeece3d9be1ef47d26d79bea1afb340",
- "reference": "8fc03ee75eeece3d9be1ef47d26d79bea1afb340",
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/a9a8337aa641ef2aa39c3e028f9107ec391e5927",
+ "reference": "a9a8337aa641ef2aa39c3e028f9107ec391e5927",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "symfony/polyfill-php80": "^1.16"
+ "php": ">=8.1",
+ "symfony/polyfill-ctype": "^1.8"
+ },
+ "conflict": {
+ "symfony/console": "<5.4"
},
"require-dev": {
- "symfony/var-dumper": "^4.4.9|^5.0.9|^6.0"
+ "symfony/console": "^5.4|^6.0"
},
+ "bin": [
+ "Resources/bin/yaml-lint"
+ ],
"type": "library",
"autoload": {
"psr-4": {
- "Symfony\\Component\\VarExporter\\": ""
+ "Symfony\\Component\\Yaml\\": ""
},
"exclude-from-classmap": [
"/Tests/"
@@ -9621,26 +12004,18 @@
],
"authors": [
{
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Allows exporting any serializable PHP data structure to plain PHP code",
+ "description": "Loads and dumps YAML files",
"homepage": "https://symfony.com",
- "keywords": [
- "clone",
- "construct",
- "export",
- "hydrate",
- "instantiate",
- "serialize"
- ],
"support": {
- "source": "https://github.com/symfony/var-exporter/tree/v5.4.10"
+ "source": "https://github.com/symfony/yaml/tree/v6.3.0"
},
"funding": [
{
@@ -9656,7 +12031,7 @@
"type": "tidelift"
}
],
- "time": "2022-05-27T12:56:18+00:00"
+ "time": "2023-04-28T13:28:14+00:00"
},
{
"name": "theseer/tokenizer",
@@ -9715,8 +12090,9 @@
"prefer-stable": true,
"prefer-lowest": false,
"platform": {
- "php": "^7.3|^8.0"
+ "php": "^8.0||^8.1",
+ "ext-json": "*"
},
"platform-dev": [],
- "plugin-api-version": "2.0.0"
+ "plugin-api-version": "2.3.0"
}
diff --git a/config/app.php b/config/app.php
index c4986cd..dbe2111 100644
--- a/config/app.php
+++ b/config/app.php
@@ -172,8 +172,9 @@
*/
App\Providers\AppServiceProvider::class,
App\Providers\AuthServiceProvider::class,
- // App\Providers\BroadcastServiceProvider::class,
+ App\Providers\BroadcastServiceProvider::class,
App\Providers\EventServiceProvider::class,
+ App\Providers\HorizonServiceProvider::class,
App\Providers\RouteServiceProvider::class,
// Share module
@@ -182,6 +183,8 @@
\Module\User\Providers\UserServiceProvider::class,
// Role & Permission module
\Module\Role\Providers\RoleServiceProvider::class,
+ // Auth module
+ \Module\Auth\Providers\AuthServiceProvider::class,
// Token module
\Module\Token\Providers\TokenServiceProvider::class,
// Category Module
@@ -194,8 +197,12 @@
\Module\Media\Providers\MediaServiceProvider::class,
// Comment Module
\Module\Comment\Providers\CommentServiceProvider::class,
+ // Status Module
+ \Module\Status\Providers\StatusServiceProvider::class,
+ // Status Module
+ \Module\Plan\Providers\PlanServiceProvider::class,
// Panel Module
- \Module\Panel\Providers\PanelServiceProvider::class
+ \Module\Panel\Providers\PanelServiceProvider::class,
],
/*
diff --git a/config/auth.php b/config/auth.php
index 5c844d4..53469ef 100644
--- a/config/auth.php
+++ b/config/auth.php
@@ -62,7 +62,7 @@
'providers' => [
'users' => [
'driver' => 'eloquent',
- 'model' => App\Models\User::class,
+ 'model' => \Module\User\Models\User::class,
],
// 'users' => [
diff --git a/config/explorer.php b/config/explorer.php
new file mode 100644
index 0000000..8cd1ecb
--- /dev/null
+++ b/config/explorer.php
@@ -0,0 +1,39 @@
+ [
+ 'host' => env('CUSTOM_ELASTIC_IP', 'localhost'),
+ 'port' => '9200',
+ 'scheme' => 'http',
+ ],
+
+ /**
+ * An index may be defined on an Eloquent model or inline below. A more in depth explanation
+ * of the mapping possibilities can be found in the documentation of Explorer's repository.
+ */
+ 'indexes' => [
+ \Module\Post\Models\Post::class,
+ 'subscribers' => [
+ 'properties' => [
+ 'id' => 'text',
+ 'title' => 'text',
+ 'slug' => 'text',
+ 'details' => 'text',
+ 'created_at' => 'date',
+ ],
+ ],
+ ],
+
+ /**
+ * You may opt to keep the old indices after the alias is pointed to a new index.
+ * A model is only using index aliases if it implements the Aliased interface.
+ */
+ 'prune_old_aliases' => true,
+];
diff --git a/config/filesystems.php b/config/filesystems.php
index 760ef97..88bf81a 100644
--- a/config/filesystems.php
+++ b/config/filesystems.php
@@ -13,7 +13,7 @@
|
*/
- 'default' => env('FILESYSTEM_DRIVER', 'local'),
+ 'default' => env('FILESYSTEM_DRIVER', 'minio'),
/*
|--------------------------------------------------------------------------
@@ -38,7 +38,7 @@
'public' => [
'driver' => 'local',
'root' => storage_path('app/public'),
- 'url' => env('APP_URL').'/storage',
+ 'url' => env('APP_URL') . '/storage',
'visibility' => 'public',
],
@@ -53,6 +53,14 @@
'use_path_style_endpoint' => env('AWS_USE_PATH_STYLE_ENDPOINT', false),
],
+ 'minio' => [
+ 'driver' => 's3',
+ 'key' => env('AWS_ACCESS_KEY_ID'),
+ 'secret' => env('AWS_SECRET_ACCESS_KEY'),
+ 'bucket' => env('AWS_BUCKET'),
+ 'endpoint' => env('AWS_ENDPOINT'),
+ 'region' => env('AWS_DEFAULT_REGION')
+ ],
],
/*
diff --git a/config/horizon.php b/config/horizon.php
new file mode 100644
index 0000000..1e05c1b
--- /dev/null
+++ b/config/horizon.php
@@ -0,0 +1,197 @@
+ env('HORIZON_DOMAIN'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Horizon Path
+ |--------------------------------------------------------------------------
+ |
+ | This is the URI path where Horizon will be accessible from. Feel free
+ | to change this path to anything you like. Note that the URI will not
+ | affect the paths of its internal API that aren't exposed to users.
+ |
+ */
+
+ 'path' => env('HORIZON_PATH', 'horizon'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Horizon Redis Connection
+ |--------------------------------------------------------------------------
+ |
+ | This is the name of the Redis connection where Horizon will store the
+ | meta information required for it to function. It includes the list
+ | of supervisors, failed jobs, job metrics, and other information.
+ |
+ */
+
+ 'use' => 'default',
+
+ /*
+ |--------------------------------------------------------------------------
+ | Horizon Redis Prefix
+ |--------------------------------------------------------------------------
+ |
+ | This prefix will be used when storing all Horizon data in Redis. You
+ | may modify the prefix when you are running multiple installations
+ | of Horizon on the same server so that they don't have problems.
+ |
+ */
+
+ 'prefix' => env(
+ 'HORIZON_PREFIX',
+ Str::slug(env('APP_NAME', 'laravel'), '_').'_horizon:'
+ ),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Horizon Route Middleware
+ |--------------------------------------------------------------------------
+ |
+ | These middleware will get attached onto each Horizon route, giving you
+ | the chance to add your own middleware to this list or change any of
+ | the existing middleware. Or, you can simply stick with this list.
+ |
+ */
+
+ 'middleware' => ['web'],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Queue Wait Time Thresholds
+ |--------------------------------------------------------------------------
+ |
+ | This option allows you to configure when the LongWaitDetected event
+ | will be fired. Every connection / queue combination may have its
+ | own, unique threshold (in seconds) before this event is fired.
+ |
+ */
+
+ 'waits' => [
+ 'redis:default' => 60,
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Job Trimming Times
+ |--------------------------------------------------------------------------
+ |
+ | Here you can configure for how long (in minutes) you desire Horizon to
+ | persist the recent and failed jobs. Typically, recent jobs are kept
+ | for one hour while all failed jobs are stored for an entire week.
+ |
+ */
+
+ 'trim' => [
+ 'recent' => 60,
+ 'pending' => 60,
+ 'completed' => 60,
+ 'recent_failed' => 10080,
+ 'failed' => 10080,
+ 'monitored' => 10080,
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Metrics
+ |--------------------------------------------------------------------------
+ |
+ | Here you can configure how many snapshots should be kept to display in
+ | the metrics graph. This will get used in combination with Horizon's
+ | `horizon:snapshot` schedule to define how long to retain metrics.
+ |
+ */
+
+ 'metrics' => [
+ 'trim_snapshots' => [
+ 'job' => 24,
+ 'queue' => 24,
+ ],
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Fast Termination
+ |--------------------------------------------------------------------------
+ |
+ | When this option is enabled, Horizon's "terminate" command will not
+ | wait on all of the workers to terminate unless the --wait option
+ | is provided. Fast termination can shorten deployment delay by
+ | allowing a new instance of Horizon to start while the last
+ | instance will continue to terminate each of its workers.
+ |
+ */
+
+ 'fast_termination' => false,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Memory Limit (MB)
+ |--------------------------------------------------------------------------
+ |
+ | This value describes the maximum amount of memory the Horizon master
+ | supervisor may consume before it is terminated and restarted. For
+ | configuring these limits on your workers, see the next section.
+ |
+ */
+
+ 'memory_limit' => 64,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Queue Worker Configuration
+ |--------------------------------------------------------------------------
+ |
+ | Here you may define the queue worker settings used by your application
+ | in all environments. These supervisors and settings handle all your
+ | queued jobs and will be provisioned by Horizon during deployment.
+ |
+ */
+
+ 'defaults' => [
+ 'supervisor-1' => [
+ 'connection' => 'redis',
+ 'queue' => ['default'],
+ 'balance' => 'auto',
+ 'maxProcesses' => 1,
+ 'maxTime' => 0,
+ 'maxJobs' => 0,
+ 'memory' => 128,
+ 'tries' => 1,
+ 'timeout' => 60,
+ 'nice' => 0,
+ ],
+ ],
+
+ 'environments' => [
+ 'production' => [
+ 'supervisor-1' => [
+ 'maxProcesses' => 10,
+ 'balanceMaxShift' => 1,
+ 'balanceCooldown' => 3,
+ ],
+ ],
+
+ 'local' => [
+ 'supervisor-1' => [
+ 'maxProcesses' => 3,
+ ],
+ ],
+ ],
+];
diff --git a/config/insights.php b/config/insights.php
index 15f694a..9ff95cc 100644
--- a/config/insights.php
+++ b/config/insights.php
@@ -105,11 +105,11 @@
*/
'requirements' => [
-// 'min-quality' => 0,
-// 'min-complexity' => 0,
-// 'min-architecture' => 0,
-// 'min-style' => 0,
-// 'disable-security-check' => false,
+ // 'min-quality' => 0,
+ // 'min-complexity' => 0,
+ // 'min-architecture' => 0,
+ // 'min-style' => 0,
+ // 'disable-security-check' => false,
],
/*
diff --git a/config/laravel-ffmpeg.php b/config/laravel-ffmpeg.php
new file mode 100644
index 0000000..25b8913
--- /dev/null
+++ b/config/laravel-ffmpeg.php
@@ -0,0 +1,21 @@
+ [
+ 'binaries' => env('FFMPEG_BINARIES', 'ffmpeg'),
+
+ 'threads' => 12, // set to false to disable the default 'threads' filter
+ ],
+
+ 'ffprobe' => [
+ 'binaries' => env('FFPROBE_BINARIES', 'ffprobe'),
+ ],
+
+ 'timeout' => 3600,
+
+ 'log_channel' => env('LOG_CHANNEL', 'stack'), // set to false to completely disable logging
+
+ 'temporary_files_root' => env('FFMPEG_TEMPORARY_FILES_ROOT', sys_get_temp_dir()),
+
+ 'temporary_files_encrypted_hls' => env('FFMPEG_TEMPORARY_ENCRYPTED_HLS', env('FFMPEG_TEMPORARY_FILES_ROOT', sys_get_temp_dir())),
+];
diff --git a/config/logging.php b/config/logging.php
index 1aa06aa..586f38a 100644
--- a/config/logging.php
+++ b/config/logging.php
@@ -49,9 +49,10 @@
'daily' => [
'driver' => 'daily',
+ 'formatter' => \Module\Share\Formatter\ElasticFormatter::class,
'path' => storage_path('logs/laravel.log'),
'level' => env('LOG_LEVEL', 'debug'),
- 'days' => 14,
+ 'days' => 7,
],
'slack' => [
@@ -100,6 +101,13 @@
'emergency' => [
'path' => storage_path('logs/laravel.log'),
],
+
+ 'sentry' => [
+ 'driver' => 'sentry',
+ 'level' => env('SENTRY_LEVEL', 'error'),
+ 'dsn' => env('SENTRY_DSN'),
+ 'release' => env('SENTRY_RELEASE', null),
+ ],
],
];
diff --git a/config/media.php b/config/media.php
index dd9ffa8..ca04b0d 100644
--- a/config/media.php
+++ b/config/media.php
@@ -5,16 +5,19 @@
'media' => [
'types' => [
-
-
'image' => [
'extensions' => [
'jpg',
- 'png'
+ 'png',
],
- 'handler' => \Module\Media\Services\v1\ImageService::class
- ]
-
- ]
- ]
-];
\ No newline at end of file
+ 'handler' => \Module\Media\Services\v1\ImageService::class,
+ ],
+ 'video' => [
+ 'extensions' => [
+ 'mp4',
+ ],
+ 'handler' => \Module\Media\Services\v1\VideoService::class,
+ ],
+ ],
+ ],
+];
diff --git a/config/queue.php b/config/queue.php
index 7f40656..5a14a77 100644
--- a/config/queue.php
+++ b/config/queue.php
@@ -71,23 +71,44 @@
'after_commit' => true,
],
- ],
+ 'rabbitmq' => [
+ 'driver' => 'rabbitmq',
+ 'queue' => env('RABBITMQ_QUEUE', 'default'),
+ 'connection' => PhpAmqpLib\Connection\AMQPLazyConnection::class,
- /*
- |--------------------------------------------------------------------------
- | Failed Queue Jobs
- |--------------------------------------------------------------------------
- |
- | These options configure the behavior of failed queue job logging so you
- | can control which database and table are used to store the jobs that
- | have failed. You may change them to any database / table you wish.
- |
- */
+ 'hosts' => [
+ [
+ 'host' => env('RABBITMQ_HOST', 'localhost'),
+ 'port' => env('RABBITMQ_PORT', 5672),
+ 'user' => env('RABBITMQ_USER', 'guest'),
+ 'password' => env('RABBITMQ_PASSWORD', 'guest'),
+ 'vhost' => env('RABBITMQ_VHOST', '/'),
+ ],
+ ],
+ 'options' => [
+ 'ssl_options' => [
+ 'cafile' => env('RABBITMQ_SSL_CAFILE', null),
+ 'local_cert' => env('RABBITMQ_SSL_LOCALCERT', null),
+ 'local_key' => env('RABBITMQ_SSL_LOCALKEY', null),
+ 'verify_peer' => env('RABBITMQ_SSL_VERIFY_PEER', true),
+ 'passphrase' => env('RABBITMQ_SSL_PASSPHRASE', null),
+ ],
+ 'queue' => [
+ 'job' => VladimirYuldashev\LaravelQueueRabbitMQ\Queue\Jobs\RabbitMQJob::class],
+ ],
+
+ /*
+ * Set to "horizon" if you wish to use Laravel Horizon.
+ */
+ 'worker' => env('RABBITMQ_WORKER', 'horizon'),
+ 'after_commit' => true,
+ ],
+
+ ],
'failed' => [
'driver' => env('QUEUE_FAILED_DRIVER', 'database-uuids'),
'database' => env('DB_CONNECTION', 'mysql'),
'table' => 'failed_jobs',
],
-
];
diff --git a/config/scout.php b/config/scout.php
new file mode 100644
index 0000000..6b739e8
--- /dev/null
+++ b/config/scout.php
@@ -0,0 +1,137 @@
+ env('SCOUT_DRIVER', 'elastic'),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Index Prefix
+ |--------------------------------------------------------------------------
+ |
+ | Here you may specify a prefix that will be applied to all search index
+ | names used by Scout. This prefix may be useful if you have multiple
+ | "tenants" or applications sharing the same search infrastructure.
+ |
+ */
+
+ 'prefix' => env('SCOUT_PREFIX', ''),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Queue Data Syncing
+ |--------------------------------------------------------------------------
+ |
+ | This option allows you to control if the operations that sync your data
+ | with your search engines are queued. When this is set to "true" then
+ | all automatic data syncing will get queued for better performance.
+ |
+ */
+
+ 'queue' => true,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Database Transactions
+ |--------------------------------------------------------------------------
+ |
+ | This configuration option determines if your data will only be synced
+ | with your search indexes after every open database transaction has
+ | been committed, thus preventing any discarded data from syncing.
+ |
+ */
+
+ 'after_commit' => false,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Chunk Sizes
+ |--------------------------------------------------------------------------
+ |
+ | These options allow you to control the maximum chunk size when you are
+ | mass importing data into the search engine. This allows you to fine
+ | tune each of these chunk sizes based on the power of the servers.
+ |
+ */
+
+ 'chunk' => [
+ 'searchable' => 500,
+ 'unsearchable' => 500,
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | Soft Deletes
+ |--------------------------------------------------------------------------
+ |
+ | This option allows to control whether to keep soft deleted records in
+ | the search indexes. Maintaining soft deleted records can be useful
+ | if your application still needs to search for the records later.
+ |
+ */
+
+ 'soft_delete' => true,
+
+ /*
+ |--------------------------------------------------------------------------
+ | Identify User
+ |--------------------------------------------------------------------------
+ |
+ | This option allows you to control whether to notify the search engine
+ | of the user performing the search. This is sometimes useful if the
+ | engine supports any analytics based on this application's users.
+ |
+ | Supported engines: "algolia"
+ |
+ */
+
+ 'identify' => env('SCOUT_IDENTIFY', false),
+
+ /*
+ |--------------------------------------------------------------------------
+ | Algolia Configuration
+ |--------------------------------------------------------------------------
+ |
+ | Here you may configure your Algolia settings. Algolia is a cloud hosted
+ | search engine which works great with Scout out of the box. Just plug
+ | in your application ID and admin API key to get started searching.
+ |
+ */
+
+ 'algolia' => [
+ 'id' => env('ALGOLIA_APP_ID', ''),
+ 'secret' => env('ALGOLIA_SECRET', ''),
+ ],
+
+ /*
+ |--------------------------------------------------------------------------
+ | MeiliSearch Configuration
+ |--------------------------------------------------------------------------
+ |
+ | Here you may configure your MeiliSearch settings. MeiliSearch is an open
+ | source search engine with minimal configuration. Below, you can state
+ | the host and key information for your own MeiliSearch installation.
+ |
+ | See: https://docs.meilisearch.com/guides/advanced_guides/configuration.html
+ |
+ */
+
+ 'meilisearch' => [
+ 'host' => env('MEILISEARCH_HOST', 'http://localhost:7700'),
+ 'key' => env('MEILISEARCH_KEY', null),
+ ],
+
+];
diff --git a/config/sentry.php b/config/sentry.php
new file mode 100644
index 0000000..9b4a8be
--- /dev/null
+++ b/config/sentry.php
@@ -0,0 +1,81 @@
+ env('SENTRY_LARAVEL_DSN', env('SENTRY_DSN')),
+
+ // The release version of your application
+ // Example with dynamic git hash: trim(exec('git --git-dir ' . base_path('.git') . ' log --pretty="%h" -n1 HEAD'))
+ 'release' => env('SENTRY_RELEASE'),
+
+ // When left empty or `null` the Laravel environment will be used
+ 'environment' => env('SENTRY_ENVIRONMENT'),
+
+ 'breadcrumbs' => [
+ // Capture Laravel logs in breadcrumbs
+ 'logs' => true,
+
+ // Capture Laravel cache events in breadcrumbs
+ 'cache' => true,
+
+ // Capture Livewire components in breadcrumbs
+ 'livewire' => true,
+
+ // Capture SQL queries in breadcrumbs
+ 'sql_queries' => true,
+
+ // Capture bindings on SQL queries logged in breadcrumbs
+ 'sql_bindings' => true,
+
+ // Capture queue job information in breadcrumbs
+ 'queue_info' => true,
+
+ // Capture command information in breadcrumbs
+ 'command_info' => true,
+
+ // Capture HTTP client requests information in breadcrumbs
+ 'http_client_requests' => true,
+ ],
+
+ 'tracing' => [
+ // Trace queue jobs as their own transactions
+ 'queue_job_transactions' => env('SENTRY_TRACE_QUEUE_ENABLED', false),
+
+ // Capture queue jobs as spans when executed on the sync driver
+ 'queue_jobs' => true,
+
+ // Capture SQL queries as spans
+ 'sql_queries' => true,
+
+ // Try to find out where the SQL query originated from and add it to the query spans
+ 'sql_origin' => true,
+
+ // Capture views as spans
+ 'views' => true,
+
+ // Capture Livewire components as spans
+ 'livewire' => true,
+
+ // Capture HTTP client requests as spans
+ 'http_client_requests' => true,
+
+ // Capture Redis operations as spans (this enables Redis events in Laravel)
+ 'redis_commands' => env('SENTRY_TRACE_REDIS_COMMANDS', false),
+
+ // Try to find out where the Redis command originated from and add it to the command spans
+ 'redis_origin' => true,
+
+ // Indicates if the tracing integrations supplied by Sentry should be loaded
+ 'default_integrations' => true,
+
+ // Indicates that requests without a matching route should be traced
+ 'missing_routes' => false,
+ ],
+
+ // @see: https://docs.sentry.io/platforms/php/guides/laravel/configuration/options/#send-default-pii
+ 'send_default_pii' => env('SENTRY_SEND_DEFAULT_PII', false),
+
+ // @see: https://docs.sentry.io/platforms/php/guides/laravel/configuration/options/#traces-sample-rate
+ 'traces_sample_rate' => env('SENTRY_TRACES_SAMPLE_RATE') === null ? null : (float)env('SENTRY_TRACES_SAMPLE_RATE'),
+
+];
diff --git a/config/sms.php b/config/sms.php
index 7fea094..ea9ab15 100644
--- a/config/sms.php
+++ b/config/sms.php
@@ -1,8 +1,8 @@
[
- 'number' => env('linenumber'),
- 'api' => env('apikey')
- ]
-];
\ No newline at end of file
+ 'ghasedak' => [
+ 'number' => env('linenumber'),
+ 'api' => env('apikey'),
+ ],
+];
diff --git a/Modules/User/Database/Migrations/2019_08_19_000000_create_failed_jobs_table.php b/database/migrations/2019_08_19_000000_create_failed_jobs_table.php
similarity index 100%
rename from Modules/User/Database/Migrations/2019_08_19_000000_create_failed_jobs_table.php
rename to database/migrations/2019_08_19_000000_create_failed_jobs_table.php
diff --git a/database/migrations/2023_03_08_165036_create_job_batches_table.php b/database/migrations/2023_03_08_165036_create_job_batches_table.php
new file mode 100644
index 0000000..525b389
--- /dev/null
+++ b/database/migrations/2023_03_08_165036_create_job_batches_table.php
@@ -0,0 +1,39 @@
+string('id')->primary();
+ $table->string('name');
+ $table->integer('total_jobs');
+ $table->integer('pending_jobs');
+ $table->integer('failed_jobs');
+ $table->longText('failed_job_ids');
+ $table->mediumText('options')->nullable();
+ $table->integer('cancelled_at')->nullable();
+ $table->integer('created_at');
+ $table->integer('finished_at')->nullable();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('job_batches');
+ }
+};
diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php
index 178b6ed..f02798e 100644
--- a/database/seeders/DatabaseSeeder.php
+++ b/database/seeders/DatabaseSeeder.php
@@ -3,6 +3,7 @@
namespace Database\Seeders;
use Illuminate\Database\Seeder;
+use Module\Plan\Database\Seeders\PlanTableSeeder;
use Module\Role\Database\Seeders\RoleTableSeeder;
use Module\User\Models\User;
@@ -16,6 +17,13 @@ class DatabaseSeeder extends Seeder
public function run()
{
$this->call(RoleTableSeeder::class);
- User::factory(['role_id' => 1])->create();
+ $this->call(PlanTableSeeder::class);
+
+ $names = ['sport', 'science', 'imaginary'];
+ foreach ($names as $name) {
+ User::first()->categories()->create([
+ 'name' => $name,
+ ]);
+ }
}
}
diff --git a/docker-compose.yml b/docker-compose.yml
index f07ea44..4a2593b 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -1,51 +1,52 @@
version: '3.9'
services:
- weblog_application:
+ redact_application:
build:
- context: .
- dockerfile: docker/Dockerfile
- image: medium
- container_name: weblog_application
+ args:
+ user: idanieldrew
+ uid: 1000
+ context: docker/
+ dockerfile: Dockerfile
+ image: redact
+ container_name: redact_application
restart: unless-stopped
- tty: true
- environment:
- SERVICE_NAME: app
- SERVICE_TAGS: dev
- working_dir: /var/www/html
+ depends_on:
+ - redact_rabbitmq
+ working_dir: /var/www
volumes:
- - ./:/var/www/html
+ - .:/var/www
- ./docker/xdebug.ini:/usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
- # - ./docker/php.ini:/usr/local/etc/php/conf.d/local.ini
+ - ./docker/php.ini:/usr/local/etc/php/conf.d/local.ini
networks:
- - weblog-network
+ - redact_network
- medium_webserver:
+ redact_webserver:
image: nginx:1.21.3
- container_name: medium-web-server
+ container_name: redact_server
restart: always
tty: true
ports:
- "80:80"
# - "443:443"
volumes:
- - ./:/var/www/html
+ - .:/var/www
- ./docker/default.conf:/etc/nginx/conf.d/default.conf
depends_on:
- - weblog_application
+ - redact_application
networks:
- - weblog-network
+ - redact_network
- medium_database:
+ redact_database:
image: postgres:14.2-alpine
- container_name: mediumdb
+ container_name: redact_db
restart: unless-stopped
tty: true
depends_on:
- - weblog_application
+ - redact_application
ports:
- "54320:5432"
environment:
- POSTGRES_DB: "medium"
+ POSTGRES_DB: "redact"
POSTGRES_USER: "dani"
POSTGRES_PASSWORD: "password"
SERVICE_NAME: app
@@ -53,64 +54,135 @@ services:
volumes:
- dbdata:/var/lib/postgresql/data
networks:
- - weblog-network
+ - redact_network
- medium_cache:
+ redact_cache:
image: redis:7-alpine
- container_name: mediumredis
+ container_name: redact_redis
depends_on:
- - weblog_application
+ - redact_application
ports:
- "6379:6379"
volumes:
- cache-data:/data
- ./docker/redis.conf:/redis.conf
networks:
- - weblog-network
+ - redact_network
- medium_elasticsearch:
- image: docker.elastic.co/elasticsearch/elasticsearch:7.4.0
- container_name: mediumElasticsearch
+ redact_elasticsearch:
+ image: docker.elastic.co/elasticsearch/elasticsearch:8.6.2
+ container_name: redact_elasticsearch
environment:
- - xpack.security.enabled=false
- discovery.type=single-node
- ulimits:
- memlock:
- soft: -1
- hard: -1
- nofile:
- soft: 65536
- hard: 65536
- cap_add:
- - IPC_LOCK
+ - ingest.geoip.downloader.enabled=false
+ - xpack.security.enabled=false
volumes:
- - elasticsearch-data:/usr/share/elasticsearch/data
+ - elastics:/usr/share/elasticsearch/data
ports:
- - 9200:9200
- - 9300:9300
+ - "9200:9200"
+ - "9300:9300"
networks:
- - weblog-network
+ - redact_network
- medium_kibana:
- container_name: mediumKibana
- image: docker.elastic.co/kibana/kibana:7.4.0
+ redact_rabbitmq:
+ image: rabbitmq:3.11.3-management
+ container_name: redact_rabbitmq
+ tty: true
environment:
- - ELASTICSEARCH_HOSTS=http://medium_elasticsearch:9200
+ DEFAULT_VHOST: /
+ DEFAULT_USER: guest
+ DEFAULT_PASS: guest
ports:
- - 5601:5601
+ - 5672:5672
+ - 15672:15672
+ volumes:
+ - rabbitmq-data:/var/lib/rabbitmq
+ - rabbitmq-data2:/var/log/rabbitmq
+ networks:
+ - redact_network
+
+ redact_kibana:
+ image: docker.elastic.co/kibana/kibana:8.6.2
+ container_name: redact_kibana
+ environment:
+ ELASTICSEARCH_HOSTS: http://redact_elasticsearch:9200
depends_on:
- - medium_elasticsearch
+ - redact_elasticsearch
+ ports:
+ - "5601:5601"
+ networks:
+ - redact_network
+
+ redact_filebeat:
+ image: docker.elastic.co/beats/filebeat:8.6.2
+ container_name: redact_filebeat
+ volumes:
+ - ./docker/file.yml:/usr/share/filebeat/filebeat.yml:ro
+ - /var/lib/docker:/var/lib/docker/containers:ro
+ - /var/run/docker.sock:/var/run/docker.sock
+ - ./storage/logs:/usr/share/filebeat/mylog:rw
+ networks:
+ - redact_network
+
+ redact_minio:
+ image: minio/minio
+ container_name: redact_minio
+ hostname: minio_redact
+ ports:
+ - "9010:9000"
+ - "9001:9001"
+ volumes:
+ - minio_storage:/data
+ environment:
+ MINIO_ROOT_USER: dani
+ MINIO_ROOT_PASSWORD: password
+ command: server --console-address ":9001" /data
+ networks:
+ - redact_network
+
+ redact_prometheus:
+ image: quay.io/prometheus/prometheus
+ container_name: redact_prometheus
+ volumes:
+ - ./docker/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
+ command: "--config.file=/etc/prometheus/prometheus.yml --storage.tsdb.path=/prometheus"
+ restart: always
+ ports:
+ - "9090:9090"
+ networks:
+ - redact_network
+
+ redact_postgres-exporter:
+ image: prometheuscommunity/postgres-exporter
+ ports:
+ - "9187:9187"
+ environment:
+ DATA_SOURCE_NAME: "postgresql://dani:password@redact_db:5432/postgres?sslmode=disable"
+ links:
+ - redact_database
+ - redact_prometheus
networks:
- - weblog-network
+ - redact_network
networks:
- weblog-network:
+ redact_network:
driver: bridge
+
volumes:
dbdata:
driver: local
- elasticsearch-data:
+ elastics:
driver: local
cache-data:
driver: local
+ rabbitmq-data:
+ driver: local
+ rabbitmq-data2:
+ driver: local
+ logstash:
+ driver: local
+ filebeat:
+ driver: local
+ minio_storage:
+ driver: local
diff --git a/docker/Dockerfile b/docker/Dockerfile
index d4dcaa6..7471858 100644
--- a/docker/Dockerfile
+++ b/docker/Dockerfile
@@ -1,13 +1,12 @@
-FROM php:7.4-fpm
+FROM php:8.1-fpm
-# Copy composer.json & composer.lock
-COPY composer.json composer.lock /var/www/html/
-
-# Work directory
-WORKDIR /var/www/html
+# Arguments defined in docker-compose.yml
+ARG user
+ARG uid
# Install dependencies
RUN apt-get update && apt-get install -y \
+ ffmpeg \
build-essential \
libpng-dev \
libpq-dev \
@@ -24,29 +23,25 @@ RUN apt-get update && apt-get install -y \
RUN apt-get clean && rm -rf /var/lib/apt/lists/*
RUN pecl install xdebug \
- && docker-php-ext-enable xdebug
+ && docker-php-ext-enable xdebug
# Install extensions
RUN docker-php-ext-configure pgsql -with-pgsql=/usr/local/pgsql
RUN docker-php-ext-install pdo pdo_pgsql
RUN docker-php-ext-install gd
+RUN docker-php-ext-install sockets
+# add pcntl
+RUN docker-php-ext-install pcntl
-# Install composer
-RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
-
-# Create group for laravel app id=1000 nameGp=www
-RUN groupadd -g 1000 www
-
-# Create user for laravel app id=1000 username=www spacificGp=www
-RUN useradd -u 1000 -ms /bin/bash -g www www
-
-# Copy app content
-COPY . /var/www/html
+# Get latest Composer
+COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
-# Copy permission
-COPY --chown=www:www . /var/www/html
+# Create system user to run Composer and Artisan Commands
+RUN useradd -G www-data,root -u $uid -d /home/$user $user
+RUN mkdir -p /home/$user/.composer && \
+ chown -R $user:$user /home/$user
-# Change cuurent usert to www
-USER www
+# Set working directory
+WORKDIR /var/www
-CMD ["php-fpm"]
+USER $user
diff --git a/docker/default.conf b/docker/default.conf
index b6e6b34..77cd5ce 100644
--- a/docker/default.conf
+++ b/docker/default.conf
@@ -4,7 +4,8 @@ server {
server_name localhost;
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
- root /var/www/html/public;
+ root /var/www/public;
+ client_max_body_size 20M;
location / {
try_files $uri $uri/ /index.php?$query_string;
@@ -13,7 +14,7 @@ server {
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
- fastcgi_pass weblog_application:9000;
+ fastcgi_pass redact_application:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
@@ -23,4 +24,4 @@ server {
location ~ /\.(?!well-known).* {
deny all;
}
-}
\ No newline at end of file
+}
diff --git a/docker/file.yml b/docker/file.yml
new file mode 100644
index 0000000..3f2b292
--- /dev/null
+++ b/docker/file.yml
@@ -0,0 +1,18 @@
+filebeat.inputs:
+ - enabled: true
+ json.add_error_key: true
+ json.expand_keys: true
+ json.keys_under_root: true
+ json.overwrite_keys: true
+ paths:
+ - "/usr/share/filebeat/mylog/*.log"
+ type: filestream
+
+output.elasticsearch:
+ hosts: [ "172.21.0.3:9200" ]
+
+logging:
+ files:
+ rotateeverybytes: 10485760
+
+setup.kibana.host: "172.21.0.6:5601"
diff --git a/docker/filebeat.yml b/docker/filebeat.yml
new file mode 100755
index 0000000..fbef726
--- /dev/null
+++ b/docker/filebeat.yml
@@ -0,0 +1,10 @@
+filebeat.inputs:
+ - type: container
+ paths:
+ - /var/www/storage/logs/laravel*.log
+ enabled: true
+
+output.elasticsearch:
+ hosts: ["http://172.19.0.31:9200"]
+
+setup.kibana.host: "172.19.0.41:5601"
diff --git a/docker/logstash/logstash.conf b/docker/logstash/logstash.conf
new file mode 100644
index 0000000..9b2b55d
--- /dev/null
+++ b/docker/logstash/logstash.conf
@@ -0,0 +1,18 @@
+input {
+ jdbc {
+ jdbc_user => "dani"
+ jdbc_driver_class => "org.postgresql.Driver"
+ jdbc_connection_string => "jdbc:postgresql://redact_db:5432/postgres"
+ jdbc_driver_library => "/usr/share/logstash/logstash-core/lib/jars/postgresql.jar"
+ jdbc_password => "password"
+ statement => "select * from posts"
+ schedule => "*/59 * * * *"
+ }
+}
+
+output {
+ elasticsearch {
+ hosts => ["4a5cfbb94b28"]
+ index => "posts"
+ }
+}
diff --git a/docker/logstash/postgresql.jar b/docker/logstash/postgresql.jar
new file mode 100644
index 0000000..b583722
Binary files /dev/null and b/docker/logstash/postgresql.jar differ
diff --git a/docker/php.ini b/docker/php.ini
index 75c8ca7..a14c2a5 100644
--- a/docker/php.ini
+++ b/docker/php.ini
@@ -1,2 +1,10 @@
upload_max_filesize=40M
post-max-size=40M
+
+curl.cainfo = "/var/www/docker/cacert.pem"
+;opcache.enable=1
+;
+;opcache.revalidate_freq=0
+;opcache.validate_timestamps=0 (comment this out in your dev environment)
+;opcache.max_accelerated_files=9200
+;opcache.memory_consumption=192
diff --git a/docker/prometheus/prometheus.yml b/docker/prometheus/prometheus.yml
new file mode 100644
index 0000000..0315b49
--- /dev/null
+++ b/docker/prometheus/prometheus.yml
@@ -0,0 +1,10 @@
+global:
+ scrape_interval: 15s
+ evaluation_interval: 15s
+scrape_configs:
+ - job_name: redact_prometheus
+ static_configs:
+ - targets: ["localhost:9090"]
+ - job_name: postgres-exporter
+ static_configs:
+ - targets: ["redact_postgres-exporter:9187"]
diff --git a/docker/xdebug.ini b/docker/xdebug.ini
index 71d12e5..2ea041a 100644
--- a/docker/xdebug.ini
+++ b/docker/xdebug.ini
@@ -1,7 +1,9 @@
zend_extension = xdebug.so
[xdebug]
-xdebug.mode = debug,coverage
-xdebug.client_host = 192.168.112.1
-xdebug.client_port = 80
+xdebug.client_host = "172.18.0.1"
+xdebug.mode = develop
xdebug.start_with_request = yes
+xdebug.discover_client_host. = 0
+xdebug.remote_handler = "dbgp"
+xdebug.client_port = 9000
diff --git a/docs/images/logo.png b/docs/images/logo.png
new file mode 100644
index 0000000..6d84bec
Binary files /dev/null and b/docs/images/logo.png differ
diff --git a/phpstan.neon b/phpstan.neon
new file mode 100644
index 0000000..85a6cb7
--- /dev/null
+++ b/phpstan.neon
@@ -0,0 +1,25 @@
+includes:
+ - ./vendor/nunomaduro/larastan/extension.neon
+
+parameters:
+
+ paths:
+ - app/
+ - Modules/
+
+ # Level 9 is the highest level
+ level: 8
+ excludePaths:
+ - 'app/Http/Kernel.php'
+ - 'app/Console/Kernel.php'
+ - 'app/Exceptions/*.php'
+ - 'app/Http/Middleware/*.php'
+ - 'app/Providers/*.php'
+
+# ignoreErrors:
+# - '#PHPDoc tag @var#'
+#
+# excludePaths:
+# - ./*/*/FileToBeExcluded.php
+#
+# checkMissingIterableValueType: false
diff --git a/phpunit.xml b/phpunit.xml
index 506a45b..9ac49f8 100644
--- a/phpunit.xml
+++ b/phpunit.xml
@@ -6,18 +6,24 @@
>
0&&(Jt((p=Kt(p,"".concat(e||"","_").concat(o)))[0])&&Jt(i)&&(a[r]=ut(i.text+p[0].text),p.shift()),a.push.apply(a,p)):c(p)?Jt(i)?a[r]=ut(i.text+p):""!==p&&a.push(ut(p)):Jt(p)&&Jt(i)?a[r]=ut(i.text+p.text):(z(t._isVList)&&M(p.tag)&&n(p.key)&&M(e)&&(p.key="__vlist".concat(e,"_").concat(o,"__")),a.push(p)));return a}function Qt(t,e,o,p,n,a){return(b(o)||c(o))&&(n=p,p=o,o=void 0),z(a)&&(n=2),function(t,e,o,p,n){if(M(o)&&M(o.__ob__))return At();M(o)&&M(o.is)&&(e=o.is);if(!e)return At();0;b(p)&&r(p[0])&&((o=o||{}).scopedSlots={default:p[0]},p.length=0);2===n?p=Gt(p):1===n&&(p=function(t){for(var e=0;e 0)){var e=this.router,o=e.options.scrollBehavior,p=ca&&o;p&&this.listeners.push(Qi());var b=function(){var o=t.current,b=La(t.base);t.current===ni&&b===t._startLocation||t.transitionTo(b,(function(t){p&&Zi(e,t,o,!0)}))};window.addEventListener("popstate",b),this.listeners.push((function(){window.removeEventListener("popstate",b)}))}},e.prototype.go=function(t){window.history.go(t)},e.prototype.push=function(t,e,o){var p=this,b=this.current;this.transitionTo(t,(function(t){ra(li(p.base+t.fullPath)),Zi(p.router,t,b,!1),e&&e(t)}),o)},e.prototype.replace=function(t,e,o){var p=this,b=this.current;this.transitionTo(t,(function(t){ia(li(p.base+t.fullPath)),Zi(p.router,t,b,!1),e&&e(t)}),o)},e.prototype.ensureURL=function(t){if(La(this.base)!==this.current.fullPath){var e=li(this.base+this.current.fullPath);t?ra(e):ia(e)}},e.prototype.getCurrentLocation=function(){return La(this.base)},e}(va);function La(t){var e=window.location.pathname,o=e.toLowerCase(),p=t.toLowerCase();return!t||o!==p&&0!==o.indexOf(li(p+"/"))||(e=e.slice(t.length)),(e||"/")+window.location.search+window.location.hash}var Xa=function(t){function e(e,o,p){t.call(this,e,o),p&&function(t){var e=La(t);if(!/^\/#/.test(e))return window.location.replace(li(t+"/#"+e)),!0}(this.base)||_a()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.setupListeners=function(){var t=this;if(!(this.listeners.length>0)){var e=this.router.options.scrollBehavior,o=ca&&e;o&&this.listeners.push(Qi());var p=function(){var e=t.current;_a()&&t.transitionTo(Na(),(function(p){o&&Zi(t.router,p,e,!0),ca||Ta(p.fullPath)}))},b=ca?"popstate":"hashchange";window.addEventListener(b,p),this.listeners.push((function(){window.removeEventListener(b,p)}))}},e.prototype.push=function(t,e,o){var p=this,b=this.current;this.transitionTo(t,(function(t){xa(t.fullPath),Zi(p.router,t,b,!1),e&&e(t)}),o)},e.prototype.replace=function(t,e,o){var p=this,b=this.current;this.transitionTo(t,(function(t){Ta(t.fullPath),Zi(p.router,t,b,!1),e&&e(t)}),o)},e.prototype.go=function(t){window.history.go(t)},e.prototype.ensureURL=function(t){var e=this.current.fullPath;Na()!==e&&(t?xa(e):Ta(e))},e.prototype.getCurrentLocation=function(){return Na()},e}(va);function _a(){var t=Na();return"/"===t.charAt(0)||(Ta("/"+t),!1)}function Na(){var t=window.location.href,e=t.indexOf("#");return e<0?"":t=t.slice(e+1)}function wa(t){var e=window.location.href,o=e.indexOf("#");return(o>=0?e.slice(0,o):e)+"#"+t}function xa(t){ca?ra(wa(t)):window.location.hash=t}function Ta(t){ca?ia(wa(t)):window.location.replace(wa(t))}var Ca=function(t){function e(e,o){t.call(this,e,o),this.stack=[],this.index=-1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.push=function(t,e,o){var p=this;this.transitionTo(t,(function(t){p.stack=p.stack.slice(0,p.index+1).concat(t),p.index++,e&&e(t)}),o)},e.prototype.replace=function(t,e,o){var p=this;this.transitionTo(t,(function(t){p.stack=p.stack.slice(0,p.index).concat(t),e&&e(t)}),o)},e.prototype.go=function(t){var e=this,o=this.index+t;if(!(o<0||o>=this.stack.length)){var p=this.stack[o];this.confirmTransition(p,(function(){var t=e.current;e.index=o,e.updateRoute(p),e.router.afterHooks.forEach((function(e){e&&e(p,t)}))}),(function(t){ua(t,aa.duplicated)&&(e.index=o)}))}},e.prototype.getCurrentLocation=function(){var t=this.stack[this.stack.length-1];return t?t.fullPath:"/"},e.prototype.ensureURL=function(){},e}(va),Sa=function(t){void 0===t&&(t={}),this.app=null,this.apps=[],this.options=t,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=Hi(t.routes||[],this);var e=t.mode||"hash";switch(this.fallback="history"===e&&!ca&&!1!==t.fallback,this.fallback&&(e="hash"),Pi||(e="abstract"),this.mode=e,e){case"history":this.history=new Ba(this,t.base);break;case"hash":this.history=new Xa(this,t.base,this.fallback);break;case"abstract":this.history=new Ca(this,t.base)}},ka={currentRoute:{configurable:!0}};Sa.prototype.match=function(t,e,o){return this.matcher.match(t,e,o)},ka.currentRoute.get=function(){return this.history&&this.history.current},Sa.prototype.init=function(t){var e=this;if(this.apps.push(t),t.$once("hook:destroyed",(function(){var o=e.apps.indexOf(t);o>-1&&e.apps.splice(o,1),e.app===t&&(e.app=e.apps[0]||null),e.app||e.history.teardown()})),!this.app){this.app=t;var o=this.history;if(o instanceof Ba||o instanceof Xa){var p=function(t){o.setupListeners(),function(t){var p=o.current,b=e.options.scrollBehavior;ca&&b&&"fullPath"in t&&Zi(e,t,p,!1)}(t)};o.transitionTo(o.getCurrentLocation(),p,p)}o.listen((function(t){e.apps.forEach((function(e){e._route=t}))}))}},Sa.prototype.beforeEach=function(t){return Da(this.beforeHooks,t)},Sa.prototype.beforeResolve=function(t){return Da(this.resolveHooks,t)},Sa.prototype.afterEach=function(t){return Da(this.afterHooks,t)},Sa.prototype.onReady=function(t,e){this.history.onReady(t,e)},Sa.prototype.onError=function(t){this.history.onError(t)},Sa.prototype.push=function(t,e,o){var p=this;if(!e&&!o&&"undefined"!=typeof Promise)return new Promise((function(e,o){p.history.push(t,e,o)}));this.history.push(t,e,o)},Sa.prototype.replace=function(t,e,o){var p=this;if(!e&&!o&&"undefined"!=typeof Promise)return new Promise((function(e,o){p.history.replace(t,e,o)}));this.history.replace(t,e,o)},Sa.prototype.go=function(t){this.history.go(t)},Sa.prototype.back=function(){this.go(-1)},Sa.prototype.forward=function(){this.go(1)},Sa.prototype.getMatchedComponents=function(t){var e=t?t.matched?t:this.resolve(t).route:this.currentRoute;return e?[].concat.apply([],e.matched.map((function(t){return Object.keys(t.components).map((function(e){return t.components[e]}))}))):[]},Sa.prototype.resolve=function(t,e,o){var p=Ti(t,e=e||this.history.current,o,this),b=this.match(p,e),n=b.redirectedFrom||b.fullPath,M=function(t,e,o){var p="hash"===o?"#"+e:e;return t?li(t+"/"+p):p}(this.history.base,n,this.mode);return{location:p,route:b,href:M,normalizedTo:p,resolved:b}},Sa.prototype.getRoutes=function(){return this.matcher.getRoutes()},Sa.prototype.addRoute=function(t,e){this.matcher.addRoute(t,e),this.history.current!==ni&&this.history.transitionTo(this.history.getCurrentLocation())},Sa.prototype.addRoutes=function(t){this.matcher.addRoutes(t),this.history.current!==ni&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(Sa.prototype,ka);var Ea=Sa;function Da(t,e){return t.push(e),function(){var o=t.indexOf(e);o>-1&&t.splice(o,1)}}Sa.install=function t(e){if(!t.installed||Ci!==e){t.installed=!0,Ci=e;var o=function(t){return void 0!==t},p=function(t,e){var p=t.$options._parentVnode;o(p)&&o(p=p.data)&&o(p=p.registerRouteInstance)&&p(t,e)};e.mixin({beforeCreate:function(){o(this.$options.router)?(this._routerRoot=this,this._router=this.$options.router,this._router.init(this),e.util.defineReactive(this,"_route",this._router.history.current)):this._routerRoot=this.$parent&&this.$parent._routerRoot||this,p(this,this)},destroyed:function(){p(this)}}),Object.defineProperty(e.prototype,"$router",{get:function(){return this._routerRoot._router}}),Object.defineProperty(e.prototype,"$route",{get:function(){return this._routerRoot._route}}),e.component("RouterView",ai),e.component("RouterLink",ki);var b=e.config.optionMergeStrategies;b.beforeRouteEnter=b.beforeRouteLeave=b.beforeRouteUpdate=b.created}},Sa.version="3.6.5",Sa.isNavigationFailure=ua,Sa.NavigationFailureType=aa,Sa.START_LOCATION=ni,Pi&&window.Vue&&window.Vue.use(Sa);var Pa=o(566),ja=o.n(Pa);window.Popper=o(981).default;try{window.$=window.jQuery=o(755),o(734)}catch(t){}var Ia=document.head.querySelector('meta[name="csrf-token"]');Ur.defaults.headers.common["X-Requested-With"]="XMLHttpRequest",Ia&&(Ur.defaults.headers.common["X-CSRF-TOKEN"]=Ia.content),ep.use(Ea),ep.prototype.$http=Ur.create(),window.Horizon.basePath="/"+window.Horizon.path;var Fa=window.Horizon.basePath+"/";""!==window.Horizon.path&&"/"!==window.Horizon.path||(Fa="/",window.Horizon.basePath="");var Ha=new Ea({routes:Vr,mode:"history",base:Fa});ep.component("vue-json-pretty",ja()),ep.component("alert",o(682).Z),ep.component("scheme-toggler",o(70).Z),ep.mixin(oc),ep.directive("tooltip",(function(t,e){$(t).tooltip({title:e.value,placement:e.arg,trigger:"hover"})})),new ep({el:"#horizon",router:Ha,data:function(){return{alert:{type:null,autoClose:0,message:"",confirmationProceed:null,confirmationCancel:null},autoLoadsNewEntries:"1"===localStorage.autoLoadsNewEntries}}})},742:(t,e)=>{"use strict";e.byteLength=function(t){var e=c(t),o=e[0],p=e[1];return 3*(o+p)/4-p},e.toByteArray=function(t){var e,o,n=c(t),M=n[0],z=n[1],r=new b(function(t,e,o){return 3*(e+o)/4-o}(0,M,z)),i=0,a=z>0?M-4:M;for(o=0;o>16&255,r[i++]=e>>8&255,r[i++]=255&e;2===z&&(e=p[t.charCodeAt(o)]<<2|p[t.charCodeAt(o+1)]>>4,r[i++]=255&e);1===z&&(e=p[t.charCodeAt(o)]<<10|p[t.charCodeAt(o+1)]<<4|p[t.charCodeAt(o+2)]>>2,r[i++]=e>>8&255,r[i++]=255&e);return r},e.fromByteArray=function(t){for(var e,p=t.length,b=p%3,n=[],M=16383,z=0,c=p-b;z >18&63]+o[n>>12&63]+o[n>>6&63]+o[63&n]);return M.join("")}p["-".charCodeAt(0)]=62,p["_".charCodeAt(0)]=63},734:function(t,e,o){!function(t,e,o){"use strict";function p(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var b=p(e),n=p(o);function M(t,e){for(var o=0;o 0},e._getOffset=function(){var t=this,e={};return"function"==typeof this._config.offset?e.fn=function(e){return e.offsets=c({},e.offsets,t._config.offset(e.offsets,t._element)),e}:e.offset=this._config.offset,e},e._getPopperConfig=function(){var t={placement:this._getPlacement(),modifiers:{offset:this._getOffset(),flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(t.modifiers.applyStyle={enabled:!1}),c({},t,this._config.popperConfig)},t._jQueryInterface=function(e){return this.each((function(){var o=b.default(this).data(Ae);if(o||(o=new t(this,"object"==typeof e?e:null),b.default(this).data(Ae,o)),"string"==typeof e){if(void 0===o[e])throw new TypeError('No method named "'+e+'"');o[e]()}}))},t._clearMenus=function(e){if(!e||e.which!==Re&&("keyup"!==e.type||e.which===me))for(var o=[].slice.call(document.querySelectorAll(Ie)),p=0,n=o.length;p >8,b=o%256,n.push(b),n.push(p);return n}(e,t.length-o),t,o,p)}function R(t,e,o){return 0===e&&o===t.length?p.fromByteArray(t):p.fromByteArray(t.slice(e,o))}function y(t,e,o){o=Math.min(t.length,o);for(var p=[],b=e;b =e.length||b>=t.length);++b)e[b+o]=t[b];return b}},757:function(t,e,o){t.exports=function(t){"use strict";function e(t,e){return t(e={exports:{}},e.exports),e.exports}function o(t){return t&&t.default||t}t=t&&t.hasOwnProperty("default")?t.default:t;var p={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},b=e((function(t){var e={};for(var o in p)p.hasOwnProperty(o)&&(e[p[o]]=o);var b=t.exports={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};for(var n in b)if(b.hasOwnProperty(n)){if(!("channels"in b[n]))throw new Error("missing channels property: "+n);if(!("labels"in b[n]))throw new Error("missing channel labels property: "+n);if(b[n].labels.length!==b[n].channels)throw new Error("channel and label counts mismatch: "+n);var M=b[n].channels,z=b[n].labels;delete b[n].channels,delete b[n].labels,Object.defineProperty(b[n],"channels",{value:M}),Object.defineProperty(b[n],"labels",{value:z})}function c(t,e){return Math.pow(t[0]-e[0],2)+Math.pow(t[1]-e[1],2)+Math.pow(t[2]-e[2],2)}b.rgb.hsl=function(t){var e,o,p=t[0]/255,b=t[1]/255,n=t[2]/255,M=Math.min(p,b,n),z=Math.max(p,b,n),c=z-M;return z===M?e=0:p===z?e=(b-n)/c:b===z?e=2+(n-p)/c:n===z&&(e=4+(p-b)/c),(e=Math.min(60*e,360))<0&&(e+=360),o=(M+z)/2,[e,100*(z===M?0:o<=.5?c/(z+M):c/(2-z-M)),100*o]},b.rgb.hsv=function(t){var e,o,p,b,n,M=t[0]/255,z=t[1]/255,c=t[2]/255,r=Math.max(M,z,c),i=r-Math.min(M,z,c),a=function(t){return(r-t)/6/i+.5};return 0===i?b=n=0:(n=i/r,e=a(M),o=a(z),p=a(c),M===r?b=p-o:z===r?b=1/3+e-p:c===r&&(b=2/3+o-e),b<0?b+=1:b>1&&(b-=1)),[360*b,100*n,100*r]},b.rgb.hwb=function(t){var e=t[0],o=t[1],p=t[2];return[b.rgb.hsl(t)[0],1/255*Math.min(e,Math.min(o,p))*100,100*(p=1-1/255*Math.max(e,Math.max(o,p)))]},b.rgb.cmyk=function(t){var e,o=t[0]/255,p=t[1]/255,b=t[2]/255;return[100*((1-o-(e=Math.min(1-o,1-p,1-b)))/(1-e)||0),100*((1-p-e)/(1-e)||0),100*((1-b-e)/(1-e)||0),100*e]},b.rgb.keyword=function(t){var o=e[t];if(o)return o;var b,n=1/0;for(var M in p)if(p.hasOwnProperty(M)){var z=c(t,p[M]);z =0&&e<1?w(Math.round(255*e)):"")}function g(t,e){return e<1||t[3]&&t[3]<1?v(t,e):"rgb("+t[0]+", "+t[1]+", "+t[2]+")"}function v(t,e){return void 0===e&&(e=void 0!==t[3]?t[3]:1),"rgba("+t[0]+", "+t[1]+", "+t[2]+", "+e+")"}function R(t,e){return e<1||t[3]&&t[3]<1?y(t,e):"rgb("+Math.round(t[0]/255*100)+"%, "+Math.round(t[1]/255*100)+"%, "+Math.round(t[2]/255*100)+"%)"}function y(t,e){return"rgba("+Math.round(t[0]/255*100)+"%, "+Math.round(t[1]/255*100)+"%, "+Math.round(t[2]/255*100)+"%, "+(e||t[3]||1)+")"}function B(t,e){return e<1||t[3]&&t[3]<1?L(t,e):"hsl("+t[0]+", "+t[1]+"%, "+t[2]+"%)"}function L(t,e){return void 0===e&&(e=void 0!==t[3]?t[3]:1),"hsla("+t[0]+", "+t[1]+"%, "+t[2]+"%, "+e+")"}function X(t,e){return void 0===e&&(e=void 0!==t[3]?t[3]:1),"hwb("+t[0]+", "+t[1]+"%, "+t[2]+"%"+(void 0!==e&&1!==e?", "+e:"")+")"}function _(t){return x[t.slice(0,3)]}function N(t,e,o){return Math.min(Math.max(e,t),o)}function w(t){var e=t.toString(16).toUpperCase();return e.length<2?"0"+e:e}var x={};for(var T in l)x[l[T]]=T;var C=function(t){return t instanceof C?t:this instanceof C?(this.valid=!1,this.values={rgb:[0,0,0],hsl:[0,0,0],hsv:[0,0,0],hwb:[0,0,0],cmyk:[0,0,0,0],alpha:1},void("string"==typeof t?(e=d.getRgba(t))?this.setValues("rgb",e):(e=d.getHsla(t))?this.setValues("hsl",e):(e=d.getHwb(t))&&this.setValues("hwb",e):"object"==typeof t&&(void 0!==(e=t).r||void 0!==e.red?this.setValues("rgb",e):void 0!==e.l||void 0!==e.lightness?this.setValues("hsl",e):void 0!==e.v||void 0!==e.value?this.setValues("hsv",e):void 0!==e.w||void 0!==e.whiteness?this.setValues("hwb",e):void 0===e.c&&void 0===e.cyan||this.setValues("cmyk",e)))):new C(t);var e};C.prototype={isValid:function(){return this.valid},rgb:function(){return this.setSpace("rgb",arguments)},hsl:function(){return this.setSpace("hsl",arguments)},hsv:function(){return this.setSpace("hsv",arguments)},hwb:function(){return this.setSpace("hwb",arguments)},cmyk:function(){return this.setSpace("cmyk",arguments)},rgbArray:function(){return this.values.rgb},hslArray:function(){return this.values.hsl},hsvArray:function(){return this.values.hsv},hwbArray:function(){var t=this.values;return 1!==t.alpha?t.hwb.concat([t.alpha]):t.hwb},cmykArray:function(){return this.values.cmyk},rgbaArray:function(){var t=this.values;return t.rgb.concat([t.alpha])},hslaArray:function(){var t=this.values;return t.hsl.concat([t.alpha])},alpha:function(t){return void 0===t?this.values.alpha:(this.setValues("alpha",t),this)},red:function(t){return this.setChannel("rgb",0,t)},green:function(t){return this.setChannel("rgb",1,t)},blue:function(t){return this.setChannel("rgb",2,t)},hue:function(t){return t&&(t=(t%=360)<0?360+t:t),this.setChannel("hsl",0,t)},saturation:function(t){return this.setChannel("hsl",1,t)},lightness:function(t){return this.setChannel("hsl",2,t)},saturationv:function(t){return this.setChannel("hsv",1,t)},whiteness:function(t){return this.setChannel("hwb",1,t)},blackness:function(t){return this.setChannel("hwb",2,t)},value:function(t){return this.setChannel("hsv",2,t)},cyan:function(t){return this.setChannel("cmyk",0,t)},magenta:function(t){return this.setChannel("cmyk",1,t)},yellow:function(t){return this.setChannel("cmyk",2,t)},black:function(t){return this.setChannel("cmyk",3,t)},hexString:function(){return d.hexString(this.values.rgb)},rgbString:function(){return d.rgbString(this.values.rgb,this.values.alpha)},rgbaString:function(){return d.rgbaString(this.values.rgb,this.values.alpha)},percentString:function(){return d.percentString(this.values.rgb,this.values.alpha)},hslString:function(){return d.hslString(this.values.hsl,this.values.alpha)},hslaString:function(){return d.hslaString(this.values.hsl,this.values.alpha)},hwbString:function(){return d.hwbString(this.values.hwb,this.values.alpha)},keyword:function(){return d.keyword(this.values.rgb,this.values.alpha)},rgbNumber:function(){var t=this.values.rgb;return t[0]<<16|t[1]<<8|t[2]},luminosity:function(){for(var t=this.values.rgb,e=[],o=0;o p-1?null:e.getPixelForDecimal(t*b+(o?b/2:0))},getPixelForDecimal:function(t){var e=this;return e._reversePixels&&(t=1-t),e._startPixel+t*e._length},getDecimalForPixel:function(t){var e=(t-this._startPixel)/this._length;return this._reversePixels?1-e:e},getBasePixel:function(){return this.getPixelForValue(this.getBaseValue())},getBaseValue:function(){var t=this,e=t.min,o=t.max;return t.beginAtZero?0:e<0&&o<0?o:e>0&&o>0?e:0},_autoSkip:function(t){var e,o,p,b,n=this,M=n.options.ticks,z=n._length,c=M.maxTicksLimit||z/n._tickSize()+1,r=M.major.enabled?dp(t):[],i=r.length,a=r[0],O=r[i-1];if(i>c)return Ap(t,r,i/c),Op(t);if(p=lp(r,t,z,c),i>0){for(e=0,o=i-1;e b?{start:e-o,end:e}:{start:e,end:e+o}}function Jp(t){var e,o,p,b=zt.options._parseFont(t.options.pointLabels),n={l:0,r:t.width,t:0,b:t.height-t.paddingTop},M={};t.ctx.font=b.string,t._pointLabelSizes=[];var z=t.chart.data.labels.length;for(e=0;e 1?v.uniqueSort(o):o},filter:function(t){return this.pushStack(w(this,t||[],!1))},not:function(t){return this.pushStack(w(this,t||[],!0))},is:function(t){return!!w(this,"string"==typeof t&&X.test(t)?v(t):t||[],!1).length}});var x,T=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(v.fn.init=function(t,e,o){var p,b;if(!t)return this;if(o=o||x,"string"==typeof t){if(!(p="<"===t[0]&&">"===t[t.length-1]&&t.length>=3?[null,t,null]:T.exec(t))||!p[1]&&e)return!e||e.jquery?(e||o).find(t):this.constructor(e).find(t);if(p[1]){if(e=e instanceof v?e[0]:e,v.merge(this,v.parseHTML(p[1],e&&e.nodeType?e.ownerDocument||e:q,!0)),N.test(p[1])&&v.isPlainObject(e))for(p in e)u(this[p])?this[p](e[p]):this.attr(p,e[p]);return this}return(b=q.getElementById(p[2]))&&(this[0]=b,this.length=1),this}return t.nodeType?(this[0]=t,this.length=1,this):u(t)?void 0!==o.ready?o.ready(t):t(v):v.makeArray(t,this)}).prototype=v.fn,x=v(q);var C=/^(?:parents|prev(?:Until|All))/,S={children:!0,contents:!0,next:!0,prev:!0};function k(t,e){for(;(t=t[e])&&1!==t.nodeType;);return t}v.fn.extend({has:function(t){var e=v(t,this),o=e.length;return this.filter((function(){for(var t=0;t ",""]);var mt=/<|?\w+;/;function gt(t,e,o,p,b){for(var n,M,z,c,r,i,a=e.createDocumentFragment(),O=[],s=0,l=t.length;s 1&&"string"==typeof l&&!A.checkClone&&Nt.test(l))return t.each((function(b){var n=t.eq(b);d&&(e[0]=l.call(this,b,n.html())),Et(n,e,o,p)}));if(O&&(n=(b=gt(e,t[0].ownerDocument,!1,t,p)).firstChild,1===b.childNodes.length&&(b=n),n||p)){for(z=(M=v.map(ht(b,"script"),Tt)).length;a =0&&(c+=Math.max(0,Math.ceil(t["offset"+e[0].toUpperCase()+e.slice(1)]-n-c-z-.5))||0),c}function pe(t,e,o){var p=It(t),b=(!A.boxSizingReliable()||o)&&"border-box"===v.css(t,"boxSizing",!1,p),n=b,M=Vt(t,e,p),z="offset"+e[0].toUpperCase()+e.slice(1);if(Pt.test(M)){if(!o)return M;M="auto"}return(!A.boxSizingReliable()&&b||!A.reliableTrDimensions()&&_(t,"tr")||"auto"===M||!parseFloat(M)&&"inline"===v.css(t,"display",!1,p))&&t.getClientRects().length&&(b="border-box"===v.css(t,"boxSizing",!1,p),(n=z in t)&&(M=t[z])),(M=parseFloat(M)||0)+oe(t,e,o||(b?"border":"content"),n,p,M)+"px"}function be(t,e,o,p,b){return new be.prototype.init(t,e,o,p,b)}v.extend({cssHooks:{opacity:{get:function(t,e){if(e){var o=Vt(t,"opacity");return""===o?"1":o}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(t,e,o,p){if(t&&3!==t.nodeType&&8!==t.nodeType&&t.style){var b,n,M,z=G(e),c=jt.test(e),r=t.style;if(c||(e=Kt(z)),M=v.cssHooks[e]||v.cssHooks[z],void 0===o)return M&&"get"in M&&void 0!==(b=M.get(t,!1,p))?b:r[e];"string"===(n=typeof o)&&(b=bt.exec(o))&&b[1]&&(o=it(t,e,b),n="number"),null!=o&&o==o&&("number"!==n||c||(o+=b&&b[3]||(v.cssNumber[z]?"":"px")),A.clearCloneStyle||""!==o||0!==e.indexOf("background")||(r[e]="inherit"),M&&"set"in M&&void 0===(o=M.set(t,o,p))||(c?r.setProperty(e,o):r[e]=o))}},css:function(t,e,o,p){var b,n,M,z=G(e);return jt.test(e)||(e=Kt(z)),(M=v.cssHooks[e]||v.cssHooks[z])&&"get"in M&&(b=M.get(t,!0,o)),void 0===b&&(b=Vt(t,e,p)),"normal"===b&&e in te&&(b=te[e]),""===o||o?(n=parseFloat(b),!0===o||isFinite(n)?n||0:b):b}}),v.each(["height","width"],(function(t,e){v.cssHooks[e]={get:function(t,o,p){if(o)return!Qt.test(v.css(t,"display"))||t.getClientRects().length&&t.getBoundingClientRect().width?pe(t,e,p):Ft(t,Zt,(function(){return pe(t,e,p)}))},set:function(t,o,p){var b,n=It(t),M=!A.scrollboxSize()&&"absolute"===n.position,z=(M||p)&&"border-box"===v.css(t,"boxSizing",!1,n),c=p?oe(t,e,p,z,n):0;return z&&M&&(c-=Math.ceil(t["offset"+e[0].toUpperCase()+e.slice(1)]-parseFloat(n[e])-oe(t,e,"border",!1,n)-.5)),c&&(b=bt.exec(o))&&"px"!==(b[3]||"px")&&(t.style[e]=o,o=v.css(t,e)),ee(0,o,c)}}})),v.cssHooks.marginLeft=$t(A.reliableMarginLeft,(function(t,e){if(e)return(parseFloat(Vt(t,"marginLeft"))||t.getBoundingClientRect().left-Ft(t,{marginLeft:0},(function(){return t.getBoundingClientRect().left})))+"px"})),v.each({margin:"",padding:"",border:"Width"},(function(t,e){v.cssHooks[t+e]={expand:function(o){for(var p=0,b={},n="string"==typeof o?o.split(" "):[o];p<4;p++)b[t+nt[p]+e]=n[p]||n[p-2]||n[0];return b}},"margin"!==t&&(v.cssHooks[t+e].set=ee)})),v.fn.extend({css:function(t,e){return U(this,(function(t,e,o){var p,b,n={},M=0;if(Array.isArray(e)){for(p=It(t),b=e.length;M1)}}),v.Tween=be,be.prototype={constructor:be,init:function(t,e,o,p,b,n){this.elem=t,this.prop=o,this.easing=b||v.easing._default,this.options=e,this.start=this.now=this.cur(),this.end=p,this.unit=n||(v.cssNumber[o]?"":"px")},cur:function(){var t=be.propHooks[this.prop];return t&&t.get?t.get(this):be.propHooks._default.get(this)},run:function(t){var e,o=be.propHooks[this.prop];return this.options.duration?this.pos=e=v.easing[this.easing](t,this.options.duration*t,0,1,this.options.duration):this.pos=e=t,this.now=(this.end-this.start)*e+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),o&&o.set?o.set(this):be.propHooks._default.set(this),this}},be.prototype.init.prototype=be.prototype,be.propHooks={_default:{get:function(t){var e;return 1!==t.elem.nodeType||null!=t.elem[t.prop]&&null==t.elem.style[t.prop]?t.elem[t.prop]:(e=v.css(t.elem,t.prop,""))&&"auto"!==e?e:0},set:function(t){v.fx.step[t.prop]?v.fx.step[t.prop](t):1!==t.elem.nodeType||!v.cssHooks[t.prop]&&null==t.elem.style[Kt(t.prop)]?t.elem[t.prop]=t.now:v.style(t.elem,t.prop,t.now+t.unit)}}},be.propHooks.scrollTop=be.propHooks.scrollLeft={set:function(t){t.elem.nodeType&&t.elem.parentNode&&(t.elem[t.prop]=t.now)}},v.easing={linear:function(t){return t},swing:function(t){return.5-Math.cos(t*Math.PI)/2},_default:"swing"},v.fx=be.prototype.init,v.fx.step={};var ne,Me,ze=/^(?:toggle|show|hide)$/,ce=/queueHooks$/;function re(){Me&&(!1===q.hidden&&p.requestAnimationFrame?p.requestAnimationFrame(re):p.setTimeout(re,v.fx.interval),v.fx.tick())}function ie(){return p.setTimeout((function(){ne=void 0})),ne=Date.now()}function ae(t,e){var o,p=0,b={height:t};for(e=e?1:0;p<4;p+=2-e)b["margin"+(o=nt[p])]=b["padding"+o]=t;return e&&(b.opacity=b.width=t),b}function Oe(t,e,o){for(var p,b=(se.tweeners[e]||[]).concat(se.tweeners["*"]),n=0,M=b.length;np&&(p=n),p},zt.numberOfLabelLines=function(t){var e=1;return zt.each(t,(function(t){zt.isArray(t)&&t.length>e&&(e=t.length)})),e},zt.color=S?function(t){return t instanceof CanvasGradient&&(t=Q.global.defaultColor),S(t)}:function(t){return t},zt.getHoverColor=function(t){return t instanceof CanvasPattern||t instanceof CanvasGradient?t:zt.color(t).saturate(.5).darken(.1).rgbString()}};function Jo(){throw new Error("This method is not implemented: either no adapter can be found or an incomplete integration was provided.")}function Ko(t){this.options=t||{}}zt.extend(Ko.prototype,{formats:Jo,parse:Jo,format:Jo,add:Jo,diff:Jo,startOf:Jo,endOf:Jo,_create:function(t){return t}}),Ko.override=function(t){zt.extend(Ko.prototype,t)};var Qo={_date:Ko},Zo={formatters:{values:function(t){return zt.isArray(t)?t:""+t},linear:function(t,e,o){var p=o.length>3?o[2]-o[1]:o[1]-o[0];Math.abs(p)>1&&t!==Math.floor(t)&&(p=t-Math.floor(t));var b=zt.log10(Math.abs(p)),n="";if(0!==t)if(Math.max(Math.abs(o[0]),Math.abs(o[o.length-1]))<1e-4){var M=zt.log10(Math.abs(t)),z=Math.floor(M)-Math.floor(b);z=Math.max(Math.min(z,20),0),n=t.toExponential(z)}else{var c=-1*Math.floor(b);c=Math.max(Math.min(c,20),0),n=t.toFixed(c)}else n="0";return n},logarithmic:function(t,e,o){var p=t/Math.pow(10,Math.floor(zt.log10(t)));return 0===t?"0":1===p||2===p||5===p||0===e||e===o.length-1?t.toExponential():""}}},tp=zt.isArray,ep=zt.isNullOrUndef,op=zt.valueOrDefault,pp=zt.valueAtIndexOrDefault;function bp(t,e){for(var o=[],p=t.length/e,b=0,n=t.length;b","
"],col:[2,"
"],tr:[2,"","
"],td:[3,"
"],_default:[0,"",""]};function ht(t,e){var o;return o=void 0!==t.getElementsByTagName?t.getElementsByTagName(e||"*"):void 0!==t.querySelectorAll?t.querySelectorAll(e||"*"):[],void 0===e||e&&_(t,e)?v.merge([t],o):o}function Wt(t,e){for(var o=0,p=t.length;o","