diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..1671c9b --- /dev/null +++ b/.editorconfig @@ -0,0 +1,18 @@ +root = true + +[*] +charset = utf-8 +end_of_line = lf +insert_final_newline = true +indent_style = space +indent_size = 4 +trim_trailing_whitespace = true + +[*.md] +trim_trailing_whitespace = false + +[*.{yml,yaml}] +indent_size = 2 + +[docker-compose.yml] +indent_size = 4 diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..5e40114 --- /dev/null +++ b/.env.example @@ -0,0 +1,54 @@ +APP_NAME=Laravel +APP_ENV=local +APP_KEY=base64:v1QnVEowFRp4C4Ne5jAR9RKM2vp8ytxqmOA/4Ej1R10= +APP_DEBUG=true +APP_URL=http://localhost + +LOG_CHANNEL=stack +LOG_DEPRECATIONS_CHANNEL=null +LOG_LEVEL=debug + +DB_CONNECTION=mysql +DB_HOST=127.0.0.1 +DB_PORT=3306 +DB_DATABASE=weather +DB_USERNAME=root +DB_PASSWORD= + +BROADCAST_DRIVER=log +CACHE_DRIVER=file +FILESYSTEM_DRIVER=local +QUEUE_CONNECTION=sync +SESSION_DRIVER=file +SESSION_LIFETIME=120 + +MEMCACHED_HOST=127.0.0.1 + +REDIS_HOST=127.0.0.1 +REDIS_PASSWORD=null +REDIS_PORT=6379 + +MAIL_MAILER=smtp +MAIL_HOST=mailhog +MAIL_PORT=1025 +MAIL_USERNAME=null +MAIL_PASSWORD=null +MAIL_ENCRYPTION=null +MAIL_FROM_ADDRESS=null +MAIL_FROM_NAME="${APP_NAME}" + +AWS_ACCESS_KEY_ID= +AWS_SECRET_ACCESS_KEY= +AWS_DEFAULT_REGION=us-east-1 +AWS_BUCKET= +AWS_USE_PATH_STYLE_ENDPOINT=false + +PUSHER_APP_ID= +PUSHER_APP_KEY= +PUSHER_APP_SECRET= +PUSHER_APP_CLUSTER=mt1 + +MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}" +MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}" + +WEATHER_API_KEY= diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..510d996 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,10 @@ +* text=auto + +*.blade.php diff=html +*.css diff=css +*.html diff=html +*.md diff=markdown +*.php diff=php + +/.github export-ignore +CHANGELOG.md export-ignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..56302c2 --- /dev/null +++ b/.gitignore @@ -0,0 +1,16 @@ +/node_modules +/public/hot +/public/storage +/storage/*.key +/vendor +.env +.env.backup +.phpunit.result.cache +docker-compose.override.yml +Homestead.json +Homestead.yaml +npm-debug.log +yarn-error.log +.idea +/.idea +/.vscode diff --git a/.styleci.yml b/.styleci.yml new file mode 100644 index 0000000..877ea70 --- /dev/null +++ b/.styleci.yml @@ -0,0 +1,14 @@ +php: + preset: laravel + version: 8 + disabled: + - no_unused_imports + finder: + not-name: + - index.php + - server.php +js: + finder: + not-name: + - webpack.mix.js +css: true diff --git a/README.md b/README.md index d12aa41..1483dac 100644 --- a/README.md +++ b/README.md @@ -1,61 +1,13 @@ -![This is an image](https://images.unsplash.com/photo-1492011221367-f47e3ccd77a0?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=987&h=400&q=80) +Project Installation +-------------------- -# How to do the task +1. composer install +2. Configure .env file, WEATHER_API_KEY should be set. +3. php artisan key:generate +4. php artisan migrate:fresh --seed +5. This is command in being ran on every 2 minutes, the Laravel's schedule should be called in the cron job -> php artisan update:weather -Fork the project, work on the solution and send us back a link to your forked GitHub project. +Postman Documentation +--------------------------- -# Weather API - Laravel Developer Test Task - -We will use [**Open Weather API**](https://openweathermap.org/current) to get current weather data based on latitude/longitude. - -- **API Link**: [https://openweathermap.org/current](https://openweathermap.org/current) -- **API Key**: `1077481787381398496a922389d0eea2` -- **Technology: Laravel** - ---- - -# Task - -Create a project, that will pull the weather information of cities and will store it in the database every two minutes. - -# Data to store - -- Store the data about cities in the database -- Store the data about weather information in the database every two minutes - -# Rest API Endpoints - -- Store the data about cities in the database -- Get the list of the stored weather information -- Ability to filter the weather information by city name ( exact match ) - -# Data - -## Columns that should be stored about city - -- City name -- Latitude -- Longitude - -## Columns that should be stored about weather information in the table: - -- Time -- Name -- Latitude -- Longitude -- Temperature (in Celsius) -- Pressure -- Humidity -- MIN Temperature -- MAX Temperature - -# Example Cities - -| Name | Latitude | Longitude | -|---------|----------|-----------| -| Yerevan | 40.18 | 44.51 | -| Kapan | 39.21 | 46.41 | - -# Note: - -In your solution include the readme with the explanation of how to run the project and get the data. +https://documenter.getpostman.com/view/6660278/2s7YfLfaqN diff --git a/app/Console/Commands/UpdateWeather.php b/app/Console/Commands/UpdateWeather.php new file mode 100644 index 0000000..e5c431c --- /dev/null +++ b/app/Console/Commands/UpdateWeather.php @@ -0,0 +1,52 @@ +city = $city; + } + + /** + * @return void + */ + public function handle():void + { + foreach ($this->city->getAll() as $city) { + $data = OpenWeatherFacade::getByCoordinates($city->latitude, $city->longitude); + Weather::updateOrCreate( + ['city_id' => $city->id], + $data, + ); + } + } +} diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php new file mode 100644 index 0000000..68cd272 --- /dev/null +++ b/app/Console/Kernel.php @@ -0,0 +1,40 @@ +command('update:weather')->everyTwoMinutes(); + } + + /** + * Register the commands for the application. + * + * @return void + */ + protected function commands() + { + $this->load(__DIR__.'/Commands'); + + require base_path('routes/console.php'); + } +} diff --git a/app/Exceptions/Handler.php b/app/Exceptions/Handler.php new file mode 100644 index 0000000..8e7fbd1 --- /dev/null +++ b/app/Exceptions/Handler.php @@ -0,0 +1,41 @@ +> + */ + protected $dontReport = [ + // + ]; + + /** + * A list of the inputs that are never flashed for validation exceptions. + * + * @var array + */ + protected $dontFlash = [ + 'current_password', + 'password', + 'password_confirmation', + ]; + + /** + * Register the exception handling callbacks for the application. + * + * @return void + */ + public function register() + { + $this->reportable(function (Throwable $e) { + // + }); + } +} diff --git a/app/Facades/OpenWeatherFacade.php b/app/Facades/OpenWeatherFacade.php new file mode 100644 index 0000000..96cb11b --- /dev/null +++ b/app/Facades/OpenWeatherFacade.php @@ -0,0 +1,20 @@ +city = $city; + $this->weather = $weather; + } + + /** + * @param CreateCityRequest $request + * @return Application|ResponseFactory|Response + */ + public function create(CreateCityRequest $request) + { + DB::beginTransaction(); + try { + $city = $this->city->store($request->all()); + $weatherData = OpenWeatherFacade::getByCoordinates($city->latitude, $city->longitude); + $weatherData['city_id'] = $city->id; + $this->weather->store($weatherData); + DB::commit(); + } catch (\Exception $exception) { + DB::rollBack(); + return response(['message' => 'error'], 422); + } + return response(['message' => 'success']); + } + + /** + * @return LengthAwarePaginator + */ + public function weathers(): LengthAwarePaginator + { + return $this->weather->allWeathers(); + } + + /** + * @param WeatherRequest $request + * @return Builder|Model|object|null + */ + public function weather(WeatherRequest $request) + { + return $this->weather->getWeather($request->search_term); + } +} diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php new file mode 100644 index 0000000..a0a2a8a --- /dev/null +++ b/app/Http/Controllers/Controller.php @@ -0,0 +1,13 @@ + + */ + protected $middleware = [ + // \App\Http\Middleware\TrustHosts::class, + \App\Http\Middleware\TrustProxies::class, + \Fruitcake\Cors\HandleCors::class, + \App\Http\Middleware\PreventRequestsDuringMaintenance::class, + \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class, + \App\Http\Middleware\TrimStrings::class, + \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class, + ]; + + /** + * The application's route middleware groups. + * + * @var array> + */ + protected $middlewareGroups = [ + 'web' => [ + \App\Http\Middleware\EncryptCookies::class, + \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, + \Illuminate\Session\Middleware\StartSession::class, + // \Illuminate\Session\Middleware\AuthenticateSession::class, + \Illuminate\View\Middleware\ShareErrorsFromSession::class, + \App\Http\Middleware\VerifyCsrfToken::class, + \Illuminate\Routing\Middleware\SubstituteBindings::class, + ], + + 'api' => [ + // \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class, + 'throttle:api', + \Illuminate\Routing\Middleware\SubstituteBindings::class, + ], + ]; + + /** + * The application's route middleware. + * + * These middleware may be assigned to groups or used individually. + * + * @var array + */ + protected $routeMiddleware = [ + 'auth' => \App\Http\Middleware\Authenticate::class, + 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, + 'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class, + 'can' => \Illuminate\Auth\Middleware\Authorize::class, + 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, + 'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class, + 'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class, + 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, + 'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class, + ]; +} diff --git a/app/Http/Middleware/Authenticate.php b/app/Http/Middleware/Authenticate.php new file mode 100644 index 0000000..704089a --- /dev/null +++ b/app/Http/Middleware/Authenticate.php @@ -0,0 +1,21 @@ +expectsJson()) { + return route('login'); + } + } +} diff --git a/app/Http/Middleware/EncryptCookies.php b/app/Http/Middleware/EncryptCookies.php new file mode 100644 index 0000000..867695b --- /dev/null +++ b/app/Http/Middleware/EncryptCookies.php @@ -0,0 +1,17 @@ + + */ + protected $except = [ + // + ]; +} diff --git a/app/Http/Middleware/PreventRequestsDuringMaintenance.php b/app/Http/Middleware/PreventRequestsDuringMaintenance.php new file mode 100644 index 0000000..74cbd9a --- /dev/null +++ b/app/Http/Middleware/PreventRequestsDuringMaintenance.php @@ -0,0 +1,17 @@ + + */ + protected $except = [ + // + ]; +} diff --git a/app/Http/Middleware/RedirectIfAuthenticated.php b/app/Http/Middleware/RedirectIfAuthenticated.php new file mode 100644 index 0000000..a2813a0 --- /dev/null +++ b/app/Http/Middleware/RedirectIfAuthenticated.php @@ -0,0 +1,32 @@ +check()) { + return redirect(RouteServiceProvider::HOME); + } + } + + return $next($request); + } +} diff --git a/app/Http/Middleware/TrimStrings.php b/app/Http/Middleware/TrimStrings.php new file mode 100644 index 0000000..88cadca --- /dev/null +++ b/app/Http/Middleware/TrimStrings.php @@ -0,0 +1,19 @@ + + */ + protected $except = [ + 'current_password', + 'password', + 'password_confirmation', + ]; +} diff --git a/app/Http/Middleware/TrustHosts.php b/app/Http/Middleware/TrustHosts.php new file mode 100644 index 0000000..7186414 --- /dev/null +++ b/app/Http/Middleware/TrustHosts.php @@ -0,0 +1,20 @@ + + */ + public function hosts() + { + return [ + $this->allSubdomainsOfApplicationUrl(), + ]; + } +} diff --git a/app/Http/Middleware/TrustProxies.php b/app/Http/Middleware/TrustProxies.php new file mode 100644 index 0000000..3391630 --- /dev/null +++ b/app/Http/Middleware/TrustProxies.php @@ -0,0 +1,28 @@ +|string|null + */ + protected $proxies; + + /** + * The headers that should be used to detect proxies. + * + * @var int + */ + protected $headers = + Request::HEADER_X_FORWARDED_FOR | + Request::HEADER_X_FORWARDED_HOST | + Request::HEADER_X_FORWARDED_PORT | + Request::HEADER_X_FORWARDED_PROTO | + Request::HEADER_X_FORWARDED_AWS_ELB; +} diff --git a/app/Http/Middleware/VerifyCsrfToken.php b/app/Http/Middleware/VerifyCsrfToken.php new file mode 100644 index 0000000..9e86521 --- /dev/null +++ b/app/Http/Middleware/VerifyCsrfToken.php @@ -0,0 +1,17 @@ + + */ + protected $except = [ + // + ]; +} diff --git a/app/Http/Requests/CreateCityRequest.php b/app/Http/Requests/CreateCityRequest.php new file mode 100644 index 0000000..7a0cf92 --- /dev/null +++ b/app/Http/Requests/CreateCityRequest.php @@ -0,0 +1,32 @@ +'string|required|max:255', + 'latitude' => 'required|between:-90,90', + 'longitude' => 'required|between:-180,180', + ]; + } +} diff --git a/app/Http/Requests/WeatherRequest.php b/app/Http/Requests/WeatherRequest.php new file mode 100644 index 0000000..5b3cbef --- /dev/null +++ b/app/Http/Requests/WeatherRequest.php @@ -0,0 +1,30 @@ +'required|max:50|string' + ]; + } +} diff --git a/app/Models/City.php b/app/Models/City.php new file mode 100644 index 0000000..e06c62a --- /dev/null +++ b/app/Models/City.php @@ -0,0 +1,36 @@ +query()->create($data); + } + + /** + * @return Builder[]|Collection + */ + public function getAll() + { + return $this->query()->select('id', 'name', 'latitude', 'longitude')->get(); + } + +} diff --git a/app/Models/User.php b/app/Models/User.php new file mode 100644 index 0000000..8996368 --- /dev/null +++ b/app/Models/User.php @@ -0,0 +1,44 @@ + + */ + protected $fillable = [ + 'name', + 'email', + 'password', + ]; + + /** + * The attributes that should be hidden for serialization. + * + * @var array + */ + protected $hidden = [ + 'password', + 'remember_token', + ]; + + /** + * The attributes that should be cast. + * + * @var array + */ + protected $casts = [ + 'email_verified_at' => 'datetime', + ]; +} diff --git a/app/Models/Weather.php b/app/Models/Weather.php new file mode 100644 index 0000000..befce39 --- /dev/null +++ b/app/Models/Weather.php @@ -0,0 +1,46 @@ +query()->create($data); + } + + /** + * @return LengthAwarePaginator + */ + public function allWeathers():LengthAwarePaginator + { + return $this->query()->paginate(20); + } + + /** + * @param string $searchTerm + * @return Builder|Model|object|null + */ + public function getWeather(string $searchTerm) + { + return $this->query()->where('name',$searchTerm)->first(); + } +} + + diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php new file mode 100644 index 0000000..ee8ca5b --- /dev/null +++ b/app/Providers/AppServiceProvider.php @@ -0,0 +1,28 @@ + + */ + protected $policies = [ + // 'App\Models\Model' => 'App\Policies\ModelPolicy', + ]; + + /** + * Register any authentication / authorization services. + * + * @return void + */ + public function boot() + { + $this->registerPolicies(); + + // + } +} diff --git a/app/Providers/BroadcastServiceProvider.php b/app/Providers/BroadcastServiceProvider.php new file mode 100644 index 0000000..395c518 --- /dev/null +++ b/app/Providers/BroadcastServiceProvider.php @@ -0,0 +1,21 @@ +> + */ + protected $listen = [ + Registered::class => [ + SendEmailVerificationNotification::class, + ], + ]; + + /** + * Register any events for your application. + * + * @return void + */ + public function boot() + { + // + } +} diff --git a/app/Providers/OpenWeatherProvider.php b/app/Providers/OpenWeatherProvider.php new file mode 100644 index 0000000..4c2971a --- /dev/null +++ b/app/Providers/OpenWeatherProvider.php @@ -0,0 +1,34 @@ +app->singleton('open_weather', function () { + return new OpenWeatherService( + (new Weather()) + ); + }); + } +} diff --git a/app/Providers/ParseCityProvider.php b/app/Providers/ParseCityProvider.php new file mode 100644 index 0000000..a45510d --- /dev/null +++ b/app/Providers/ParseCityProvider.php @@ -0,0 +1,31 @@ +app->bind('parse',function(){ + return new ParseCityService(); + }); + } +} diff --git a/app/Providers/RouteServiceProvider.php b/app/Providers/RouteServiceProvider.php new file mode 100644 index 0000000..3bd3c81 --- /dev/null +++ b/app/Providers/RouteServiceProvider.php @@ -0,0 +1,63 @@ +configureRateLimiting(); + + $this->routes(function () { + Route::prefix('api') + ->middleware('api') + ->namespace($this->namespace) + ->group(base_path('routes/api.php')); + + Route::middleware('web') + ->namespace($this->namespace) + ->group(base_path('routes/web.php')); + }); + } + + /** + * Configure the rate limiters for the application. + * + * @return void + */ + protected function configureRateLimiting() + { + RateLimiter::for('api', function (Request $request) { + return Limit::perMinute(60)->by(optional($request->user())->id ?: $request->ip()); + }); + } +} diff --git a/app/Services/OpenWeatherService.php b/app/Services/OpenWeatherService.php new file mode 100644 index 0000000..dd0e2f4 --- /dev/null +++ b/app/Services/OpenWeatherService.php @@ -0,0 +1,58 @@ +client = $client; + } + + /** + * @param string $lat + * @param string $lon + * @return array + */ + public function getByCoordinates(string $lat, string $lon): array + { + return $this->takeData($lat, $lon); + } + + /** + * @param string $lat + * @param string $lon + * @return array + */ + private function takeData(string $lat, string $lon): array + { + try { + $data = json_decode(json_encode($this->client->getCurrentByCord($lat, $lon)), true); + return [ + 'time' => Carbon::parse($data['dt'])->format('Y-m-d H:i:s'), + 'name' => $data['name'], + 'latitude' => $data['coord']['lat'], + 'longitude' => $data['coord']['lon'], + 'temperature' => $data['main']['temp'], + 'pressure' => $data['main']['pressure'], + 'humidity' => $data['main']['humidity'], + 'min_temperature' => $data['main']['temp_min'], + 'max_temperature' => $data['main']['temp_max'] + ]; + } catch (\Exception $exception) { + + } + return []; + } +} diff --git a/app/Services/ParseCityService.php b/app/Services/ParseCityService.php new file mode 100644 index 0000000..ccc1586 --- /dev/null +++ b/app/Services/ParseCityService.php @@ -0,0 +1,22 @@ +make(Illuminate\Contracts\Console\Kernel::class); + +$status = $kernel->handle( + $input = new Symfony\Component\Console\Input\ArgvInput, + new Symfony\Component\Console\Output\ConsoleOutput +); + +/* +|-------------------------------------------------------------------------- +| Shutdown The Application +|-------------------------------------------------------------------------- +| +| Once Artisan has finished running, we will fire off the shutdown events +| so that any final work may be done by the application before we shut +| down the process. This is the last thing to happen to the request. +| +*/ + +$kernel->terminate($input, $status); + +exit($status); diff --git a/bootstrap/app.php b/bootstrap/app.php new file mode 100644 index 0000000..037e17d --- /dev/null +++ b/bootstrap/app.php @@ -0,0 +1,55 @@ +singleton( + Illuminate\Contracts\Http\Kernel::class, + App\Http\Kernel::class +); + +$app->singleton( + Illuminate\Contracts\Console\Kernel::class, + App\Console\Kernel::class +); + +$app->singleton( + Illuminate\Contracts\Debug\ExceptionHandler::class, + App\Exceptions\Handler::class +); + +/* +|-------------------------------------------------------------------------- +| Return The Application +|-------------------------------------------------------------------------- +| +| This script returns the application instance. The instance is given to +| the calling script so we can separate the building of the instances +| from the actual running of the application and sending responses. +| +*/ + +return $app; diff --git a/bootstrap/cache/.gitignore b/bootstrap/cache/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/bootstrap/cache/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..d6197aa --- /dev/null +++ b/composer.json @@ -0,0 +1,64 @@ +{ + "name": "laravel/laravel", + "type": "project", + "description": "The Laravel Framework.", + "keywords": ["framework", "laravel"], + "license": "MIT", + "require": { + "php": "^7.3|^8.0", + "fruitcake/laravel-cors": "^2.0", + "guzzlehttp/guzzle": "^7.0.1", + "laravel/framework": "^8.75", + "laravel/sanctum": "^2.11", + "laravel/tinker": "^2.5", + "rakibdevs/openweather-laravel-api": "^1.7", + "ext-json": "*" + }, + "require-dev": { + "facade/ignition": "^2.5", + "fakerphp/faker": "^1.9.1", + "laravel/sail": "^1.0.1", + "mockery/mockery": "^1.4.4", + "nunomaduro/collision": "^5.10", + "phpunit/phpunit": "^9.5.10" + }, + "autoload": { + "psr-4": { + "App\\": "app/", + "Database\\Factories\\": "database/factories/", + "Database\\Seeders\\": "database/seeders/" + } + }, + "autoload-dev": { + "psr-4": { + "Tests\\": "tests/" + } + }, + "scripts": { + "post-autoload-dump": [ + "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump", + "@php artisan package:discover --ansi" + ], + "post-update-cmd": [ + "@php artisan vendor:publish --tag=laravel-assets --ansi --force" + ], + "post-root-package-install": [ + "@php -r \"file_exists('.env') || copy('.env.example', '.env');\"" + ], + "post-create-project-cmd": [ + "@php artisan key:generate --ansi" + ] + }, + "extra": { + "laravel": { + "dont-discover": [] + } + }, + "config": { + "optimize-autoloader": true, + "preferred-install": "dist", + "sort-packages": true + }, + "minimum-stability": "dev", + "prefer-stable": true +} diff --git a/composer.lock b/composer.lock new file mode 100644 index 0000000..1576357 --- /dev/null +++ b/composer.lock @@ -0,0 +1,7764 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "85a9f414f05f352c9c86f5935f510766", + "packages": [ + { + "name": "asm89/stack-cors", + "version": "v2.1.1", + "source": { + "type": "git", + "url": "https://github.com/asm89/stack-cors.git", + "reference": "73e5b88775c64ccc0b84fb60836b30dc9d92ac4a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/asm89/stack-cors/zipball/73e5b88775c64ccc0b84fb60836b30dc9d92ac4a", + "reference": "73e5b88775c64ccc0b84fb60836b30dc9d92ac4a", + "shasum": "" + }, + "require": { + "php": "^7.2|^8.0", + "symfony/http-foundation": "^4|^5|^6", + "symfony/http-kernel": "^4|^5|^6" + }, + "require-dev": { + "phpunit/phpunit": "^7|^9", + "squizlabs/php_codesniffer": "^3.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.1-dev" + } + }, + "autoload": { + "psr-4": { + "Asm89\\Stack\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Alexander", + "email": "iam.asm89@gmail.com" + } + ], + "description": "Cross-origin resource sharing library and stack middleware", + "homepage": "https://github.com/asm89/stack-cors", + "keywords": [ + "cors", + "stack" + ], + "support": { + "issues": "https://github.com/asm89/stack-cors/issues", + "source": "https://github.com/asm89/stack-cors/tree/v2.1.1" + }, + "time": "2022-01-18T09:12:03+00:00" + }, + { + "name": "brick/math", + "version": "0.9.3", + "source": { + "type": "git", + "url": "https://github.com/brick/math.git", + "reference": "ca57d18f028f84f777b2168cd1911b0dee2343ae" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/brick/math/zipball/ca57d18f028f84f777b2168cd1911b0dee2343ae", + "reference": "ca57d18f028f84f777b2168cd1911b0dee2343ae", + "shasum": "" + }, + "require": { + "ext-json": "*", + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.2", + "phpunit/phpunit": "^7.5.15 || ^8.5 || ^9.0", + "vimeo/psalm": "4.9.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "Brick\\Math\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Arbitrary-precision arithmetic library", + "keywords": [ + "Arbitrary-precision", + "BigInteger", + "BigRational", + "arithmetic", + "bigdecimal", + "bignum", + "brick", + "math" + ], + "support": { + "issues": "https://github.com/brick/math/issues", + "source": "https://github.com/brick/math/tree/0.9.3" + }, + "funding": [ + { + "url": "https://github.com/BenMorel", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/brick/math", + "type": "tidelift" + } + ], + "time": "2021-08-15T20:50:18+00:00" + }, + { + "name": "dflydev/dot-access-data", + "version": "v3.0.1", + "source": { + "type": "git", + "url": "https://github.com/dflydev/dflydev-dot-access-data.git", + "reference": "0992cc19268b259a39e86f296da5f0677841f42c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/0992cc19268b259a39e86f296da5f0677841f42c", + "reference": "0992cc19268b259a39e86f296da5f0677841f42c", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^0.12.42", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.3", + "scrutinizer/ocular": "1.6.0", + "squizlabs/php_codesniffer": "^3.5", + "vimeo/psalm": "^3.14" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Dflydev\\DotAccessData\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Dragonfly Development Inc.", + "email": "info@dflydev.com", + "homepage": "http://dflydev.com" + }, + { + "name": "Beau Simensen", + "email": "beau@dflydev.com", + "homepage": "http://beausimensen.com" + }, + { + "name": "Carlos Frutos", + "email": "carlos@kiwing.it", + "homepage": "https://github.com/cfrutos" + }, + { + "name": "Colin O'Dell", + "email": "colinodell@gmail.com", + "homepage": "https://www.colinodell.com" + } + ], + "description": "Given a deep data structure, access data by dot notation.", + "homepage": "https://github.com/dflydev/dflydev-dot-access-data", + "keywords": [ + "access", + "data", + "dot", + "notation" + ], + "support": { + "issues": "https://github.com/dflydev/dflydev-dot-access-data/issues", + "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.1" + }, + "time": "2021-08-13T13:06:58+00:00" + }, + { + "name": "doctrine/inflector", + "version": "2.0.5", + "source": { + "type": "git", + "url": "https://github.com/doctrine/inflector.git", + "reference": "ade2b3bbfb776f27f0558e26eed43b5d9fe1b392" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/ade2b3bbfb776f27f0558e26eed43b5d9fe1b392", + "reference": "ade2b3bbfb776f27f0558e26eed43b5d9fe1b392", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-phpunit": "^1.1", + "phpstan/phpstan-strict-rules": "^1.3", + "phpunit/phpunit": "^8.5 || ^9.5", + "vimeo/psalm": "^4.25" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Inflector\\": "lib/Doctrine/Inflector" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "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" + } + ], + "description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.", + "homepage": "https://www.doctrine-project.org/projects/inflector.html", + "keywords": [ + "inflection", + "inflector", + "lowercase", + "manipulation", + "php", + "plural", + "singular", + "strings", + "uppercase", + "words" + ], + "support": { + "issues": "https://github.com/doctrine/inflector/issues", + "source": "https://github.com/doctrine/inflector/tree/2.0.5" + }, + "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%2Finflector", + "type": "tidelift" + } + ], + "time": "2022-09-07T09:01:28+00:00" + }, + { + "name": "doctrine/lexer", + "version": "1.2.3", + "source": { + "type": "git", + "url": "https://github.com/doctrine/lexer.git", + "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/c268e882d4dbdd85e36e4ad69e02dc284f89d229", + "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9.0", + "phpstan/phpstan": "^1.3", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "vimeo/psalm": "^4.11" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", + "homepage": "https://www.doctrine-project.org/projects/lexer.html", + "keywords": [ + "annotations", + "docblock", + "lexer", + "parser", + "php" + ], + "support": { + "issues": "https://github.com/doctrine/lexer/issues", + "source": "https://github.com/doctrine/lexer/tree/1.2.3" + }, + "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%2Flexer", + "type": "tidelift" + } + ], + "time": "2022-02-28T11:07:21+00:00" + }, + { + "name": "dragonmantank/cron-expression", + "version": "v3.3.2", + "source": { + "type": "git", + "url": "https://github.com/dragonmantank/cron-expression.git", + "reference": "782ca5968ab8b954773518e9e49a6f892a34b2a8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/782ca5968ab8b954773518e9e49a6f892a34b2a8", + "reference": "782ca5968ab8b954773518e9e49a6f892a34b2a8", + "shasum": "" + }, + "require": { + "php": "^7.2|^8.0", + "webmozart/assert": "^1.0" + }, + "replace": { + "mtdowling/cron-expression": "^1.0" + }, + "require-dev": { + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^1.0", + "phpstan/phpstan-webmozart-assert": "^1.0", + "phpunit/phpunit": "^7.0|^8.0|^9.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Cron\\": "src/Cron/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Chris Tankersley", + "email": "chris@ctankersley.com", + "homepage": "https://github.com/dragonmantank" + } + ], + "description": "CRON for PHP: Calculate the next or previous run date and determine if a CRON expression is due", + "keywords": [ + "cron", + "schedule" + ], + "support": { + "issues": "https://github.com/dragonmantank/cron-expression/issues", + "source": "https://github.com/dragonmantank/cron-expression/tree/v3.3.2" + }, + "funding": [ + { + "url": "https://github.com/dragonmantank", + "type": "github" + } + ], + "time": "2022-09-10T18:51:20+00:00" + }, + { + "name": "egulias/email-validator", + "version": "2.1.25", + "source": { + "type": "git", + "url": "https://github.com/egulias/EmailValidator.git", + "reference": "0dbf5d78455d4d6a41d186da50adc1122ec066f4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/0dbf5d78455d4d6a41d186da50adc1122ec066f4", + "reference": "0dbf5d78455d4d6a41d186da50adc1122ec066f4", + "shasum": "" + }, + "require": { + "doctrine/lexer": "^1.0.1", + "php": ">=5.5", + "symfony/polyfill-intl-idn": "^1.10" + }, + "require-dev": { + "dominicsayers/isemail": "^3.0.7", + "phpunit/phpunit": "^4.8.36|^7.5.15", + "satooshi/php-coveralls": "^1.0.1" + }, + "suggest": { + "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Egulias\\EmailValidator\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Eduardo Gulias Davis" + } + ], + "description": "A library for validating emails against several RFCs", + "homepage": "https://github.com/egulias/EmailValidator", + "keywords": [ + "email", + "emailvalidation", + "emailvalidator", + "validation", + "validator" + ], + "support": { + "issues": "https://github.com/egulias/EmailValidator/issues", + "source": "https://github.com/egulias/EmailValidator/tree/2.1.25" + }, + "funding": [ + { + "url": "https://github.com/egulias", + "type": "github" + } + ], + "time": "2020-12-29T14:50:06+00:00" + }, + { + "name": "fruitcake/laravel-cors", + "version": "v2.2.0", + "source": { + "type": "git", + "url": "https://github.com/fruitcake/laravel-cors.git", + "reference": "783a74f5e3431d7b9805be8afb60fd0a8f743534" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/fruitcake/laravel-cors/zipball/783a74f5e3431d7b9805be8afb60fd0a8f743534", + "reference": "783a74f5e3431d7b9805be8afb60fd0a8f743534", + "shasum": "" + }, + "require": { + "asm89/stack-cors": "^2.0.1", + "illuminate/contracts": "^6|^7|^8|^9", + "illuminate/support": "^6|^7|^8|^9", + "php": ">=7.2" + }, + "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" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.1-dev" + }, + "laravel": { + "providers": [ + "Fruitcake\\Cors\\CorsServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Fruitcake\\Cors\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fruitcake", + "homepage": "https://fruitcake.nl" + }, + { + "name": "Barry vd. Heuvel", + "email": "barryvdh@gmail.com" + } + ], + "description": "Adds CORS (Cross-Origin Resource Sharing) headers support in your Laravel application", + "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" + } + ], + "time": "2022-02-23T14:25:13+00:00" + }, + { + "name": "graham-campbell/result-type", + "version": "v1.1.0", + "source": { + "type": "git", + "url": "https://github.com/GrahamCampbell/Result-Type.git", + "reference": "a878d45c1914464426dc94da61c9e1d36ae262a8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/a878d45c1914464426dc94da61c9e1d36ae262a8", + "reference": "a878d45c1914464426dc94da61c9e1d36ae262a8", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0", + "phpoption/phpoption": "^1.9" + }, + "require-dev": { + "phpunit/phpunit": "^8.5.28 || ^9.5.21" + }, + "type": "library", + "autoload": { + "psr-4": { + "GrahamCampbell\\ResultType\\": "src/" + } + }, + "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.0" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/graham-campbell/result-type", + "type": "tidelift" + } + ], + "time": "2022-07-30T15:56:11+00:00" + }, + { + "name": "guzzlehttp/guzzle", + "version": "7.5.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "b50a2a1251152e43f6a37f0fa053e730a67d25ba" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/b50a2a1251152e43f6a37f0fa053e730a67d25ba", + "reference": "b50a2a1251152e43f6a37f0fa053e730a67d25ba", + "shasum": "" + }, + "require": { + "ext-json": "*", + "guzzlehttp/promises": "^1.5", + "guzzlehttp/psr7": "^1.9 || ^2.4", + "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": { + "bamarni/composer-bin-plugin": "^1.8.1", + "ext-curl": "*", + "php-http/client-integration-tests": "^3.0", + "phpunit/phpunit": "^8.5.29 || ^9.5.23", + "psr/log": "^1.1 || ^2.0 || ^3.0" + }, + "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" + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + }, + "branch-alias": { + "dev-master": "7.5-dev" + } + }, + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "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.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/guzzle", + "type": "tidelift" + } + ], + "time": "2022-08-28T15:39:27+00:00" + }, + { + "name": "guzzlehttp/promises", + "version": "1.5.2", + "source": { + "type": "git", + "url": "https://github.com/guzzle/promises.git", + "reference": "b94b2807d85443f9719887892882d0329d1e2598" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/promises/zipball/b94b2807d85443f9719887892882d0329d1e2598", + "reference": "b94b2807d85443f9719887892882d0329d1e2598", + "shasum": "" + }, + "require": { + "php": ">=5.5" + }, + "require-dev": { + "symfony/phpunit-bridge": "^4.4 || ^5.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.5-dev" + } + }, + "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.2" + }, + "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": "2022-08-28T14:55:35+00:00" + }, + { + "name": "guzzlehttp/psr7", + "version": "2.4.1", + "source": { + "type": "git", + "url": "https://github.com/guzzle/psr7.git", + "reference": "69568e4293f4fa993f3b0e51c9723e1e17c41379" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/69568e4293f4fa993f3b0e51c9723e1e17c41379", + "reference": "69568e4293f4fa993f3b0e51c9723e1e17c41379", + "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" + }, + "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 + }, + "branch-alias": { + "dev-master": "2.4-dev" + } + }, + "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.4.1" + }, + "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": "2022-08-28T14:45:39+00:00" + }, + { + "name": "laravel/framework", + "version": "v8.83.23", + "source": { + "type": "git", + "url": "https://github.com/laravel/framework.git", + "reference": "bdc707f8b9bcad289b24cd182d98ec7480ac4491" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/framework/zipball/bdc707f8b9bcad289b24cd182d98ec7480ac4491", + "reference": "bdc707f8b9bcad289b24cd182d98ec7480ac4491", + "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.53.1", + "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.3", + "symfony/console": "^5.4", + "symfony/error-handler": "^5.4", + "symfony/finder": "^5.4", + "symfony/http-foundation": "^5.4", + "symfony/http-kernel": "^5.4", + "symfony/mime": "^5.4", + "symfony/process": "^5.4", + "symfony/routing": "^5.4", + "symfony/var-dumper": "^5.4", + "tijsverkoyen/css-to-inline-styles": "^2.2.2", + "vlucas/phpdotenv": "^5.4.1", + "voku/portable-ascii": "^1.6.1" + }, + "conflict": { + "tightenco/collect": "<5.5.33" + }, + "provide": { + "psr/container-implementation": "1.0", + "psr/simple-cache-implementation": "1.0" + }, + "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" + }, + "require-dev": { + "aws/aws-sdk-php": "^3.198.1", + "doctrine/dbal": "^2.13.3|^3.1.4", + "filp/whoops": "^2.14.3", + "guzzlehttp/guzzle": "^6.5.5|^7.0.1", + "league/flysystem-cached-adapter": "^1.0", + "mockery/mockery": "^1.4.4", + "orchestra/testbench-core": "^6.27", + "pda/pheanstalk": "^4.0", + "phpunit/phpunit": "^8.5.19|^9.5.8", + "predis/predis": "^1.1.9", + "symfony/cache": "^5.4" + }, + "suggest": { + "ably/ably-php": "Required to use the Ably broadcast driver (^1.0).", + "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage and SES mail driver (^3.198.1).", + "brianium/paratest": "Required to run tests in parallel (^6.0).", + "doctrine/dbal": "Required to rename columns and drop SQLite columns (^2.13.3|^3.1.4).", + "ext-bcmath": "Required to use the multiple_of validation rule.", + "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.14.3).", + "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.9).", + "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|^7.0).", + "symfony/cache": "Required to PSR-6 cache bridge (^5.4).", + "symfony/filesystem": "Required to enable support for relative symbolic links (^5.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)." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "8.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/" + ] + } + }, + "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": "2022-07-26T13:30:00+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/serializable-closure", + "version": "v1.2.2", + "source": { + "type": "git", + "url": "https://github.com/laravel/serializable-closure.git", + "reference": "47afb7fae28ed29057fdca37e16a84f90cc62fae" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/47afb7fae28ed29057fdca37e16a84f90cc62fae", + "reference": "47afb7fae28ed29057fdca37e16a84f90cc62fae", + "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": "2022-09-08T13:45:54+00:00" + }, + { + "name": "laravel/tinker", + "version": "v2.7.2", + "source": { + "type": "git", + "url": "https://github.com/laravel/tinker.git", + "reference": "dff39b661e827dae6e092412f976658df82dbac5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/tinker/zipball/dff39b661e827dae6e092412f976658df82dbac5", + "reference": "dff39b661e827dae6e092412f976658df82dbac5", + "shasum": "" + }, + "require": { + "illuminate/console": "^6.0|^7.0|^8.0|^9.0", + "illuminate/contracts": "^6.0|^7.0|^8.0|^9.0", + "illuminate/support": "^6.0|^7.0|^8.0|^9.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)." + }, + "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.7.2" + }, + "time": "2022-03-23T12:38:24+00:00" + }, + { + "name": "league/commonmark", + "version": "2.3.5", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/commonmark.git", + "reference": "84d74485fdb7074f4f9dd6f02ab957b1de513257" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/84d74485fdb7074f4f9dd6f02ab957b1de513257", + "reference": "84d74485fdb7074f4f9dd6f02ab957b1de513257", + "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", + "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" + }, + "suggest": { + "symfony/yaml": "v2.3+ required if using the Front Matter extension" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.4-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": "2022-07-29T10:59:45+00:00" + }, + { + "name": "league/config", + "version": "v1.1.1", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/config.git", + "reference": "a9d39eeeb6cc49d10a6e6c36f22c4c1f4a767f3e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/config/zipball/a9d39eeeb6cc49d10a6e6c36f22c4c1f4a767f3e", + "reference": "a9d39eeeb6cc49d10a6e6c36f22c4c1f4a767f3e", + "shasum": "" + }, + "require": { + "dflydev/dot-access-data": "^3.0.1", + "nette/schema": "^1.2", + "php": "^7.4 || ^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" + }, + "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": "2021-08-14T12:15:32+00:00" + }, + { + "name": "league/flysystem", + "version": "1.1.9", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/flysystem.git", + "reference": "094defdb4a7001845300334e7c1ee2335925ef99" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/094defdb4a7001845300334e7c1ee2335925ef99", + "reference": "094defdb4a7001845300334e7c1ee2335925ef99", + "shasum": "" + }, + "require": { + "ext-fileinfo": "*", + "league/mime-type-detection": "^1.3", + "php": "^7.2.5 || ^8.0" + }, + "conflict": { + "league/flysystem-sftp": "<1.0.6" + }, + "require-dev": { + "phpspec/prophecy": "^1.11.1", + "phpunit/phpunit": "^8.5.8" + }, + "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" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1-dev" + } + }, + "autoload": { + "psr-4": { + "League\\Flysystem\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Frank de Jonge", + "email": "info@frenky.net" + } + ], + "description": "Filesystem abstraction: Many filesystems, one API.", + "keywords": [ + "Cloud Files", + "WebDAV", + "abstraction", + "aws", + "cloud", + "copy.com", + "dropbox", + "file systems", + "files", + "filesystem", + "filesystems", + "ftp", + "rackspace", + "remote", + "s3", + "sftp", + "storage" + ], + "support": { + "issues": "https://github.com/thephpleague/flysystem/issues", + "source": "https://github.com/thephpleague/flysystem/tree/1.1.9" + }, + "funding": [ + { + "url": "https://offset.earth/frankdejonge", + "type": "other" + } + ], + "time": "2021-12-09T09:40:50+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.8.0", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/monolog.git", + "reference": "720488632c590286b88b80e62aa3d3d551ad4a50" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/720488632c590286b88b80e62aa3d3d551ad4a50", + "reference": "720488632c590286b88b80e62aa3d3d551ad4a50", + "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", + "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.8.0" + }, + "funding": [ + { + "url": "https://github.com/Seldaek", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/monolog/monolog", + "type": "tidelift" + } + ], + "time": "2022-07-24T11:55:47+00:00" + }, + { + "name": "nesbot/carbon", + "version": "2.62.1", + "source": { + "type": "git", + "url": "https://github.com/briannesbitt/Carbon.git", + "reference": "01bc4cdefe98ef58d1f9cb31bdbbddddf2a88f7a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/01bc4cdefe98ef58d1f9cb31bdbbddddf2a88f7a", + "reference": "01bc4cdefe98ef58d1f9cb31bdbbddddf2a88f7a", + "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.0", + "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": "2022-09-02T07:48:13+00:00" + }, + { + "name": "nette/schema", + "version": "v1.2.2", + "source": { + "type": "git", + "url": "https://github.com/nette/schema.git", + "reference": "9a39cef03a5b34c7de64f551538cbba05c2be5df" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/schema/zipball/9a39cef03a5b34c7de64f551538cbba05c2be5df", + "reference": "9a39cef03a5b34c7de64f551538cbba05c2be5df", + "shasum": "" + }, + "require": { + "nette/utils": "^2.5.7 || ^3.1.5 || ^4.0", + "php": ">=7.1 <8.2" + }, + "require-dev": { + "nette/tester": "^2.3 || ^2.4", + "phpstan/phpstan-nette": "^0.12", + "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.2" + }, + "time": "2021-10-15T11:40:02+00:00" + }, + { + "name": "nette/utils", + "version": "v3.2.8", + "source": { + "type": "git", + "url": "https://github.com/nette/utils.git", + "reference": "02a54c4c872b99e4ec05c4aec54b5a06eb0f6368" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/utils/zipball/02a54c4c872b99e4ec05c4aec54b5a06eb0f6368", + "reference": "02a54c4c872b99e4ec05c4aec54b5a06eb0f6368", + "shasum": "" + }, + "require": { + "php": ">=7.2 <8.3" + }, + "conflict": { + "nette/di": "<3.0.6" + }, + "require-dev": { + "nette/tester": "~2.0", + "phpstan/phpstan": "^1.0", + "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" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.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 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/v3.2.8" + }, + "time": "2022-09-12T23:36:20+00:00" + }, + { + "name": "nikic/php-parser", + "version": "v4.15.1", + "source": { + "type": "git", + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "0ef6c55a3f47f89d7a374e6f835197a0b5fcf900" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/0ef6c55a3f47f89d7a374e6f835197a0b5fcf900", + "reference": "0ef6c55a3f47f89d7a374e6f835197a0b5fcf900", + "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.15.1" + }, + "time": "2022-09-04T07:30:47+00:00" + }, + { + "name": "opis/closure", + "version": "3.6.3", + "source": { + "type": "git", + "url": "https://github.com/opis/closure.git", + "reference": "3d81e4309d2a927abbe66df935f4bb60082805ad" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/opis/closure/zipball/3d81e4309d2a927abbe66df935f4bb60082805ad", + "reference": "3d81e4309d2a927abbe66df935f4bb60082805ad", + "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" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.6.x-dev" + } + }, + "autoload": { + "files": [ + "functions.php" + ], + "psr-4": { + "Opis\\Closure\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marius Sarca", + "email": "marius.sarca@gmail.com" + }, + { + "name": "Sorin Sarca", + "email": "sarca_sorin@hotmail.com" + } + ], + "description": "A library that can be used to serialize closures (anonymous functions) and arbitrary objects.", + "homepage": "https://opis.io/closure", + "keywords": [ + "anonymous functions", + "closure", + "function", + "serializable", + "serialization", + "serialize" + ], + "support": { + "issues": "https://github.com/opis/closure/issues", + "source": "https://github.com/opis/closure/tree/3.6.3" + }, + "time": "2022-01-27T09:35:39+00:00" + }, + { + "name": "phpoption/phpoption", + "version": "1.9.0", + "source": { + "type": "git", + "url": "https://github.com/schmittjoh/php-option.git", + "reference": "dc5ff11e274a90cc1c743f66c9ad700ce50db9ab" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/dc5ff11e274a90cc1c743f66c9ad700ce50db9ab", + "reference": "dc5ff11e274a90cc1c743f66c9ad700ce50db9ab", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8", + "phpunit/phpunit": "^8.5.28 || ^9.5.21" + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": true + }, + "branch-alias": { + "dev-master": "1.9-dev" + } + }, + "autoload": { + "psr-4": { + "PhpOption\\": "src/PhpOption/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "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": "Option Type for PHP", + "keywords": [ + "language", + "option", + "php", + "type" + ], + "support": { + "issues": "https://github.com/schmittjoh/php-option/issues", + "source": "https://github.com/schmittjoh/php-option/tree/1.9.0" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpoption/phpoption", + "type": "tidelift" + } + ], + "time": "2022-07-30T15:51:26+00:00" + }, + { + "name": "psr/container", + "version": "1.1.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "513e0666f7216c7459170d56df27dfcefe1689ea" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea", + "reference": "513e0666f7216c7459170d56df27dfcefe1689ea", + "shasum": "" + }, + "require": { + "php": ">=7.4.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "support": { + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/1.1.2" + }, + "time": "2021-11-05T16:50:12+00:00" + }, + { + "name": "psr/event-dispatcher", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/event-dispatcher.git", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0", + "shasum": "" + }, + "require": { + "php": ">=7.2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\EventDispatcher\\": "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.", + "keywords": [ + "events", + "psr", + "psr-14" + ], + "support": { + "issues": "https://github.com/php-fig/event-dispatcher/issues", + "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0" + }, + "time": "2019-01-08T18:20:26+00:00" + }, + { + "name": "psr/http-client", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-client.git", + "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-client/zipball/2dfb5f6c5eff0e91e20e913f8c5452ed95b86621", + "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621", + "shasum": "" + }, + "require": { + "php": "^7.0 || ^8.0", + "psr/http-message": "^1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Client\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP clients", + "homepage": "https://github.com/php-fig/http-client", + "keywords": [ + "http", + "http-client", + "psr", + "psr-18" + ], + "support": { + "source": "https://github.com/php-fig/http-client/tree/master" + }, + "time": "2020-06-29T06:28:15+00:00" + }, + { + "name": "psr/http-factory", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-factory.git", + "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/12ac7fcd07e5b077433f5f2bee95b3a771bf61be", + "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be", + "shasum": "" + }, + "require": { + "php": ">=7.0.0", + "psr/http-message": "^1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interfaces for PSR-7 HTTP message factories", + "keywords": [ + "factory", + "http", + "message", + "psr", + "psr-17", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-factory/tree/master" + }, + "time": "2019-04-30T12:38:16+00:00" + }, + { + "name": "psr/http-message", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-message.git", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "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", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-message/tree/master" + }, + "time": "2016-08-06T14:39:51+00:00" + }, + { + "name": "psr/log", + "version": "1.1.4", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "d49695b909c3b7628b6289db5479a1c204601f11" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11", + "reference": "d49695b909c3b7628b6289db5479a1c204601f11", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "Psr/Log/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "support": { + "source": "https://github.com/php-fig/log/tree/1.1.4" + }, + "time": "2021-05-03T11:20:27+00:00" + }, + { + "name": "psr/simple-cache", + "version": "1.0.1", + "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" + } + }, + "autoload": { + "psr-4": { + "Psr\\SimpleCache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interfaces for simple caching", + "keywords": [ + "cache", + "caching", + "psr", + "psr-16", + "simple-cache" + ], + "support": { + "source": "https://github.com/php-fig/simple-cache/tree/master" + }, + "time": "2017-10-23T01:57:42+00:00" + }, + { + "name": "psy/psysh", + "version": "v0.11.8", + "source": { + "type": "git", + "url": "https://github.com/bobthecow/psysh.git", + "reference": "f455acf3645262ae389b10e9beba0c358aa6994e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/f455acf3645262ae389b10e9beba0c358aa6994e", + "reference": "f455acf3645262ae389b10e9beba0c358aa6994e", + "shasum": "" + }, + "require": { + "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": { + "Psy\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Justin Hileman", + "email": "justin@justinhileman.info", + "homepage": "http://justinhileman.com" + } + ], + "description": "An interactive shell for modern PHP.", + "homepage": "http://psysh.org", + "keywords": [ + "REPL", + "console", + "interactive", + "shell" + ], + "support": { + "issues": "https://github.com/bobthecow/psysh/issues", + "source": "https://github.com/bobthecow/psysh/tree/v0.11.8" + }, + "time": "2022-07-28T14:25:11+00:00" + }, + { + "name": "rakibdevs/openweather-laravel-api", + "version": "v1.7", + "source": { + "type": "git", + "url": "https://github.com/rakibdevs/openweather-laravel-api.git", + "reference": "241f921b4612127dee412f26326bd033cdb0d0d9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/rakibdevs/openweather-laravel-api/zipball/241f921b4612127dee412f26326bd033cdb0d0d9", + "reference": "241f921b4612127dee412f26326bd033cdb0d0d9", + "shasum": "" + }, + "require": { + "guzzlehttp/guzzle": "^6.3|^7.0", + "php": "^7.2|^7.3|^7.4|^8.0" + }, + "require-dev": { + "phpunit/phpunit": "^8.0|^9.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "RakibDevs\\Weather\\WeatherServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "RakibDevs\\Weather\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Md. Rakibul Islam", + "email": "rakib1708@gmail.com", + "homepage": "https://rakibul.dev" + } + ], + "description": "Laravel package to connect https://openweathermap.org/ to get customized weather data for any location on the globe immediately", + "keywords": [ + "api", + "laravel", + "open-weather", + "weather" + ], + "support": { + "issues": "https://github.com/rakibdevs/openweather-laravel-api/issues", + "source": "https://github.com/rakibdevs/openweather-laravel-api/tree/v1.7" + }, + "time": "2022-07-06T04:09:14+00:00" + }, + { + "name": "ralouphie/getallheaders", + "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/ralouphie/getallheaders.git", + "reference": "120b605dfeb996808c31b6477290a714d356e822" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", + "reference": "120b605dfeb996808c31b6477290a714d356e822", + "shasum": "" + }, + "require": { + "php": ">=5.6" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.1", + "phpunit/phpunit": "^5 || ^6.5" + }, + "type": "library", + "autoload": { + "files": [ + "src/getallheaders.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ralph Khattar", + "email": "ralph.khattar@gmail.com" + } + ], + "description": "A polyfill for getallheaders.", + "support": { + "issues": "https://github.com/ralouphie/getallheaders/issues", + "source": "https://github.com/ralouphie/getallheaders/tree/develop" + }, + "time": "2019-03-08T08:55:37+00:00" + }, + { + "name": "ramsey/collection", + "version": "1.2.2", + "source": { + "type": "git", + "url": "https://github.com/ramsey/collection.git", + "reference": "cccc74ee5e328031b15640b51056ee8d3bb66c0a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ramsey/collection/zipball/cccc74ee5e328031b15640b51056ee8d3bb66c0a", + "reference": "cccc74ee5e328031b15640b51056ee8d3bb66c0a", + "shasum": "" + }, + "require": { + "php": "^7.3 || ^8", + "symfony/polyfill-php81": "^1.23" + }, + "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" + }, + "type": "library", + "autoload": { + "psr-4": { + "Ramsey\\Collection\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ben Ramsey", + "email": "ben@benramsey.com", + "homepage": "https://benramsey.com" + } + ], + "description": "A PHP library for representing and manipulating collections.", + "keywords": [ + "array", + "collection", + "hash", + "map", + "queue", + "set" + ], + "support": { + "issues": "https://github.com/ramsey/collection/issues", + "source": "https://github.com/ramsey/collection/tree/1.2.2" + }, + "funding": [ + { + "url": "https://github.com/ramsey", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/ramsey/collection", + "type": "tidelift" + } + ], + "time": "2021-10-10T03:01:02+00:00" + }, + { + "name": "ramsey/uuid", + "version": "4.2.3", + "source": { + "type": "git", + "url": "https://github.com/ramsey/uuid.git", + "reference": "fc9bb7fb5388691fd7373cd44dcb4d63bbcf24df" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/fc9bb7fb5388691fd7373cd44dcb4d63bbcf24df", + "reference": "fc9bb7fb5388691fd7373cd44dcb4d63bbcf24df", + "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" + }, + "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", + "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" + }, + "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." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "4.x-dev" + }, + "captainhook": { + "force-install": true + } + }, + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "Ramsey\\Uuid\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A PHP library for generating and working with universally unique identifiers (UUIDs).", + "keywords": [ + "guid", + "identifier", + "uuid" + ], + "support": { + "issues": "https://github.com/ramsey/uuid/issues", + "source": "https://github.com/ramsey/uuid/tree/4.2.3" + }, + "funding": [ + { + "url": "https://github.com/ramsey", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/ramsey/uuid", + "type": "tidelift" + } + ], + "time": "2021-09-25T23:10:38+00:00" + }, + { + "name": "swiftmailer/swiftmailer", + "version": "v6.3.0", + "source": { + "type": "git", + "url": "https://github.com/swiftmailer/swiftmailer.git", + "reference": "8a5d5072dca8f48460fce2f4131fcc495eec654c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/8a5d5072dca8f48460fce2f4131fcc495eec654c", + "reference": "8a5d5072dca8f48460fce2f4131fcc495eec654c", + "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.4" + }, + "suggest": { + "ext-intl": "Needed to support internationalized email addresses" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "6.2-dev" + } + }, + "autoload": { + "files": [ + "lib/swift_required.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Chris Corbyn" + }, + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + } + ], + "description": "Swiftmailer, free feature-rich PHP mailer", + "homepage": "https://swiftmailer.symfony.com", + "keywords": [ + "email", + "mail", + "mailer" + ], + "support": { + "issues": "https://github.com/swiftmailer/swiftmailer/issues", + "source": "https://github.com/swiftmailer/swiftmailer/tree/v6.3.0" + }, + "funding": [ + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/swiftmailer/swiftmailer", + "type": "tidelift" + } + ], + "abandoned": "symfony/mailer", + "time": "2021-10-18T15:26:12+00:00" + }, + { + "name": "symfony/console", + "version": "v5.4.12", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "c072aa8f724c3af64e2c7a96b796a4863d24dba1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/c072aa8f724c3af64e2c7a96b796a4863d24dba1", + "reference": "c072aa8f724c3af64e2c7a96b796a4863d24dba1", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php73": "^1.9", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1|^2|^3", + "symfony/string": "^5.1|^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" + }, + "provide": { + "psr/log-implementation": "1.0|2.0" + }, + "require-dev": { + "psr/log": "^1|^2", + "symfony/config": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/event-dispatcher": "^4.4|^5.0|^6.0", + "symfony/lock": "^4.4|^5.0|^6.0", + "symfony/process": "^4.4|^5.0|^6.0", + "symfony/var-dumper": "^4.4|^5.0|^6.0" + }, + "suggest": { + "psr/log": "For using the console logger", + "symfony/event-dispatcher": "", + "symfony/lock": "", + "symfony/process": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Console\\": "" + }, + "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": "Eases the creation of beautiful and testable command line interfaces", + "homepage": "https://symfony.com", + "keywords": [ + "cli", + "command line", + "console", + "terminal" + ], + "support": { + "source": "https://github.com/symfony/console/tree/v5.4.12" + }, + "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-08-17T13:18:05+00:00" + }, + { + "name": "symfony/css-selector", + "version": "v5.4.11", + "source": { + "type": "git", + "url": "https://github.com/symfony/css-selector.git", + "reference": "c1681789f059ab756001052164726ae88512ae3d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/c1681789f059ab756001052164726ae88512ae3d", + "reference": "c1681789f059ab756001052164726ae88512ae3d", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-php80": "^1.16" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\CssSelector\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Jean-François Simon", + "email": "jeanfrancois.simon@sensiolabs.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Converts CSS selectors to XPath expressions", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/css-selector/tree/v5.4.11" + }, + "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-27T16:58:25+00:00" + }, + { + "name": "symfony/deprecation-contracts", + "version": "v2.5.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/e8b495ea28c1d97b5e0c121748d6f9b53d075c66", + "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "files": [ + "function.php" + ] + }, + "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": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.2" + }, + "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-01-02T09:53:40+00:00" + }, + { + "name": "symfony/error-handler", + "version": "v5.4.11", + "source": { + "type": "git", + "url": "https://github.com/symfony/error-handler.git", + "reference": "f75d17cb4769eb38cd5fccbda95cd80a054d35c8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/f75d17cb4769eb38cd5fccbda95cd80a054d35c8", + "reference": "f75d17cb4769eb38cd5fccbda95cd80a054d35c8", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "psr/log": "^1|^2|^3", + "symfony/var-dumper": "^4.4|^5.0|^6.0" + }, + "require-dev": { + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/http-kernel": "^4.4|^5.0|^6.0", + "symfony/serializer": "^4.4|^5.0|^6.0" + }, + "bin": [ + "Resources/bin/patch-type-declarations" + ], + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\ErrorHandler\\": "" + }, + "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": "Provides tools to manage errors and ease debugging PHP code", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/error-handler/tree/v5.4.11" + }, + "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-07-29T07:37:50+00:00" + }, + { + "name": "symfony/event-dispatcher", + "version": "v5.4.9", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "8e6ce1cc0279e3ff3c8ff0f43813bc88d21ca1bc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/8e6ce1cc0279e3ff3c8ff0f43813bc88d21ca1bc", + "reference": "8e6ce1cc0279e3ff3c8ff0f43813bc88d21ca1bc", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/event-dispatcher-contracts": "^2|^3", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "symfony/dependency-injection": "<4.4" + }, + "provide": { + "psr/event-dispatcher-implementation": "1.0", + "symfony/event-dispatcher-implementation": "2.0" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/error-handler": "^4.4|^5.0|^6.0", + "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/http-foundation": "^4.4|^5.0|^6.0", + "symfony/service-contracts": "^1.1|^2|^3", + "symfony/stopwatch": "^4.4|^5.0|^6.0" + }, + "suggest": { + "symfony/dependency-injection": "", + "symfony/http-kernel": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\EventDispatcher\\": "" + }, + "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": "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.4.9" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-05T16:45:39+00:00" + }, + { + "name": "symfony/event-dispatcher-contracts", + "version": "v2.5.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher-contracts.git", + "reference": "f98b54df6ad059855739db6fcbc2d36995283fe1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/f98b54df6ad059855739db6fcbc2d36995283fe1", + "reference": "f98b54df6ad059855739db6fcbc2d36995283fe1", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "psr/event-dispatcher": "^1" + }, + "suggest": { + "symfony/event-dispatcher-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\EventDispatcher\\": "" + } + }, + "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 dispatching event", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.5.2" + }, + "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-01-02T09:53:40+00:00" + }, + { + "name": "symfony/finder", + "version": "v5.4.11", + "source": { + "type": "git", + "url": "https://github.com/symfony/finder.git", + "reference": "7872a66f57caffa2916a584db1aa7f12adc76f8c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/finder/zipball/7872a66f57caffa2916a584db1aa7f12adc76f8c", + "reference": "7872a66f57caffa2916a584db1aa7f12adc76f8c", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-php80": "^1.16" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Finder\\": "" + }, + "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": "Finds files and directories via an intuitive fluent interface", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/finder/tree/v5.4.11" + }, + "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-07-29T07:37:50+00:00" + }, + { + "name": "symfony/http-foundation", + "version": "v5.4.12", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-foundation.git", + "reference": "f4bfe9611b113b15d98a43da68ec9b5a00d56791" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/f4bfe9611b113b15d98a43da68ec9b5a00d56791", + "reference": "f4bfe9611b113b15d98a43da68ec9b5a00d56791", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-mbstring": "~1.1", + "symfony/polyfill-php80": "^1.16" + }, + "require-dev": { + "predis/predis": "~1.0", + "symfony/cache": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4", + "symfony/mime": "^4.4|^5.0|^6.0", + "symfony/rate-limiter": "^5.2|^6.0" + }, + "suggest": { + "symfony/mime": "To use the file extension guesser" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpFoundation\\": "" + }, + "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": "Defines an object-oriented layer for the HTTP specification", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/http-foundation/tree/v5.4.12" + }, + "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-08-19T07:33:17+00:00" + }, + { + "name": "symfony/http-kernel", + "version": "v5.4.12", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-kernel.git", + "reference": "37f660fa3bcd78fe4893ce23ebe934618ec099be" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/37f660fa3bcd78fe4893ce23ebe934618ec099be", + "reference": "37f660fa3bcd78fe4893ce23ebe934618ec099be", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "psr/log": "^1|^2", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/error-handler": "^4.4|^5.0|^6.0", + "symfony/event-dispatcher": "^5.0|^6.0", + "symfony/http-foundation": "^5.3.7|^6.0", + "symfony/polyfill-ctype": "^1.8", + "symfony/polyfill-php73": "^1.9", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "symfony/browser-kit": "<5.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", + "twig/twig": "<2.13" + }, + "provide": { + "psr/log-implementation": "1.0|2.0" + }, + "require-dev": { + "psr/cache": "^1.0|^2.0|^3.0", + "symfony/browser-kit": "^5.4|^6.0", + "symfony/config": "^5.0|^6.0", + "symfony/console": "^4.4|^5.0|^6.0", + "symfony/css-selector": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^5.3|^6.0", + "symfony/dom-crawler": "^4.4|^5.0|^6.0", + "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/finder": "^4.4|^5.0|^6.0", + "symfony/http-client-contracts": "^1.1|^2|^3", + "symfony/process": "^4.4|^5.0|^6.0", + "symfony/routing": "^4.4|^5.0|^6.0", + "symfony/stopwatch": "^4.4|^5.0|^6.0", + "symfony/translation": "^4.4|^5.0|^6.0", + "symfony/translation-contracts": "^1.1|^2|^3", + "twig/twig": "^2.13|^3.0.4" + }, + "suggest": { + "symfony/browser-kit": "", + "symfony/config": "", + "symfony/console": "", + "symfony/dependency-injection": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpKernel\\": "" + }, + "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": "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.4.12" + }, + "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-08-26T14:40:40+00:00" + }, + { + "name": "symfony/mime", + "version": "v5.4.12", + "source": { + "type": "git", + "url": "https://github.com/symfony/mime.git", + "reference": "03876e9c5a36f5b45e7d9a381edda5421eff8a90" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/mime/zipball/03876e9c5a36f5b45e7d9a381edda5421eff8a90", + "reference": "03876e9c5a36f5b45e7d9a381edda5421eff8a90", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-intl-idn": "^1.10", + "symfony/polyfill-mbstring": "^1.0", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "egulias/email-validator": "~3.0.0", + "phpdocumentor/reflection-docblock": "<3.2.2", + "phpdocumentor/type-resolver": "<1.4.0", + "symfony/mailer": "<4.4" + }, + "require-dev": { + "egulias/email-validator": "^2.1.10|^3.1", + "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/property-access": "^4.4|^5.1|^6.0", + "symfony/property-info": "^4.4|^5.1|^6.0", + "symfony/serializer": "^5.2|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Mime\\": "" + }, + "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": "Allows manipulating MIME messages", + "homepage": "https://symfony.com", + "keywords": [ + "mime", + "mime-type" + ], + "support": { + "source": "https://github.com/symfony/mime/tree/v5.4.12" + }, + "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-08-19T14:24:03+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4", + "reference": "6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-ctype": "*" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "support": { + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/polyfill-iconv", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-iconv.git", + "reference": "143f1881e655bebca1312722af8068de235ae5dc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/143f1881e655bebca1312722af8068de235ae5dc", + "reference": "143f1881e655bebca1312722af8068de235ae5dc", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-iconv": "*" + }, + "suggest": { + "ext-iconv": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Iconv\\": "" + } + }, + "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": "Symfony polyfill for the Iconv extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "iconv", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-iconv/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/polyfill-intl-grapheme", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-grapheme.git", + "reference": "433d05519ce6990bf3530fba6957499d327395c2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/433d05519ce6990bf3530fba6957499d327395c2", + "reference": "433d05519ce6990bf3530fba6957499d327395c2", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Grapheme\\": "" + } + }, + "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": "Symfony polyfill for intl's grapheme_* functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "grapheme", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/polyfill-intl-idn", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-idn.git", + "reference": "59a8d271f00dd0e4c2e518104cc7963f655a1aa8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/59a8d271f00dd0e4c2e518104cc7963f655a1aa8", + "reference": "59a8d271f00dd0e4c2e518104cc7963f655a1aa8", + "shasum": "" + }, + "require": { + "php": ">=7.1", + "symfony/polyfill-intl-normalizer": "^1.10", + "symfony/polyfill-php72": "^1.10" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Idn\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Laurent Bassin", + "email": "laurent@bassin.info" + }, + { + "name": "Trevor Rowbotham", + "email": "trevor.rowbotham@pm.me" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "idn", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "219aa369ceff116e673852dce47c3a41794c14bd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/219aa369ceff116e673852dce47c3a41794c14bd", + "reference": "219aa369ceff116e673852dce47c3a41794c14bd", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "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": "Symfony polyfill for intl's Normalizer class and related functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "intl", + "normalizer", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e", + "reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-mbstring": "*" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } + }, + "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": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/polyfill-php72", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php72.git", + "reference": "bf44a9fd41feaac72b074de600314a93e2ae78e2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/bf44a9fd41feaac72b074de600314a93e2ae78e2", + "reference": "bf44a9fd41feaac72b074de600314a93e2ae78e2", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php72\\": "" + } + }, + "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": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php72/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/polyfill-php73", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php73.git", + "reference": "e440d35fa0286f77fb45b79a03fedbeda9307e85" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/e440d35fa0286f77fb45b79a03fedbeda9307e85", + "reference": "e440d35fa0286f77fb45b79a03fedbeda9307e85", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php73\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "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": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php73/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/polyfill-php80", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "cfa0ae98841b9e461207c13ab093d76b0fa7bace" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/cfa0ae98841b9e461207c13ab093d76b0fa7bace", + "reference": "cfa0ae98841b9e461207c13ab093d76b0fa7bace", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php80/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-10T07:21:04+00:00" + }, + { + "name": "symfony/polyfill-php81", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php81.git", + "reference": "13f6d1271c663dc5ae9fb843a8f16521db7687a1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/13f6d1271c663dc5ae9fb843a8f16521db7687a1", + "reference": "13f6d1271c663dc5ae9fb843a8f16521db7687a1", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php81\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "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": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php81/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/process", + "version": "v5.4.11", + "source": { + "type": "git", + "url": "https://github.com/symfony/process.git", + "reference": "6e75fe6874cbc7e4773d049616ab450eff537bf1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/process/zipball/6e75fe6874cbc7e4773d049616ab450eff537bf1", + "reference": "6e75fe6874cbc7e4773d049616ab450eff537bf1", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-php80": "^1.16" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Process\\": "" + }, + "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": "Executes commands in sub-processes", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/process/tree/v5.4.11" + }, + "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-27T16:58:25+00:00" + }, + { + "name": "symfony/routing", + "version": "v5.4.11", + "source": { + "type": "git", + "url": "https://github.com/symfony/routing.git", + "reference": "3e01ccd9b2a3a4167ba2b3c53612762300300226" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/routing/zipball/3e01ccd9b2a3a4167ba2b3c53612762300300226", + "reference": "3e01ccd9b2a3a4167ba2b3c53612762300300226", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "doctrine/annotations": "<1.12", + "symfony/config": "<5.3", + "symfony/dependency-injection": "<4.4", + "symfony/yaml": "<4.4" + }, + "require-dev": { + "doctrine/annotations": "^1.12", + "psr/log": "^1|^2|^3", + "symfony/config": "^5.3|^6.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/http-foundation": "^4.4|^5.0|^6.0", + "symfony/yaml": "^4.4|^5.0|^6.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.4.11" + }, + "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-07-20T13:00:38+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v2.5.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/4b426aac47d6427cc1a1d0f7e2ac724627f5966c", + "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "psr/container": "^1.1", + "symfony/deprecation-contracts": "^2.1|^3" + }, + "conflict": { + "ext-psr": "<1.1|>=2" + }, + "suggest": { + "symfony/service-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.5-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.5.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-30T19:17:29+00:00" + }, + { + "name": "symfony/string", + "version": "v5.4.12", + "source": { + "type": "git", + "url": "https://github.com/symfony/string.git", + "reference": "2fc515e512d721bf31ea76bd02fe23ada4640058" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/string/zipball/2fc515e512d721bf31ea76bd02fe23ada4640058", + "reference": "2fc515e512d721bf31ea76bd02fe23ada4640058", + "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" + }, + "conflict": { + "symfony/translation-contracts": ">=3.0" + }, + "require-dev": { + "symfony/error-handler": "^4.4|^5.0|^6.0", + "symfony/http-client": "^4.4|^5.0|^6.0", + "symfony/translation-contracts": "^1.1|^2", + "symfony/var-exporter": "^4.4|^5.0|^6.0" + }, + "type": "library", + "autoload": { + "files": [ + "Resources/functions.php" + ], + "psr-4": { + "Symfony\\Component\\String\\": "" + }, + "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 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": [ + "grapheme", + "i18n", + "string", + "unicode", + "utf-8", + "utf8" + ], + "support": { + "source": "https://github.com/symfony/string/tree/v5.4.12" + }, + "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-08-12T17:03:11+00:00" + }, + { + "name": "symfony/translation", + "version": "v5.4.12", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation.git", + "reference": "42ecc77eb4f229ce2df702a648ec93b8478d76ae" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation/zipball/42ecc77eb4f229ce2df702a648ec93b8478d76ae", + "reference": "42ecc77eb4f229ce2df702a648ec93b8478d76ae", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "^1.16", + "symfony/translation-contracts": "^2.3" + }, + "conflict": { + "symfony/config": "<4.4", + "symfony/console": "<5.3", + "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" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^4.4|^5.0|^6.0", + "symfony/console": "^5.4|^6.0", + "symfony/dependency-injection": "^5.0|^6.0", + "symfony/finder": "^4.4|^5.0|^6.0", + "symfony/http-client-contracts": "^1.1|^2.0|^3.0", + "symfony/http-kernel": "^5.0|^6.0", + "symfony/intl": "^4.4|^5.0|^6.0", + "symfony/polyfill-intl-icu": "^1.21", + "symfony/service-contracts": "^1.1.2|^2|^3", + "symfony/yaml": "^4.4|^5.0|^6.0" + }, + "suggest": { + "psr/log-implementation": "To use logging capability in translator", + "symfony/config": "", + "symfony/yaml": "" + }, + "type": "library", + "autoload": { + "files": [ + "Resources/functions.php" + ], + "psr-4": { + "Symfony\\Component\\Translation\\": "" + }, + "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": "Provides tools to internationalize your application", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/translation/tree/v5.4.12" + }, + "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-08-02T15:52:22+00:00" + }, + { + "name": "symfony/translation-contracts", + "version": "v2.5.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation-contracts.git", + "reference": "136b19dd05cdf0709db6537d058bcab6dd6e2dbe" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/136b19dd05cdf0709db6537d058bcab6dd6e2dbe", + "reference": "136b19dd05cdf0709db6537d058bcab6dd6e2dbe", + "shasum": "" + }, + "require": { + "php": ">=7.2.5" + }, + "suggest": { + "symfony/translation-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Translation\\": "" + } + }, + "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 translation", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/translation-contracts/tree/v2.5.2" + }, + "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-27T16:58:25+00:00" + }, + { + "name": "symfony/var-dumper", + "version": "v5.4.11", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-dumper.git", + "reference": "b8f306d7b8ef34fb3db3305be97ba8e088fb4861" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/b8f306d7b8ef34fb3db3305be97ba8e088fb4861", + "reference": "b8f306d7b8ef34fb3db3305be97ba8e088fb4861", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "phpunit/phpunit": "<5.4.3", + "symfony/console": "<4.4" + }, + "require-dev": { + "ext-iconv": "*", + "symfony/console": "^4.4|^5.0|^6.0", + "symfony/process": "^4.4|^5.0|^6.0", + "symfony/uid": "^5.1|^6.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" + }, + "bin": [ + "Resources/bin/var-dump-server" + ], + "type": "library", + "autoload": { + "files": [ + "Resources/functions/dump.php" + ], + "psr-4": { + "Symfony\\Component\\VarDumper\\": "" + }, + "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 mechanisms for walking through any arbitrary PHP variable", + "homepage": "https://symfony.com", + "keywords": [ + "debug", + "dump" + ], + "support": { + "source": "https://github.com/symfony/var-dumper/tree/v5.4.11" + }, + "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-07-20T13:00:38+00:00" + }, + { + "name": "tijsverkoyen/css-to-inline-styles", + "version": "2.2.5", + "source": { + "type": "git", + "url": "https://github.com/tijsverkoyen/CssToInlineStyles.git", + "reference": "4348a3a06651827a27d989ad1d13efec6bb49b19" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/4348a3a06651827a27d989ad1d13efec6bb49b19", + "reference": "4348a3a06651827a27d989ad1d13efec6bb49b19", + "shasum": "" + }, + "require": { + "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": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^7.5 || ^8.5.21 || ^9.5.10" + }, + "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.5" + }, + "time": "2022-09-12T13:28:28+00:00" + }, + { + "name": "vlucas/phpdotenv", + "version": "v5.4.1", + "source": { + "type": "git", + "url": "https://github.com/vlucas/phpdotenv.git", + "reference": "264dce589e7ce37a7ba99cb901eed8249fbec92f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/264dce589e7ce37a7ba99cb901eed8249fbec92f", + "reference": "264dce589e7ce37a7ba99cb901eed8249fbec92f", + "shasum": "" + }, + "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" + }, + "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." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.4-dev" + } + }, + "autoload": { + "psr-4": { + "Dotenv\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "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": "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.4.1" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/vlucas/phpdotenv", + "type": "tidelift" + } + ], + "time": "2021-12-12T23:22:04+00:00" + }, + { + "name": "voku/portable-ascii", + "version": "1.6.1", + "source": { + "type": "git", + "url": "https://github.com/voku/portable-ascii.git", + "reference": "87337c91b9dfacee02452244ee14ab3c43bc485a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/voku/portable-ascii/zipball/87337c91b9dfacee02452244ee14ab3c43bc485a", + "reference": "87337c91b9dfacee02452244ee14ab3c43bc485a", + "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/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "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": [ + "ascii", + "clean", + "php" + ], + "support": { + "issues": "https://github.com/voku/portable-ascii/issues", + "source": "https://github.com/voku/portable-ascii/tree/1.6.1" + }, + "funding": [ + { + "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": "2022-01-24T18:55:24+00:00" + }, + { + "name": "webmozart/assert", + "version": "1.11.0", + "source": { + "type": "git", + "url": "https://github.com/webmozarts/assert.git", + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991", + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "php": "^7.2 || ^8.0" + }, + "conflict": { + "phpstan/phpstan": "<0.12.20", + "vimeo/psalm": "<4.6.1 || 4.6.2" + }, + "require-dev": { + "phpunit/phpunit": "^8.5.13" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.10-dev" + } + }, + "autoload": { + "psr-4": { + "Webmozart\\Assert\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Assertions to validate method input/output with nice error messages.", + "keywords": [ + "assert", + "check", + "validate" + ], + "support": { + "issues": "https://github.com/webmozarts/assert/issues", + "source": "https://github.com/webmozarts/assert/tree/1.11.0" + }, + "time": "2022-06-03T18:03:27+00:00" + } + ], + "packages-dev": [ + { + "name": "doctrine/instantiator", + "version": "1.4.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/instantiator.git", + "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/10dcfce151b967d20fde1b34ae6640712c3891bc", + "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9", + "ext-pdo": "*", + "ext-phar": "*", + "phpbench/phpbench": "^0.16 || ^1", + "phpstan/phpstan": "^1.4", + "phpstan/phpstan-phpunit": "^1", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "vimeo/psalm": "^4.22" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "https://ocramius.github.io/" + } + ], + "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", + "homepage": "https://www.doctrine-project.org/projects/instantiator.html", + "keywords": [ + "constructor", + "instantiate" + ], + "support": { + "issues": "https://github.com/doctrine/instantiator/issues", + "source": "https://github.com/doctrine/instantiator/tree/1.4.1" + }, + "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-03-03T08:28:38+00:00" + }, + { + "name": "facade/flare-client-php", + "version": "1.10.0", + "source": { + "type": "git", + "url": "https://github.com/facade/flare-client-php.git", + "reference": "213fa2c69e120bca4c51ba3e82ed1834ef3f41b8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/facade/flare-client-php/zipball/213fa2c69e120bca4c51ba3e82ed1834ef3f41b8", + "reference": "213fa2c69e120bca4c51ba3e82ed1834ef3f41b8", + "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" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^2.14", + "phpunit/phpunit": "^7.5", + "spatie/phpunit-snapshot-assertions": "^2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "files": [ + "src/helpers.php" + ], + "psr-4": { + "Facade\\FlareClient\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Send PHP errors to Flare", + "homepage": "https://github.com/facade/flare-client-php", + "keywords": [ + "exception", + "facade", + "flare", + "reporting" + ], + "support": { + "issues": "https://github.com/facade/flare-client-php/issues", + "source": "https://github.com/facade/flare-client-php/tree/1.10.0" + }, + "funding": [ + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2022-08-09T11:23:57+00:00" + }, + { + "name": "facade/ignition", + "version": "2.17.6", + "source": { + "type": "git", + "url": "https://github.com/facade/ignition.git", + "reference": "6acd82e986a2ecee89e2e68adfc30a1936d1ab7c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/facade/ignition/zipball/6acd82e986a2ecee89e2e68adfc30a1936d1ab7c", + "reference": "6acd82e986a2ecee89e2e68adfc30a1936d1ab7c", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "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" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^2.14", + "livewire/livewire": "^2.4", + "mockery/mockery": "^1.3", + "orchestra/testbench": "^5.0|^6.0", + "psalm/plugin-laravel": "^1.2" + }, + "suggest": { + "laravel/telescope": "^3.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + }, + "laravel": { + "providers": [ + "Facade\\Ignition\\IgnitionServiceProvider" + ], + "aliases": { + "Flare": "Facade\\Ignition\\Facades\\Flare" + } + } + }, + "autoload": { + "files": [ + "src/helpers.php" + ], + "psr-4": { + "Facade\\Ignition\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A beautiful error page for Laravel applications.", + "homepage": "https://github.com/facade/ignition", + "keywords": [ + "error", + "flare", + "laravel", + "page" + ], + "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" + }, + "time": "2022-06-30T18:26:59+00:00" + }, + { + "name": "facade/ignition-contracts", + "version": "1.0.2", + "source": { + "type": "git", + "url": "https://github.com/facade/ignition-contracts.git", + "reference": "3c921a1cdba35b68a7f0ccffc6dffc1995b18267" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/facade/ignition-contracts/zipball/3c921a1cdba35b68a7f0ccffc6dffc1995b18267", + "reference": "3c921a1cdba35b68a7f0ccffc6dffc1995b18267", + "shasum": "" + }, + "require": { + "php": "^7.3|^8.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^v2.15.8", + "phpunit/phpunit": "^9.3.11", + "vimeo/psalm": "^3.17.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "Facade\\IgnitionContracts\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "homepage": "https://flareapp.io", + "role": "Developer" + } + ], + "description": "Solution contracts for Ignition", + "homepage": "https://github.com/facade/ignition-contracts", + "keywords": [ + "contracts", + "flare", + "ignition" + ], + "support": { + "issues": "https://github.com/facade/ignition-contracts/issues", + "source": "https://github.com/facade/ignition-contracts/tree/1.0.2" + }, + "time": "2020-10-16T08:27:54+00:00" + }, + { + "name": "fakerphp/faker", + "version": "v1.20.0", + "source": { + "type": "git", + "url": "https://github.com/FakerPHP/Faker.git", + "reference": "37f751c67a5372d4e26353bd9384bc03744ec77b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/37f751c67a5372d4e26353bd9384bc03744ec77b", + "reference": "37f751c67a5372d4e26353bd9384bc03744ec77b", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0", + "psr/container": "^1.0 || ^2.0", + "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" + }, + "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.", + "ext-mbstring": "Required for multibyte Unicode string functionality." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "v1.20-dev" + } + }, + "autoload": { + "psr-4": { + "Faker\\": "src/Faker/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "François Zaninotto" + } + ], + "description": "Faker is a PHP library that generates fake data for you.", + "keywords": [ + "data", + "faker", + "fixtures" + ], + "support": { + "issues": "https://github.com/FakerPHP/Faker/issues", + "source": "https://github.com/FakerPHP/Faker/tree/v1.20.0" + }, + "time": "2022-07-20T13:12:54+00:00" + }, + { + "name": "filp/whoops", + "version": "2.14.5", + "source": { + "type": "git", + "url": "https://github.com/filp/whoops.git", + "reference": "a63e5e8f26ebbebf8ed3c5c691637325512eb0dc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/filp/whoops/zipball/a63e5e8f26ebbebf8ed3c5c691637325512eb0dc", + "reference": "a63e5e8f26ebbebf8ed3c5c691637325512eb0dc", + "shasum": "" + }, + "require": { + "php": "^5.5.9 || ^7.0 || ^8.0", + "psr/log": "^1.0.1 || ^2.0 || ^3.0" + }, + "require-dev": { + "mockery/mockery": "^0.9 || ^1.0", + "phpunit/phpunit": "^4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.3", + "symfony/var-dumper": "^2.6 || ^3.0 || ^4.0 || ^5.0" + }, + "suggest": { + "symfony/var-dumper": "Pretty print complex values better with var-dumper available", + "whoops/soap": "Formats errors as SOAP responses" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7-dev" + } + }, + "autoload": { + "psr-4": { + "Whoops\\": "src/Whoops/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Filipe Dobreira", + "homepage": "https://github.com/filp", + "role": "Developer" + } + ], + "description": "php error handling for cool kids", + "homepage": "https://filp.github.io/whoops/", + "keywords": [ + "error", + "exception", + "handling", + "library", + "throwable", + "whoops" + ], + "support": { + "issues": "https://github.com/filp/whoops/issues", + "source": "https://github.com/filp/whoops/tree/2.14.5" + }, + "funding": [ + { + "url": "https://github.com/denis-sokolov", + "type": "github" + } + ], + "time": "2022-01-07T12:00:00+00:00" + }, + { + "name": "hamcrest/hamcrest-php", + "version": "v2.0.1", + "source": { + "type": "git", + "url": "https://github.com/hamcrest/hamcrest-php.git", + "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/8c3d0a3f6af734494ad8f6fbbee0ba92422859f3", + "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3", + "shasum": "" + }, + "require": { + "php": "^5.3|^7.0|^8.0" + }, + "replace": { + "cordoval/hamcrest-php": "*", + "davedevelopment/hamcrest-php": "*", + "kodova/hamcrest-php": "*" + }, + "require-dev": { + "phpunit/php-file-iterator": "^1.4 || ^2.0", + "phpunit/phpunit": "^4.8.36 || ^5.7 || ^6.5 || ^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.1-dev" + } + }, + "autoload": { + "classmap": [ + "hamcrest" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "This is the PHP port of Hamcrest Matchers", + "keywords": [ + "test" + ], + "support": { + "issues": "https://github.com/hamcrest/hamcrest-php/issues", + "source": "https://github.com/hamcrest/hamcrest-php/tree/v2.0.1" + }, + "time": "2020-07-09T08:09:16+00:00" + }, + { + "name": "laravel/sail", + "version": "v1.16.0", + "source": { + "type": "git", + "url": "https://github.com/laravel/sail.git", + "reference": "73030c18b769f27e6f6aacf7848d024fa9a55560" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/sail/zipball/73030c18b769f27e6f6aacf7848d024fa9a55560", + "reference": "73030c18b769f27e6f6aacf7848d024fa9a55560", + "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" + }, + "bin": [ + "bin/sail" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + }, + "laravel": { + "providers": [ + "Laravel\\Sail\\SailServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Laravel\\Sail\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "Docker files for running a basic Laravel application.", + "keywords": [ + "docker", + "laravel" + ], + "support": { + "issues": "https://github.com/laravel/sail/issues", + "source": "https://github.com/laravel/sail" + }, + "time": "2022-08-31T16:38:14+00:00" + }, + { + "name": "mockery/mockery", + "version": "1.5.1", + "source": { + "type": "git", + "url": "https://github.com/mockery/mockery.git", + "reference": "e92dcc83d5a51851baf5f5591d32cb2b16e3684e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/mockery/mockery/zipball/e92dcc83d5a51851baf5f5591d32cb2b16e3684e", + "reference": "e92dcc83d5a51851baf5f5591d32cb2b16e3684e", + "shasum": "" + }, + "require": { + "hamcrest/hamcrest-php": "^2.0.1", + "lib-pcre": ">=7.0", + "php": "^7.3 || ^8.0" + }, + "conflict": { + "phpunit/phpunit": "<8.0" + }, + "require-dev": { + "phpunit/phpunit": "^8.5 || ^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4.x-dev" + } + }, + "autoload": { + "psr-0": { + "Mockery": "library/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Pádraic Brady", + "email": "padraic.brady@gmail.com", + "homepage": "http://blog.astrumfutura.com" + }, + { + "name": "Dave Marshall", + "email": "dave.marshall@atstsolutions.co.uk", + "homepage": "http://davedevelopment.co.uk" + } + ], + "description": "Mockery is a simple yet flexible PHP mock object framework", + "homepage": "https://github.com/mockery/mockery", + "keywords": [ + "BDD", + "TDD", + "library", + "mock", + "mock objects", + "mockery", + "stub", + "test", + "test double", + "testing" + ], + "support": { + "issues": "https://github.com/mockery/mockery/issues", + "source": "https://github.com/mockery/mockery/tree/1.5.1" + }, + "time": "2022-09-07T15:32:08+00:00" + }, + { + "name": "myclabs/deep-copy", + "version": "1.11.0", + "source": { + "type": "git", + "url": "https://github.com/myclabs/DeepCopy.git", + "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/14daed4296fae74d9e3201d2c4925d1acb7aa614", + "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "conflict": { + "doctrine/collections": "<1.6.8", + "doctrine/common": "<2.13.3 || >=3,<3.2.2" + }, + "require-dev": { + "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": { + "files": [ + "src/DeepCopy/deep_copy.php" + ], + "psr-4": { + "DeepCopy\\": "src/DeepCopy/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Create deep copies (clones) of your objects", + "keywords": [ + "clone", + "copy", + "duplicate", + "object", + "object graph" + ], + "support": { + "issues": "https://github.com/myclabs/DeepCopy/issues", + "source": "https://github.com/myclabs/DeepCopy/tree/1.11.0" + }, + "funding": [ + { + "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", + "type": "tidelift" + } + ], + "time": "2022-03-03T13:19:32+00:00" + }, + { + "name": "nunomaduro/collision", + "version": "v5.11.0", + "source": { + "type": "git", + "url": "https://github.com/nunomaduro/collision.git", + "reference": "8b610eef8582ccdc05d8f2ab23305e2d37049461" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nunomaduro/collision/zipball/8b610eef8582ccdc05d8f2ab23305e2d37049461", + "reference": "8b610eef8582ccdc05d8f2ab23305e2d37049461", + "shasum": "" + }, + "require": { + "facade/ignition-contracts": "^1.0", + "filp/whoops": "^2.14.3", + "php": "^7.3 || ^8.0", + "symfony/console": "^5.0" + }, + "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" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "NunoMaduro\\Collision\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nuno Maduro", + "email": "enunomaduro@gmail.com" + } + ], + "description": "Cli error handling for console/command-line PHP applications.", + "keywords": [ + "artisan", + "cli", + "command-line", + "console", + "error", + "handling", + "laravel", + "laravel-zero", + "php", + "symfony" + ], + "support": { + "issues": "https://github.com/nunomaduro/collision/issues", + "source": "https://github.com/nunomaduro/collision" + }, + "funding": [ + { + "url": "https://www.paypal.com/paypalme/enunomaduro", + "type": "custom" + }, + { + "url": "https://github.com/nunomaduro", + "type": "github" + }, + { + "url": "https://www.patreon.com/nunomaduro", + "type": "patreon" + } + ], + "time": "2022-01-10T16:22:52+00:00" + }, + { + "name": "phar-io/manifest", + "version": "2.0.3", + "source": { + "type": "git", + "url": "https://github.com/phar-io/manifest.git", + "reference": "97803eca37d319dfa7826cc2437fc020857acb53" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", + "reference": "97803eca37d319dfa7826cc2437fc020857acb53", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-phar": "*", + "ext-xmlwriter": "*", + "phar-io/version": "^3.0.1", + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", + "support": { + "issues": "https://github.com/phar-io/manifest/issues", + "source": "https://github.com/phar-io/manifest/tree/2.0.3" + }, + "time": "2021-07-20T11:28:43+00:00" + }, + { + "name": "phar-io/version", + "version": "3.2.1", + "source": { + "type": "git", + "url": "https://github.com/phar-io/version.git", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "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.2.1" + }, + "time": "2022-02-21T01:04:05+00:00" + }, + { + "name": "phpunit/php-code-coverage", + "version": "9.2.17", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "aa94dc41e8661fe90c7316849907cba3007b10d8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/aa94dc41e8661fe90c7316849907cba3007b10d8", + "reference": "aa94dc41e8661fe90c7316849907cba3007b10d8", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-libxml": "*", + "ext-xmlwriter": "*", + "nikic/php-parser": "^4.14", + "php": ">=7.3", + "phpunit/php-file-iterator": "^3.0.3", + "phpunit/php-text-template": "^2.0.2", + "sebastian/code-unit-reverse-lookup": "^2.0.2", + "sebastian/complexity": "^2.0", + "sebastian/environment": "^5.1.2", + "sebastian/lines-of-code": "^1.0.3", + "sebastian/version": "^3.0.1", + "theseer/tokenizer": "^1.2.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-pcov": "*", + "ext-xdebug": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "9.2-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 provides collection, processing, and rendering functionality for PHP code coverage information.", + "homepage": "https://github.com/sebastianbergmann/php-code-coverage", + "keywords": [ + "coverage", + "testing", + "xunit" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.17" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-08-30T12:24:04+00:00" + }, + { + "name": "phpunit/php-file-iterator", + "version": "3.0.6", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", + "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.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": "FilterIterator implementation that filters files based on a list of suffixes.", + "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "keywords": [ + "filesystem", + "iterator" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2021-12-02T12:48:52+00:00" + }, + { + "name": "phpunit/php-invoker", + "version": "3.1.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-invoker.git", + "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67", + "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "ext-pcntl": "*", + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-pcntl": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-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": "Invoke callables with a timeout", + "homepage": "https://github.com/sebastianbergmann/php-invoker/", + "keywords": [ + "process" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-invoker/issues", + "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T05:58:55+00:00" + }, + { + "name": "phpunit/php-text-template", + "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", + "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.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": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "keywords": [ + "template" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-text-template/issues", + "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T05:33:50+00:00" + }, + { + "name": "phpunit/php-timer", + "version": "5.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", + "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.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": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", + "keywords": [ + "timer" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-timer/issues", + "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:16:10+00:00" + }, + { + "name": "phpunit/phpunit", + "version": "9.5.24", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "d0aa6097bef9fd42458a9b3c49da32c6ce6129c5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/d0aa6097bef9fd42458a9b3c49da32c6ce6129c5", + "reference": "d0aa6097bef9fd42458a9b3c49da32c6ce6129c5", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.3.1", + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xml": "*", + "ext-xmlwriter": "*", + "myclabs/deep-copy": "^1.10.1", + "phar-io/manifest": "^2.0.3", + "phar-io/version": "^3.0.2", + "php": ">=7.3", + "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/diff": "^4.0.3", + "sebastian/environment": "^5.1.3", + "sebastian/exporter": "^4.0.3", + "sebastian/global-state": "^5.0.1", + "sebastian/object-enumerator": "^4.0.3", + "sebastian/resource-operations": "^3.0.3", + "sebastian/type": "^3.1", + "sebastian/version": "^3.0.2" + }, + "suggest": { + "ext-soap": "*", + "ext-xdebug": "*" + }, + "bin": [ + "phpunit" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "9.5-dev" + } + }, + "autoload": { + "files": [ + "src/Framework/Assert/Functions.php" + ], + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", + "keywords": [ + "phpunit", + "testing", + "xunit" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/phpunit/issues", + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.24" + }, + "funding": [ + { + "url": "https://phpunit.de/sponsors.html", + "type": "custom" + }, + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-08-30T07:42:16+00:00" + }, + { + "name": "sebastian/cli-parser", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/cli-parser.git", + "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.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 for parsing CLI options", + "homepage": "https://github.com/sebastianbergmann/cli-parser", + "support": { + "issues": "https://github.com/sebastianbergmann/cli-parser/issues", + "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:08:49+00:00" + }, + { + "name": "sebastian/code-unit", + "version": "1.0.8", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit.git", + "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120", + "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.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": "Collection of value objects that represent the PHP code units", + "homepage": "https://github.com/sebastianbergmann/code-unit", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit/issues", + "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:08:54+00:00" + }, + { + "name": "sebastian/code-unit-reverse-lookup", + "version": "2.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", + "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", + "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Looks up which function or method a line of code belongs to", + "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", + "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T05:30:19+00:00" + }, + { + "name": "sebastian/comparator", + "version": "4.0.8", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "fa0f136dd2334583309d32b62544682ee972b51a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a", + "reference": "fa0f136dd2334583309d32b62544682ee972b51a", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/diff": "^4.0", + "sebastian/exporter": "^4.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + } + ], + "description": "Provides the functionality to compare PHP values for equality", + "homepage": "https://github.com/sebastianbergmann/comparator", + "keywords": [ + "comparator", + "compare", + "equality" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/comparator/issues", + "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-09-14T12:41:17+00:00" + }, + { + "name": "sebastian/complexity", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/complexity.git", + "reference": "739b35e53379900cc9ac327b2147867b8b6efd88" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88", + "reference": "739b35e53379900cc9ac327b2147867b8b6efd88", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.7", + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.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 for calculating the complexity of PHP code units", + "homepage": "https://github.com/sebastianbergmann/complexity", + "support": { + "issues": "https://github.com/sebastianbergmann/complexity/issues", + "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T15:52:27+00:00" + }, + { + "name": "sebastian/diff", + "version": "4.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d", + "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3", + "symfony/process": "^4.2 || ^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "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": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", + "keywords": [ + "diff", + "udiff", + "unidiff", + "unified diff" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/diff/issues", + "source": "https://github.com/sebastianbergmann/diff/tree/4.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:10:38+00:00" + }, + { + "name": "sebastian/environment", + "version": "5.1.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/environment.git", + "reference": "1b5dff7bb151a4db11d49d90e5408e4e938270f7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/1b5dff7bb151a4db11d49d90e5408e4e938270f7", + "reference": "1b5dff7bb151a4db11d49d90e5408e4e938270f7", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-posix": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides functionality to handle HHVM/PHP environments", + "homepage": "http://www.github.com/sebastianbergmann/environment", + "keywords": [ + "Xdebug", + "environment", + "hhvm" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/environment/issues", + "source": "https://github.com/sebastianbergmann/environment/tree/5.1.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-04-03T09:37:03+00:00" + }, + { + "name": "sebastian/exporter", + "version": "4.0.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/exporter.git", + "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", + "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/recursion-context": "^4.0" + }, + "require-dev": { + "ext-mbstring": "*", + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Provides the functionality to export PHP variables for visualization", + "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.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-09-14T06:03:37+00:00" + }, + { + "name": "sebastian/global-state", + "version": "5.0.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/0ca8db5a5fc9c8646244e629625ac486fa286bf2", + "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/object-reflector": "^2.0", + "sebastian/recursion-context": "^4.0" + }, + "require-dev": { + "ext-dom": "*", + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-uopz": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Snapshotting of global state", + "homepage": "http://www.github.com/sebastianbergmann/global-state", + "keywords": [ + "global state" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/global-state/issues", + "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-02-14T08:28:10+00:00" + }, + { + "name": "sebastian/lines-of-code", + "version": "1.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/lines-of-code.git", + "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc", + "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.6", + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.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 for counting the lines of code in PHP source code", + "homepage": "https://github.com/sebastianbergmann/lines-of-code", + "support": { + "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-28T06:42:11+00:00" + }, + { + "name": "sebastian/object-enumerator", + "version": "4.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-enumerator.git", + "reference": "5c9eeac41b290a3712d88851518825ad78f45c71" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71", + "reference": "5c9eeac41b290a3712d88851518825ad78f45c71", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/object-reflector": "^2.0", + "sebastian/recursion-context": "^4.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Traverses array structures and object graphs to enumerate all referenced objects", + "homepage": "https://github.com/sebastianbergmann/object-enumerator/", + "support": { + "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:12:34+00:00" + }, + { + "name": "sebastian/object-reflector", + "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-reflector.git", + "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", + "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Allows reflection of object attributes, including inherited and non-public ones", + "homepage": "https://github.com/sebastianbergmann/object-reflector/", + "support": { + "issues": "https://github.com/sebastianbergmann/object-reflector/issues", + "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:14:26+00:00" + }, + { + "name": "sebastian/recursion-context", + "version": "4.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/cd9d8cf3c5804de4341c283ed787f099f5506172", + "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + } + ], + "description": "Provides functionality to recursively process PHP variables", + "homepage": "http://www.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" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:17:30+00:00" + }, + { + "name": "sebastian/resource-operations", + "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/resource-operations.git", + "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", + "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.0" + }, + "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" + } + ], + "description": "Provides a list of PHP built-in functions that operate on resources", + "homepage": "https://www.github.com/sebastianbergmann/resource-operations", + "support": { + "issues": "https://github.com/sebastianbergmann/resource-operations/issues", + "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:45:17+00:00" + }, + { + "name": "sebastian/type", + "version": "3.2.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/type.git", + "reference": "fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e", + "reference": "fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.2-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": "Collection of value objects that represent the types of the PHP type system", + "homepage": "https://github.com/sebastianbergmann/type", + "support": { + "issues": "https://github.com/sebastianbergmann/type/issues", + "source": "https://github.com/sebastianbergmann/type/tree/3.2.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-09-12T14:47:03+00:00" + }, + { + "name": "sebastian/version", + "version": "3.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "c6c1022351a901512170118436c764e473f6de8c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c", + "reference": "c6c1022351a901512170118436c764e473f6de8c", + "shasum": "" + }, + "require": { + "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": "theseer/tokenizer", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/theseer/tokenizer.git", + "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e", + "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": "^7.2 || ^8.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + } + ], + "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", + "support": { + "issues": "https://github.com/theseer/tokenizer/issues", + "source": "https://github.com/theseer/tokenizer/tree/1.2.1" + }, + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2021-07-28T10:34:58+00:00" + } + ], + "aliases": [], + "minimum-stability": "dev", + "stability-flags": [], + "prefer-stable": true, + "prefer-lowest": false, + "platform": { + "php": "^7.3|^8.0" + }, + "platform-dev": [], + "plugin-api-version": "2.1.0" +} diff --git a/config/app.php b/config/app.php new file mode 100644 index 0000000..580e4cc --- /dev/null +++ b/config/app.php @@ -0,0 +1,237 @@ + env('APP_NAME', 'Laravel'), + + /* + |-------------------------------------------------------------------------- + | Application Environment + |-------------------------------------------------------------------------- + | + | This value determines the "environment" your application is currently + | running in. This may determine how you prefer to configure various + | services the application utilizes. Set this in your ".env" file. + | + */ + + 'env' => env('APP_ENV', 'production'), + + /* + |-------------------------------------------------------------------------- + | Application Debug Mode + |-------------------------------------------------------------------------- + | + | When your application is in debug mode, detailed error messages with + | stack traces will be shown on every error that occurs within your + | application. If disabled, a simple generic error page is shown. + | + */ + + 'debug' => (bool)env('APP_DEBUG', false), + + /* + |-------------------------------------------------------------------------- + | Application URL + |-------------------------------------------------------------------------- + | + | This URL is used by the console to properly generate URLs when using + | the Artisan command line tool. You should set this to the root of + | your application so that it is used when running Artisan tasks. + | + */ + + 'url' => env('APP_URL', 'http://localhost'), + + 'asset_url' => env('ASSET_URL', null), + + /* + |-------------------------------------------------------------------------- + | Application Timezone + |-------------------------------------------------------------------------- + | + | Here you may specify the default timezone for your application, which + | will be used by the PHP date and date-time functions. We have gone + | ahead and set this to a sensible default for you out of the box. + | + */ + + 'timezone' => 'UTC', + + /* + |-------------------------------------------------------------------------- + | Application Locale Configuration + |-------------------------------------------------------------------------- + | + | The application locale determines the default locale that will be used + | by the translation service provider. You are free to set this value + | to any of the locales which will be supported by the application. + | + */ + + 'locale' => 'en', + + /* + |-------------------------------------------------------------------------- + | Application Fallback Locale + |-------------------------------------------------------------------------- + | + | The fallback locale determines the locale to use when the current one + | is not available. You may change the value to correspond to any of + | the language folders that are provided through your application. + | + */ + + 'fallback_locale' => 'en', + + /* + |-------------------------------------------------------------------------- + | Faker Locale + |-------------------------------------------------------------------------- + | + | This locale will be used by the Faker PHP library when generating fake + | data for your database seeds. For example, this will be used to get + | localized telephone numbers, street address information and more. + | + */ + + 'faker_locale' => 'en_US', + + /* + |-------------------------------------------------------------------------- + | Encryption Key + |-------------------------------------------------------------------------- + | + | This key is used by the Illuminate encrypter service and should be set + | to a random, 32 character string, otherwise these encrypted strings + | will not be safe. Please do this before deploying an application! + | + */ + + 'key' => env('APP_KEY'), + + 'cipher' => 'AES-256-CBC', + + /* + |-------------------------------------------------------------------------- + | Autoloaded Service Providers + |-------------------------------------------------------------------------- + | + | The service providers listed here will be automatically loaded on the + | request to your application. Feel free to add your own services to + | this array to grant expanded functionality to your applications. + | + */ + + 'providers' => [ + + /* + * Laravel Framework Service Providers... + */ + Illuminate\Auth\AuthServiceProvider::class, + Illuminate\Broadcasting\BroadcastServiceProvider::class, + Illuminate\Bus\BusServiceProvider::class, + Illuminate\Cache\CacheServiceProvider::class, + Illuminate\Foundation\Providers\ConsoleSupportServiceProvider::class, + Illuminate\Cookie\CookieServiceProvider::class, + Illuminate\Database\DatabaseServiceProvider::class, + Illuminate\Encryption\EncryptionServiceProvider::class, + Illuminate\Filesystem\FilesystemServiceProvider::class, + Illuminate\Foundation\Providers\FoundationServiceProvider::class, + Illuminate\Hashing\HashServiceProvider::class, + Illuminate\Mail\MailServiceProvider::class, + Illuminate\Notifications\NotificationServiceProvider::class, + Illuminate\Pagination\PaginationServiceProvider::class, + Illuminate\Pipeline\PipelineServiceProvider::class, + Illuminate\Queue\QueueServiceProvider::class, + Illuminate\Redis\RedisServiceProvider::class, + Illuminate\Auth\Passwords\PasswordResetServiceProvider::class, + Illuminate\Session\SessionServiceProvider::class, + Illuminate\Translation\TranslationServiceProvider::class, + Illuminate\Validation\ValidationServiceProvider::class, + Illuminate\View\ViewServiceProvider::class, + + /* + * Package Service Providers... + */ + + /* + * Application Service Providers... + */ + App\Providers\AppServiceProvider::class, + App\Providers\AuthServiceProvider::class, + // App\Providers\BroadcastServiceProvider::class, + App\Providers\EventServiceProvider::class, + App\Providers\RouteServiceProvider::class, + App\Providers\ParseCityProvider::class, + App\Providers\OpenWeatherProvider::class + ], + + /* + |-------------------------------------------------------------------------- + | Class Aliases + |-------------------------------------------------------------------------- + | + | This array of class aliases will be registered when this application + | is started. However, feel free to register as many as you wish as + | the aliases are "lazy" loaded so they don't hinder performance. + | + */ + + 'aliases' => [ + + 'App' => Illuminate\Support\Facades\App::class, + 'Arr' => Illuminate\Support\Arr::class, + 'Artisan' => Illuminate\Support\Facades\Artisan::class, + 'Auth' => Illuminate\Support\Facades\Auth::class, + 'Blade' => Illuminate\Support\Facades\Blade::class, + 'Broadcast' => Illuminate\Support\Facades\Broadcast::class, + 'Bus' => Illuminate\Support\Facades\Bus::class, + 'Cache' => Illuminate\Support\Facades\Cache::class, + 'Config' => Illuminate\Support\Facades\Config::class, + 'Cookie' => Illuminate\Support\Facades\Cookie::class, + 'Crypt' => Illuminate\Support\Facades\Crypt::class, + 'Date' => Illuminate\Support\Facades\Date::class, + 'DB' => Illuminate\Support\Facades\DB::class, + 'Eloquent' => Illuminate\Database\Eloquent\Model::class, + 'Event' => Illuminate\Support\Facades\Event::class, + 'File' => Illuminate\Support\Facades\File::class, + 'Gate' => Illuminate\Support\Facades\Gate::class, + 'Hash' => Illuminate\Support\Facades\Hash::class, + 'Http' => Illuminate\Support\Facades\Http::class, + 'Js' => Illuminate\Support\Js::class, + 'Lang' => Illuminate\Support\Facades\Lang::class, + 'Log' => Illuminate\Support\Facades\Log::class, + 'Mail' => Illuminate\Support\Facades\Mail::class, + 'Notification' => Illuminate\Support\Facades\Notification::class, + 'Password' => Illuminate\Support\Facades\Password::class, + 'Queue' => Illuminate\Support\Facades\Queue::class, + 'RateLimiter' => Illuminate\Support\Facades\RateLimiter::class, + 'Redirect' => Illuminate\Support\Facades\Redirect::class, + // 'Redis' => Illuminate\Support\Facades\Redis::class, + 'Request' => Illuminate\Support\Facades\Request::class, + 'Response' => Illuminate\Support\Facades\Response::class, + 'Route' => Illuminate\Support\Facades\Route::class, + 'Schema' => Illuminate\Support\Facades\Schema::class, + 'Session' => Illuminate\Support\Facades\Session::class, + 'Storage' => Illuminate\Support\Facades\Storage::class, + 'Str' => Illuminate\Support\Str::class, + 'URL' => Illuminate\Support\Facades\URL::class, + 'Validator' => Illuminate\Support\Facades\Validator::class, + 'View' => Illuminate\Support\Facades\View::class, + 'parse' => App\Facades\ParseCityFacade::class, + 'open_weather' => App\Facades\OpenWeatherFacade::class, + ], + +]; diff --git a/config/auth.php b/config/auth.php new file mode 100644 index 0000000..d8c6cee --- /dev/null +++ b/config/auth.php @@ -0,0 +1,111 @@ + [ + 'guard' => 'web', + 'passwords' => 'users', + ], + + /* + |-------------------------------------------------------------------------- + | Authentication Guards + |-------------------------------------------------------------------------- + | + | Next, you may define every authentication guard for your application. + | Of course, a great default configuration has been defined for you + | here which uses session storage and the Eloquent user provider. + | + | All authentication drivers have a user provider. This defines how the + | users are actually retrieved out of your database or other storage + | mechanisms used by this application to persist your user's data. + | + | Supported: "session" + | + */ + + 'guards' => [ + 'web' => [ + 'driver' => 'session', + 'provider' => 'users', + ], + ], + + /* + |-------------------------------------------------------------------------- + | User Providers + |-------------------------------------------------------------------------- + | + | All authentication drivers have a user provider. This defines how the + | users are actually retrieved out of your database or other storage + | mechanisms used by this application to persist your user's data. + | + | If you have multiple user tables or models you may configure multiple + | sources which represent each model / table. These sources may then + | be assigned to any extra authentication guards you have defined. + | + | Supported: "database", "eloquent" + | + */ + + 'providers' => [ + 'users' => [ + 'driver' => 'eloquent', + 'model' => App\Models\User::class, + ], + + // 'users' => [ + // 'driver' => 'database', + // 'table' => 'users', + // ], + ], + + /* + |-------------------------------------------------------------------------- + | Resetting Passwords + |-------------------------------------------------------------------------- + | + | You may specify multiple password reset configurations if you have more + | than one user table or model in the application and you want to have + | separate password reset settings based on the specific user types. + | + | The expire time is the number of minutes that each reset token will be + | considered valid. This security feature keeps tokens short-lived so + | they have less time to be guessed. You may change this as needed. + | + */ + + 'passwords' => [ + 'users' => [ + 'provider' => 'users', + 'table' => 'password_resets', + 'expire' => 60, + 'throttle' => 60, + ], + ], + + /* + |-------------------------------------------------------------------------- + | Password Confirmation Timeout + |-------------------------------------------------------------------------- + | + | Here you may define the amount of seconds before a password confirmation + | times out and the user is prompted to re-enter their password via the + | confirmation screen. By default, the timeout lasts for three hours. + | + */ + + 'password_timeout' => 10800, + +]; diff --git a/config/broadcasting.php b/config/broadcasting.php new file mode 100644 index 0000000..2d52982 --- /dev/null +++ b/config/broadcasting.php @@ -0,0 +1,64 @@ + env('BROADCAST_DRIVER', 'null'), + + /* + |-------------------------------------------------------------------------- + | Broadcast Connections + |-------------------------------------------------------------------------- + | + | Here you may define all of the broadcast connections that will be used + | to broadcast events to other systems or over websockets. Samples of + | each available type of connection are provided inside this array. + | + */ + + 'connections' => [ + + 'pusher' => [ + 'driver' => 'pusher', + 'key' => env('PUSHER_APP_KEY'), + 'secret' => env('PUSHER_APP_SECRET'), + 'app_id' => env('PUSHER_APP_ID'), + 'options' => [ + 'cluster' => env('PUSHER_APP_CLUSTER'), + 'useTLS' => true, + ], + ], + + 'ably' => [ + 'driver' => 'ably', + 'key' => env('ABLY_KEY'), + ], + + 'redis' => [ + 'driver' => 'redis', + 'connection' => 'default', + ], + + 'log' => [ + 'driver' => 'log', + ], + + 'null' => [ + 'driver' => 'null', + ], + + ], + +]; diff --git a/config/cache.php b/config/cache.php new file mode 100644 index 0000000..8736c7a --- /dev/null +++ b/config/cache.php @@ -0,0 +1,110 @@ + env('CACHE_DRIVER', 'file'), + + /* + |-------------------------------------------------------------------------- + | Cache Stores + |-------------------------------------------------------------------------- + | + | Here you may define all of the cache "stores" for your application as + | well as their drivers. You may even define multiple stores for the + | same cache driver to group types of items stored in your caches. + | + | Supported drivers: "apc", "array", "database", "file", + | "memcached", "redis", "dynamodb", "octane", "null" + | + */ + + 'stores' => [ + + 'apc' => [ + 'driver' => 'apc', + ], + + 'array' => [ + 'driver' => 'array', + 'serialize' => false, + ], + + 'database' => [ + 'driver' => 'database', + 'table' => 'cache', + 'connection' => null, + 'lock_connection' => null, + ], + + 'file' => [ + 'driver' => 'file', + 'path' => storage_path('framework/cache/data'), + ], + + 'memcached' => [ + 'driver' => 'memcached', + 'persistent_id' => env('MEMCACHED_PERSISTENT_ID'), + 'sasl' => [ + env('MEMCACHED_USERNAME'), + env('MEMCACHED_PASSWORD'), + ], + 'options' => [ + // Memcached::OPT_CONNECT_TIMEOUT => 2000, + ], + 'servers' => [ + [ + 'host' => env('MEMCACHED_HOST', '127.0.0.1'), + 'port' => env('MEMCACHED_PORT', 11211), + 'weight' => 100, + ], + ], + ], + + 'redis' => [ + 'driver' => 'redis', + 'connection' => 'cache', + 'lock_connection' => 'default', + ], + + 'dynamodb' => [ + 'driver' => 'dynamodb', + 'key' => env('AWS_ACCESS_KEY_ID'), + 'secret' => env('AWS_SECRET_ACCESS_KEY'), + 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), + 'table' => env('DYNAMODB_CACHE_TABLE', 'cache'), + 'endpoint' => env('DYNAMODB_ENDPOINT'), + ], + + 'octane' => [ + 'driver' => 'octane', + ], + + ], + + /* + |-------------------------------------------------------------------------- + | Cache Key Prefix + |-------------------------------------------------------------------------- + | + | When utilizing a RAM based store such as APC or Memcached, there might + | be other applications utilizing the same cache. So, we'll specify a + | value to get prefixed to all our keys so we can avoid collisions. + | + */ + + 'prefix' => env('CACHE_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_cache'), + +]; diff --git a/config/cities.php b/config/cities.php new file mode 100644 index 0000000..771345e --- /dev/null +++ b/config/cities.php @@ -0,0 +1,5 @@ + public_path('am.json') +]; diff --git a/config/cors.php b/config/cors.php new file mode 100644 index 0000000..8a39e6d --- /dev/null +++ b/config/cors.php @@ -0,0 +1,34 @@ + ['api/*', 'sanctum/csrf-cookie'], + + 'allowed_methods' => ['*'], + + 'allowed_origins' => ['*'], + + 'allowed_origins_patterns' => [], + + 'allowed_headers' => ['*'], + + 'exposed_headers' => [], + + 'max_age' => 0, + + 'supports_credentials' => false, + +]; diff --git a/config/database.php b/config/database.php new file mode 100644 index 0000000..b42d9b3 --- /dev/null +++ b/config/database.php @@ -0,0 +1,147 @@ + env('DB_CONNECTION', 'mysql'), + + /* + |-------------------------------------------------------------------------- + | Database Connections + |-------------------------------------------------------------------------- + | + | Here are each of the database connections setup for your application. + | Of course, examples of configuring each database platform that is + | supported by Laravel is shown below to make development simple. + | + | + | All database work in Laravel is done through the PHP PDO facilities + | so make sure you have the driver for your particular database of + | choice installed on your machine before you begin development. + | + */ + + 'connections' => [ + + 'sqlite' => [ + 'driver' => 'sqlite', + 'url' => env('DATABASE_URL'), + 'database' => env('DB_DATABASE', database_path('database.sqlite')), + 'prefix' => '', + 'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true), + ], + + 'mysql' => [ + 'driver' => 'mysql', + 'url' => env('DATABASE_URL'), + 'host' => env('DB_HOST', '127.0.0.1'), + 'port' => env('DB_PORT', '3306'), + 'database' => env('DB_DATABASE', 'forge'), + 'username' => env('DB_USERNAME', 'forge'), + 'password' => env('DB_PASSWORD', ''), + 'unix_socket' => env('DB_SOCKET', ''), + 'charset' => 'utf8mb4', + 'collation' => 'utf8mb4_unicode_ci', + 'prefix' => '', + 'prefix_indexes' => true, + 'strict' => true, + 'engine' => null, + 'options' => extension_loaded('pdo_mysql') ? array_filter([ + PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'), + ]) : [], + ], + + 'pgsql' => [ + 'driver' => 'pgsql', + 'url' => env('DATABASE_URL'), + 'host' => env('DB_HOST', '127.0.0.1'), + 'port' => env('DB_PORT', '5432'), + 'database' => env('DB_DATABASE', 'forge'), + 'username' => env('DB_USERNAME', 'forge'), + 'password' => env('DB_PASSWORD', ''), + 'charset' => 'utf8', + 'prefix' => '', + 'prefix_indexes' => true, + 'schema' => 'public', + 'sslmode' => 'prefer', + ], + + 'sqlsrv' => [ + 'driver' => 'sqlsrv', + 'url' => env('DATABASE_URL'), + 'host' => env('DB_HOST', 'localhost'), + 'port' => env('DB_PORT', '1433'), + 'database' => env('DB_DATABASE', 'forge'), + 'username' => env('DB_USERNAME', 'forge'), + 'password' => env('DB_PASSWORD', ''), + 'charset' => 'utf8', + 'prefix' => '', + 'prefix_indexes' => true, + ], + + ], + + /* + |-------------------------------------------------------------------------- + | Migration Repository Table + |-------------------------------------------------------------------------- + | + | This table keeps track of all the migrations that have already run for + | your application. Using this information, we can determine which of + | the migrations on disk haven't actually been run in the database. + | + */ + + 'migrations' => 'migrations', + + /* + |-------------------------------------------------------------------------- + | Redis Databases + |-------------------------------------------------------------------------- + | + | Redis is an open source, fast, and advanced key-value store that also + | provides a richer body of commands than a typical key-value system + | such as APC or Memcached. Laravel makes it easy to dig right in. + | + */ + + 'redis' => [ + + 'client' => env('REDIS_CLIENT', 'phpredis'), + + 'options' => [ + 'cluster' => env('REDIS_CLUSTER', 'redis'), + 'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_database_'), + ], + + 'default' => [ + 'url' => env('REDIS_URL'), + 'host' => env('REDIS_HOST', '127.0.0.1'), + 'password' => env('REDIS_PASSWORD', null), + 'port' => env('REDIS_PORT', '6379'), + 'database' => env('REDIS_DB', '0'), + ], + + 'cache' => [ + 'url' => env('REDIS_URL'), + 'host' => env('REDIS_HOST', '127.0.0.1'), + 'password' => env('REDIS_PASSWORD', null), + 'port' => env('REDIS_PORT', '6379'), + 'database' => env('REDIS_CACHE_DB', '1'), + ], + + ], + +]; diff --git a/config/filesystems.php b/config/filesystems.php new file mode 100644 index 0000000..760ef97 --- /dev/null +++ b/config/filesystems.php @@ -0,0 +1,73 @@ + env('FILESYSTEM_DRIVER', 'local'), + + /* + |-------------------------------------------------------------------------- + | Filesystem Disks + |-------------------------------------------------------------------------- + | + | Here you may configure as many filesystem "disks" as you wish, and you + | may even configure multiple disks of the same driver. Defaults have + | been setup for each driver as an example of the required options. + | + | Supported Drivers: "local", "ftp", "sftp", "s3" + | + */ + + 'disks' => [ + + 'local' => [ + 'driver' => 'local', + 'root' => storage_path('app'), + ], + + 'public' => [ + 'driver' => 'local', + 'root' => storage_path('app/public'), + 'url' => env('APP_URL').'/storage', + 'visibility' => 'public', + ], + + 's3' => [ + 'driver' => 's3', + 'key' => env('AWS_ACCESS_KEY_ID'), + 'secret' => env('AWS_SECRET_ACCESS_KEY'), + 'region' => env('AWS_DEFAULT_REGION'), + 'bucket' => env('AWS_BUCKET'), + 'url' => env('AWS_URL'), + 'endpoint' => env('AWS_ENDPOINT'), + 'use_path_style_endpoint' => env('AWS_USE_PATH_STYLE_ENDPOINT', false), + ], + + ], + + /* + |-------------------------------------------------------------------------- + | Symbolic Links + |-------------------------------------------------------------------------- + | + | Here you may configure the symbolic links that will be created when the + | `storage:link` Artisan command is executed. The array keys should be + | the locations of the links and the values should be their targets. + | + */ + + 'links' => [ + public_path('storage') => storage_path('app/public'), + ], + +]; diff --git a/config/flare.php b/config/flare.php new file mode 100644 index 0000000..48fc07d --- /dev/null +++ b/config/flare.php @@ -0,0 +1,62 @@ + env('FLARE_KEY'), + + /* + |-------------------------------------------------------------------------- + | Reporting Options + |-------------------------------------------------------------------------- + | + | These options determine which information will be transmitted to Flare. + | + */ + + 'reporting' => [ + 'anonymize_ips' => true, + 'collect_git_information' => false, + 'report_queries' => true, + 'maximum_number_of_collected_queries' => 200, + 'report_query_bindings' => true, + 'report_view_data' => true, + 'grouping_type' => null, + 'report_logs' => true, + 'maximum_number_of_collected_logs' => 200, + 'censor_request_body_fields' => ['password'], + ], + + /* + |-------------------------------------------------------------------------- + | Reporting Log statements + |-------------------------------------------------------------------------- + | + | If this setting is `false` log statements won't be sent as events to Flare, + | no matter which error level you specified in the Flare log channel. + | + */ + + 'send_logs_as_events' => true, + + /* + |-------------------------------------------------------------------------- + | Censor request body fields + |-------------------------------------------------------------------------- + | + | These fields will be censored from your request when sent to Flare. + | + */ + + 'censor_request_body_fields' => ['password'], +]; diff --git a/config/hashing.php b/config/hashing.php new file mode 100644 index 0000000..bcd3be4 --- /dev/null +++ b/config/hashing.php @@ -0,0 +1,52 @@ + 'bcrypt', + + /* + |-------------------------------------------------------------------------- + | Bcrypt Options + |-------------------------------------------------------------------------- + | + | Here you may specify the configuration options that should be used when + | passwords are hashed using the Bcrypt algorithm. This will allow you + | to control the amount of time it takes to hash the given password. + | + */ + + 'bcrypt' => [ + 'rounds' => env('BCRYPT_ROUNDS', 10), + ], + + /* + |-------------------------------------------------------------------------- + | Argon Options + |-------------------------------------------------------------------------- + | + | Here you may specify the configuration options that should be used when + | passwords are hashed using the Argon algorithm. These will allow you + | to control the amount of time it takes to hash the given password. + | + */ + + 'argon' => [ + 'memory' => 65536, + 'threads' => 1, + 'time' => 4, + ], + +]; diff --git a/config/ignition.php b/config/ignition.php new file mode 100644 index 0000000..268d2f2 --- /dev/null +++ b/config/ignition.php @@ -0,0 +1,126 @@ + env('IGNITION_EDITOR', 'phpstorm'), + + /* + |-------------------------------------------------------------------------- + | Theme + |-------------------------------------------------------------------------- + | + | Here you may specify which theme Ignition should use. + | + | Supported: "light", "dark", "auto" + | + */ + + 'theme' => env('IGNITION_THEME', 'light'), + + /* + |-------------------------------------------------------------------------- + | Sharing + |-------------------------------------------------------------------------- + | + | You can share local errors with colleagues or others around the world. + | Sharing is completely free and doesn't require an account on Flare. + | + | If necessary, you can completely disable sharing below. + | + */ + + 'enable_share_button' => env('IGNITION_SHARING_ENABLED', true), + + /* + |-------------------------------------------------------------------------- + | Register Ignition commands + |-------------------------------------------------------------------------- + | + | Ignition comes with an additional make command that lets you create + | new solution classes more easily. To keep your default Laravel + | installation clean, this command is not registered by default. + | + | You can enable the command registration below. + | + */ + 'register_commands' => env('REGISTER_IGNITION_COMMANDS', false), + + /* + |-------------------------------------------------------------------------- + | Ignored Solution Providers + |-------------------------------------------------------------------------- + | + | You may specify a list of solution providers (as fully qualified class + | names) that shouldn't be loaded. Ignition will ignore these classes + | and possible solutions provided by them will never be displayed. + | + */ + + 'ignored_solution_providers' => [ + \Facade\Ignition\SolutionProviders\MissingPackageSolutionProvider::class, + ], + + /* + |-------------------------------------------------------------------------- + | Runnable Solutions + |-------------------------------------------------------------------------- + | + | Some solutions that Ignition displays are runnable and can perform + | various tasks. Runnable solutions are enabled when your app has + | debug mode enabled. You may also fully disable this feature. + | + */ + + 'enable_runnable_solutions' => env('IGNITION_ENABLE_RUNNABLE_SOLUTIONS', null), + + /* + |-------------------------------------------------------------------------- + | Remote Path Mapping + |-------------------------------------------------------------------------- + | + | If you are using a remote dev server, like Laravel Homestead, Docker, or + | even a remote VPS, it will be necessary to specify your path mapping. + | + | Leaving one, or both of these, empty or null will not trigger the remote + | URL changes and Ignition will treat your editor links as local files. + | + | "remote_sites_path" is an absolute base path for your sites or projects + | in Homestead, Vagrant, Docker, or another remote development server. + | + | Example value: "/home/vagrant/Code" + | + | "local_sites_path" is an absolute base path for your sites or projects + | on your local computer where your IDE or code editor is running on. + | + | Example values: "/Users//Code", "C:\Users\\Documents\Code" + | + */ + + 'remote_sites_path' => env('IGNITION_REMOTE_SITES_PATH', ''), + 'local_sites_path' => env('IGNITION_LOCAL_SITES_PATH', ''), + + /* + |-------------------------------------------------------------------------- + | Housekeeping Endpoint Prefix + |-------------------------------------------------------------------------- + | + | Ignition registers a couple of routes when it is enabled. Below you may + | specify a route prefix that will be used to host all internal links. + | + */ + 'housekeeping_endpoint_prefix' => '_ignition', + +]; diff --git a/config/logging.php b/config/logging.php new file mode 100644 index 0000000..880cd92 --- /dev/null +++ b/config/logging.php @@ -0,0 +1,118 @@ + env('LOG_CHANNEL', 'stack'), + + /* + |-------------------------------------------------------------------------- + | Deprecations Log Channel + |-------------------------------------------------------------------------- + | + | This option controls the log channel that should be used to log warnings + | regarding deprecated PHP and library features. This allows you to get + | your application ready for upcoming major versions of dependencies. + | + */ + + 'deprecations' => env('LOG_DEPRECATIONS_CHANNEL', 'null'), + + /* + |-------------------------------------------------------------------------- + | Log Channels + |-------------------------------------------------------------------------- + | + | Here you may configure the log channels for your application. Out of + | the box, Laravel uses the Monolog PHP logging library. This gives + | you a variety of powerful log handlers / formatters to utilize. + | + | Available Drivers: "single", "daily", "slack", "syslog", + | "errorlog", "monolog", + | "custom", "stack" + | + */ + + 'channels' => [ + 'stack' => [ + 'driver' => 'stack', + 'channels' => ['single'], + 'ignore_exceptions' => false, + ], + + 'single' => [ + 'driver' => 'single', + 'path' => storage_path('logs/laravel.log'), + 'level' => env('LOG_LEVEL', 'debug'), + ], + + 'daily' => [ + 'driver' => 'daily', + 'path' => storage_path('logs/laravel.log'), + 'level' => env('LOG_LEVEL', 'debug'), + 'days' => 14, + ], + + 'slack' => [ + 'driver' => 'slack', + 'url' => env('LOG_SLACK_WEBHOOK_URL'), + 'username' => 'Laravel Log', + 'emoji' => ':boom:', + 'level' => env('LOG_LEVEL', 'critical'), + ], + + 'papertrail' => [ + 'driver' => 'monolog', + 'level' => env('LOG_LEVEL', 'debug'), + 'handler' => SyslogUdpHandler::class, + 'handler_with' => [ + 'host' => env('PAPERTRAIL_URL'), + 'port' => env('PAPERTRAIL_PORT'), + ], + ], + + 'stderr' => [ + 'driver' => 'monolog', + 'level' => env('LOG_LEVEL', 'debug'), + 'handler' => StreamHandler::class, + 'formatter' => env('LOG_STDERR_FORMATTER'), + 'with' => [ + 'stream' => 'php://stderr', + ], + ], + + 'syslog' => [ + 'driver' => 'syslog', + 'level' => env('LOG_LEVEL', 'debug'), + ], + + 'errorlog' => [ + 'driver' => 'errorlog', + 'level' => env('LOG_LEVEL', 'debug'), + ], + + 'null' => [ + 'driver' => 'monolog', + 'handler' => NullHandler::class, + ], + + 'emergency' => [ + 'path' => storage_path('logs/laravel.log'), + ], + ], + +]; diff --git a/config/mail.php b/config/mail.php new file mode 100644 index 0000000..f96c6c7 --- /dev/null +++ b/config/mail.php @@ -0,0 +1,118 @@ + env('MAIL_MAILER', 'smtp'), + + /* + |-------------------------------------------------------------------------- + | Mailer Configurations + |-------------------------------------------------------------------------- + | + | Here you may configure all of the mailers used by your application plus + | their respective settings. Several examples have been configured for + | you and you are free to add your own as your application requires. + | + | Laravel supports a variety of mail "transport" drivers to be used while + | sending an e-mail. You will specify which one you are using for your + | mailers below. You are free to add additional mailers as required. + | + | Supported: "smtp", "sendmail", "mailgun", "ses", + | "postmark", "log", "array", "failover" + | + */ + + 'mailers' => [ + 'smtp' => [ + 'transport' => 'smtp', + 'host' => env('MAIL_HOST', 'smtp.mailgun.org'), + 'port' => env('MAIL_PORT', 587), + 'encryption' => env('MAIL_ENCRYPTION', 'tls'), + 'username' => env('MAIL_USERNAME'), + 'password' => env('MAIL_PASSWORD'), + 'timeout' => null, + 'auth_mode' => null, + ], + + 'ses' => [ + 'transport' => 'ses', + ], + + 'mailgun' => [ + 'transport' => 'mailgun', + ], + + 'postmark' => [ + 'transport' => 'postmark', + ], + + 'sendmail' => [ + 'transport' => 'sendmail', + 'path' => env('MAIL_SENDMAIL_PATH', '/usr/sbin/sendmail -t -i'), + ], + + 'log' => [ + 'transport' => 'log', + 'channel' => env('MAIL_LOG_CHANNEL'), + ], + + 'array' => [ + 'transport' => 'array', + ], + + 'failover' => [ + 'transport' => 'failover', + 'mailers' => [ + 'smtp', + 'log', + ], + ], + ], + + /* + |-------------------------------------------------------------------------- + | Global "From" Address + |-------------------------------------------------------------------------- + | + | You may wish for all e-mails sent by your application to be sent from + | the same address. Here, you may specify a name and address that is + | used globally for all e-mails that are sent by your application. + | + */ + + 'from' => [ + 'address' => env('MAIL_FROM_ADDRESS', 'hello@example.com'), + 'name' => env('MAIL_FROM_NAME', 'Example'), + ], + + /* + |-------------------------------------------------------------------------- + | Markdown Mail Settings + |-------------------------------------------------------------------------- + | + | If you are using Markdown based email rendering, you may configure your + | theme and component paths here, allowing you to customize the design + | of the emails. Or, you may simply stick with the Laravel defaults! + | + */ + + 'markdown' => [ + 'theme' => 'default', + + 'paths' => [ + resource_path('views/vendor/mail'), + ], + ], + +]; diff --git a/config/openweather.php b/config/openweather.php new file mode 100644 index 0000000..c6b7586 --- /dev/null +++ b/config/openweather.php @@ -0,0 +1,31 @@ + env('WEATHER_API_KEY', '1077481787381398496a922389d0eea2'), + + /** + * Library https://openweathermap.org/current#multi + * + */ + + 'lang' => 'en', + + 'date_format' => 'm/d/Y', + 'time_format' => 'h:i A', + 'day_format' => 'l', + + /** + * Units: available units are c, f, k. (k is default) + * + * For temperature in Fahrenheit (f) and wind speed in miles/hour, use units=imperial + * For temperature in Celsius (c) and wind speed in meter/sec, use units=metric + */ + + 'temp_format' => 'c', +]; diff --git a/config/queue.php b/config/queue.php new file mode 100644 index 0000000..25ea5a8 --- /dev/null +++ b/config/queue.php @@ -0,0 +1,93 @@ + env('QUEUE_CONNECTION', 'sync'), + + /* + |-------------------------------------------------------------------------- + | Queue Connections + |-------------------------------------------------------------------------- + | + | Here you may configure the connection information for each server that + | is used by your application. A default configuration has been added + | for each back-end shipped with Laravel. You are free to add more. + | + | Drivers: "sync", "database", "beanstalkd", "sqs", "redis", "null" + | + */ + + 'connections' => [ + + 'sync' => [ + 'driver' => 'sync', + ], + + 'database' => [ + 'driver' => 'database', + 'table' => 'jobs', + 'queue' => 'default', + 'retry_after' => 90, + 'after_commit' => false, + ], + + 'beanstalkd' => [ + 'driver' => 'beanstalkd', + 'host' => 'localhost', + 'queue' => 'default', + 'retry_after' => 90, + 'block_for' => 0, + 'after_commit' => false, + ], + + 'sqs' => [ + 'driver' => 'sqs', + 'key' => env('AWS_ACCESS_KEY_ID'), + 'secret' => env('AWS_SECRET_ACCESS_KEY'), + 'prefix' => env('SQS_PREFIX', 'https://sqs.us-east-1.amazonaws.com/your-account-id'), + 'queue' => env('SQS_QUEUE', 'default'), + 'suffix' => env('SQS_SUFFIX'), + 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), + 'after_commit' => false, + ], + + 'redis' => [ + 'driver' => 'redis', + 'connection' => 'default', + 'queue' => env('REDIS_QUEUE', 'default'), + 'retry_after' => 90, + 'block_for' => null, + 'after_commit' => false, + ], + + ], + + /* + |-------------------------------------------------------------------------- + | 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. + | + */ + + 'failed' => [ + 'driver' => env('QUEUE_FAILED_DRIVER', 'database-uuids'), + 'database' => env('DB_CONNECTION', 'mysql'), + 'table' => 'failed_jobs', + ], + +]; diff --git a/config/sanctum.php b/config/sanctum.php new file mode 100644 index 0000000..9281c92 --- /dev/null +++ b/config/sanctum.php @@ -0,0 +1,65 @@ + explode(',', env('SANCTUM_STATEFUL_DOMAINS', sprintf( + '%s%s', + 'localhost,localhost:3000,127.0.0.1,127.0.0.1:8000,::1', + env('APP_URL') ? ','.parse_url(env('APP_URL'), PHP_URL_HOST) : '' + ))), + + /* + |-------------------------------------------------------------------------- + | Sanctum Guards + |-------------------------------------------------------------------------- + | + | This array contains the authentication guards that will be checked when + | Sanctum is trying to authenticate a request. If none of these guards + | are able to authenticate the request, Sanctum will use the bearer + | token that's present on an incoming request for authentication. + | + */ + + 'guard' => ['web'], + + /* + |-------------------------------------------------------------------------- + | Expiration Minutes + |-------------------------------------------------------------------------- + | + | This value controls the number of minutes until an issued token will be + | considered expired. If this value is null, personal access tokens do + | not expire. This won't tweak the lifetime of first-party sessions. + | + */ + + 'expiration' => null, + + /* + |-------------------------------------------------------------------------- + | Sanctum Middleware + |-------------------------------------------------------------------------- + | + | When authenticating your first-party SPA with Sanctum you may need to + | customize some of the middleware Sanctum uses while processing the + | request. You may change the middleware listed below as required. + | + */ + + 'middleware' => [ + 'verify_csrf_token' => App\Http\Middleware\VerifyCsrfToken::class, + 'encrypt_cookies' => App\Http\Middleware\EncryptCookies::class, + ], + +]; diff --git a/config/services.php b/config/services.php new file mode 100644 index 0000000..2a1d616 --- /dev/null +++ b/config/services.php @@ -0,0 +1,33 @@ + [ + 'domain' => env('MAILGUN_DOMAIN'), + 'secret' => env('MAILGUN_SECRET'), + 'endpoint' => env('MAILGUN_ENDPOINT', 'api.mailgun.net'), + ], + + 'postmark' => [ + 'token' => env('POSTMARK_TOKEN'), + ], + + 'ses' => [ + 'key' => env('AWS_ACCESS_KEY_ID'), + 'secret' => env('AWS_SECRET_ACCESS_KEY'), + 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), + ], + +]; diff --git a/config/session.php b/config/session.php new file mode 100644 index 0000000..ac0802b --- /dev/null +++ b/config/session.php @@ -0,0 +1,201 @@ + env('SESSION_DRIVER', 'file'), + + /* + |-------------------------------------------------------------------------- + | Session Lifetime + |-------------------------------------------------------------------------- + | + | Here you may specify the number of minutes that you wish the session + | to be allowed to remain idle before it expires. If you want them + | to immediately expire on the browser closing, set that option. + | + */ + + 'lifetime' => env('SESSION_LIFETIME', 120), + + 'expire_on_close' => false, + + /* + |-------------------------------------------------------------------------- + | Session Encryption + |-------------------------------------------------------------------------- + | + | This option allows you to easily specify that all of your session data + | should be encrypted before it is stored. All encryption will be run + | automatically by Laravel and you can use the Session like normal. + | + */ + + 'encrypt' => false, + + /* + |-------------------------------------------------------------------------- + | Session File Location + |-------------------------------------------------------------------------- + | + | When using the native session driver, we need a location where session + | files may be stored. A default has been set for you but a different + | location may be specified. This is only needed for file sessions. + | + */ + + 'files' => storage_path('framework/sessions'), + + /* + |-------------------------------------------------------------------------- + | Session Database Connection + |-------------------------------------------------------------------------- + | + | When using the "database" or "redis" session drivers, you may specify a + | connection that should be used to manage these sessions. This should + | correspond to a connection in your database configuration options. + | + */ + + 'connection' => env('SESSION_CONNECTION', null), + + /* + |-------------------------------------------------------------------------- + | Session Database Table + |-------------------------------------------------------------------------- + | + | When using the "database" session driver, you may specify the table we + | should use to manage the sessions. Of course, a sensible default is + | provided for you; however, you are free to change this as needed. + | + */ + + 'table' => 'sessions', + + /* + |-------------------------------------------------------------------------- + | Session Cache Store + |-------------------------------------------------------------------------- + | + | While using one of the framework's cache driven session backends you may + | list a cache store that should be used for these sessions. This value + | must match with one of the application's configured cache "stores". + | + | Affects: "apc", "dynamodb", "memcached", "redis" + | + */ + + 'store' => env('SESSION_STORE', null), + + /* + |-------------------------------------------------------------------------- + | Session Sweeping Lottery + |-------------------------------------------------------------------------- + | + | Some session drivers must manually sweep their storage location to get + | rid of old sessions from storage. Here are the chances that it will + | happen on a given request. By default, the odds are 2 out of 100. + | + */ + + 'lottery' => [2, 100], + + /* + |-------------------------------------------------------------------------- + | Session Cookie Name + |-------------------------------------------------------------------------- + | + | Here you may change the name of the cookie used to identify a session + | instance by ID. The name specified here will get used every time a + | new session cookie is created by the framework for every driver. + | + */ + + 'cookie' => env( + 'SESSION_COOKIE', + Str::slug(env('APP_NAME', 'laravel'), '_').'_session' + ), + + /* + |-------------------------------------------------------------------------- + | Session Cookie Path + |-------------------------------------------------------------------------- + | + | The session cookie path determines the path for which the cookie will + | be regarded as available. Typically, this will be the root path of + | your application but you are free to change this when necessary. + | + */ + + 'path' => '/', + + /* + |-------------------------------------------------------------------------- + | Session Cookie Domain + |-------------------------------------------------------------------------- + | + | Here you may change the domain of the cookie used to identify a session + | in your application. This will determine which domains the cookie is + | available to in your application. A sensible default has been set. + | + */ + + 'domain' => env('SESSION_DOMAIN', null), + + /* + |-------------------------------------------------------------------------- + | HTTPS Only Cookies + |-------------------------------------------------------------------------- + | + | By setting this option to true, session cookies will only be sent back + | to the server if the browser has a HTTPS connection. This will keep + | the cookie from being sent to you when it can't be done securely. + | + */ + + 'secure' => env('SESSION_SECURE_COOKIE'), + + /* + |-------------------------------------------------------------------------- + | HTTP Access Only + |-------------------------------------------------------------------------- + | + | Setting this value to true will prevent JavaScript from accessing the + | value of the cookie and the cookie will only be accessible through + | the HTTP protocol. You are free to modify this option if needed. + | + */ + + 'http_only' => true, + + /* + |-------------------------------------------------------------------------- + | Same-Site Cookies + |-------------------------------------------------------------------------- + | + | This option determines how your cookies behave when cross-site requests + | take place, and can be used to mitigate CSRF attacks. By default, we + | will set this value to "lax" since this is a secure default value. + | + | Supported: "lax", "strict", "none", null + | + */ + + 'same_site' => 'lax', + +]; diff --git a/config/tinker.php b/config/tinker.php new file mode 100644 index 0000000..c187942 --- /dev/null +++ b/config/tinker.php @@ -0,0 +1,50 @@ + [ + // App\Console\Commands\ExampleCommand::class, + ], + + /* + |-------------------------------------------------------------------------- + | Auto Aliased Classes + |-------------------------------------------------------------------------- + | + | Tinker will not automatically alias classes in your vendor namespaces + | but you may explicitly allow a subset of classes to get aliased by + | adding the names of each of those classes to the following list. + | + */ + + 'alias' => [ + // + ], + + /* + |-------------------------------------------------------------------------- + | Classes That Should Not Be Aliased + |-------------------------------------------------------------------------- + | + | Typically, Tinker automatically aliases classes as you require them in + | Tinker. However, you may wish to never alias certain classes, which + | you may accomplish by listing the classes in the following array. + | + */ + + 'dont_alias' => [ + 'App\Nova', + ], + +]; diff --git a/config/view.php b/config/view.php new file mode 100644 index 0000000..22b8a18 --- /dev/null +++ b/config/view.php @@ -0,0 +1,36 @@ + [ + resource_path('views'), + ], + + /* + |-------------------------------------------------------------------------- + | Compiled View Path + |-------------------------------------------------------------------------- + | + | This option determines where all the compiled Blade templates will be + | stored for your application. Typically, this is within the storage + | directory. However, as usual, you are free to change this value. + | + */ + + 'compiled' => env( + 'VIEW_COMPILED_PATH', + realpath(storage_path('framework/views')) + ), + +]; diff --git a/database/.gitignore b/database/.gitignore new file mode 100644 index 0000000..9b19b93 --- /dev/null +++ b/database/.gitignore @@ -0,0 +1 @@ +*.sqlite* diff --git a/database/factories/UserFactory.php b/database/factories/UserFactory.php new file mode 100644 index 0000000..a3eb239 --- /dev/null +++ b/database/factories/UserFactory.php @@ -0,0 +1,39 @@ + $this->faker->name(), + 'email' => $this->faker->unique()->safeEmail(), + 'email_verified_at' => now(), + 'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password + 'remember_token' => Str::random(10), + ]; + } + + /** + * Indicate that the model's email address should be unverified. + * + * @return \Illuminate\Database\Eloquent\Factories\Factory + */ + public function unverified() + { + return $this->state(function (array $attributes) { + return [ + 'email_verified_at' => null, + ]; + }); + } +} diff --git a/database/migrations/2014_10_12_000000_create_users_table.php b/database/migrations/2014_10_12_000000_create_users_table.php new file mode 100644 index 0000000..621a24e --- /dev/null +++ b/database/migrations/2014_10_12_000000_create_users_table.php @@ -0,0 +1,36 @@ +id(); + $table->string('name'); + $table->string('email')->unique(); + $table->timestamp('email_verified_at')->nullable(); + $table->string('password'); + $table->rememberToken(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('users'); + } +} diff --git a/database/migrations/2014_10_12_100000_create_password_resets_table.php b/database/migrations/2014_10_12_100000_create_password_resets_table.php new file mode 100644 index 0000000..0ee0a36 --- /dev/null +++ b/database/migrations/2014_10_12_100000_create_password_resets_table.php @@ -0,0 +1,32 @@ +string('email')->index(); + $table->string('token'); + $table->timestamp('created_at')->nullable(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('password_resets'); + } +} diff --git a/database/migrations/2019_08_19_000000_create_failed_jobs_table.php b/database/migrations/2019_08_19_000000_create_failed_jobs_table.php new file mode 100644 index 0000000..6aa6d74 --- /dev/null +++ b/database/migrations/2019_08_19_000000_create_failed_jobs_table.php @@ -0,0 +1,36 @@ +id(); + $table->string('uuid')->unique(); + $table->text('connection'); + $table->text('queue'); + $table->longText('payload'); + $table->longText('exception'); + $table->timestamp('failed_at')->useCurrent(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('failed_jobs'); + } +} diff --git a/database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php b/database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php new file mode 100644 index 0000000..4315e16 --- /dev/null +++ b/database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php @@ -0,0 +1,36 @@ +id(); + $table->morphs('tokenable'); + $table->string('name'); + $table->string('token', 64)->unique(); + $table->text('abilities')->nullable(); + $table->timestamp('last_used_at')->nullable(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('personal_access_tokens'); + } +} diff --git a/database/migrations/2022_09_15_123803_create_cities_table.php b/database/migrations/2022_09_15_123803_create_cities_table.php new file mode 100644 index 0000000..e768eea --- /dev/null +++ b/database/migrations/2022_09_15_123803_create_cities_table.php @@ -0,0 +1,34 @@ +id(); + $table->string('name'); + $table->decimal('latitude'); + $table->decimal('longitude'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('cities'); + } +} diff --git a/database/migrations/2022_09_15_123838_create_weather_table.php b/database/migrations/2022_09_15_123838_create_weather_table.php new file mode 100644 index 0000000..bab23e5 --- /dev/null +++ b/database/migrations/2022_09_15_123838_create_weather_table.php @@ -0,0 +1,45 @@ +id(); + $table->unsignedBigInteger('city_id'); + $table->timestamp('time'); + $table->string('name'); + $table->decimal('latitude'); + $table->decimal('longitude'); + $table->decimal('temperature'); + $table->integer('pressure'); + $table->integer('humidity'); + $table->float('min_temperature'); + $table->float('max_temperature'); + $table->timestamps(); + $table->foreign('city_id')->references('id')->on('cities')->cascadeOnDelete(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('weather'); + } +} + + + diff --git a/database/seeders/CitySeeder.php b/database/seeders/CitySeeder.php new file mode 100644 index 0000000..c9d5d18 --- /dev/null +++ b/database/seeders/CitySeeder.php @@ -0,0 +1,53 @@ +city = $city; + } + + /** + * Run the database seeds. + * + * @return void + */ + public function run() + { + foreach (ParseCityFacade::getCities() as $city) { + DB::beginTransaction(); + try { + $city = $this->city->store([ + 'name' => $city['city'], + 'latitude' => $city['lat'], + 'longitude' => $city['lng'] + ]); + $data = OpenWeatherFacade::getByCoordinates($city->latitude, $city->longitude); + Weather::updateOrCreate( + ['city_id' => $city->id], + $data, + ); + DB::commit(); + } catch (\Exception $e) { + DB::rollback(); + } + } + } +} diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php new file mode 100644 index 0000000..dac9476 --- /dev/null +++ b/database/seeders/DatabaseSeeder.php @@ -0,0 +1,20 @@ +call([ + CitySeeder::class + ]); + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..00c6506 --- /dev/null +++ b/package.json @@ -0,0 +1,18 @@ +{ + "private": true, + "scripts": { + "dev": "npm run development", + "development": "mix", + "watch": "mix watch", + "watch-poll": "mix watch -- --watch-options-poll=1000", + "hot": "mix watch --hot", + "prod": "npm run production", + "production": "mix --production" + }, + "devDependencies": { + "axios": "^0.21", + "laravel-mix": "^6.0.6", + "lodash": "^4.17.19", + "postcss": "^8.1.14" + } +} diff --git a/phpunit.xml b/phpunit.xml new file mode 100644 index 0000000..4ae4d97 --- /dev/null +++ b/phpunit.xml @@ -0,0 +1,31 @@ + + + + + ./tests/Unit + + + ./tests/Feature + + + + + ./app + + + + + + + + + + + + + + diff --git a/public/.htaccess b/public/.htaccess new file mode 100644 index 0000000..3aec5e2 --- /dev/null +++ b/public/.htaccess @@ -0,0 +1,21 @@ + + + Options -MultiViews -Indexes + + + RewriteEngine On + + # Handle Authorization Header + RewriteCond %{HTTP:Authorization} . + RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] + + # Redirect Trailing Slashes If Not A Folder... + RewriteCond %{REQUEST_FILENAME} !-d + RewriteCond %{REQUEST_URI} (.+)/$ + RewriteRule ^ %1 [L,R=301] + + # Send Requests To Front Controller... + RewriteCond %{REQUEST_FILENAME} !-d + RewriteCond %{REQUEST_FILENAME} !-f + RewriteRule ^ index.php [L] + diff --git a/public/am.json b/public/am.json new file mode 100644 index 0000000..41949a6 --- /dev/null +++ b/public/am.json @@ -0,0 +1,8296 @@ +[ + { + "city": "Yerevan", + "lat": "40.1814", + "lng": "44.5144", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Yerevan", + "capital": "primary", + "population": "1075800", + "population_proper": "1075800" + }, + { + "city": "Gyumri", + "lat": "40.7833", + "lng": "43.8333", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "admin", + "population": "121976", + "population_proper": "121976" + }, + { + "city": "Vanadzor", + "lat": "40.8128", + "lng": "44.4883", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "admin", + "population": "90525", + "population_proper": "90525" + }, + { + "city": "Ejmiatsin", + "lat": "40.1728", + "lng": "44.2925", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "57500", + "population_proper": "57500" + }, + { + "city": "Hrazdan", + "lat": "40.5000", + "lng": "44.7667", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Kotayk’", + "capital": "admin", + "population": "52808", + "population_proper": "52808" + }, + { + "city": "Abovyan", + "lat": "40.2739", + "lng": "44.6256", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Kotayk’", + "capital": "", + "population": "44400", + "population_proper": "44400" + }, + { + "city": "Kapan", + "lat": "39.2011", + "lng": "46.4150", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Syunik’", + "capital": "admin", + "population": "43190", + "population_proper": "43190" + }, + { + "city": "Armavir", + "lat": "40.1500", + "lng": "44.0400", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "admin", + "population": "38635", + "population_proper": "38635" + }, + { + "city": "Charentsavan", + "lat": "40.4097", + "lng": "44.6431", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Kotayk’", + "capital": "", + "population": "25039", + "population_proper": "25039" + }, + { + "city": "Stepanavan", + "lat": "41.0075", + "lng": "44.3867", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "23782", + "population_proper": "23782" + }, + { + "city": "Sevan", + "lat": "40.5550", + "lng": "44.9536", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Geghark’unik’", + "capital": "", + "population": "23200", + "population_proper": "23200" + }, + { + "city": "Ashtarak", + "lat": "40.3000", + "lng": "44.4000", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "admin", + "population": "21600", + "population_proper": "21600" + }, + { + "city": "Artashat", + "lat": "39.9539", + "lng": "44.5506", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "admin", + "population": "21300", + "population_proper": "21300" + }, + { + "city": "Ararat", + "lat": "39.8094", + "lng": "44.7144", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "20800", + "population_proper": "20800" + }, + { + "city": "Gavarr", + "lat": "40.3667", + "lng": "45.1333", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Geghark’unik’", + "capital": "admin", + "population": "20765", + "population_proper": "20765" + }, + { + "city": "Goris", + "lat": "39.5111", + "lng": "46.3417", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Syunik’", + "capital": "", + "population": "20591", + "population_proper": "20591" + }, + { + "city": "Ijevan", + "lat": "40.8756", + "lng": "45.1492", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "admin", + "population": "20509", + "population_proper": "20509" + }, + { + "city": "Artik", + "lat": "40.6167", + "lng": "43.9500", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "19543", + "population_proper": "19543" + }, + { + "city": "Dilijan", + "lat": "40.7408", + "lng": "44.8631", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "16600", + "population_proper": "16600" + }, + { + "city": "Spitak", + "lat": "40.8372", + "lng": "44.2675", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "15000", + "population_proper": "15000" + }, + { + "city": "Sisian", + "lat": "39.5208", + "lng": "46.0322", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Syunik’", + "capital": "", + "population": "14894", + "population_proper": "14894" + }, + { + "city": "Vedi", + "lat": "39.9100", + "lng": "44.7300", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "13600", + "population_proper": "13600" + }, + { + "city": "Alaverdi", + "lat": "41.0950", + "lng": "44.6558", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "13000", + "population_proper": "13000" + }, + { + "city": "Vardenis", + "lat": "40.1800", + "lng": "45.7200", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Geghark’unik’", + "capital": "", + "population": "12363", + "population_proper": "12363" + }, + { + "city": "Martuni", + "lat": "40.1400", + "lng": "45.3064", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Geghark’unik’", + "capital": "", + "population": "11987", + "population_proper": "11987" + }, + { + "city": "Yeghvard", + "lat": "40.3167", + "lng": "44.4833", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Kotayk’", + "capital": "", + "population": "10656", + "population_proper": "10656" + }, + { + "city": "Nor Hachn", + "lat": "40.3000", + "lng": "44.5800", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Kotayk’", + "capital": "", + "population": "10198", + "population_proper": "10198" + }, + { + "city": "Metsamor", + "lat": "40.1428", + "lng": "44.1164", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "9870", + "population_proper": "9870" + }, + { + "city": "Berd", + "lat": "40.8808", + "lng": "45.3917", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "9864", + "population_proper": "9864" + }, + { + "city": "Vardenik", + "lat": "40.1350", + "lng": "45.4364", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Geghark’unik’", + "capital": "", + "population": "9745", + "population_proper": "9745" + }, + { + "city": "Akhuryan", + "lat": "40.7810", + "lng": "43.9001", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "9668", + "population_proper": "9668" + }, + { + "city": "Ayntap", + "lat": "40.0986", + "lng": "44.4681", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "9550", + "population_proper": "9550" + }, + { + "city": "Parakar", + "lat": "40.1639", + "lng": "44.4058", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "8970", + "population_proper": "8970" + }, + { + "city": "Tashir", + "lat": "41.1144", + "lng": "44.2906", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "8700", + "population_proper": "8700" + }, + { + "city": "Byureghavan", + "lat": "40.3147", + "lng": "44.5936", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Kotayk’", + "capital": "", + "population": "8500", + "population_proper": "8500" + }, + { + "city": "Garrni", + "lat": "40.1194", + "lng": "44.7231", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Kotayk’", + "capital": "", + "population": "8111", + "population_proper": "8111" + }, + { + "city": "Jermuk", + "lat": "39.8500", + "lng": "45.6833", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Vayots’ Dzor", + "capital": "", + "population": "8013", + "population_proper": "8013" + }, + { + "city": "Nor Kharberd", + "lat": "40.0892", + "lng": "44.4778", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "8000", + "population_proper": "8000" + }, + { + "city": "Yeghegnadzor", + "lat": "39.7667", + "lng": "45.3500", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Vayots’ Dzor", + "capital": "admin", + "population": "7633", + "population_proper": "7633" + }, + { + "city": "K’ajaran", + "lat": "39.1511", + "lng": "46.1600", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Syunik’", + "capital": "", + "population": "7163", + "population_proper": "7163" + }, + { + "city": "Zolakar", + "lat": "40.1250", + "lng": "45.3750", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Geghark’unik’", + "capital": "", + "population": "6878", + "population_proper": "6878" + }, + { + "city": "Jrvezh", + "lat": "40.1900", + "lng": "44.5900", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Yerevan", + "capital": "", + "population": "6848", + "population_proper": "6848" + }, + { + "city": "Metsavan", + "lat": "41.2017", + "lng": "44.2289", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "6560", + "population_proper": "6560" + }, + { + "city": "Aparan", + "lat": "40.5961", + "lng": "44.3536", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "6400", + "population_proper": "6400" + }, + { + "city": "Karmir Gyukh", + "lat": "40.3306", + "lng": "45.1839", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Geghark’unik’", + "capital": "", + "population": "6291", + "population_proper": "6291" + }, + { + "city": "Sardarapat", + "lat": "40.1321", + "lng": "44.0097", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "6275", + "population_proper": "6275" + }, + { + "city": "Geghahovit", + "lat": "40.1044", + "lng": "45.2897", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Geghark’unik’", + "capital": "", + "population": "6184", + "population_proper": "6184" + }, + { + "city": "Nor Geghi", + "lat": "40.3211", + "lng": "44.5797", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Kotayk’", + "capital": "", + "population": "6162", + "population_proper": "6162" + }, + { + "city": "Kasakh", + "lat": "40.2342", + "lng": "44.4525", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Yerevan", + "capital": "", + "population": "6148", + "population_proper": "6148" + }, + { + "city": "Yeranos", + "lat": "40.2081", + "lng": "45.1861", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Geghark’unik’", + "capital": "", + "population": "6119", + "population_proper": "6119" + }, + { + "city": "Oshakan", + "lat": "40.2633", + "lng": "44.3147", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "5962", + "population_proper": "5962" + }, + { + "city": "Mrgashat", + "lat": "40.1297", + "lng": "44.0706", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "5867", + "population_proper": "5867" + }, + { + "city": "Chambarak", + "lat": "40.5931", + "lng": "45.3572", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Geghark’unik’", + "capital": "", + "population": "5850", + "population_proper": "5850" + }, + { + "city": "Vayk", + "lat": "39.6833", + "lng": "45.4667", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Vayots’ Dzor", + "capital": "", + "population": "5800", + "population_proper": "5800" + }, + { + "city": "Azatan", + "lat": "40.7175", + "lng": "43.8258", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "5787", + "population_proper": "5787" + }, + { + "city": "Aragatsavan", + "lat": "40.3331", + "lng": "43.6581", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "5785", + "population_proper": "5785" + }, + { + "city": "Arrinj", + "lat": "40.2314", + "lng": "44.5711", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Kotayk’", + "capital": "", + "population": "5670", + "population_proper": "5670" + }, + { + "city": "Gugark", + "lat": "40.8072", + "lng": "44.5381", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "5665", + "population_proper": "5665" + }, + { + "city": "Maralik", + "lat": "40.5722", + "lng": "43.8669", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "5500", + "population_proper": "5500" + }, + { + "city": "Lichk", + "lat": "40.1636", + "lng": "45.2278", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Geghark’unik’", + "capital": "", + "population": "5467", + "population_proper": "5467" + }, + { + "city": "Arzakan", + "lat": "40.4494", + "lng": "44.6064", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Kotayk’", + "capital": "", + "population": "5343", + "population_proper": "5343" + }, + { + "city": "Odzun", + "lat": "41.0517", + "lng": "44.6153", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "5311", + "population_proper": "5311" + }, + { + "city": "Noyemberyan", + "lat": "41.1725", + "lng": "44.9936", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "5310", + "population_proper": "5310" + }, + { + "city": "Prroshyan", + "lat": "40.2472", + "lng": "44.4194", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Kotayk’", + "capital": "", + "population": "5189", + "population_proper": "5189" + }, + { + "city": "Zovuni", + "lat": "40.2364", + "lng": "44.5039", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "5186", + "population_proper": "5186" + }, + { + "city": "Malishka", + "lat": "39.7369", + "lng": "45.3875", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Vayots’ Dzor", + "capital": "", + "population": "5128", + "population_proper": "5128" + }, + { + "city": "Nalbandyan", + "lat": "40.0678", + "lng": "43.9856", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "5078", + "population_proper": "5078" + }, + { + "city": "Sarukhan", + "lat": "40.2894", + "lng": "45.1342", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Geghark’unik’", + "capital": "", + "population": "5000", + "population_proper": "5000" + }, + { + "city": "Talin", + "lat": "40.3836", + "lng": "43.8764", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "4981", + "population_proper": "4981" + }, + { + "city": "Vosketap", + "lat": "39.8725", + "lng": "44.6544", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "4700", + "population_proper": "4700" + }, + { + "city": "Akunk", + "lat": "40.1522", + "lng": "45.7200", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Geghark’unik’", + "capital": "", + "population": "4647", + "population_proper": "4647" + }, + { + "city": "Karakert", + "lat": "40.2403", + "lng": "43.8097", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "4641", + "population_proper": "4641" + }, + { + "city": "Byurakan", + "lat": "40.3400", + "lng": "44.2703", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "4606", + "population_proper": "4606" + }, + { + "city": "Gandzak", + "lat": "40.3147", + "lng": "45.1114", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Geghark’unik’", + "capital": "", + "population": "4595", + "population_proper": "4595" + }, + { + "city": "Meghri", + "lat": "38.9000", + "lng": "46.2333", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Syunik’", + "capital": "", + "population": "4580", + "population_proper": "4580" + }, + { + "city": "Aygavan", + "lat": "39.8647", + "lng": "44.6703", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "4569", + "population_proper": "4569" + }, + { + "city": "Verin Artashat", + "lat": "40.0006", + "lng": "44.5850", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "4491", + "population_proper": "4491" + }, + { + "city": "Achajur", + "lat": "40.9903", + "lng": "45.1453", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "4447", + "population_proper": "4447" + }, + { + "city": "Koghb", + "lat": "41.1667", + "lng": "44.9500", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "4420", + "population_proper": "4420" + }, + { + "city": "Myasnikyan", + "lat": "40.1775", + "lng": "43.9064", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "4350", + "population_proper": "4350" + }, + { + "city": "Dalarik", + "lat": "40.2183", + "lng": "43.8603", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "4345", + "population_proper": "4345" + }, + { + "city": "Agarak", + "lat": "38.8667", + "lng": "46.2000", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Syunik’", + "capital": "", + "population": "4300", + "population_proper": "4300" + }, + { + "city": "Voskevaz", + "lat": "40.2758", + "lng": "44.2986", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "4289", + "population_proper": "4289" + }, + { + "city": "Lchashen", + "lat": "40.5242", + "lng": "44.9458", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Geghark’unik’", + "capital": "", + "population": "4182", + "population_proper": "4182" + }, + { + "city": "Geghashen", + "lat": "40.2344", + "lng": "44.7269", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Kotayk’", + "capital": "", + "population": "4176", + "population_proper": "4176" + }, + { + "city": "Arshaluys", + "lat": "40.1689", + "lng": "44.2142", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "4136", + "population_proper": "4136" + }, + { + "city": "Margahovit", + "lat": "40.7381", + "lng": "44.6875", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "4064", + "population_proper": "4064" + }, + { + "city": "Astghadzor", + "lat": "40.1239", + "lng": "45.3567", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Geghark’unik’", + "capital": "", + "population": "4037", + "population_proper": "4037" + }, + { + "city": "Haghartsin", + "lat": "40.7781", + "lng": "44.9625", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "4022", + "population_proper": "4022" + }, + { + "city": "Avshar", + "lat": "39.8539", + "lng": "44.6808", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "3877", + "population_proper": "3877" + }, + { + "city": "Balahovit", + "lat": "40.2536", + "lng": "44.6039", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Kotayk’", + "capital": "", + "population": "3869", + "population_proper": "3869" + }, + { + "city": "Karbi", + "lat": "40.3323", + "lng": "44.3766", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "3825", + "population_proper": "3825" + }, + { + "city": "Taperakan", + "lat": "39.9186", + "lng": "44.6061", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "3708", + "population_proper": "3708" + }, + { + "city": "Bambakashat", + "lat": "40.1144", + "lng": "44.0122", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "3680", + "population_proper": "3680" + }, + { + "city": "Hovtashat", + "lat": "40.1019", + "lng": "44.3428", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "3674", + "population_proper": "3674" + }, + { + "city": "Voskehat", + "lat": "40.1414", + "lng": "44.3292", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "3635", + "population_proper": "3635" + }, + { + "city": "Mkhchyan", + "lat": "40.0200", + "lng": "44.4911", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "3557", + "population_proper": "3557" + }, + { + "city": "Jrashen", + "lat": "40.7875", + "lng": "44.1972", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "3529", + "population_proper": "3529" + }, + { + "city": "Verin Dvin", + "lat": "40.0253", + "lng": "44.5908", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "3525", + "population_proper": "3525" + }, + { + "city": "Argel", + "lat": "40.3794", + "lng": "44.5994", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Kotayk’", + "capital": "", + "population": "3500", + "population_proper": "3500" + }, + { + "city": "Gandzakar", + "lat": "40.8447", + "lng": "45.1600", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "3475", + "population_proper": "3475" + }, + { + "city": "Jrarrat", + "lat": "40.0714", + "lng": "44.2631", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "3458", + "population_proper": "3458" + }, + { + "city": "Aygezard", + "lat": "39.9564", + "lng": "44.6047", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "3458", + "population_proper": "3458" + }, + { + "city": "Aygehovit", + "lat": "40.9744", + "lng": "45.2519", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "3428", + "population_proper": "3428" + }, + { + "city": "K’anak’erravan", + "lat": "40.2472", + "lng": "44.5367", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Yerevan", + "capital": "", + "population": "3365", + "population_proper": "3365" + }, + { + "city": "Arteni", + "lat": "40.2983", + "lng": "43.7542", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "3351", + "population_proper": "3351" + }, + { + "city": "Vzhan", + "lat": "40.2983", + "lng": "44.2047", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "3346", + "population_proper": "3346" + }, + { + "city": "Pemzashen", + "lat": "40.5933", + "lng": "43.9400", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "3322", + "population_proper": "3322" + }, + { + "city": "Armavir", + "lat": "40.0897", + "lng": "44.0483", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "3319", + "population_proper": "3319" + }, + { + "city": "Aragats", + "lat": "40.2183", + "lng": "44.2328", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "3300", + "population_proper": "3300" + }, + { + "city": "Berdavan", + "lat": "41.2042", + "lng": "45.0000", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "3278", + "population_proper": "3278" + }, + { + "city": "Artsvaberd", + "lat": "40.8417", + "lng": "45.4722", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "3267", + "population_proper": "3267" + }, + { + "city": "Norashen", + "lat": "40.0042", + "lng": "44.5947", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "3265", + "population_proper": "3265" + }, + { + "city": "Norapat", + "lat": "40.1333", + "lng": "44.0167", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "3250", + "population_proper": "3250" + }, + { + "city": "Artsvanist", + "lat": "40.1544", + "lng": "45.5022", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Geghark’unik’", + "capital": "", + "population": "3233", + "population_proper": "3233" + }, + { + "city": "Aghavnatun", + "lat": "40.2333", + "lng": "44.2514", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "3200", + "population_proper": "3200" + }, + { + "city": "Dvin", + "lat": "40.0200", + "lng": "44.5853", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "3160", + "population_proper": "3160" + }, + { + "city": "Janfida", + "lat": "40.0456", + "lng": "44.0208", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "3150", + "population_proper": "3150" + }, + { + "city": "Marmarashen", + "lat": "40.0575", + "lng": "44.4711", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "3138", + "population_proper": "3138" + }, + { + "city": "Norakert", + "lat": "40.1922", + "lng": "44.3467", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "3136", + "population_proper": "3136" + }, + { + "city": "Vostan", + "lat": "39.9589", + "lng": "44.5592", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "3125", + "population_proper": "3125" + }, + { + "city": "Kosh", + "lat": "40.3025", + "lng": "44.1569", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "3125", + "population_proper": "3125" + }, + { + "city": "Azatavan", + "lat": "39.9850", + "lng": "44.5075", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "3117", + "population_proper": "3117" + }, + { + "city": "Musalerr", + "lat": "40.1544", + "lng": "44.3778", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "3114", + "population_proper": "3114" + }, + { + "city": "Bjni", + "lat": "40.4594", + "lng": "44.6486", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Kotayk’", + "capital": "", + "population": "3100", + "population_proper": "3100" + }, + { + "city": "Aragats", + "lat": "40.4886", + "lng": "44.3544", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "3100", + "population_proper": "3100" + }, + { + "city": "P’ok’r Vedi", + "lat": "39.8950", + "lng": "44.6125", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "3091", + "population_proper": "3091" + }, + { + "city": "Kaghtsrashen", + "lat": "39.9667", + "lng": "44.6167", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "3091", + "population_proper": "3091" + }, + { + "city": "Aygestan", + "lat": "40.0306", + "lng": "44.5575", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "3063", + "population_proper": "3063" + }, + { + "city": "Urtsadzor", + "lat": "39.9125", + "lng": "44.8175", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "3060", + "population_proper": "3060" + }, + { + "city": "Arevashogh", + "lat": "40.8592", + "lng": "44.2754", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "3054", + "population_proper": "3054" + }, + { + "city": "Arratashen", + "lat": "40.1286", + "lng": "44.2275", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "3010", + "population_proper": "3010" + }, + { + "city": "Zartonk", + "lat": "40.1092", + "lng": "44.1606", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "2988", + "population_proper": "2988" + }, + { + "city": "Akori", + "lat": "41.0922", + "lng": "44.6161", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "2987", + "population_proper": "2987" + }, + { + "city": "Merdzavan", + "lat": "40.1797", + "lng": "44.3997", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "2935", + "population_proper": "2935" + }, + { + "city": "Goravan", + "lat": "39.9000", + "lng": "44.7333", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "2910", + "population_proper": "2910" + }, + { + "city": "Nor Kyank’", + "lat": "39.9003", + "lng": "44.6164", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "2905", + "population_proper": "2905" + }, + { + "city": "Aknalich", + "lat": "40.2333", + "lng": "44.2500", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "2900", + "population_proper": "2900" + }, + { + "city": "Meghradzor", + "lat": "40.6147", + "lng": "44.6497", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Kotayk’", + "capital": "", + "population": "2900", + "population_proper": "2900" + }, + { + "city": "Alapars", + "lat": "40.4222", + "lng": "44.6336", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Kotayk’", + "capital": "", + "population": "2881", + "population_proper": "2881" + }, + { + "city": "Lerrnanist", + "lat": "40.4675", + "lng": "44.7981", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Kotayk’", + "capital": "", + "population": "2877", + "population_proper": "2877" + }, + { + "city": "Vardadzor", + "lat": "40.1917", + "lng": "45.1875", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Geghark’unik’", + "capital": "", + "population": "2864", + "population_proper": "2864" + }, + { + "city": "Ddmashen", + "lat": "40.5719", + "lng": "44.8122", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Geghark’unik’", + "capital": "", + "population": "2855", + "population_proper": "2855" + }, + { + "city": "Bagratashen", + "lat": "41.2458", + "lng": "44.8211", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "2833", + "population_proper": "2833" + }, + { + "city": "Lukashin", + "lat": "40.1758", + "lng": "44.0186", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "2830", + "population_proper": "2830" + }, + { + "city": "Shnogh", + "lat": "41.1478", + "lng": "44.8378", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "2826", + "population_proper": "2826" + }, + { + "city": "Zangakatun", + "lat": "39.8094", + "lng": "45.0511", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "2819", + "population_proper": "2819" + }, + { + "city": "Shahumyan", + "lat": "40.7883", + "lng": "44.5317", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "2759", + "population_proper": "2759" + }, + { + "city": "Voskehask", + "lat": "40.7383", + "lng": "43.7758", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "2754", + "population_proper": "2754" + }, + { + "city": "Hatsik", + "lat": "40.1597", + "lng": "43.9397", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "2710", + "population_proper": "2710" + }, + { + "city": "Haytagh", + "lat": "40.1808", + "lng": "44.2297", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "2703", + "population_proper": "2703" + }, + { + "city": "Arevik", + "lat": "40.1006", + "lng": "44.0969", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "2686", + "population_proper": "2686" + }, + { + "city": "Drakhtik", + "lat": "40.5700", + "lng": "45.2300", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Geghark’unik’", + "capital": "", + "population": "2664", + "population_proper": "2664" + }, + { + "city": "Azatamut", + "lat": "40.9758", + "lng": "45.1981", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "2644", + "population_proper": "2644" + }, + { + "city": "Dalar", + "lat": "39.9669", + "lng": "44.5364", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "2634", + "population_proper": "2634" + }, + { + "city": "Khoronk", + "lat": "40.1358", + "lng": "44.2444", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "2629", + "population_proper": "2629" + }, + { + "city": "Shirakamut", + "lat": "40.8606", + "lng": "44.1528", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "2628", + "population_proper": "2628" + }, + { + "city": "Sipanik", + "lat": "40.1069", + "lng": "44.3522", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "2620", + "population_proper": "2620" + }, + { + "city": "Aygedzor", + "lat": "40.8256", + "lng": "45.5408", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "2608", + "population_proper": "2608" + }, + { + "city": "Lerrnavan", + "lat": "40.7883", + "lng": "44.1844", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "2590", + "population_proper": "2590" + }, + { + "city": "Baghramyan", + "lat": "40.1933", + "lng": "44.3686", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "2548", + "population_proper": "2548" + }, + { + "city": "Solak", + "lat": "40.4636", + "lng": "44.7086", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Kotayk’", + "capital": "", + "population": "2548", + "population_proper": "2548" + }, + { + "city": "Pshatavan", + "lat": "40.0406", + "lng": "44.0675", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "2546", + "population_proper": "2546" + }, + { + "city": "Geghakert", + "lat": "40.1853", + "lng": "44.2433", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "2545", + "population_proper": "2545" + }, + { + "city": "Sasunik", + "lat": "40.2472", + "lng": "44.3381", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "2537", + "population_proper": "2537" + }, + { + "city": "Panik", + "lat": "40.6564", + "lng": "43.9364", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "2531", + "population_proper": "2531" + }, + { + "city": "Tegh", + "lat": "39.5547", + "lng": "46.4758", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Syunik’", + "capital": "", + "population": "2520", + "population_proper": "2520" + }, + { + "city": "Kamaris", + "lat": "40.2358", + "lng": "44.6939", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Kotayk’", + "capital": "", + "population": "2518", + "population_proper": "2518" + }, + { + "city": "Aralez", + "lat": "39.9003", + "lng": "44.6533", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "2493", + "population_proper": "2493" + }, + { + "city": "Darakert", + "lat": "40.1000", + "lng": "44.4167", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "2493", + "population_proper": "2493" + }, + { + "city": "Ashotsk", + "lat": "41.0375", + "lng": "43.8581", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "2491", + "population_proper": "2491" + }, + { + "city": "Gladzor", + "lat": "39.7783", + "lng": "45.3478", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Vayots’ Dzor", + "capital": "", + "population": "2489", + "population_proper": "2489" + }, + { + "city": "Geghanist", + "lat": "40.1497", + "lng": "44.4344", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "2471", + "population_proper": "2471" + }, + { + "city": "Arevshat", + "lat": "40.0400", + "lng": "44.5400", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "2468", + "population_proper": "2468" + }, + { + "city": "Armash", + "lat": "39.7667", + "lng": "44.8083", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "2459", + "population_proper": "2459" + }, + { + "city": "Sis", + "lat": "40.0586", + "lng": "44.3864", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "2437", + "population_proper": "2437" + }, + { + "city": "Mastara", + "lat": "40.4478", + "lng": "43.8814", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "2433", + "population_proper": "2433" + }, + { + "city": "Khach’p’arr", + "lat": "40.1258", + "lng": "44.4031", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "2424", + "population_proper": "2424" + }, + { + "city": "Parpi", + "lat": "40.3294", + "lng": "44.3072", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "2420", + "population_proper": "2420" + }, + { + "city": "Lerrnagog", + "lat": "40.2569", + "lng": "43.9081", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "2415", + "population_proper": "2415" + }, + { + "city": "Shinuhayr", + "lat": "39.4342", + "lng": "46.3156", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Syunik’", + "capital": "", + "population": "2404", + "population_proper": "2404" + }, + { + "city": "Verishen", + "lat": "39.5358", + "lng": "46.3119", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Syunik’", + "capital": "", + "population": "2385", + "population_proper": "2385" + }, + { + "city": "Ayrum", + "lat": "41.2000", + "lng": "44.9000", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "2381", + "population_proper": "2381" + }, + { + "city": "Sayat’-Nova", + "lat": "40.0742", + "lng": "44.3975", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "2379", + "population_proper": "2379" + }, + { + "city": "Kaghsi", + "lat": "40.4806", + "lng": "44.7411", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Kotayk’", + "capital": "", + "population": "2371", + "population_proper": "2371" + }, + { + "city": "Kuchak", + "lat": "40.5300", + "lng": "44.3900", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "2371", + "population_proper": "2371" + }, + { + "city": "Verin Sasunik", + "lat": "40.3333", + "lng": "44.1667", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "2371", + "population_proper": "2371" + }, + { + "city": "Argavand", + "lat": "40.0608", + "lng": "44.0953", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "2365", + "population_proper": "2365" + }, + { + "city": "Anipemza", + "lat": "40.4428", + "lng": "43.6036", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "2359", + "population_proper": "2359" + }, + { + "city": "Lusarrat", + "lat": "39.8744", + "lng": "44.5992", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "2349", + "population_proper": "2349" + }, + { + "city": "Gyulagarak", + "lat": "40.9655", + "lng": "44.4702", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "2346", + "population_proper": "2346" + }, + { + "city": "Getap", + "lat": "39.7636", + "lng": "45.3061", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Vayots’ Dzor", + "capital": "", + "population": "2328", + "population_proper": "2328" + }, + { + "city": "Ohanavan", + "lat": "40.3458", + "lng": "44.3831", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "2314", + "population_proper": "2314" + }, + { + "city": "Mets Parni", + "lat": "40.8372", + "lng": "44.1092", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "2313", + "population_proper": "2313" + }, + { + "city": "Vanashen", + "lat": "39.9000", + "lng": "44.6833", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "2300", + "population_proper": "2300" + }, + { + "city": "Marmashen", + "lat": "40.8375", + "lng": "43.7719", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "2300", + "population_proper": "2300" + }, + { + "city": "Kurtan", + "lat": "40.9619", + "lng": "44.5664", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "2297", + "population_proper": "2297" + }, + { + "city": "Arzni", + "lat": "40.2964", + "lng": "44.5958", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Kotayk’", + "capital": "", + "population": "2281", + "population_proper": "2281" + }, + { + "city": "Dzoraghbyur", + "lat": "40.2050", + "lng": "44.6431", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Kotayk’", + "capital": "", + "population": "2270", + "population_proper": "2270" + }, + { + "city": "Koti", + "lat": "41.1356", + "lng": "45.1250", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "2270", + "population_proper": "2270" + }, + { + "city": "Sisavan", + "lat": "39.9000", + "lng": "44.6667", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "2253", + "population_proper": "2253" + }, + { + "city": "P’ok’r Mant’ash", + "lat": "40.6500", + "lng": "44.0500", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "2249", + "population_proper": "2249" + }, + { + "city": "Zorak", + "lat": "40.0925", + "lng": "44.3919", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "2229", + "population_proper": "2229" + }, + { + "city": "Mrgavet", + "lat": "40.0300", + "lng": "44.4800", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "2226", + "population_proper": "2226" + }, + { + "city": "Amasia", + "lat": "40.9467", + "lng": "43.7814", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "2214", + "population_proper": "2214" + }, + { + "city": "Burastan", + "lat": "39.9833", + "lng": "44.5000", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "2206", + "population_proper": "2206" + }, + { + "city": "Getashen", + "lat": "40.0433", + "lng": "43.9447", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "2205", + "population_proper": "2205" + }, + { + "city": "Taronik", + "lat": "40.1331", + "lng": "44.1992", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "2201", + "population_proper": "2201" + }, + { + "city": "Tsovazard", + "lat": "40.4769", + "lng": "45.0375", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Geghark’unik’", + "capital": "", + "population": "2195", + "population_proper": "2195" + }, + { + "city": "Dashtavan", + "lat": "40.1017", + "lng": "44.3906", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "2193", + "population_proper": "2193" + }, + { + "city": "Getazat", + "lat": "40.0381", + "lng": "44.5639", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "2175", + "population_proper": "2175" + }, + { + "city": "Hnaberd", + "lat": "40.6428", + "lng": "44.1444", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "2169", + "population_proper": "2169" + }, + { + "city": "Ghukasavan", + "lat": "40.1261", + "lng": "44.4178", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "2168", + "population_proper": "2168" + }, + { + "city": "Horrom", + "lat": "40.6542", + "lng": "43.8822", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "2166", + "population_proper": "2166" + }, + { + "city": "Anushavan", + "lat": "40.6393", + "lng": "43.9685", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "2161", + "population_proper": "2161" + }, + { + "city": "Aygut", + "lat": "40.6842", + "lng": "45.1731", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Geghark’unik’", + "capital": "", + "population": "2157", + "population_proper": "2157" + }, + { + "city": "Shenavan", + "lat": "40.0500", + "lng": "43.9333", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "2156", + "population_proper": "2156" + }, + { + "city": "Privolnoye", + "lat": "41.1461", + "lng": "44.4425", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "2154", + "population_proper": "2154" + }, + { + "city": "Dsegh", + "lat": "40.9633", + "lng": "44.6517", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "2149", + "population_proper": "2149" + }, + { + "city": "Hayanist", + "lat": "40.1197", + "lng": "44.3775", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "2144", + "population_proper": "2144" + }, + { + "city": "Mayakovski", + "lat": "40.2522", + "lng": "44.6383", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Kotayk’", + "capital": "", + "population": "2143", + "population_proper": "2143" + }, + { + "city": "Sarchapet", + "lat": "41.1992", + "lng": "44.3853", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "2127", + "population_proper": "2127" + }, + { + "city": "Lerrnhovit", + "lat": "41.1703", + "lng": "44.3100", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "2110", + "population_proper": "2110" + }, + { + "city": "Griboyedov", + "lat": "40.1131", + "lng": "44.2717", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "2104", + "population_proper": "2104" + }, + { + "city": "Arrap’i", + "lat": "40.7819", + "lng": "43.8069", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "2100", + "population_proper": "2100" + }, + { + "city": "Akhtala", + "lat": "41.1503", + "lng": "44.7773", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "2100", + "population_proper": "2100" + }, + { + "city": "Ayrk", + "lat": "40.1264", + "lng": "45.7911", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Geghark’unik’", + "capital": "", + "population": "2100", + "population_proper": "2100" + }, + { + "city": "Geghamavan", + "lat": "40.5619", + "lng": "44.8828", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Geghark’unik’", + "capital": "", + "population": "2080", + "population_proper": "2080" + }, + { + "city": "Berkanush", + "lat": "39.9833", + "lng": "44.5167", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "2070", + "population_proper": "2070" + }, + { + "city": "Noramarg", + "lat": "40.0236", + "lng": "44.4244", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "2069", + "population_proper": "2069" + }, + { + "city": "Gegharkunik", + "lat": "40.2583", + "lng": "45.1375", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Geghark’unik’", + "capital": "", + "population": "2060", + "population_proper": "2060" + }, + { + "city": "Geghamasar", + "lat": "40.3117", + "lng": "45.6800", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Geghark’unik’", + "capital": "", + "population": "2050", + "population_proper": "2050" + }, + { + "city": "Mosesgegh", + "lat": "40.9064", + "lng": "45.4914", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "2046", + "population_proper": "2046" + }, + { + "city": "Getahovit", + "lat": "40.8958", + "lng": "45.1314", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "2043", + "population_proper": "2043" + }, + { + "city": "Artanish", + "lat": "40.4958", + "lng": "45.3628", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Geghark’unik’", + "capital": "", + "population": "2037", + "population_proper": "2037" + }, + { + "city": "Sevkar", + "lat": "41.0197", + "lng": "45.1425", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "2037", + "population_proper": "2037" + }, + { + "city": "Mrgashen", + "lat": "40.2850", + "lng": "44.5422", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Kotayk’", + "capital": "", + "population": "2035", + "population_proper": "2035" + }, + { + "city": "Shatin", + "lat": "39.8333", + "lng": "45.3017", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Vayots’ Dzor", + "capital": "", + "population": "2035", + "population_proper": "2035" + }, + { + "city": "Yeghegnut", + "lat": "40.0903", + "lng": "44.1625", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "2031", + "population_proper": "2031" + }, + { + "city": "Aghavnadzor", + "lat": "39.7836", + "lng": "45.2281", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Vayots’ Dzor", + "capital": "", + "population": "2029", + "population_proper": "2029" + }, + { + "city": "Khndzoresk", + "lat": "39.5122", + "lng": "46.4336", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Syunik’", + "capital": "", + "population": "2027", + "population_proper": "2027" + }, + { + "city": "Arevshat", + "lat": "40.6486", + "lng": "44.0444", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "2017", + "population_proper": "2017" + }, + { + "city": "Tandzut", + "lat": "40.0772", + "lng": "44.0886", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "2016", + "population_proper": "2016" + }, + { + "city": "Norashen", + "lat": "41.1881", + "lng": "44.3272", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "2014", + "population_proper": "2014" + }, + { + "city": "Mayisyan", + "lat": "40.8531", + "lng": "43.8294", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "2010", + "population_proper": "2010" + }, + { + "city": "Ghursali", + "lat": "40.8272", + "lng": "44.3436", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "2002", + "population_proper": "2002" + }, + { + "city": "Baghramyan", + "lat": "39.9850", + "lng": "44.5075", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "2000", + "population_proper": "2000" + }, + { + "city": "Khanjyan", + "lat": "40.1667", + "lng": "44.0333", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "1993", + "population_proper": "1993" + }, + { + "city": "Katnajur", + "lat": "40.8300", + "lng": "44.1400", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "1990", + "population_proper": "1990" + }, + { + "city": "Shamiram", + "lat": "40.2761", + "lng": "44.1008", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "1989", + "population_proper": "1989" + }, + { + "city": "Norabats", + "lat": "40.1053", + "lng": "44.4300", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "1987", + "population_proper": "1987" + }, + { + "city": "Nor Yerznka", + "lat": "40.3133", + "lng": "44.4047", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "1985", + "population_proper": "1985" + }, + { + "city": "Goght", + "lat": "40.1394", + "lng": "44.7794", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Kotayk’", + "capital": "", + "population": "1983", + "population_proper": "1983" + }, + { + "city": "Vahagni", + "lat": "40.9081", + "lng": "44.6069", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "1970", + "population_proper": "1970" + }, + { + "city": "Akunk", + "lat": "40.2692", + "lng": "44.6836", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Kotayk’", + "capital": "", + "population": "1957", + "population_proper": "1957" + }, + { + "city": "Hnaberd", + "lat": "40.0058", + "lng": "44.5744", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "1946", + "population_proper": "1946" + }, + { + "city": "Yeghegnavan", + "lat": "39.8278", + "lng": "44.6372", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "1946", + "population_proper": "1946" + }, + { + "city": "Nor Armavir", + "lat": "40.0867", + "lng": "43.9900", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "1936", + "population_proper": "1936" + }, + { + "city": "Aghdzk’", + "lat": "40.3164", + "lng": "44.2536", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "1935", + "population_proper": "1935" + }, + { + "city": "Nshavan", + "lat": "40.0264", + "lng": "44.5253", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "1930", + "population_proper": "1930" + }, + { + "city": "Sarahart", + "lat": "40.8739", + "lng": "44.2097", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "1928", + "population_proper": "1928" + }, + { + "city": "Angeghakot", + "lat": "39.5681", + "lng": "45.9439", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Syunik’", + "capital": "", + "population": "1909", + "population_proper": "1909" + }, + { + "city": "Varser", + "lat": "40.5561", + "lng": "44.9111", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Geghark’unik’", + "capital": "", + "population": "1901", + "population_proper": "1901" + }, + { + "city": "Noyakert", + "lat": "39.8167", + "lng": "44.6669", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "1900", + "population_proper": "1900" + }, + { + "city": "Vahramaberd", + "lat": "40.8500", + "lng": "43.7500", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "1888", + "population_proper": "1888" + }, + { + "city": "Mrgavan", + "lat": "39.9661", + "lng": "44.5333", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "1872", + "population_proper": "1872" + }, + { + "city": "Darpas", + "lat": "40.8381", + "lng": "44.4233", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "1869", + "population_proper": "1869" + }, + { + "city": "Kotayk", + "lat": "40.2750", + "lng": "44.6606", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Kotayk’", + "capital": "", + "population": "1861", + "population_proper": "1861" + }, + { + "city": "Nor Gyugh", + "lat": "40.2667", + "lng": "44.6564", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Kotayk’", + "capital": "", + "population": "1853", + "population_proper": "1853" + }, + { + "city": "Nor Artagers", + "lat": "40.0667", + "lng": "44.0000", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "1840", + "population_proper": "1840" + }, + { + "city": "Verin Karmiraghbyur", + "lat": "40.8842", + "lng": "45.4414", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "1837", + "population_proper": "1837" + }, + { + "city": "Nor Khach’akap", + "lat": "40.8425", + "lng": "44.3625", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "1826", + "population_proper": "1826" + }, + { + "city": "Khachaghbyur", + "lat": "40.1722", + "lng": "45.6886", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Geghark’unik’", + "capital": "", + "population": "1820", + "population_proper": "1820" + }, + { + "city": "Jrashen", + "lat": "40.0547", + "lng": "44.5133", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Yerevan", + "capital": "", + "population": "1800", + "population_proper": "1800" + }, + { + "city": "Basen", + "lat": "40.7653", + "lng": "43.9908", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "1798", + "population_proper": "1798" + }, + { + "city": "Khasht’arrak", + "lat": "40.9386", + "lng": "45.1797", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "1782", + "population_proper": "1782" + }, + { + "city": "Buzhakan", + "lat": "40.4553", + "lng": "44.5206", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Kotayk’", + "capital": "", + "population": "1763", + "population_proper": "1763" + }, + { + "city": "Ptghunk", + "lat": "40.1644", + "lng": "44.3636", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "1755", + "population_proper": "1755" + }, + { + "city": "Aygeshat", + "lat": "40.0667", + "lng": "44.0667", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "1754", + "population_proper": "1754" + }, + { + "city": "Darbnik", + "lat": "40.1069", + "lng": "44.3764", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "1748", + "population_proper": "1748" + }, + { + "city": "Norashen", + "lat": "40.8769", + "lng": "45.4594", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "1746", + "population_proper": "1746" + }, + { + "city": "Masis", + "lat": "40.0672", + "lng": "44.4361", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "1744", + "population_proper": "1744" + }, + { + "city": "Ttujur", + "lat": "40.6508", + "lng": "45.3050", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Geghark’unik’", + "capital": "", + "population": "1740", + "population_proper": "1740" + }, + { + "city": "Parravak’ar", + "lat": "40.9806", + "lng": "45.3992", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "1735", + "population_proper": "1735" + }, + { + "city": "Argavand", + "lat": "40.1581", + "lng": "44.4400", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Yerevan", + "capital": "", + "population": "1734", + "population_proper": "1734" + }, + { + "city": "Tsaghkaber", + "lat": "40.7986", + "lng": "44.1072", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "1732", + "population_proper": "1732" + }, + { + "city": "Aygepat", + "lat": "39.9564", + "lng": "44.6047", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "1731", + "population_proper": "1731" + }, + { + "city": "Rrind", + "lat": "39.7597", + "lng": "45.1800", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Vayots’ Dzor", + "capital": "", + "population": "1726", + "population_proper": "1726" + }, + { + "city": "Kayk", + "lat": "40.5864", + "lng": "44.3714", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "1725", + "population_proper": "1725" + }, + { + "city": "Shenavan", + "lat": "40.4831", + "lng": "44.3814", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "1724", + "population_proper": "1724" + }, + { + "city": "Hartagyugh", + "lat": "40.8356", + "lng": "44.0467", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "1722", + "population_proper": "1722" + }, + { + "city": "Lerrnagyugh", + "lat": "40.9500", + "lng": "43.9167", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "1716", + "population_proper": "1716" + }, + { + "city": "Dzithankov", + "lat": "40.5156", + "lng": "43.8133", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "1708", + "population_proper": "1708" + }, + { + "city": "Apaga", + "lat": "40.0961", + "lng": "44.2511", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "1700", + "population_proper": "1700" + }, + { + "city": "Noravan", + "lat": "40.1667", + "lng": "44.0333", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "1700", + "population_proper": "1700" + }, + { + "city": "Arevik", + "lat": "40.7361", + "lng": "43.8928", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "1693", + "population_proper": "1693" + }, + { + "city": "Nor Kyank’", + "lat": "40.6503", + "lng": "43.9750", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "1690", + "population_proper": "1690" + }, + { + "city": "Tsaghkahovit", + "lat": "40.6361", + "lng": "44.2231", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "1684", + "population_proper": "1684" + }, + { + "city": "Yeraskhahun", + "lat": "40.0722", + "lng": "44.2158", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "1679", + "population_proper": "1679" + }, + { + "city": "Nizami", + "lat": "40.0911", + "lng": "44.4045", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "1671", + "population_proper": "1671" + }, + { + "city": "Lenughi", + "lat": "40.1239", + "lng": "43.9653", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "1669", + "population_proper": "1669" + }, + { + "city": "Dimitrov", + "lat": "40.0081", + "lng": "44.4881", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "1668", + "population_proper": "1668" + }, + { + "city": "Zovaber", + "lat": "40.5736", + "lng": "44.7864", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Kotayk’", + "capital": "", + "population": "1660", + "population_proper": "1660" + }, + { + "city": "Nigavan", + "lat": "40.6217", + "lng": "44.2992", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "1659", + "population_proper": "1659" + }, + { + "city": "Chochkan", + "lat": "41.1861", + "lng": "44.8314", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "1654", + "population_proper": "1654" + }, + { + "city": "Mayisyan", + "lat": "40.1617", + "lng": "44.0883", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "1653", + "population_proper": "1653" + }, + { + "city": "Rranch’par", + "lat": "40.0253", + "lng": "44.3703", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "1650", + "population_proper": "1650" + }, + { + "city": "Bardzrashen", + "lat": "40.0853", + "lng": "44.5786", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "1650", + "population_proper": "1650" + }, + { + "city": "Yerazgavors", + "lat": "40.7000", + "lng": "43.7667", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "1640", + "population_proper": "1640" + }, + { + "city": "Dzoragyugh", + "lat": "40.9485", + "lng": "44.6182", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "1636", + "population_proper": "1636" + }, + { + "city": "Zarrit’ap’", + "lat": "39.6372", + "lng": "45.5086", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Vayots’ Dzor", + "capital": "", + "population": "1636", + "population_proper": "1636" + }, + { + "city": "Katnaghbyur", + "lat": "41.0375", + "lng": "44.2203", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "1635", + "population_proper": "1635" + }, + { + "city": "Araks", + "lat": "40.0981", + "lng": "43.9528", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "1607", + "population_proper": "1607" + }, + { + "city": "Araks", + "lat": "40.0547", + "lng": "44.3028", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "1607", + "population_proper": "1607" + }, + { + "city": "Artimet", + "lat": "40.1514", + "lng": "44.2664", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "1600", + "population_proper": "1600" + }, + { + "city": "Tumanyan", + "lat": "41.0028", + "lng": "44.6483", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "1600", + "population_proper": "1600" + }, + { + "city": "Saramej", + "lat": "40.7725", + "lng": "44.2192", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "1590", + "population_proper": "1590" + }, + { + "city": "Zoravan", + "lat": "40.3569", + "lng": "44.5231", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Kotayk’", + "capital": "", + "population": "1583", + "population_proper": "1583" + }, + { + "city": "Agarak", + "lat": "41.0106", + "lng": "44.4675", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "1581", + "population_proper": "1581" + }, + { + "city": "Katnaghbyur", + "lat": "40.3772", + "lng": "43.9383", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "1580", + "population_proper": "1580" + }, + { + "city": "Spandaryan", + "lat": "40.6650", + "lng": "44.0189", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "1579", + "population_proper": "1579" + }, + { + "city": "Ptghni", + "lat": "40.2567", + "lng": "44.5850", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Kotayk’", + "capital": "", + "population": "1572", + "population_proper": "1572" + }, + { + "city": "Tavush", + "lat": "40.9100", + "lng": "45.4000", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "1568", + "population_proper": "1568" + }, + { + "city": "Aghberk", + "lat": "40.5326", + "lng": "45.2692", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Geghark’unik’", + "capital": "", + "population": "1563", + "population_proper": "1563" + }, + { + "city": "Herher", + "lat": "39.7733", + "lng": "45.5386", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Vayots’ Dzor", + "capital": "", + "population": "1562", + "population_proper": "1562" + }, + { + "city": "Haykavan", + "lat": "40.0833", + "lng": "44.0500", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "1550", + "population_proper": "1550" + }, + { + "city": "Arbat", + "lat": "40.1369", + "lng": "44.3983", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "1549", + "population_proper": "1549" + }, + { + "city": "Tsaghkalanj", + "lat": "40.2000", + "lng": "44.2275", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "1539", + "population_proper": "1539" + }, + { + "city": "Harrich", + "lat": "40.5981", + "lng": "44.0075", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "1536", + "population_proper": "1536" + }, + { + "city": "Kamo", + "lat": "40.8281", + "lng": "43.9483", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "1536", + "population_proper": "1536" + }, + { + "city": "Kut", + "lat": "40.1808", + "lng": "45.9017", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Geghark’unik’", + "capital": "", + "population": "1533", + "population_proper": "1533" + }, + { + "city": "Ushi", + "lat": "40.3483", + "lng": "44.3731", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "1532", + "population_proper": "1532" + }, + { + "city": "Mrganush", + "lat": "40.0286", + "lng": "44.5586", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "1521", + "population_proper": "1521" + }, + { + "city": "Haykavan", + "lat": "40.8039", + "lng": "43.7528", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "1511", + "population_proper": "1511" + }, + { + "city": "Lusakunk", + "lat": "40.1667", + "lng": "45.6833", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Geghark’unik’", + "capital": "", + "population": "1497", + "population_proper": "1497" + }, + { + "city": "Sverdlov", + "lat": "41.0972", + "lng": "44.4008", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "1497", + "population_proper": "1497" + }, + { + "city": "Mrgastan", + "lat": "40.2008", + "lng": "44.2772", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "1494", + "population_proper": "1494" + }, + { + "city": "Gogaran", + "lat": "40.8956", + "lng": "44.1992", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "1472", + "population_proper": "1472" + }, + { + "city": "Margara", + "lat": "40.0336", + "lng": "44.1739", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "1468", + "population_proper": "1468" + }, + { + "city": "Gusanagyugh", + "lat": "40.6692", + "lng": "43.7883", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "1466", + "population_proper": "1466" + }, + { + "city": "Haykashen", + "lat": "40.0728", + "lng": "44.3069", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "1457", + "population_proper": "1457" + }, + { + "city": "Shahumyan", + "lat": "40.2133", + "lng": "44.2967", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "1451", + "population_proper": "1451" + }, + { + "city": "Lerrnakert", + "lat": "40.5669", + "lng": "43.9361", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "1450", + "population_proper": "1450" + }, + { + "city": "Abovyan", + "lat": "40.0489", + "lng": "44.5475", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "1440", + "population_proper": "1440" + }, + { + "city": "Kanachut", + "lat": "40.0089", + "lng": "44.5444", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "1440", + "population_proper": "1440" + }, + { + "city": "Nerk’in Bazmaberd", + "lat": "40.3453", + "lng": "44.0556", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "1438", + "population_proper": "1438" + }, + { + "city": "Getapnya", + "lat": "40.1406", + "lng": "44.4325", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "1435", + "population_proper": "1435" + }, + { + "city": "Doghs", + "lat": "40.2228", + "lng": "44.2717", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "1435", + "population_proper": "1435" + }, + { + "city": "Meghrashen", + "lat": "40.6758", + "lng": "43.9486", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "1424", + "population_proper": "1424" + }, + { + "city": "Teghut", + "lat": "40.7778", + "lng": "44.9350", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "1421", + "population_proper": "1421" + }, + { + "city": "Ghazanchi", + "lat": "41.0789", + "lng": "43.8217", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "1408", + "population_proper": "1408" + }, + { + "city": "Voskevan", + "lat": "41.1192", + "lng": "45.0653", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "1405", + "population_proper": "1405" + }, + { + "city": "Aknashen", + "lat": "40.0958", + "lng": "44.2861", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "1404", + "population_proper": "1404" + }, + { + "city": "Yelpin", + "lat": "39.8058", + "lng": "45.1103", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Vayots’ Dzor", + "capital": "", + "population": "1402", + "population_proper": "1402" + }, + { + "city": "Nor Kesaria", + "lat": "40.0667", + "lng": "43.9000", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "1400", + "population_proper": "1400" + }, + { + "city": "Arazap", + "lat": "40.0417", + "lng": "44.1447", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "1400", + "population_proper": "1400" + }, + { + "city": "Lanjazat", + "lat": "40.0714", + "lng": "44.5606", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "1388", + "population_proper": "1388" + }, + { + "city": "Zarr", + "lat": "40.2611", + "lng": "44.7361", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Kotayk’", + "capital": "", + "population": "1386", + "population_proper": "1386" + }, + { + "city": "Fioletovo", + "lat": "40.7247", + "lng": "44.7139", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "1383", + "population_proper": "1383" + }, + { + "city": "Melikgyugh", + "lat": "40.6694", + "lng": "44.3575", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "1379", + "population_proper": "1379" + }, + { + "city": "Lorut", + "lat": "40.9389", + "lng": "44.7725", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "1367", + "population_proper": "1367" + }, + { + "city": "Ashnak", + "lat": "40.3275", + "lng": "43.9167", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "1364", + "population_proper": "1364" + }, + { + "city": "Arpi", + "lat": "39.7392", + "lng": "45.2617", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Vayots’ Dzor", + "capital": "", + "population": "1360", + "population_proper": "1360" + }, + { + "city": "Shahumyan", + "lat": "39.9308", + "lng": "44.5783", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "1355", + "population_proper": "1355" + }, + { + "city": "Agarakadzor", + "lat": "39.7364", + "lng": "45.3456", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Vayots’ Dzor", + "capital": "", + "population": "1355", + "population_proper": "1355" + }, + { + "city": "Lusaghbyur", + "lat": "40.8653", + "lng": "44.0306", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "1350", + "population_proper": "1350" + }, + { + "city": "Byuravan", + "lat": "40.0161", + "lng": "44.5186", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "1336", + "population_proper": "1336" + }, + { + "city": "Norashen", + "lat": "40.6622", + "lng": "44.0736", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "1336", + "population_proper": "1336" + }, + { + "city": "Saratak", + "lat": "40.6700", + "lng": "43.8664", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "1335", + "population_proper": "1335" + }, + { + "city": "Vernashen", + "lat": "39.7939", + "lng": "45.3633", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Vayots’ Dzor", + "capital": "", + "population": "1329", + "population_proper": "1329" + }, + { + "city": "Gargarr", + "lat": "40.9569", + "lng": "44.4428", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "1318", + "population_proper": "1318" + }, + { + "city": "Tsaghkunk", + "lat": "40.1794", + "lng": "44.2700", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "1295", + "population_proper": "1295" + }, + { + "city": "Bazum", + "lat": "40.8681", + "lng": "44.4456", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "1285", + "population_proper": "1285" + }, + { + "city": "Hovtamej", + "lat": "40.1836", + "lng": "44.2572", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "1280", + "population_proper": "1280" + }, + { + "city": "Verin Ptghni", + "lat": "40.2703", + "lng": "44.6011", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Kotayk’", + "capital": "", + "population": "1280", + "population_proper": "1280" + }, + { + "city": "Korrnidzor", + "lat": "39.5481", + "lng": "46.5311", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Syunik’", + "capital": "", + "population": "1279", + "population_proper": "1279" + }, + { + "city": "Chinari", + "lat": "40.8497", + "lng": "45.5719", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "1279", + "population_proper": "1279" + }, + { + "city": "Debet", + "lat": "40.9175", + "lng": "44.6492", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "1271", + "population_proper": "1271" + }, + { + "city": "Agarak", + "lat": "40.3025", + "lng": "44.2789", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "1268", + "population_proper": "1268" + }, + { + "city": "K’arahunj", + "lat": "39.4792", + "lng": "46.3589", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Syunik’", + "capital": "", + "population": "1254", + "population_proper": "1254" + }, + { + "city": "Sarigyugh", + "lat": "41.0564", + "lng": "45.1458", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "1253", + "population_proper": "1253" + }, + { + "city": "Hovtashen", + "lat": "40.0244", + "lng": "44.4500", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "1250", + "population_proper": "1250" + }, + { + "city": "Vardanashen", + "lat": "40.0517", + "lng": "44.1906", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "1249", + "population_proper": "1249" + }, + { + "city": "Akhurik", + "lat": "40.7444", + "lng": "43.7736", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "1239", + "population_proper": "1239" + }, + { + "city": "Akner", + "lat": "39.5067", + "lng": "46.3086", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Syunik’", + "capital": "", + "population": "1233", + "population_proper": "1233" + }, + { + "city": "Jrarrat", + "lat": "40.7461", + "lng": "44.0883", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "1230", + "population_proper": "1230" + }, + { + "city": "Lchap", + "lat": "40.4611", + "lng": "45.0650", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Geghark’unik’", + "capital": "", + "population": "1222", + "population_proper": "1222" + }, + { + "city": "Geghanist", + "lat": "40.6847", + "lng": "44.0239", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "1213", + "population_proper": "1213" + }, + { + "city": "Amasia", + "lat": "40.0833", + "lng": "43.9667", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "1205", + "population_proper": "1205" + }, + { + "city": "Tsaghkadzor", + "lat": "40.5333", + "lng": "44.7206", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Kotayk’", + "capital": "", + "population": "1200", + "population_proper": "1200" + }, + { + "city": "Aygek", + "lat": "40.1886", + "lng": "44.3833", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "1200", + "population_proper": "1200" + }, + { + "city": "Hushakert", + "lat": "40.0811", + "lng": "43.9264", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "1200", + "population_proper": "1200" + }, + { + "city": "Dzoraget", + "lat": "40.9333", + "lng": "44.5667", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "1200", + "population_proper": "1200" + }, + { + "city": "Yeraskh", + "lat": "39.7167", + "lng": "44.7500", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "1194", + "population_proper": "1194" + }, + { + "city": "Geghadzor", + "lat": "40.6328", + "lng": "44.1731", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "1192", + "population_proper": "1192" + }, + { + "city": "Gndevaz", + "lat": "39.7592", + "lng": "45.6181", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Vayots’ Dzor", + "capital": "", + "population": "1184", + "population_proper": "1184" + }, + { + "city": "Haghtanak", + "lat": "41.2239", + "lng": "44.9378", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "1180", + "population_proper": "1180" + }, + { + "city": "Vardablur", + "lat": "40.9708", + "lng": "44.5089", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "1178", + "population_proper": "1178" + }, + { + "city": "Vardenut", + "lat": "40.4706", + "lng": "44.3653", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "1172", + "population_proper": "1172" + }, + { + "city": "Yeghipatrush", + "lat": "40.5386", + "lng": "44.4744", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "1170", + "population_proper": "1170" + }, + { + "city": "Mets Sepasar", + "lat": "41.0769", + "lng": "43.7612", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "1161", + "population_proper": "1161" + }, + { + "city": "Navur", + "lat": "40.8614", + "lng": "45.3175", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "1157", + "population_proper": "1157" + }, + { + "city": "Karmrashen", + "lat": "39.8164", + "lng": "45.5306", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Vayots’ Dzor", + "capital": "", + "population": "1157", + "population_proper": "1157" + }, + { + "city": "Gosh", + "lat": "40.7225", + "lng": "45.0033", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "1155", + "population_proper": "1155" + }, + { + "city": "Tsiatsan", + "lat": "40.1869", + "lng": "44.2667", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "1141", + "population_proper": "1141" + }, + { + "city": "Gharibjanyan", + "lat": "40.7461", + "lng": "43.7969", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "1138", + "population_proper": "1138" + }, + { + "city": "Narek", + "lat": "40.0167", + "lng": "44.6167", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "1138", + "population_proper": "1138" + }, + { + "city": "Metsamor", + "lat": "40.0714", + "lng": "44.2892", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "1136", + "population_proper": "1136" + }, + { + "city": "Hors", + "lat": "39.8625", + "lng": "45.2303", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Vayots’ Dzor", + "capital": "", + "population": "1136", + "population_proper": "1136" + }, + { + "city": "Berk’arrat", + "lat": "40.6814", + "lng": "44.1689", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "1131", + "population_proper": "1131" + }, + { + "city": "Nor Artamet", + "lat": "40.2989", + "lng": "44.5542", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Kotayk’", + "capital": "", + "population": "1120", + "population_proper": "1120" + }, + { + "city": "Arevabuyr", + "lat": "40.0361", + "lng": "44.4689", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "1117", + "population_proper": "1117" + }, + { + "city": "Jajurr", + "lat": "40.8506", + "lng": "43.9481", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "1115", + "population_proper": "1115" + }, + { + "city": "Voghjaberd", + "lat": "40.1664", + "lng": "44.6483", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Kotayk’", + "capital": "", + "population": "1114", + "population_proper": "1114" + }, + { + "city": "Dprabak", + "lat": "40.6864", + "lng": "45.1264", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Geghark’unik’", + "capital": "", + "population": "1112", + "population_proper": "1112" + }, + { + "city": "Archis", + "lat": "41.1642", + "lng": "44.8725", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "1109", + "population_proper": "1109" + }, + { + "city": "Harzhis", + "lat": "39.4333", + "lng": "46.2217", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Syunik’", + "capital": "", + "population": "1108", + "population_proper": "1108" + }, + { + "city": "Artabuynk", + "lat": "39.8589", + "lng": "45.3614", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Vayots’ Dzor", + "capital": "", + "population": "1107", + "population_proper": "1107" + }, + { + "city": "Nerk’in Karmiraghbyur", + "lat": "40.9481", + "lng": "45.4331", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "1105", + "population_proper": "1105" + }, + { + "city": "Khachik", + "lat": "39.6217", + "lng": "45.2056", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Vayots’ Dzor", + "capital": "", + "population": "1103", + "population_proper": "1103" + }, + { + "city": "Vanand", + "lat": "40.1333", + "lng": "43.8167", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "1102", + "population_proper": "1102" + }, + { + "city": "Nor Kyurin", + "lat": "40.0906", + "lng": "44.4639", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "1101", + "population_proper": "1101" + }, + { + "city": "Khnatsakh", + "lat": "39.6036", + "lng": "46.3928", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Syunik’", + "capital": "", + "population": "1100", + "population_proper": "1100" + }, + { + "city": "Keti", + "lat": "40.8842", + "lng": "43.8489", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "1099", + "population_proper": "1099" + }, + { + "city": "Tsaghkunk", + "lat": "40.5831", + "lng": "44.8694", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Geghark’unik’", + "capital": "", + "population": "1096", + "population_proper": "1096" + }, + { + "city": "Lerrnapar", + "lat": "40.7486", + "lng": "44.1606", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "1092", + "population_proper": "1092" + }, + { + "city": "Aznvadzor", + "lat": "40.8769", + "lng": "44.4169", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "1091", + "population_proper": "1091" + }, + { + "city": "Kaps", + "lat": "40.8667", + "lng": "43.7167", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "1088", + "population_proper": "1088" + }, + { + "city": "Karinj", + "lat": "40.9733", + "lng": "44.6886", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "1086", + "population_proper": "1086" + }, + { + "city": "Kechut", + "lat": "39.7994", + "lng": "45.6625", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Vayots’ Dzor", + "capital": "", + "population": "1083", + "population_proper": "1083" + }, + { + "city": "Hatis", + "lat": "40.3406", + "lng": "44.7297", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Kotayk’", + "capital": "", + "population": "1077", + "population_proper": "1077" + }, + { + "city": "Shirak", + "lat": "40.8481", + "lng": "43.9214", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "1067", + "population_proper": "1067" + }, + { + "city": "Isahakyan", + "lat": "40.6167", + "lng": "43.7253", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "1065", + "population_proper": "1065" + }, + { + "city": "Nor Yedesia", + "lat": "40.2247", + "lng": "44.1333", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "1065", + "population_proper": "1065" + }, + { + "city": "Choratan", + "lat": "40.8611", + "lng": "45.4800", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "1060", + "population_proper": "1060" + }, + { + "city": "Karrnut", + "lat": "40.7836", + "lng": "43.9542", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "1059", + "population_proper": "1059" + }, + { + "city": "Hatsik", + "lat": "40.8481", + "lng": "43.9214", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "1055", + "population_proper": "1055" + }, + { + "city": "Bardzruni", + "lat": "39.5208", + "lng": "45.4822", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Vayots’ Dzor", + "capital": "", + "population": "1050", + "population_proper": "1050" + }, + { + "city": "Aragatsotn", + "lat": "40.2583", + "lng": "44.1828", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "1049", + "population_proper": "1049" + }, + { + "city": "Voskehat", + "lat": "40.2764", + "lng": "44.2744", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "1046", + "population_proper": "1046" + }, + { + "city": "Zorakan", + "lat": "41.2186", + "lng": "44.9314", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "1044", + "population_proper": "1044" + }, + { + "city": "Lusagyugh", + "lat": "40.0889", + "lng": "44.2700", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "1043", + "population_proper": "1043" + }, + { + "city": "Aragyugh", + "lat": "40.4025", + "lng": "44.5436", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Kotayk’", + "capital": "", + "population": "1041", + "population_proper": "1041" + }, + { + "city": "Marts", + "lat": "40.9569", + "lng": "44.7044", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "1037", + "population_proper": "1037" + }, + { + "city": "Agarakavan", + "lat": "40.3333", + "lng": "44.0667", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "1036", + "population_proper": "1036" + }, + { + "city": "Nahapetavan", + "lat": "40.6000", + "lng": "44.0167", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "1032", + "population_proper": "1032" + }, + { + "city": "Arevatsag", + "lat": "40.9739", + "lng": "44.6106", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "1029", + "population_proper": "1029" + }, + { + "city": "Jrahovit", + "lat": "40.0453", + "lng": "44.4736", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "1028", + "population_proper": "1028" + }, + { + "city": "Tatev", + "lat": "39.3817", + "lng": "46.2400", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Syunik’", + "capital": "", + "population": "1025", + "population_proper": "1025" + }, + { + "city": "Madina", + "lat": "40.0803", + "lng": "45.2511", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Geghark’unik’", + "capital": "", + "population": "1024", + "population_proper": "1024" + }, + { + "city": "Shaghap", + "lat": "39.8667", + "lng": "44.9000", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "1023", + "population_proper": "1023" + }, + { + "city": "Aruch", + "lat": "40.2925", + "lng": "44.0792", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "1016", + "population_proper": "1016" + }, + { + "city": "Kakavadzor", + "lat": "40.3436", + "lng": "44.0119", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "1012", + "population_proper": "1012" + }, + { + "city": "Saralanj", + "lat": "40.3997", + "lng": "44.5186", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Kotayk’", + "capital": "", + "population": "1011", + "population_proper": "1011" + }, + { + "city": "Baghramyan", + "lat": "40.1908", + "lng": "43.8494", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "1008", + "population_proper": "1008" + }, + { + "city": "Artashar", + "lat": "40.1092", + "lng": "44.1811", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "1000", + "population_proper": "1000" + }, + { + "city": "Araksavan", + "lat": "40.0453", + "lng": "44.5186", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "1000", + "population_proper": "1000" + }, + { + "city": "Urrut", + "lat": "41.0711", + "lng": "44.3969", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "1000", + "population_proper": "1000" + }, + { + "city": "Azatek", + "lat": "39.6500", + "lng": "45.4383", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Vayots’ Dzor", + "capital": "", + "population": "1000", + "population_proper": "1000" + }, + { + "city": "Nor Art’ik", + "lat": "40.4500", + "lng": "43.7000", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "993", + "population_proper": "993" + }, + { + "city": "Deghdzut", + "lat": "40.0264", + "lng": "44.5489", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "989", + "population_proper": "989" + }, + { + "city": "Mikhayelovka", + "lat": "41.1653", + "lng": "44.2775", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "989", + "population_proper": "989" + }, + { + "city": "Mets Ayrum", + "lat": "41.1717", + "lng": "44.8192", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "986", + "population_proper": "986" + }, + { + "city": "Kat’narrat", + "lat": "41.0883", + "lng": "44.1794", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "979", + "population_proper": "979" + }, + { + "city": "Shenik", + "lat": "40.2000", + "lng": "43.7667", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "975", + "population_proper": "975" + }, + { + "city": "Pushkino", + "lat": "40.9600", + "lng": "44.4200", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "968", + "population_proper": "968" + }, + { + "city": "Yeghegis", + "lat": "39.8589", + "lng": "45.3614", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Vayots’ Dzor", + "capital": "", + "population": "963", + "population_proper": "963" + }, + { + "city": "Yernjatap", + "lat": "40.4531", + "lng": "44.4642", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "962", + "population_proper": "962" + }, + { + "city": "Khot", + "lat": "39.4435", + "lng": "46.3364", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Syunik’", + "capital": "", + "population": "961", + "population_proper": "961" + }, + { + "city": "Zovk", + "lat": "40.2061", + "lng": "44.6936", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Kotayk’", + "capital": "", + "population": "959", + "population_proper": "959" + }, + { + "city": "Tsaghkavan", + "lat": "40.9419", + "lng": "45.3311", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "958", + "population_proper": "958" + }, + { + "city": "Voskepar", + "lat": "41.0636", + "lng": "45.0564", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "956", + "population_proper": "956" + }, + { + "city": "Arpunk", + "lat": "40.2833", + "lng": "45.7333", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Geghark’unik’", + "capital": "", + "population": "955", + "population_proper": "955" + }, + { + "city": "Karenis", + "lat": "40.3917", + "lng": "44.6072", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Kotayk’", + "capital": "", + "population": "952", + "population_proper": "952" + }, + { + "city": "Artavaz", + "lat": "40.6192", + "lng": "44.5747", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Kotayk’", + "capital": "", + "population": "951", + "population_proper": "951" + }, + { + "city": "Bazmaghbyur", + "lat": "40.3353", + "lng": "44.3139", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "950", + "population_proper": "950" + }, + { + "city": "Artsvanik", + "lat": "39.2617", + "lng": "46.4736", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Syunik’", + "capital": "", + "population": "933", + "population_proper": "933" + }, + { + "city": "Chiva", + "lat": "39.7672", + "lng": "45.1408", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Vayots’ Dzor", + "capital": "", + "population": "933", + "population_proper": "933" + }, + { + "city": "Artsni", + "lat": "41.2142", + "lng": "44.3700", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "931", + "population_proper": "931" + }, + { + "city": "Davit’ Bek", + "lat": "39.3181", + "lng": "46.4953", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Syunik’", + "capital": "", + "population": "931", + "population_proper": "931" + }, + { + "city": "Karaglukh", + "lat": "39.8956", + "lng": "45.2689", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Vayots’ Dzor", + "capital": "", + "population": "926", + "population_proper": "926" + }, + { + "city": "Byurakn", + "lat": "40.8686", + "lng": "43.7072", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "922", + "population_proper": "922" + }, + { + "city": "Tsilkar", + "lat": "40.7206", + "lng": "44.2083", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "920", + "population_proper": "920" + }, + { + "city": "Hayravank", + "lat": "40.4344", + "lng": "45.0969", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Geghark’unik’", + "capital": "", + "population": "919", + "population_proper": "919" + }, + { + "city": "Geghasar", + "lat": "40.8492", + "lng": "44.1839", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "916", + "population_proper": "916" + }, + { + "city": "Garrnahovit", + "lat": "40.4969", + "lng": "43.9562", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "916", + "population_proper": "916" + }, + { + "city": "Avan", + "lat": "40.3353", + "lng": "44.1683", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "915", + "population_proper": "915" + }, + { + "city": "Gnishik", + "lat": "39.6558", + "lng": "45.3000", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Vayots’ Dzor", + "capital": "", + "population": "914", + "population_proper": "914" + }, + { + "city": "Apnagyugh", + "lat": "40.4394", + "lng": "44.3961", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "907", + "population_proper": "907" + }, + { + "city": "Nerk’in Sasunashen", + "lat": "40.3619", + "lng": "43.9828", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "904", + "population_proper": "904" + }, + { + "city": "Dasht", + "lat": "40.2281", + "lng": "44.3011", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "899", + "population_proper": "899" + }, + { + "city": "Getik", + "lat": "40.6622", + "lng": "45.2667", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Geghark’unik’", + "capital": "", + "population": "897", + "population_proper": "897" + }, + { + "city": "Haghpat", + "lat": "41.0950", + "lng": "44.7103", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "891", + "population_proper": "891" + }, + { + "city": "Ptghavan", + "lat": "41.2167", + "lng": "44.9167", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "874", + "population_proper": "874" + }, + { + "city": "Mghart", + "lat": "40.9981", + "lng": "44.5825", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "863", + "population_proper": "863" + }, + { + "city": "Teghut", + "lat": "41.1181", + "lng": "44.8458", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "861", + "population_proper": "861" + }, + { + "city": "Aygeshat", + "lat": "40.2356", + "lng": "44.2867", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "859", + "population_proper": "859" + }, + { + "city": "Getargel", + "lat": "40.2333", + "lng": "44.5583", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Kotayk’", + "capital": "", + "population": "853", + "population_proper": "853" + }, + { + "city": "Dzoramut", + "lat": "41.1997", + "lng": "44.2900", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "851", + "population_proper": "851" + }, + { + "city": "Irind", + "lat": "40.3833", + "lng": "43.9833", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "850", + "population_proper": "850" + }, + { + "city": "Lanjik", + "lat": "40.5094", + "lng": "43.8564", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "837", + "population_proper": "837" + }, + { + "city": "Jrashen", + "lat": "40.0833", + "lng": "44.0167", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "835", + "population_proper": "835" + }, + { + "city": "Geghadir", + "lat": "40.1564", + "lng": "44.6511", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Kotayk’", + "capital": "", + "population": "835", + "population_proper": "835" + }, + { + "city": "Geghadir", + "lat": "40.6589", + "lng": "44.1072", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "835", + "population_proper": "835" + }, + { + "city": "Khnkoyan", + "lat": "40.8397", + "lng": "44.0200", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "831", + "population_proper": "831" + }, + { + "city": "Vazashen", + "lat": "40.9922", + "lng": "45.2842", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "830", + "population_proper": "830" + }, + { + "city": "Areguni", + "lat": "40.3417", + "lng": "45.6083", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Geghark’unik’", + "capital": "", + "population": "823", + "population_proper": "823" + }, + { + "city": "Getap", + "lat": "40.6500", + "lng": "44.0000", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "822", + "population_proper": "822" + }, + { + "city": "Yeghegnut", + "lat": "40.9042", + "lng": "44.6325", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "820", + "population_proper": "820" + }, + { + "city": "Tatul", + "lat": "40.3892", + "lng": "43.8142", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "819", + "population_proper": "819" + }, + { + "city": "Hobardzi", + "lat": "40.9603", + "lng": "44.4942", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "814", + "population_proper": "814" + }, + { + "city": "Sotk", + "lat": "40.2031", + "lng": "45.8647", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Geghark’unik’", + "capital": "", + "population": "811", + "population_proper": "811" + }, + { + "city": "Aygabats", + "lat": "40.7028", + "lng": "43.9056", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "802", + "population_proper": "802" + }, + { + "city": "Getamej", + "lat": "40.2750", + "lng": "44.5850", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Kotayk’", + "capital": "", + "population": "801", + "population_proper": "801" + }, + { + "city": "Horadis", + "lat": "39.5528", + "lng": "45.4044", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Vayots’ Dzor", + "capital": "", + "population": "801", + "population_proper": "801" + }, + { + "city": "Nor Ughi", + "lat": "39.9667", + "lng": "44.6167", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "800", + "population_proper": "800" + }, + { + "city": "Bardzrashen", + "lat": "40.5931", + "lng": "43.7389", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "793", + "population_proper": "793" + }, + { + "city": "Lermontovo", + "lat": "40.7650", + "lng": "44.6300", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "791", + "population_proper": "791" + }, + { + "city": "Marmarik", + "lat": "40.5828", + "lng": "44.6683", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Kotayk’", + "capital": "", + "population": "786", + "population_proper": "786" + }, + { + "city": "Lejan", + "lat": "41.0300", + "lng": "44.4500", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "783", + "population_proper": "783" + }, + { + "city": "Dzorashen", + "lat": "39.4858", + "lng": "46.4197", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Syunik’", + "capital": "", + "population": "775", + "population_proper": "775" + }, + { + "city": "Baghanis", + "lat": "41.1167", + "lng": "45.0667", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "766", + "population_proper": "766" + }, + { + "city": "Dzorashen", + "lat": "40.9314", + "lng": "44.0692", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "764", + "population_proper": "764" + }, + { + "city": "Mijnatun", + "lat": "40.6939", + "lng": "44.3567", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "763", + "population_proper": "763" + }, + { + "city": "Karashamb", + "lat": "40.4050", + "lng": "44.5764", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Kotayk’", + "capital": "", + "population": "750", + "population_proper": "750" + }, + { + "city": "Gomk", + "lat": "39.6294", + "lng": "45.5692", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Vayots’ Dzor", + "capital": "", + "population": "745", + "population_proper": "745" + }, + { + "city": "Alagyaz", + "lat": "40.6814", + "lng": "44.2903", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "732", + "population_proper": "732" + }, + { + "city": "Goghtanik", + "lat": "39.8672", + "lng": "45.4719", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Vayots’ Dzor", + "capital": "", + "population": "726", + "population_proper": "726" + }, + { + "city": "Bayandur", + "lat": "40.7008", + "lng": "43.7731", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "725", + "population_proper": "725" + }, + { + "city": "Beniamin", + "lat": "40.6833", + "lng": "43.8500", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "720", + "population_proper": "720" + }, + { + "city": "Varagavan", + "lat": "40.9569", + "lng": "45.3383", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "719", + "population_proper": "719" + }, + { + "city": "Lusagyugh", + "lat": "40.6088", + "lng": "44.3822", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "710", + "population_proper": "710" + }, + { + "city": "Zuygaghbyur", + "lat": "41.0211", + "lng": "43.9036", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "709", + "population_proper": "709" + }, + { + "city": "Vardablur", + "lat": "40.6961", + "lng": "44.2300", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "706", + "population_proper": "706" + }, + { + "city": "Davtashen", + "lat": "40.3667", + "lng": "43.9667", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "704", + "population_proper": "704" + }, + { + "city": "Sevak’ar", + "lat": "39.2700", + "lng": "46.4456", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Syunik’", + "capital": "", + "population": "703", + "population_proper": "703" + }, + { + "city": "Vardenis", + "lat": "40.5717", + "lng": "44.4028", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "703", + "population_proper": "703" + }, + { + "city": "Dashtadem", + "lat": "40.3333", + "lng": "43.8500", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "701", + "population_proper": "701" + }, + { + "city": "Shamlugh", + "lat": "41.1678", + "lng": "44.7231", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "700", + "population_proper": "700" + }, + { + "city": "Ashotavan", + "lat": "39.4764", + "lng": "45.9978", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Syunik’", + "capital": "", + "population": "700", + "population_proper": "700" + }, + { + "city": "Yervandashat", + "lat": "40.1147", + "lng": "43.6708", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "698", + "population_proper": "698" + }, + { + "city": "Lusadzor", + "lat": "40.9369", + "lng": "45.1483", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "697", + "population_proper": "697" + }, + { + "city": "Hovuni", + "lat": "40.8667", + "lng": "43.8000", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "693", + "population_proper": "693" + }, + { + "city": "Bagaran", + "lat": "40.1494", + "lng": "43.6928", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "691", + "population_proper": "691" + }, + { + "city": "Ditak", + "lat": "40.0453", + "lng": "44.5186", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "691", + "population_proper": "691" + }, + { + "city": "Artashavan", + "lat": "40.3936", + "lng": "44.3814", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "688", + "population_proper": "688" + }, + { + "city": "Khoznavar", + "lat": "39.6214", + "lng": "46.3558", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Syunik’", + "capital": "", + "population": "688", + "population_proper": "688" + }, + { + "city": "Chinchin", + "lat": "40.9117", + "lng": "45.3542", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "687", + "population_proper": "687" + }, + { + "city": "Saravan", + "lat": "39.7189", + "lng": "45.6483", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Vayots’ Dzor", + "capital": "", + "population": "685", + "population_proper": "685" + }, + { + "city": "Lanjarr", + "lat": "39.8250", + "lng": "44.9833", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "677", + "population_proper": "677" + }, + { + "city": "Amrakits", + "lat": "40.9972", + "lng": "44.4272", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "675", + "population_proper": "675" + }, + { + "city": "Rrya T’aza", + "lat": "40.6581", + "lng": "44.3061", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "672", + "population_proper": "672" + }, + { + "city": "Akunk", + "lat": "40.4167", + "lng": "43.9000", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "672", + "population_proper": "672" + }, + { + "city": "Hermon", + "lat": "39.8794", + "lng": "45.4264", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Vayots’ Dzor", + "capital": "", + "population": "671", + "population_proper": "671" + }, + { + "city": "Hagvi", + "lat": "41.0743", + "lng": "44.5870", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "669", + "population_proper": "669" + }, + { + "city": "Salli", + "lat": "39.8736", + "lng": "45.2767", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Vayots’ Dzor", + "capital": "", + "population": "668", + "population_proper": "668" + }, + { + "city": "Lusakert", + "lat": "40.6667", + "lng": "43.8667", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "667", + "population_proper": "667" + }, + { + "city": "Geghamabak", + "lat": "40.1567", + "lng": "45.8011", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Geghark’unik’", + "capital": "", + "population": "663", + "population_proper": "663" + }, + { + "city": "Martiros", + "lat": "39.5967", + "lng": "45.5078", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Vayots’ Dzor", + "capital": "", + "population": "662", + "population_proper": "662" + }, + { + "city": "Ttujur", + "lat": "40.5747", + "lng": "44.4547", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "661", + "population_proper": "661" + }, + { + "city": "Debetavan", + "lat": "41.2333", + "lng": "44.8500", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "658", + "population_proper": "658" + }, + { + "city": "Halidzor", + "lat": "39.4103", + "lng": "46.2953", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Syunik’", + "capital": "", + "population": "657", + "population_proper": "657" + }, + { + "city": "Tegher", + "lat": "40.3397", + "lng": "44.2364", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "655", + "population_proper": "655" + }, + { + "city": "Sers", + "lat": "39.5628", + "lng": "45.4797", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Vayots’ Dzor", + "capital": "", + "population": "654", + "population_proper": "654" + }, + { + "city": "Hartashen", + "lat": "41.0097", + "lng": "43.9236", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "652", + "population_proper": "652" + }, + { + "city": "Tsaghkashen", + "lat": "40.5081", + "lng": "44.3497", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "644", + "population_proper": "644" + }, + { + "city": "Vardakar", + "lat": "40.6667", + "lng": "43.9167", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "643", + "population_proper": "643" + }, + { + "city": "Antarramut", + "lat": "40.9386", + "lng": "44.5592", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "641", + "population_proper": "641" + }, + { + "city": "T’arrat’umb", + "lat": "39.8914", + "lng": "45.2508", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Vayots’ Dzor", + "capital": "", + "population": "641", + "population_proper": "641" + }, + { + "city": "Karkop", + "lat": "41.2000", + "lng": "44.8333", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "639", + "population_proper": "639" + }, + { + "city": "Sarakap", + "lat": "40.5561", + "lng": "43.7208", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "638", + "population_proper": "638" + }, + { + "city": "Katnaghbyur", + "lat": "40.2561", + "lng": "44.6767", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Kotayk’", + "capital": "", + "population": "637", + "population_proper": "637" + }, + { + "city": "Shishkert", + "lat": "39.0708", + "lng": "46.3508", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Syunik’", + "capital": "", + "population": "636", + "population_proper": "636" + }, + { + "city": "Jraber", + "lat": "40.3519", + "lng": "44.6450", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Kotayk’", + "capital": "", + "population": "635", + "population_proper": "635" + }, + { + "city": "Hatsavan", + "lat": "40.1378", + "lng": "44.6522", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Kotayk’", + "capital": "", + "population": "635", + "population_proper": "635" + }, + { + "city": "Ara", + "lat": "40.4572", + "lng": "44.3742", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "633", + "population_proper": "633" + }, + { + "city": "Karmrashen", + "lat": "40.4361", + "lng": "43.9453", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "632", + "population_proper": "632" + }, + { + "city": "Shamut", + "lat": "40.9333", + "lng": "44.7833", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "628", + "population_proper": "628" + }, + { + "city": "Ginevet", + "lat": "39.9000", + "lng": "44.6333", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "627", + "population_proper": "627" + }, + { + "city": "Tsater", + "lat": "40.9713", + "lng": "44.6278", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "624", + "population_proper": "624" + }, + { + "city": "Paruyr Sevak", + "lat": "39.7667", + "lng": "44.9333", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "623", + "population_proper": "623" + }, + { + "city": "Akhlatyan", + "lat": "39.4422", + "lng": "46.0353", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Syunik’", + "capital": "", + "population": "621", + "population_proper": "621" + }, + { + "city": "Khndzorut", + "lat": "39.5528", + "lng": "45.4047", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Vayots’ Dzor", + "capital": "", + "population": "618", + "population_proper": "618" + }, + { + "city": "P’ok’r Masrik", + "lat": "40.2581", + "lng": "45.7225", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Geghark’unik’", + "capital": "", + "population": "616", + "population_proper": "616" + }, + { + "city": "Jujevan", + "lat": "41.1322", + "lng": "45.0111", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "612", + "population_proper": "612" + }, + { + "city": "Vaghatur", + "lat": "39.6033", + "lng": "46.3681", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Syunik’", + "capital": "", + "population": "611", + "population_proper": "611" + }, + { + "city": "Aygepar", + "lat": "40.9419", + "lng": "45.4622", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "605", + "population_proper": "605" + }, + { + "city": "Shenavan", + "lat": "40.8667", + "lng": "44.2333", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "601", + "population_proper": "601" + }, + { + "city": "Hartavan", + "lat": "40.4781", + "lng": "44.4006", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "600", + "population_proper": "600" + }, + { + "city": "Berkashat", + "lat": "40.0500", + "lng": "43.9167", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "599", + "population_proper": "599" + }, + { + "city": "Arpeni", + "lat": "40.9144", + "lng": "43.8997", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "598", + "population_proper": "598" + }, + { + "city": "Getk", + "lat": "40.7333", + "lng": "43.7833", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "597", + "population_proper": "597" + }, + { + "city": "Orgov", + "lat": "40.3478", + "lng": "44.2525", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "594", + "population_proper": "594" + }, + { + "city": "Saratovka", + "lat": "41.0781", + "lng": "44.3164", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "591", + "population_proper": "591" + }, + { + "city": "Gegharot", + "lat": "40.7058", + "lng": "44.2194", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "590", + "population_proper": "590" + }, + { + "city": "Kutakan", + "lat": "40.2678", + "lng": "45.8392", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Geghark’unik’", + "capital": "", + "population": "589", + "population_proper": "589" + }, + { + "city": "Saralanj", + "lat": "40.8756", + "lng": "44.0972", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "585", + "population_proper": "585" + }, + { + "city": "Zarinja", + "lat": "40.4667", + "lng": "43.7833", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "585", + "population_proper": "585" + }, + { + "city": "Ardvi", + "lat": "41.0161", + "lng": "44.5953", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "584", + "population_proper": "584" + }, + { + "city": "Armanis", + "lat": "41.0081", + "lng": "44.3292", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "580", + "population_proper": "580" + }, + { + "city": "Oghji", + "lat": "40.8094", + "lng": "43.7528", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "579", + "population_proper": "579" + }, + { + "city": "Ferik", + "lat": "40.1864", + "lng": "44.2094", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "576", + "population_proper": "576" + }, + { + "city": "Nurrnus", + "lat": "40.3575", + "lng": "44.6058", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Kotayk’", + "capital": "", + "population": "572", + "population_proper": "572" + }, + { + "city": "K’arashen", + "lat": "39.5400", + "lng": "46.4081", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Syunik’", + "capital": "", + "population": "571", + "population_proper": "571" + }, + { + "city": "Dovegh", + "lat": "41.1833", + "lng": "45.0333", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "570", + "population_proper": "570" + }, + { + "city": "Tsoghamarg", + "lat": "40.9481", + "lng": "43.8561", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "566", + "population_proper": "566" + }, + { + "city": "Yeghnajur", + "lat": "41.0892", + "lng": "43.5614", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "566", + "population_proper": "566" + }, + { + "city": "Kaniashir", + "lat": "40.6564", + "lng": "44.2417", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "564", + "population_proper": "564" + }, + { + "city": "Aniavan", + "lat": "40.4667", + "lng": "43.6417", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "560", + "population_proper": "560" + }, + { + "city": "Teghenik", + "lat": "40.4239", + "lng": "44.5756", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Kotayk’", + "capital": "", + "population": "559", + "population_proper": "559" + }, + { + "city": "Dashtakar", + "lat": "39.9167", + "lng": "44.7500", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "558", + "population_proper": "558" + }, + { + "city": "Ghazaravan", + "lat": "40.3478", + "lng": "44.3417", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "558", + "population_proper": "558" + }, + { + "city": "Tsaghkavan", + "lat": "41.0342", + "lng": "45.1181", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "557", + "population_proper": "557" + }, + { + "city": "Bnunis", + "lat": "39.4444", + "lng": "46.0058", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Syunik’", + "capital": "", + "population": "556", + "population_proper": "556" + }, + { + "city": "Lerrnadzor", + "lat": "39.1572", + "lng": "46.1997", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Syunik’", + "capital": "", + "population": "556", + "population_proper": "556" + }, + { + "city": "Hovit", + "lat": "40.7667", + "lng": "44.0000", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "550", + "population_proper": "550" + }, + { + "city": "Krasar", + "lat": "41.0178", + "lng": "43.8233", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "548", + "population_proper": "548" + }, + { + "city": "Argina", + "lat": "40.2500", + "lng": "43.7000", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "547", + "population_proper": "547" + }, + { + "city": "Aravet", + "lat": "41.0467", + "lng": "43.7769", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "547", + "population_proper": "547" + }, + { + "city": "Urtsalanj", + "lat": "39.8531", + "lng": "44.9850", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "544", + "population_proper": "544" + }, + { + "city": "Lusashogh", + "lat": "39.8483", + "lng": "44.9783", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "544", + "population_proper": "544" + }, + { + "city": "Yenokavan", + "lat": "40.9136", + "lng": "45.0994", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "537", + "population_proper": "537" + }, + { + "city": "Antarramej", + "lat": "40.6833", + "lng": "45.1333", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Geghark’unik’", + "capital": "", + "population": "536", + "population_proper": "536" + }, + { + "city": "Avazan", + "lat": "40.3000", + "lng": "45.7000", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Geghark’unik’", + "capital": "", + "population": "531", + "population_proper": "531" + }, + { + "city": "Lorri Berd", + "lat": "41.0126", + "lng": "44.4126", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "527", + "population_proper": "527" + }, + { + "city": "Berkaber", + "lat": "41.0667", + "lng": "45.1500", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "527", + "population_proper": "527" + }, + { + "city": "Lerrnarot", + "lat": "40.3500", + "lng": "44.1167", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "526", + "population_proper": "526" + }, + { + "city": "Amaghu", + "lat": "39.6814", + "lng": "45.2164", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Vayots’ Dzor", + "capital": "", + "population": "526", + "population_proper": "526" + }, + { + "city": "Aregnadem", + "lat": "40.9311", + "lng": "43.7538", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "521", + "population_proper": "521" + }, + { + "city": "Lerrnamerdz", + "lat": "40.2633", + "lng": "44.2636", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "520", + "population_proper": "520" + }, + { + "city": "Haykadzor", + "lat": "40.5294", + "lng": "43.6603", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "517", + "population_proper": "517" + }, + { + "city": "Okhtar", + "lat": "39.2803", + "lng": "46.3625", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Syunik’", + "capital": "", + "population": "511", + "population_proper": "511" + }, + { + "city": "Aghin", + "lat": "40.5914", + "lng": "43.7025", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "510", + "population_proper": "510" + }, + { + "city": "Lusaghbyur", + "lat": "40.6456", + "lng": "43.7494", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "505", + "population_proper": "505" + }, + { + "city": "Pambak", + "lat": "40.8361", + "lng": "44.5561", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "503", + "population_proper": "503" + }, + { + "city": "Barekamavan", + "lat": "41.1792", + "lng": "45.1097", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "500", + "population_proper": "500" + }, + { + "city": "Agagchi", + "lat": "40.4744", + "lng": "43.9500", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "497", + "population_proper": "497" + }, + { + "city": "Meghrashat", + "lat": "40.8500", + "lng": "43.7000", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "490", + "population_proper": "490" + }, + { + "city": "Hoghmik", + "lat": "40.9167", + "lng": "43.8167", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "487", + "population_proper": "487" + }, + { + "city": "Karadzor", + "lat": "40.8475", + "lng": "44.3167", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "484", + "population_proper": "484" + }, + { + "city": "Arjut", + "lat": "40.8631", + "lng": "44.3822", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "484", + "population_proper": "484" + }, + { + "city": "Hovnanadzor", + "lat": "41.0317", + "lng": "44.5269", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "483", + "population_proper": "483" + }, + { + "city": "Tufashen", + "lat": "40.6000", + "lng": "43.9000", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "479", + "population_proper": "479" + }, + { + "city": "Chakaten", + "lat": "39.1444", + "lng": "46.4403", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Syunik’", + "capital": "", + "population": "479", + "population_proper": "479" + }, + { + "city": "Verin Bazmaberd", + "lat": "40.3667", + "lng": "44.0167", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "472", + "population_proper": "472" + }, + { + "city": "Yerizak", + "lat": "40.9833", + "lng": "43.6500", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "471", + "population_proper": "471" + }, + { + "city": "Tsamakasar", + "lat": "40.4664", + "lng": "43.7561", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "470", + "population_proper": "470" + }, + { + "city": "Geghakar", + "lat": "40.1167", + "lng": "45.6833", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Geghark’unik’", + "capital": "", + "population": "468", + "population_proper": "468" + }, + { + "city": "Geghard", + "lat": "40.1547", + "lng": "44.7992", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Kotayk’", + "capital": "", + "population": "463", + "population_proper": "463" + }, + { + "city": "Ddmasar", + "lat": "40.3500", + "lng": "43.8333", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "460", + "population_proper": "460" + }, + { + "city": "Musallam", + "lat": "39.1883", + "lng": "46.2539", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Syunik’", + "capital": "", + "population": "449", + "population_proper": "449" + }, + { + "city": "Azatashen", + "lat": "40.1350", + "lng": "44.4150", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "447", + "population_proper": "447" + }, + { + "city": "Uzhanis", + "lat": "39.2356", + "lng": "46.5419", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Syunik’", + "capital": "", + "population": "444", + "population_proper": "444" + }, + { + "city": "Antarrashen", + "lat": "40.7500", + "lng": "44.6250", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "443", + "population_proper": "443" + }, + { + "city": "Charchakis", + "lat": "40.7033", + "lng": "44.3261", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "443", + "population_proper": "443" + }, + { + "city": "P’orr", + "lat": "39.6439", + "lng": "45.4703", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Vayots’ Dzor", + "capital": "", + "population": "439", + "population_proper": "439" + }, + { + "city": "Goghovit", + "lat": "40.9333", + "lng": "43.8333", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "438", + "population_proper": "438" + }, + { + "city": "Lorasar", + "lat": "41.1128", + "lng": "43.5964", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "437", + "population_proper": "437" + }, + { + "city": "Aknaghbyur", + "lat": "40.9583", + "lng": "45.1564", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "435", + "population_proper": "435" + }, + { + "city": "Saralanj", + "lat": "40.6031", + "lng": "44.3928", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "432", + "population_proper": "432" + }, + { + "city": "Karin", + "lat": "40.2500", + "lng": "44.3333", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "428", + "population_proper": "428" + }, + { + "city": "Medovka", + "lat": "41.1228", + "lng": "44.3456", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "427", + "population_proper": "427" + }, + { + "city": "Bavra", + "lat": "41.1192", + "lng": "43.8092", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "424", + "population_proper": "424" + }, + { + "city": "Tavshut", + "lat": "41.0833", + "lng": "43.8000", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "420", + "population_proper": "420" + }, + { + "city": "Getap", + "lat": "40.3872", + "lng": "43.6217", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "416", + "population_proper": "416" + }, + { + "city": "Balak", + "lat": "39.5569", + "lng": "45.9314", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Syunik’", + "capital": "", + "population": "412", + "population_proper": "412" + }, + { + "city": "Daranak", + "lat": "40.3667", + "lng": "45.5667", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Geghark’unik’", + "capital": "", + "population": "411", + "population_proper": "411" + }, + { + "city": "Dzorastan", + "lat": "39.2686", + "lng": "46.3564", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Syunik’", + "capital": "", + "population": "409", + "population_proper": "409" + }, + { + "city": "Hovk", + "lat": "40.7911", + "lng": "45.0225", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "409", + "population_proper": "409" + }, + { + "city": "Kachachkut", + "lat": "41.1106", + "lng": "44.5867", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "408", + "population_proper": "408" + }, + { + "city": "Horbategh", + "lat": "39.8947", + "lng": "45.3356", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Vayots’ Dzor", + "capital": "", + "population": "406", + "population_proper": "406" + }, + { + "city": "Khachardzan", + "lat": "40.7192", + "lng": "45.0583", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "405", + "population_proper": "405" + }, + { + "city": "Lchkadzor", + "lat": "41.1667", + "lng": "44.9167", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "402", + "population_proper": "402" + }, + { + "city": "Chapni", + "lat": "39.2669", + "lng": "46.4581", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Syunik’", + "capital": "", + "population": "400", + "population_proper": "400" + }, + { + "city": "Musayelyan", + "lat": "40.9928", + "lng": "43.9389", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "395", + "population_proper": "395" + }, + { + "city": "Artavan", + "lat": "39.6575", + "lng": "45.6167", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Vayots’ Dzor", + "capital": "", + "population": "395", + "population_proper": "395" + }, + { + "city": "Sizavet", + "lat": "41.1050", + "lng": "43.8411", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "395", + "population_proper": "395" + }, + { + "city": "Nerk’in Hand", + "lat": "39.0411", + "lng": "46.5169", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Syunik’", + "capital": "", + "population": "392", + "population_proper": "392" + }, + { + "city": "Lusahovit", + "lat": "40.9500", + "lng": "45.1833", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "390", + "population_proper": "390" + }, + { + "city": "Svarants", + "lat": "39.3608", + "lng": "46.2103", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Syunik’", + "capital": "", + "population": "387", + "population_proper": "387" + }, + { + "city": "Vardavank’", + "lat": "39.2333", + "lng": "46.5000", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Syunik’", + "capital": "", + "population": "381", + "population_proper": "381" + }, + { + "city": "Arevadasht", + "lat": "40.1500", + "lng": "43.9333", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "375", + "population_proper": "375" + }, + { + "city": "Zovashen", + "lat": "40.3117", + "lng": "44.7489", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Kotayk’", + "capital": "", + "population": "374", + "population_proper": "374" + }, + { + "city": "Achanan", + "lat": "39.2347", + "lng": "46.4314", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Syunik’", + "capital": "", + "population": "374", + "population_proper": "374" + }, + { + "city": "Mets Sariar", + "lat": "40.8933", + "lng": "43.9525", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "370", + "population_proper": "370" + }, + { + "city": "Vanevan", + "lat": "40.2000", + "lng": "45.6833", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Geghark’unik’", + "capital": "", + "population": "367", + "population_proper": "367" + }, + { + "city": "Petrovka", + "lat": "41.1500", + "lng": "44.3167", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "365", + "population_proper": "365" + }, + { + "city": "Koghes", + "lat": "40.9875", + "lng": "44.5347", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "365", + "population_proper": "365" + }, + { + "city": "Kaghnut", + "lat": "39.2742", + "lng": "46.5064", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Syunik’", + "capital": "", + "population": "363", + "population_proper": "363" + }, + { + "city": "Urasar", + "lat": "41.0153", + "lng": "44.2800", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "360", + "population_proper": "360" + }, + { + "city": "Tsaghkashat", + "lat": "41.0767", + "lng": "44.7403", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "354", + "population_proper": "354" + }, + { + "city": "Shenkani", + "lat": "40.6428", + "lng": "44.2733", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "351", + "population_proper": "351" + }, + { + "city": "Sarapat", + "lat": "40.9381", + "lng": "44.0411", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "348", + "population_proper": "348" + }, + { + "city": "Jiliza", + "lat": "41.2276", + "lng": "44.6274", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "348", + "population_proper": "348" + }, + { + "city": "Tavrus", + "lat": "39.2956", + "lng": "46.3597", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Syunik’", + "capital": "", + "population": "344", + "population_proper": "344" + }, + { + "city": "Fantan", + "lat": "40.3942", + "lng": "44.6850", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Kotayk’", + "capital": "", + "population": "341", + "population_proper": "341" + }, + { + "city": "Paghakn", + "lat": "41.0667", + "lng": "43.6500", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "341", + "population_proper": "341" + }, + { + "city": "Atan", + "lat": "40.9339", + "lng": "44.8492", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "338", + "population_proper": "338" + }, + { + "city": "Yeghnik", + "lat": "40.4000", + "lng": "43.9500", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "336", + "population_proper": "336" + }, + { + "city": "Tsaghkasar", + "lat": "40.4661", + "lng": "43.8997", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "332", + "population_proper": "332" + }, + { + "city": "Talvorik", + "lat": "40.1167", + "lng": "43.8833", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Armavir", + "capital": "", + "population": "327", + "population_proper": "327" + }, + { + "city": "Ditavan", + "lat": "40.9589", + "lng": "45.2019", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "327", + "population_proper": "327" + }, + { + "city": "Apaven", + "lat": "41.2000", + "lng": "44.3500", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "326", + "population_proper": "326" + }, + { + "city": "Antarrut", + "lat": "40.3500", + "lng": "44.2667", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "326", + "population_proper": "326" + }, + { + "city": "Dzoraglukh", + "lat": "40.5803", + "lng": "44.4853", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "325", + "population_proper": "325" + }, + { + "city": "Gorrgoch’", + "lat": "40.5944", + "lng": "44.6131", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Kotayk’", + "capital": "", + "population": "324", + "population_proper": "324" + }, + { + "city": "Zedea", + "lat": "39.6819", + "lng": "45.3917", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Vayots’ Dzor", + "capital": "", + "population": "324", + "population_proper": "324" + }, + { + "city": "Hovtashen", + "lat": "40.6667", + "lng": "43.9000", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "321", + "population_proper": "321" + }, + { + "city": "Neghots", + "lat": "41.1333", + "lng": "44.7833", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "320", + "population_proper": "320" + }, + { + "city": "Torosgyugh", + "lat": "40.9350", + "lng": "43.8775", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "313", + "population_proper": "313" + }, + { + "city": "Karchevan", + "lat": "38.8964", + "lng": "46.1789", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Syunik’", + "capital": "", + "population": "313", + "population_proper": "313" + }, + { + "city": "Darik", + "lat": "41.1228", + "lng": "43.6731", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "311", + "population_proper": "311" + }, + { + "city": "Itsakar", + "lat": "40.8667", + "lng": "45.3000", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "306", + "population_proper": "306" + }, + { + "city": "Hatsashen", + "lat": "40.4333", + "lng": "43.7667", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "304", + "population_proper": "304" + }, + { + "city": "Dastakert", + "lat": "39.3683", + "lng": "46.0367", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Syunik’", + "capital": "", + "population": "300", + "population_proper": "300" + }, + { + "city": "Kirants", + "lat": "41.0503", + "lng": "45.1014", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "298", + "population_proper": "298" + }, + { + "city": "Bovadzor", + "lat": "41.0367", + "lng": "44.4053", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "297", + "population_proper": "297" + }, + { + "city": "Jradzor", + "lat": "40.9150", + "lng": "43.7719", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "284", + "population_proper": "284" + }, + { + "city": "Aghavnavank", + "lat": "40.7308", + "lng": "45.0933", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "282", + "population_proper": "282" + }, + { + "city": "Vorotan", + "lat": "39.4886", + "lng": "46.1414", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Syunik’", + "capital": "", + "population": "282", + "population_proper": "282" + }, + { + "city": "Noramut", + "lat": "41.1000", + "lng": "44.1167", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "281", + "population_proper": "281" + }, + { + "city": "Sevaberd", + "lat": "40.2775", + "lng": "44.7983", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Kotayk’", + "capital": "", + "population": "280", + "population_proper": "280" + }, + { + "city": "P’ok’r Sariar", + "lat": "40.9292", + "lng": "44.0025", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "278", + "population_proper": "278" + }, + { + "city": "Novoseltsovo", + "lat": "41.0667", + "lng": "44.2667", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "277", + "population_proper": "277" + }, + { + "city": "Aygehat", + "lat": "41.0148", + "lng": "44.6230", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "277", + "population_proper": "277" + }, + { + "city": "Avshen", + "lat": "40.7258", + "lng": "44.2917", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "277", + "population_proper": "277" + }, + { + "city": "Sipan", + "lat": "40.7217", + "lng": "44.2697", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "275", + "population_proper": "275" + }, + { + "city": "Berdik", + "lat": "40.0000", + "lng": "44.5667", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "273", + "population_proper": "273" + }, + { + "city": "Krashen", + "lat": "40.8667", + "lng": "43.9500", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "272", + "population_proper": "272" + }, + { + "city": "Gtashen", + "lat": "40.9189", + "lng": "43.7169", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "268", + "population_proper": "268" + }, + { + "city": "Berdkunk", + "lat": "40.4500", + "lng": "45.0925", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Geghark’unik’", + "capital": "", + "population": "265", + "population_proper": "265" + }, + { + "city": "Arin", + "lat": "39.7272", + "lng": "45.4939", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Vayots’ Dzor", + "capital": "", + "population": "264", + "population_proper": "264" + }, + { + "city": "Garrnarrich", + "lat": "41.0792", + "lng": "43.6022", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "263", + "population_proper": "263" + }, + { + "city": "Sevazhayrr", + "lat": "39.9111", + "lng": "45.4750", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Vayots’ Dzor", + "capital": "", + "population": "259", + "population_proper": "259" + }, + { + "city": "Berdashen", + "lat": "41.0536", + "lng": "43.6689", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "258", + "population_proper": "258" + }, + { + "city": "Blagodarnoye", + "lat": "41.0833", + "lng": "44.1833", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "256", + "population_proper": "256" + }, + { + "city": "Nor Aznaberd", + "lat": "39.5442", + "lng": "45.4167", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Vayots’ Dzor", + "capital": "", + "population": "253", + "population_proper": "253" + }, + { + "city": "Haykasar", + "lat": "40.6050", + "lng": "43.8881", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "252", + "population_proper": "252" + }, + { + "city": "Nerk’in Khotanan", + "lat": "39.2836", + "lng": "46.3778", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Syunik’", + "capital": "", + "population": "251", + "population_proper": "251" + }, + { + "city": "Aghitu", + "lat": "39.5153", + "lng": "46.0808", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Syunik’", + "capital": "", + "population": "247", + "population_proper": "247" + }, + { + "city": "Deghdzavan", + "lat": "41.2333", + "lng": "44.9333", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Tavush", + "capital": "", + "population": "244", + "population_proper": "244" + }, + { + "city": "Surenavan", + "lat": "39.7500", + "lng": "44.8000", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "244", + "population_proper": "244" + }, + { + "city": "Tsaghkut", + "lat": "41.0975", + "lng": "43.6164", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "243", + "population_proper": "243" + }, + { + "city": "Karmravan", + "lat": "41.0128", + "lng": "43.8694", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "242", + "population_proper": "242" + }, + { + "city": "Ahnidzor", + "lat": "40.9100", + "lng": "44.8214", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "240", + "population_proper": "240" + }, + { + "city": "Dzyunashogh", + "lat": "41.1794", + "lng": "44.1811", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Lorri", + "capital": "", + "population": "239", + "population_proper": "239" + }, + { + "city": "Getishen", + "lat": "39.2281", + "lng": "46.1292", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Syunik’", + "capital": "", + "population": "239", + "population_proper": "239" + }, + { + "city": "Vardashat", + "lat": "39.8328", + "lng": "45.0261", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "239", + "population_proper": "239" + }, + { + "city": "Saghmosavan", + "lat": "40.3858", + "lng": "44.3856", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "238", + "population_proper": "238" + }, + { + "city": "Vardahovit", + "lat": "39.8986", + "lng": "45.4836", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Vayots’ Dzor", + "capital": "", + "population": "235", + "population_proper": "235" + }, + { + "city": "Bandivan", + "lat": "40.9561", + "lng": "43.8031", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Shirak", + "capital": "", + "population": "232", + "population_proper": "232" + }, + { + "city": "Lanjanisti Gomategh", + "lat": "39.8667", + "lng": "44.9500", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Ararat", + "capital": "", + "population": "230", + "population_proper": "230" + }, + { + "city": "Hako", + "lat": "40.3811", + "lng": "43.6994", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Aragatsotn", + "capital": "", + "population": "229", + "population_proper": "229" + }, + { + "city": "Nerk’in Khndzoresk", + "lat": "39.5061", + "lng": "46.4961", + "country": "Armenia", + "iso2": "AM", + "admin_name": "Syunik’", + "capital": "", + "population": "225", + "population_proper": "225" + } +] \ No newline at end of file diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000..e69de29 diff --git a/public/index.php b/public/index.php new file mode 100644 index 0000000..1d69f3a --- /dev/null +++ b/public/index.php @@ -0,0 +1,55 @@ +make(Kernel::class); + +$response = $kernel->handle( + $request = Request::capture() +)->send(); + +$kernel->terminate($request, $response); diff --git a/public/robots.txt b/public/robots.txt new file mode 100644 index 0000000..eb05362 --- /dev/null +++ b/public/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Disallow: diff --git a/resources/css/app.css b/resources/css/app.css new file mode 100644 index 0000000..e69de29 diff --git a/resources/js/app.js b/resources/js/app.js new file mode 100644 index 0000000..40c55f6 --- /dev/null +++ b/resources/js/app.js @@ -0,0 +1 @@ +require('./bootstrap'); diff --git a/resources/js/bootstrap.js b/resources/js/bootstrap.js new file mode 100644 index 0000000..6922577 --- /dev/null +++ b/resources/js/bootstrap.js @@ -0,0 +1,28 @@ +window._ = require('lodash'); + +/** + * We'll load the axios HTTP library which allows us to easily issue requests + * to our Laravel back-end. This library automatically handles sending the + * CSRF token as a header based on the value of the "XSRF" token cookie. + */ + +window.axios = require('axios'); + +window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest'; + +/** + * Echo exposes an expressive API for subscribing to channels and listening + * for events that are broadcast by Laravel. Echo and event broadcasting + * allows your team to easily build robust real-time web applications. + */ + +// import Echo from 'laravel-echo'; + +// window.Pusher = require('pusher-js'); + +// window.Echo = new Echo({ +// broadcaster: 'pusher', +// key: process.env.MIX_PUSHER_APP_KEY, +// cluster: process.env.MIX_PUSHER_APP_CLUSTER, +// forceTLS: true +// }); diff --git a/resources/lang/en/auth.php b/resources/lang/en/auth.php new file mode 100644 index 0000000..6598e2c --- /dev/null +++ b/resources/lang/en/auth.php @@ -0,0 +1,20 @@ + 'These credentials do not match our records.', + 'password' => 'The provided password is incorrect.', + 'throttle' => 'Too many login attempts. Please try again in :seconds seconds.', + +]; diff --git a/resources/lang/en/pagination.php b/resources/lang/en/pagination.php new file mode 100644 index 0000000..d481411 --- /dev/null +++ b/resources/lang/en/pagination.php @@ -0,0 +1,19 @@ + '« Previous', + 'next' => 'Next »', + +]; diff --git a/resources/lang/en/passwords.php b/resources/lang/en/passwords.php new file mode 100644 index 0000000..2345a56 --- /dev/null +++ b/resources/lang/en/passwords.php @@ -0,0 +1,22 @@ + 'Your password has been reset!', + 'sent' => 'We have emailed your password reset link!', + 'throttled' => 'Please wait before retrying.', + 'token' => 'This password reset token is invalid.', + 'user' => "We can't find a user with that email address.", + +]; diff --git a/resources/lang/en/validation.php b/resources/lang/en/validation.php new file mode 100644 index 0000000..783003c --- /dev/null +++ b/resources/lang/en/validation.php @@ -0,0 +1,163 @@ + 'The :attribute must be accepted.', + 'accepted_if' => 'The :attribute must be accepted when :other is :value.', + 'active_url' => 'The :attribute is not a valid URL.', + 'after' => 'The :attribute must be a date after :date.', + 'after_or_equal' => 'The :attribute must be a date after or equal to :date.', + 'alpha' => 'The :attribute must only contain letters.', + 'alpha_dash' => 'The :attribute must only contain letters, numbers, dashes and underscores.', + 'alpha_num' => 'The :attribute must only contain letters and numbers.', + 'array' => 'The :attribute must be an array.', + 'before' => 'The :attribute must be a date before :date.', + 'before_or_equal' => 'The :attribute must be a date before or equal to :date.', + 'between' => [ + 'numeric' => 'The :attribute must be between :min and :max.', + 'file' => 'The :attribute must be between :min and :max kilobytes.', + 'string' => 'The :attribute must be between :min and :max characters.', + 'array' => 'The :attribute must have between :min and :max items.', + ], + 'boolean' => 'The :attribute field must be true or false.', + 'confirmed' => 'The :attribute confirmation does not match.', + 'current_password' => 'The password is incorrect.', + 'date' => 'The :attribute is not a valid date.', + 'date_equals' => 'The :attribute must be a date equal to :date.', + 'date_format' => 'The :attribute does not match the format :format.', + 'declined' => 'The :attribute must be declined.', + 'declined_if' => 'The :attribute must be declined when :other is :value.', + 'different' => 'The :attribute and :other must be different.', + 'digits' => 'The :attribute must be :digits digits.', + 'digits_between' => 'The :attribute must be between :min and :max digits.', + 'dimensions' => 'The :attribute has invalid image dimensions.', + 'distinct' => 'The :attribute field has a duplicate value.', + 'email' => 'The :attribute must be a valid email address.', + 'ends_with' => 'The :attribute must end with one of the following: :values.', + 'enum' => 'The selected :attribute is invalid.', + 'exists' => 'The selected :attribute is invalid.', + 'file' => 'The :attribute must be a file.', + 'filled' => 'The :attribute field must have a value.', + 'gt' => [ + 'numeric' => 'The :attribute must be greater than :value.', + 'file' => 'The :attribute must be greater than :value kilobytes.', + 'string' => 'The :attribute must be greater than :value characters.', + 'array' => 'The :attribute must have more than :value items.', + ], + 'gte' => [ + 'numeric' => 'The :attribute must be greater than or equal to :value.', + 'file' => 'The :attribute must be greater than or equal to :value kilobytes.', + 'string' => 'The :attribute must be greater than or equal to :value characters.', + 'array' => 'The :attribute must have :value items or more.', + ], + 'image' => 'The :attribute must be an image.', + 'in' => 'The selected :attribute is invalid.', + 'in_array' => 'The :attribute field does not exist in :other.', + 'integer' => 'The :attribute must be an integer.', + 'ip' => 'The :attribute must be a valid IP address.', + 'ipv4' => 'The :attribute must be a valid IPv4 address.', + 'ipv6' => 'The :attribute must be a valid IPv6 address.', + 'json' => 'The :attribute must be a valid JSON string.', + 'lt' => [ + 'numeric' => 'The :attribute must be less than :value.', + 'file' => 'The :attribute must be less than :value kilobytes.', + 'string' => 'The :attribute must be less than :value characters.', + 'array' => 'The :attribute must have less than :value items.', + ], + 'lte' => [ + 'numeric' => 'The :attribute must be less than or equal to :value.', + 'file' => 'The :attribute must be less than or equal to :value kilobytes.', + 'string' => 'The :attribute must be less than or equal to :value characters.', + 'array' => 'The :attribute must not have more than :value items.', + ], + 'mac_address' => 'The :attribute must be a valid MAC address.', + 'max' => [ + 'numeric' => 'The :attribute must not be greater than :max.', + 'file' => 'The :attribute must not be greater than :max kilobytes.', + 'string' => 'The :attribute must not be greater than :max characters.', + 'array' => 'The :attribute must not have more than :max items.', + ], + 'mimes' => 'The :attribute must be a file of type: :values.', + 'mimetypes' => 'The :attribute must be a file of type: :values.', + 'min' => [ + 'numeric' => 'The :attribute must be at least :min.', + 'file' => 'The :attribute must be at least :min kilobytes.', + 'string' => 'The :attribute must be at least :min characters.', + 'array' => 'The :attribute must have at least :min items.', + ], + 'multiple_of' => 'The :attribute must be a multiple of :value.', + 'not_in' => 'The selected :attribute is invalid.', + 'not_regex' => 'The :attribute format is invalid.', + 'numeric' => 'The :attribute must be a number.', + 'password' => 'The password is incorrect.', + 'present' => 'The :attribute field must be present.', + 'prohibited' => 'The :attribute field is prohibited.', + 'prohibited_if' => 'The :attribute field is prohibited when :other is :value.', + 'prohibited_unless' => 'The :attribute field is prohibited unless :other is in :values.', + 'prohibits' => 'The :attribute field prohibits :other from being present.', + 'regex' => 'The :attribute format is invalid.', + 'required' => 'The :attribute field is required.', + 'required_array_keys' => 'The :attribute field must contain entries for: :values.', + 'required_if' => 'The :attribute field is required when :other is :value.', + 'required_unless' => 'The :attribute field is required unless :other is in :values.', + 'required_with' => 'The :attribute field is required when :values is present.', + 'required_with_all' => 'The :attribute field is required when :values are present.', + 'required_without' => 'The :attribute field is required when :values is not present.', + 'required_without_all' => 'The :attribute field is required when none of :values are present.', + 'same' => 'The :attribute and :other must match.', + 'size' => [ + 'numeric' => 'The :attribute must be :size.', + 'file' => 'The :attribute must be :size kilobytes.', + 'string' => 'The :attribute must be :size characters.', + 'array' => 'The :attribute must contain :size items.', + ], + 'starts_with' => 'The :attribute must start with one of the following: :values.', + 'string' => 'The :attribute must be a string.', + 'timezone' => 'The :attribute must be a valid timezone.', + 'unique' => 'The :attribute has already been taken.', + 'uploaded' => 'The :attribute failed to upload.', + 'url' => 'The :attribute must be a valid URL.', + 'uuid' => 'The :attribute must be a valid UUID.', + + /* + |-------------------------------------------------------------------------- + | Custom Validation Language Lines + |-------------------------------------------------------------------------- + | + | Here you may specify custom validation messages for attributes using the + | convention "attribute.rule" to name the lines. This makes it quick to + | specify a specific custom language line for a given attribute rule. + | + */ + + 'custom' => [ + 'attribute-name' => [ + 'rule-name' => 'custom-message', + ], + ], + + /* + |-------------------------------------------------------------------------- + | Custom Validation Attributes + |-------------------------------------------------------------------------- + | + | The following language lines are used to swap our attribute placeholder + | with something more reader friendly such as "E-Mail Address" instead + | of "email". This simply helps us make our message more expressive. + | + */ + + 'attributes' => [], + +]; diff --git a/resources/views/errors/401.blade.php b/resources/views/errors/401.blade.php new file mode 100644 index 0000000..5c586db --- /dev/null +++ b/resources/views/errors/401.blade.php @@ -0,0 +1,5 @@ +@extends('errors::minimal') + +@section('title', __('Unauthorized')) +@section('code', '401') +@section('message', __('Unauthorized')) diff --git a/resources/views/errors/403.blade.php b/resources/views/errors/403.blade.php new file mode 100644 index 0000000..a5506f0 --- /dev/null +++ b/resources/views/errors/403.blade.php @@ -0,0 +1,5 @@ +@extends('errors::minimal') + +@section('title', __('Forbidden')) +@section('code', '403') +@section('message', __($exception->getMessage() ?: 'Forbidden')) diff --git a/resources/views/errors/404.blade.php b/resources/views/errors/404.blade.php new file mode 100644 index 0000000..7549540 --- /dev/null +++ b/resources/views/errors/404.blade.php @@ -0,0 +1,5 @@ +@extends('errors::minimal') + +@section('title', __('Not Found')) +@section('code', '404') +@section('message', __('Not Found')) diff --git a/resources/views/errors/419.blade.php b/resources/views/errors/419.blade.php new file mode 100644 index 0000000..c09216e --- /dev/null +++ b/resources/views/errors/419.blade.php @@ -0,0 +1,5 @@ +@extends('errors::minimal') + +@section('title', __('Page Expired')) +@section('code', '419') +@section('message', __('Page Expired')) diff --git a/resources/views/errors/429.blade.php b/resources/views/errors/429.blade.php new file mode 100644 index 0000000..f01b07b --- /dev/null +++ b/resources/views/errors/429.blade.php @@ -0,0 +1,5 @@ +@extends('errors::minimal') + +@section('title', __('Too Many Requests')) +@section('code', '429') +@section('message', __('Too Many Requests')) diff --git a/resources/views/errors/500.blade.php b/resources/views/errors/500.blade.php new file mode 100644 index 0000000..d9e95d9 --- /dev/null +++ b/resources/views/errors/500.blade.php @@ -0,0 +1,5 @@ +@extends('errors::minimal') + +@section('title', __('Server Error')) +@section('code', '500') +@section('message', __('Server Error')) diff --git a/resources/views/errors/503.blade.php b/resources/views/errors/503.blade.php new file mode 100644 index 0000000..c5a9dde --- /dev/null +++ b/resources/views/errors/503.blade.php @@ -0,0 +1,5 @@ +@extends('errors::minimal') + +@section('title', __('Service Unavailable')) +@section('code', '503') +@section('message', __('Service Unavailable')) diff --git a/resources/views/errors/illustrated-layout.blade.php b/resources/views/errors/illustrated-layout.blade.php new file mode 100644 index 0000000..2e5b824 --- /dev/null +++ b/resources/views/errors/illustrated-layout.blade.php @@ -0,0 +1,486 @@ + + + + + + + @yield('title') + + + + + + + + + +
+
+
+
+ @yield('code', __('Oh no')) +
+ +
+ +

+ @yield('message') +

+ + + + +
+
+ +
+ @yield('image') +
+
+ + diff --git a/resources/views/errors/layout.blade.php b/resources/views/errors/layout.blade.php new file mode 100644 index 0000000..4f2318f --- /dev/null +++ b/resources/views/errors/layout.blade.php @@ -0,0 +1,57 @@ + + + + + + + @yield('title') + + + + + + + + + +
+
+
+ @yield('message') +
+
+
+ + diff --git a/resources/views/errors/minimal.blade.php b/resources/views/errors/minimal.blade.php new file mode 100644 index 0000000..ee16d44 --- /dev/null +++ b/resources/views/errors/minimal.blade.php @@ -0,0 +1,38 @@ + + + + + + + @yield('title') + + + + + + + + + + +
+
+
+
+ @yield('code') +
+ +
+ @yield('message') +
+
+
+
+ + diff --git a/resources/views/vendor/mail/html/button.blade.php b/resources/views/vendor/mail/html/button.blade.php new file mode 100644 index 0000000..e74fe55 --- /dev/null +++ b/resources/views/vendor/mail/html/button.blade.php @@ -0,0 +1,19 @@ + + + + + diff --git a/resources/views/vendor/mail/html/footer.blade.php b/resources/views/vendor/mail/html/footer.blade.php new file mode 100644 index 0000000..3ff41f8 --- /dev/null +++ b/resources/views/vendor/mail/html/footer.blade.php @@ -0,0 +1,11 @@ + + + + + + + + + diff --git a/resources/views/vendor/mail/html/header.blade.php b/resources/views/vendor/mail/html/header.blade.php new file mode 100644 index 0000000..fa1875c --- /dev/null +++ b/resources/views/vendor/mail/html/header.blade.php @@ -0,0 +1,11 @@ + + + +@if (trim($slot) === 'Laravel') + +@else +{{ $slot }} +@endif + + + diff --git a/resources/views/vendor/mail/html/layout.blade.php b/resources/views/vendor/mail/html/layout.blade.php new file mode 100644 index 0000000..21d349b --- /dev/null +++ b/resources/views/vendor/mail/html/layout.blade.php @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + diff --git a/resources/views/vendor/mail/html/message.blade.php b/resources/views/vendor/mail/html/message.blade.php new file mode 100644 index 0000000..deec4a1 --- /dev/null +++ b/resources/views/vendor/mail/html/message.blade.php @@ -0,0 +1,27 @@ +@component('mail::layout') +{{-- Header --}} +@slot('header') +@component('mail::header', ['url' => config('app.url')]) +{{ config('app.name') }} +@endcomponent +@endslot + +{{-- Body --}} +{{ $slot }} + +{{-- Subcopy --}} +@isset($subcopy) +@slot('subcopy') +@component('mail::subcopy') +{{ $subcopy }} +@endcomponent +@endslot +@endisset + +{{-- Footer --}} +@slot('footer') +@component('mail::footer') +© {{ date('Y') }} {{ config('app.name') }}. @lang('All rights reserved.') +@endcomponent +@endslot +@endcomponent diff --git a/resources/views/vendor/mail/html/panel.blade.php b/resources/views/vendor/mail/html/panel.blade.php new file mode 100644 index 0000000..2975a60 --- /dev/null +++ b/resources/views/vendor/mail/html/panel.blade.php @@ -0,0 +1,14 @@ + + + + + + diff --git a/resources/views/vendor/mail/html/subcopy.blade.php b/resources/views/vendor/mail/html/subcopy.blade.php new file mode 100644 index 0000000..790ce6c --- /dev/null +++ b/resources/views/vendor/mail/html/subcopy.blade.php @@ -0,0 +1,7 @@ + + + + + diff --git a/resources/views/vendor/mail/html/table.blade.php b/resources/views/vendor/mail/html/table.blade.php new file mode 100644 index 0000000..a5f3348 --- /dev/null +++ b/resources/views/vendor/mail/html/table.blade.php @@ -0,0 +1,3 @@ +
+{{ Illuminate\Mail\Markdown::parse($slot) }} +
diff --git a/resources/views/vendor/mail/html/themes/default.css b/resources/views/vendor/mail/html/themes/default.css new file mode 100644 index 0000000..2483b11 --- /dev/null +++ b/resources/views/vendor/mail/html/themes/default.css @@ -0,0 +1,290 @@ +/* Base */ + +body, +body *:not(html):not(style):not(br):not(tr):not(code) { + box-sizing: border-box; + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, + 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; + position: relative; +} + +body { + -webkit-text-size-adjust: none; + background-color: #ffffff; + color: #718096; + height: 100%; + line-height: 1.4; + margin: 0; + padding: 0; + width: 100% !important; +} + +p, +ul, +ol, +blockquote { + line-height: 1.4; + text-align: left; +} + +a { + color: #3869d4; +} + +a img { + border: none; +} + +/* Typography */ + +h1 { + color: #3d4852; + font-size: 18px; + font-weight: bold; + margin-top: 0; + text-align: left; +} + +h2 { + font-size: 16px; + font-weight: bold; + margin-top: 0; + text-align: left; +} + +h3 { + font-size: 14px; + font-weight: bold; + margin-top: 0; + text-align: left; +} + +p { + font-size: 16px; + line-height: 1.5em; + margin-top: 0; + text-align: left; +} + +p.sub { + font-size: 12px; +} + +img { + max-width: 100%; +} + +/* Layout */ + +.wrapper { + -premailer-cellpadding: 0; + -premailer-cellspacing: 0; + -premailer-width: 100%; + background-color: #edf2f7; + margin: 0; + padding: 0; + width: 100%; +} + +.content { + -premailer-cellpadding: 0; + -premailer-cellspacing: 0; + -premailer-width: 100%; + margin: 0; + padding: 0; + width: 100%; +} + +/* Header */ + +.header { + padding: 25px 0; + text-align: center; +} + +.header a { + color: #3d4852; + font-size: 19px; + font-weight: bold; + text-decoration: none; +} + +/* Logo */ + +.logo { + height: 75px; + max-height: 75px; + width: 75px; +} + +/* Body */ + +.body { + -premailer-cellpadding: 0; + -premailer-cellspacing: 0; + -premailer-width: 100%; + background-color: #edf2f7; + border-bottom: 1px solid #edf2f7; + border-top: 1px solid #edf2f7; + margin: 0; + padding: 0; + width: 100%; +} + +.inner-body { + -premailer-cellpadding: 0; + -premailer-cellspacing: 0; + -premailer-width: 570px; + background-color: #ffffff; + border-color: #e8e5ef; + border-radius: 2px; + border-width: 1px; + box-shadow: 0 2px 0 rgba(0, 0, 150, 0.025), 2px 4px 0 rgba(0, 0, 150, 0.015); + margin: 0 auto; + padding: 0; + width: 570px; +} + +/* Subcopy */ + +.subcopy { + border-top: 1px solid #e8e5ef; + margin-top: 25px; + padding-top: 25px; +} + +.subcopy p { + font-size: 14px; +} + +/* Footer */ + +.footer { + -premailer-cellpadding: 0; + -premailer-cellspacing: 0; + -premailer-width: 570px; + margin: 0 auto; + padding: 0; + text-align: center; + width: 570px; +} + +.footer p { + color: #b0adc5; + font-size: 12px; + text-align: center; +} + +.footer a { + color: #b0adc5; + text-decoration: underline; +} + +/* Tables */ + +.table table { + -premailer-cellpadding: 0; + -premailer-cellspacing: 0; + -premailer-width: 100%; + margin: 30px auto; + width: 100%; +} + +.table th { + border-bottom: 1px solid #edeff2; + margin: 0; + padding-bottom: 8px; +} + +.table td { + color: #74787e; + font-size: 15px; + line-height: 18px; + margin: 0; + padding: 10px 0; +} + +.content-cell { + max-width: 100vw; + padding: 32px; +} + +/* Buttons */ + +.action { + -premailer-cellpadding: 0; + -premailer-cellspacing: 0; + -premailer-width: 100%; + margin: 30px auto; + padding: 0; + text-align: center; + width: 100%; +} + +.button { + -webkit-text-size-adjust: none; + border-radius: 4px; + color: #fff; + display: inline-block; + overflow: hidden; + text-decoration: none; +} + +.button-blue, +.button-primary { + background-color: #2d3748; + border-bottom: 8px solid #2d3748; + border-left: 18px solid #2d3748; + border-right: 18px solid #2d3748; + border-top: 8px solid #2d3748; +} + +.button-green, +.button-success { + background-color: #48bb78; + border-bottom: 8px solid #48bb78; + border-left: 18px solid #48bb78; + border-right: 18px solid #48bb78; + border-top: 8px solid #48bb78; +} + +.button-red, +.button-error { + background-color: #e53e3e; + border-bottom: 8px solid #e53e3e; + border-left: 18px solid #e53e3e; + border-right: 18px solid #e53e3e; + border-top: 8px solid #e53e3e; +} + +/* Panels */ + +.panel { + border-left: #2d3748 solid 4px; + margin: 21px 0; +} + +.panel-content { + background-color: #edf2f7; + color: #718096; + padding: 16px; +} + +.panel-content p { + color: #718096; +} + +.panel-item { + padding: 0; +} + +.panel-item p:last-of-type { + margin-bottom: 0; + padding-bottom: 0; +} + +/* Utilities */ + +.break-all { + word-break: break-all; +} diff --git a/resources/views/vendor/mail/text/button.blade.php b/resources/views/vendor/mail/text/button.blade.php new file mode 100644 index 0000000..97444eb --- /dev/null +++ b/resources/views/vendor/mail/text/button.blade.php @@ -0,0 +1 @@ +{{ $slot }}: {{ $url }} diff --git a/resources/views/vendor/mail/text/footer.blade.php b/resources/views/vendor/mail/text/footer.blade.php new file mode 100644 index 0000000..3338f62 --- /dev/null +++ b/resources/views/vendor/mail/text/footer.blade.php @@ -0,0 +1 @@ +{{ $slot }} diff --git a/resources/views/vendor/mail/text/header.blade.php b/resources/views/vendor/mail/text/header.blade.php new file mode 100644 index 0000000..aaa3e57 --- /dev/null +++ b/resources/views/vendor/mail/text/header.blade.php @@ -0,0 +1 @@ +[{{ $slot }}]({{ $url }}) diff --git a/resources/views/vendor/mail/text/layout.blade.php b/resources/views/vendor/mail/text/layout.blade.php new file mode 100644 index 0000000..9378baa --- /dev/null +++ b/resources/views/vendor/mail/text/layout.blade.php @@ -0,0 +1,9 @@ +{!! strip_tags($header) !!} + +{!! strip_tags($slot) !!} +@isset($subcopy) + +{!! strip_tags($subcopy) !!} +@endisset + +{!! strip_tags($footer) !!} diff --git a/resources/views/vendor/mail/text/message.blade.php b/resources/views/vendor/mail/text/message.blade.php new file mode 100644 index 0000000..1ae9ed8 --- /dev/null +++ b/resources/views/vendor/mail/text/message.blade.php @@ -0,0 +1,27 @@ +@component('mail::layout') + {{-- Header --}} + @slot('header') + @component('mail::header', ['url' => config('app.url')]) + {{ config('app.name') }} + @endcomponent + @endslot + + {{-- Body --}} + {{ $slot }} + + {{-- Subcopy --}} + @isset($subcopy) + @slot('subcopy') + @component('mail::subcopy') + {{ $subcopy }} + @endcomponent + @endslot + @endisset + + {{-- Footer --}} + @slot('footer') + @component('mail::footer') + © {{ date('Y') }} {{ config('app.name') }}. @lang('All rights reserved.') + @endcomponent + @endslot +@endcomponent diff --git a/resources/views/vendor/mail/text/panel.blade.php b/resources/views/vendor/mail/text/panel.blade.php new file mode 100644 index 0000000..3338f62 --- /dev/null +++ b/resources/views/vendor/mail/text/panel.blade.php @@ -0,0 +1 @@ +{{ $slot }} diff --git a/resources/views/vendor/mail/text/subcopy.blade.php b/resources/views/vendor/mail/text/subcopy.blade.php new file mode 100644 index 0000000..3338f62 --- /dev/null +++ b/resources/views/vendor/mail/text/subcopy.blade.php @@ -0,0 +1 @@ +{{ $slot }} diff --git a/resources/views/vendor/mail/text/table.blade.php b/resources/views/vendor/mail/text/table.blade.php new file mode 100644 index 0000000..3338f62 --- /dev/null +++ b/resources/views/vendor/mail/text/table.blade.php @@ -0,0 +1 @@ +{{ $slot }} diff --git a/resources/views/vendor/notifications/email.blade.php b/resources/views/vendor/notifications/email.blade.php new file mode 100644 index 0000000..bcf39f0 --- /dev/null +++ b/resources/views/vendor/notifications/email.blade.php @@ -0,0 +1,62 @@ +@component('mail::message') +{{-- Greeting --}} +@if (! empty($greeting)) +# {{ $greeting }} +@else +@if ($level === 'error') +# @lang('Whoops!') +@else +# @lang('Hello!') +@endif +@endif + +{{-- Intro Lines --}} +@foreach ($introLines as $line) +{{ $line }} + +@endforeach + +{{-- Action Button --}} +@isset($actionText) + +@component('mail::button', ['url' => $actionUrl, 'color' => $color]) +{{ $actionText }} +@endcomponent +@endisset + +{{-- Outro Lines --}} +@foreach ($outroLines as $line) +{{ $line }} + +@endforeach + +{{-- Salutation --}} +@if (! empty($salutation)) +{{ $salutation }} +@else +@lang('Regards'),
+{{ config('app.name') }} +@endif + +{{-- Subcopy --}} +@isset($actionText) +@slot('subcopy') +@lang( + "If you're having trouble clicking the \":actionText\" button, copy and paste the URL below\n". + 'into your web browser:', + [ + 'actionText' => $actionText, + ] +) [{{ $displayableActionUrl }}]({{ $actionUrl }}) +@endslot +@endisset +@endcomponent diff --git a/resources/views/vendor/pagination/bootstrap-4.blade.php b/resources/views/vendor/pagination/bootstrap-4.blade.php new file mode 100644 index 0000000..63c6f56 --- /dev/null +++ b/resources/views/vendor/pagination/bootstrap-4.blade.php @@ -0,0 +1,46 @@ +@if ($paginator->hasPages()) + +@endif diff --git a/resources/views/vendor/pagination/default.blade.php b/resources/views/vendor/pagination/default.blade.php new file mode 100644 index 0000000..0db70b5 --- /dev/null +++ b/resources/views/vendor/pagination/default.blade.php @@ -0,0 +1,46 @@ +@if ($paginator->hasPages()) + +@endif diff --git a/resources/views/vendor/pagination/semantic-ui.blade.php b/resources/views/vendor/pagination/semantic-ui.blade.php new file mode 100644 index 0000000..ef0dbb1 --- /dev/null +++ b/resources/views/vendor/pagination/semantic-ui.blade.php @@ -0,0 +1,36 @@ +@if ($paginator->hasPages()) + +@endif diff --git a/resources/views/vendor/pagination/simple-bootstrap-4.blade.php b/resources/views/vendor/pagination/simple-bootstrap-4.blade.php new file mode 100644 index 0000000..4bb4917 --- /dev/null +++ b/resources/views/vendor/pagination/simple-bootstrap-4.blade.php @@ -0,0 +1,27 @@ +@if ($paginator->hasPages()) + +@endif diff --git a/resources/views/vendor/pagination/simple-default.blade.php b/resources/views/vendor/pagination/simple-default.blade.php new file mode 100644 index 0000000..36bdbc1 --- /dev/null +++ b/resources/views/vendor/pagination/simple-default.blade.php @@ -0,0 +1,19 @@ +@if ($paginator->hasPages()) + +@endif diff --git a/resources/views/vendor/pagination/simple-tailwind.blade.php b/resources/views/vendor/pagination/simple-tailwind.blade.php new file mode 100644 index 0000000..6872cca --- /dev/null +++ b/resources/views/vendor/pagination/simple-tailwind.blade.php @@ -0,0 +1,25 @@ +@if ($paginator->hasPages()) + +@endif diff --git a/resources/views/vendor/pagination/tailwind.blade.php b/resources/views/vendor/pagination/tailwind.blade.php new file mode 100644 index 0000000..5bf323b --- /dev/null +++ b/resources/views/vendor/pagination/tailwind.blade.php @@ -0,0 +1,106 @@ +@if ($paginator->hasPages()) + +@endif diff --git a/resources/views/welcome.blade.php b/resources/views/welcome.blade.php new file mode 100644 index 0000000..dd6a45d --- /dev/null +++ b/resources/views/welcome.blade.php @@ -0,0 +1,132 @@ + + + + + + + Laravel + + + + + + + + + + +
+ @if (Route::has('login')) + + @endif + +
+
+ + + + + +
+ +
+
+
+ + +
+
+ Laravel has wonderful, thorough documentation covering every aspect of the framework. Whether you are new to the framework or have previous experience with Laravel, we recommend reading all of the documentation from beginning to end. +
+
+
+ +
+
+ + +
+ +
+
+ Laracasts offers thousands of video tutorials on Laravel, PHP, and JavaScript development. Check them out, see for yourself, and massively level up your development skills in the process. +
+
+
+ +
+
+ + +
+ +
+
+ Laravel News is a community driven portal and newsletter aggregating all of the latest and most important news in the Laravel ecosystem, including new package releases and tutorials. +
+
+
+ +
+
+ +
Vibrant Ecosystem
+
+ +
+
+ Laravel's robust library of first-party tools and libraries, such as Forge, Vapor, Nova, and Envoyer help you take your projects to the next level. Pair them with powerful open source libraries like Cashier, Dusk, Echo, Horizon, Sanctum, Telescope, and more. +
+
+
+
+
+ +
+
+
+ + + + + + Shop + + + + + + + + Sponsor + +
+
+ +
+ Laravel v{{ Illuminate\Foundation\Application::VERSION }} (PHP v{{ PHP_VERSION }}) +
+
+
+
+ + diff --git a/routes/api.php b/routes/api.php new file mode 100644 index 0000000..ecefc06 --- /dev/null +++ b/routes/api.php @@ -0,0 +1,10 @@ +id === (int) $id; +}); diff --git a/routes/console.php b/routes/console.php new file mode 100644 index 0000000..e05f4c9 --- /dev/null +++ b/routes/console.php @@ -0,0 +1,19 @@ +comment(Inspiring::quote()); +})->purpose('Display an inspiring quote'); diff --git a/routes/web.php b/routes/web.php new file mode 100644 index 0000000..cd03e5b --- /dev/null +++ b/routes/web.php @@ -0,0 +1,12 @@ + + */ + +$uri = urldecode( + parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH) ?? '' +); + +// This file allows us to emulate Apache's "mod_rewrite" functionality from the +// built-in PHP web server. This provides a convenient way to test a Laravel +// application without having installed a "real" web server software here. +if ($uri !== '/' && file_exists(__DIR__.'/public'.$uri)) { + return false; +} + +require_once __DIR__.'/public/index.php'; diff --git a/storage/app/.gitignore b/storage/app/.gitignore new file mode 100644 index 0000000..8f4803c --- /dev/null +++ b/storage/app/.gitignore @@ -0,0 +1,3 @@ +* +!public/ +!.gitignore diff --git a/storage/app/public/.gitignore b/storage/app/public/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/storage/app/public/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/storage/framework/.gitignore b/storage/framework/.gitignore new file mode 100644 index 0000000..05c4471 --- /dev/null +++ b/storage/framework/.gitignore @@ -0,0 +1,9 @@ +compiled.php +config.php +down +events.scanned.php +maintenance.php +routes.php +routes.scanned.php +schedule-* +services.json diff --git a/storage/framework/cache/.gitignore b/storage/framework/cache/.gitignore new file mode 100644 index 0000000..01e4a6c --- /dev/null +++ b/storage/framework/cache/.gitignore @@ -0,0 +1,3 @@ +* +!data/ +!.gitignore diff --git a/storage/framework/cache/data/.gitignore b/storage/framework/cache/data/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/storage/framework/cache/data/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/storage/framework/sessions/.gitignore b/storage/framework/sessions/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/storage/framework/sessions/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/storage/framework/testing/.gitignore b/storage/framework/testing/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/storage/framework/testing/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/storage/framework/views/.gitignore b/storage/framework/views/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/storage/framework/views/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/storage/logs/.gitignore b/storage/logs/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/storage/logs/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/tests/CreatesApplication.php b/tests/CreatesApplication.php new file mode 100644 index 0000000..547152f --- /dev/null +++ b/tests/CreatesApplication.php @@ -0,0 +1,22 @@ +make(Kernel::class)->bootstrap(); + + return $app; + } +} diff --git a/tests/Feature/ExampleTest.php b/tests/Feature/ExampleTest.php new file mode 100644 index 0000000..4ae02bc --- /dev/null +++ b/tests/Feature/ExampleTest.php @@ -0,0 +1,21 @@ +get('/'); + + $response->assertStatus(200); + } +} diff --git a/tests/TestCase.php b/tests/TestCase.php new file mode 100644 index 0000000..2932d4a --- /dev/null +++ b/tests/TestCase.php @@ -0,0 +1,10 @@ +assertTrue(true); + } +} diff --git a/webpack.mix.js b/webpack.mix.js new file mode 100644 index 0000000..2a22dc1 --- /dev/null +++ b/webpack.mix.js @@ -0,0 +1,17 @@ +const mix = require('laravel-mix'); + +/* + |-------------------------------------------------------------------------- + | Mix Asset Management + |-------------------------------------------------------------------------- + | + | Mix provides a clean, fluent API for defining some Webpack build steps + | for your Laravel applications. By default, we are compiling the CSS + | file for the application as well as bundling up all the JS files. + | + */ + +mix.js('resources/js/app.js', 'public/js') + .postCss('resources/css/app.css', 'public/css', [ + // + ]);