From 0c650ee7ee404ad3266e3023f8fdf29d6f065701 Mon Sep 17 00:00:00 2001 From: Sebastian Sulinski Date: Mon, 4 Dec 2017 21:38:18 +0000 Subject: [PATCH 1/6] Re-formatted code. Removed redundancies. Added tests --- .gitignore | 3 + composer.json | 21 +- composer.lock | 3511 +++++++++++++++++ phpunit.xml | 27 + src/Webpatser/Countries/Countries.php | 172 +- src/Webpatser/Countries/CountriesFacade.php | 13 +- .../Countries/CountriesServiceProvider.php | 54 +- src/Webpatser/Countries/MigrationCommand.php | 140 + src/Webpatser/Countries/Models/countries.json | 1494 +++---- src/commands/MigrationCommand.php | 147 - src/config/config.php | 20 +- src/views/generators/char_migration.blade.php | 38 - src/views/generators/migration.blade.php | 83 +- src/views/generators/seeder.blade.php | 57 +- tests/BaseCase.php | 20 + tests/CountriesTest.php | 151 + 16 files changed, 4803 insertions(+), 1148 deletions(-) create mode 100644 .gitignore create mode 100644 composer.lock create mode 100644 phpunit.xml create mode 100644 src/Webpatser/Countries/MigrationCommand.php delete mode 100644 src/commands/MigrationCommand.php delete mode 100644 src/views/generators/char_migration.blade.php create mode 100644 tests/BaseCase.php create mode 100644 tests/CountriesTest.php diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ae8cd6e --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +.idea/ +.DS_Store +vendor/ \ No newline at end of file diff --git a/composer.json b/composer.json index 9c3a288..ef9e7fc 100644 --- a/composer.json +++ b/composer.json @@ -22,15 +22,17 @@ "MIT" ], "require" : { - "php" : ">=5.3.0" + "php" : ">=7.1" }, "autoload" : { - "psr-0" : { - "Webpatser\\Countries" : "src/" - }, - "classmap" : [ - "src/commands" - ] + "psr-4" : { + "Webpatser\\Countries\\" : "src/" + } + }, + "autoload-dev": { + "psr-4": { + "Tests\\": "tests/" + } }, "minimum-stability" : "dev", "support" : { @@ -46,5 +48,8 @@ "Countries": "Webpatser\\Countries\\CountriesFacade" } } - } + }, + "require-dev": { + "orchestra/testbench": "~3.3" + } } diff --git a/composer.lock b/composer.lock new file mode 100644 index 0000000..8b876a5 --- /dev/null +++ b/composer.lock @@ -0,0 +1,3511 @@ +{ + "_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#composer-lock-the-lock-file", + "This file is @generated automatically" + ], + "content-hash": "7645a96d90c894036bde0c124b75494e", + "packages": [], + "packages-dev": [ + { + "name": "doctrine/inflector", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/doctrine/inflector.git", + "reference": "40daa067a3e5fb95572236a346a8290e4445778f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/40daa067a3e5fb95572236a346a8290e4445778f", + "reference": "40daa067a3e5fb95572236a346a8290e4445778f", + "shasum": "" + }, + "require": { + "php": "^7.1" + }, + "require-dev": { + "phpunit/phpunit": "^6.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Common\\Inflector\\": "lib/Doctrine/Common/Inflector" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "Common String Manipulations with regard to casing and singular/plural rules.", + "homepage": "http://www.doctrine-project.org", + "keywords": [ + "inflection", + "pluralize", + "singularize", + "string" + ], + "time": "2017-10-04T05:38:52+00:00" + }, + { + "name": "doctrine/instantiator", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/doctrine/instantiator.git", + "reference": "7af8066e48b8a4cbd90849bbe9234ab444057968" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/7af8066e48b8a4cbd90849bbe9234ab444057968", + "reference": "7af8066e48b8a4cbd90849bbe9234ab444057968", + "shasum": "" + }, + "require": { + "php": "^7.1" + }, + "require-dev": { + "ext-pdo": "*", + "ext-phar": "*", + "phpunit/phpunit": "^6.2.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2.x-dev" + } + }, + "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": "http://ocramius.github.com/" + } + ], + "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", + "homepage": "https://github.com/doctrine/instantiator", + "keywords": [ + "constructor", + "instantiate" + ], + "time": "2017-09-19T12:41:22+00:00" + }, + { + "name": "doctrine/lexer", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/doctrine/lexer.git", + "reference": "cc709ba91eee09540091ad5a5f2616727662e41b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/cc709ba91eee09540091ad5a5f2616727662e41b", + "reference": "cc709ba91eee09540091ad5a5f2616727662e41b", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.", + "homepage": "http://www.doctrine-project.org", + "keywords": [ + "lexer", + "parser" + ], + "time": "2017-07-24T09:37:08+00:00" + }, + { + "name": "dragonmantank/cron-expression", + "version": "v2.0.0", + "source": { + "type": "git", + "url": "https://github.com/dragonmantank/cron-expression.git", + "reference": "8a84aee649c3a3ba03a721c1fb080e08dfbcd68b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/8a84aee649c3a3ba03a721c1fb080e08dfbcd68b", + "reference": "8a84aee649c3a3ba03a721c1fb080e08dfbcd68b", + "shasum": "" + }, + "require": { + "php": ">=7.0.0" + }, + "require-dev": { + "phpunit/phpunit": "~5.7" + }, + "type": "library", + "autoload": { + "psr-4": { + "Cron\\": "src/Cron/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "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" + ], + "time": "2017-10-12T15:59:13+00:00" + }, + { + "name": "egulias/email-validator", + "version": "2.1.3", + "source": { + "type": "git", + "url": "https://github.com/egulias/EmailValidator.git", + "reference": "1bec00a10039b823cc94eef4eddd47dcd3b2ca04" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/1bec00a10039b823cc94eef4eddd47dcd3b2ca04", + "reference": "1bec00a10039b823cc94eef4eddd47dcd3b2ca04", + "shasum": "" + }, + "require": { + "doctrine/lexer": "^1.0.1", + "php": ">= 5.5" + }, + "require-dev": { + "dominicsayers/isemail": "dev-master", + "phpunit/phpunit": "^4.8.35", + "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.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Egulias\\EmailValidator\\": "EmailValidator" + } + }, + "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" + ], + "time": "2017-11-15T23:40:40+00:00" + }, + { + "name": "erusev/parsedown", + "version": "1.6.4", + "source": { + "type": "git", + "url": "https://github.com/erusev/parsedown.git", + "reference": "fbe3fe878f4fe69048bb8a52783a09802004f548" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/erusev/parsedown/zipball/fbe3fe878f4fe69048bb8a52783a09802004f548", + "reference": "fbe3fe878f4fe69048bb8a52783a09802004f548", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35" + }, + "type": "library", + "autoload": { + "psr-0": { + "Parsedown": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Emanuil Rusev", + "email": "hello@erusev.com", + "homepage": "http://erusev.com" + } + ], + "description": "Parser for Markdown.", + "homepage": "http://parsedown.org", + "keywords": [ + "markdown", + "parser" + ], + "time": "2017-11-14T20:44:03+00:00" + }, + { + "name": "fzaninotto/faker", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/fzaninotto/Faker.git", + "reference": "c1c7d5134635e944f467df45f5ff5feb1659e3bb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/c1c7d5134635e944f467df45f5ff5feb1659e3bb", + "reference": "c1c7d5134635e944f467df45f5ff5feb1659e3bb", + "shasum": "" + }, + "require": { + "php": "^5.3.3 || ^7.0" + }, + "require-dev": { + "ext-intl": "*", + "phpunit/phpunit": "^4.8.35 || ^5.7", + "squizlabs/php_codesniffer": "^1.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.8-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" + ], + "time": "2017-12-04T09:40:01+00:00" + }, + { + "name": "laravel/framework", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/laravel/framework.git", + "reference": "a62bc275b488a8bda718ccccee9e1806d8ab4592" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/framework/zipball/a62bc275b488a8bda718ccccee9e1806d8ab4592", + "reference": "a62bc275b488a8bda718ccccee9e1806d8ab4592", + "shasum": "" + }, + "require": { + "doctrine/inflector": "~1.1", + "dragonmantank/cron-expression": "~2.0", + "erusev/parsedown": "~1.6", + "ext-mbstring": "*", + "ext-openssl": "*", + "league/flysystem": "~1.0", + "monolog/monolog": "~1.12", + "nesbot/carbon": "~1.20", + "php": "^7.1.3", + "psr/container": "~1.0", + "psr/simple-cache": "^1.0", + "ramsey/uuid": "~3.0", + "swiftmailer/swiftmailer": "~6.0", + "symfony/console": "~3.3", + "symfony/debug": "~3.3", + "symfony/finder": "~3.3", + "symfony/http-foundation": "~3.3", + "symfony/http-kernel": "~3.3", + "symfony/process": "~3.3", + "symfony/routing": "~3.3", + "symfony/var-dumper": "~3.3", + "tijsverkoyen/css-to-inline-styles": "~2.2", + "vlucas/phpdotenv": "~2.2" + }, + "replace": { + "illuminate/auth": "self.version", + "illuminate/broadcasting": "self.version", + "illuminate/bus": "self.version", + "illuminate/cache": "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/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/translation": "self.version", + "illuminate/validation": "self.version", + "illuminate/view": "self.version", + "tightenco/collect": "self.version" + }, + "require-dev": { + "aws/aws-sdk-php": "~3.0", + "doctrine/dbal": "~2.5", + "filp/whoops": "^2.1.4", + "mockery/mockery": "~1.0", + "orchestra/testbench-core": "3.6.*", + "pda/pheanstalk": "~3.0", + "phpunit/phpunit": "~6.0", + "predis/predis": "^1.1.1", + "symfony/css-selector": "~3.3", + "symfony/dom-crawler": "~3.3" + }, + "suggest": { + "aws/aws-sdk-php": "Required to use the SQS queue driver and SES mail driver (~3.0).", + "doctrine/dbal": "Required to rename columns and drop SQLite columns (~2.5).", + "ext-pcntl": "Required to use all features of the queue worker.", + "ext-posix": "Required to use all features of the queue worker.", + "fzaninotto/faker": "Required to use the eloquent factory builder (~1.4).", + "guzzlehttp/guzzle": "Required to use the Mailgun and Mandrill mail drivers and the ping methods on schedules (~6.0).", + "laravel/tinker": "Required to use the tinker console command (~1.0).", + "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (~1.0).", + "league/flysystem-rackspace": "Required to use the Flysystem Rackspace driver (~1.0).", + "nexmo/client": "Required to use the Nexmo transport (~1.0).", + "pda/pheanstalk": "Required to use the beanstalk queue driver (~3.0).", + "predis/predis": "Required to use the redis cache and queue drivers (~1.0).", + "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (~3.0).", + "symfony/css-selector": "Required to use some of the crawler integration testing tools (~3.3).", + "symfony/dom-crawler": "Required to use most of the crawler integration testing tools (~3.3).", + "symfony/psr-http-message-bridge": "Required to psr7 bridging features (~1.0)." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.6-dev" + } + }, + "autoload": { + "files": [ + "src/Illuminate/Foundation/helpers.php", + "src/Illuminate/Support/helpers.php" + ], + "psr-4": { + "Illuminate\\": "src/Illuminate/" + } + }, + "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" + ], + "time": "2017-12-04T14:49:19+00:00" + }, + { + "name": "league/flysystem", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/flysystem.git", + "reference": "6f1a7dc3963f471accd7658a423762712da9a838" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/6f1a7dc3963f471accd7658a423762712da9a838", + "reference": "6f1a7dc3963f471accd7658a423762712da9a838", + "shasum": "" + }, + "require": { + "php": ">=5.5.9" + }, + "conflict": { + "league/flysystem-sftp": "<1.0.6" + }, + "require-dev": { + "ext-fileinfo": "*", + "phpspec/phpspec": "^3.4", + "phpunit/phpunit": "^5.7" + }, + "suggest": { + "ext-fileinfo": "Required for MimeType", + "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" + ], + "time": "2017-12-03T08:41:27+00:00" + }, + { + "name": "monolog/monolog", + "version": "1.x-dev", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/monolog.git", + "reference": "fd8c787753b3a2ad11bc60c063cff1358a32a3b4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/fd8c787753b3a2ad11bc60c063cff1358a32a3b4", + "reference": "fd8c787753b3a2ad11bc60c063cff1358a32a3b4", + "shasum": "" + }, + "require": { + "php": ">=5.3.0", + "psr/log": "~1.0" + }, + "provide": { + "psr/log-implementation": "1.0.0" + }, + "require-dev": { + "aws/aws-sdk-php": "^2.4.9 || ^3.0", + "doctrine/couchdb": "~1.0@dev", + "graylog2/gelf-php": "~1.0", + "jakub-onderka/php-parallel-lint": "0.9", + "php-amqplib/php-amqplib": "~2.4", + "php-console/php-console": "^3.1.3", + "phpunit/phpunit": "~4.5", + "phpunit/phpunit-mock-objects": "2.3.0", + "ruflin/elastica": ">=0.90 <3.0", + "sentry/sentry": "^0.13", + "swiftmailer/swiftmailer": "^5.3|^6.0" + }, + "suggest": { + "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", + "doctrine/couchdb": "Allow sending log messages to a CouchDB server", + "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", + "ext-mongo": "Allow sending log messages to a MongoDB server", + "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", + "mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver", + "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", + "php-console/php-console": "Allow sending log messages to Google Chrome", + "rollbar/rollbar": "Allow sending log messages to Rollbar", + "ruflin/elastica": "Allow sending log messages to an Elastic Search server", + "sentry/sentry": "Allow sending log messages to a Sentry server" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.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": "http://seld.be" + } + ], + "description": "Sends your logs to files, sockets, inboxes, databases and various web services", + "homepage": "http://github.com/Seldaek/monolog", + "keywords": [ + "log", + "logging", + "psr-3" + ], + "time": "2017-06-19T01:22:40+00:00" + }, + { + "name": "myclabs/deep-copy", + "version": "1.x-dev", + "source": { + "type": "git", + "url": "https://github.com/myclabs/DeepCopy.git", + "reference": "103e21127bc63462af5f5165064cdd960f95fa14" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/103e21127bc63462af5f5165064cdd960f95fa14", + "reference": "103e21127bc63462af5f5165064cdd960f95fa14", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "require-dev": { + "doctrine/collections": "^1.0", + "doctrine/common": "^2.6", + "phpunit/phpunit": "^5.7" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-1.x": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "DeepCopy\\": "src/DeepCopy/" + }, + "files": [ + "src/DeepCopy/deep_copy.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Create deep copies (clones) of your objects", + "keywords": [ + "clone", + "copy", + "duplicate", + "object", + "object graph" + ], + "time": "2017-11-29T14:36:38+00:00" + }, + { + "name": "nesbot/carbon", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/briannesbitt/Carbon.git", + "reference": "926aee5ab38c2868816aa760f862a85ad01cb61a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/926aee5ab38c2868816aa760f862a85ad01cb61a", + "reference": "926aee5ab38c2868816aa760f862a85ad01cb61a", + "shasum": "" + }, + "require": { + "php": ">=5.3.0", + "symfony/translation": "~2.6 || ~3.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "~2", + "phpunit/phpunit": "~4.0 || ~5.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.23-dev" + } + }, + "autoload": { + "psr-4": { + "Carbon\\": "src/Carbon/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Brian Nesbitt", + "email": "brian@nesbot.com", + "homepage": "http://nesbot.com" + } + ], + "description": "A simple API extension for DateTime.", + "homepage": "http://carbon.nesbot.com", + "keywords": [ + "date", + "datetime", + "time" + ], + "time": "2017-02-06T22:02:47+00:00" + }, + { + "name": "orchestra/testbench", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/orchestral/testbench.git", + "reference": "7742e765c268066a77fcbe62a7579a1a75b9b407" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/orchestral/testbench/zipball/7742e765c268066a77fcbe62a7579a1a75b9b407", + "reference": "7742e765c268066a77fcbe62a7579a1a75b9b407", + "shasum": "" + }, + "require": { + "laravel/framework": "~5.6.0", + "orchestra/testbench-core": "~3.6.0", + "php": ">=7.1", + "phpunit/phpunit": "~6.0" + }, + "require-dev": { + "mockery/mockery": "~1.0", + "orchestra/database": "~3.6.0" + }, + "suggest": { + "orchestra/testbench-browser-kit": "Allow to use legacy BrowserKit for testing (~3.6)." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.6-dev" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mior Muhammad Zaki", + "email": "crynobone@gmail.com", + "homepage": "https://github.com/crynobone" + } + ], + "description": "Laravel Testing Helper for Packages Development", + "homepage": "http://orchestraplatform.com/docs/latest/components/testbench/", + "keywords": [ + "BDD", + "TDD", + "laravel", + "orchestra-platform", + "orchestral", + "testing" + ], + "time": "2017-11-09T02:12:37+00:00" + }, + { + "name": "orchestra/testbench-core", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/orchestral/testbench-core.git", + "reference": "895fcac0411a0af35c6a6d2f89b60e7fa7502d4a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/orchestral/testbench-core/zipball/895fcac0411a0af35c6a6d2f89b60e7fa7502d4a", + "reference": "895fcac0411a0af35c6a6d2f89b60e7fa7502d4a", + "shasum": "" + }, + "require": { + "fzaninotto/faker": "~1.4", + "php": ">=7.1" + }, + "require-dev": { + "laravel/framework": "~5.6.0", + "mockery/mockery": "~1.0", + "orchestra/database": "~3.6.0", + "phpunit/phpunit": "~6.0" + }, + "suggest": { + "laravel/framework": "Required for testing (~5.6.0).", + "mockery/mockery": "Allow to use Mockery for testing (~1.0).", + "orchestra/database": "Allow to use --realpath migration for testing (~3.6).", + "orchestra/testbench-browser-kit": "Allow to use legacy Laravel BrowserKit for testing (~3.6).", + "orchestra/testbench-dusk": "Allow to use Laravel Dusk for testing (~3.6).", + "phpunit/phpunit": "Allow to use PHPUnit for testing (~6.0)." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.6-dev" + } + }, + "autoload": { + "psr-4": { + "Orchestra\\Testbench\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mior Muhammad Zaki", + "email": "crynobone@gmail.com", + "homepage": "https://github.com/crynobone" + } + ], + "description": "Testing Helper for Laravel Development", + "homepage": "http://orchestraplatform.com/docs/latest/components/testbench/", + "keywords": [ + "BDD", + "TDD", + "laravel", + "orchestra-platform", + "orchestral", + "testing" + ], + "time": "2017-11-21T15:21:32+00:00" + }, + { + "name": "paragonie/random_compat", + "version": "v2.0.11", + "source": { + "type": "git", + "url": "https://github.com/paragonie/random_compat.git", + "reference": "5da4d3c796c275c55f057af5a643ae297d96b4d8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/paragonie/random_compat/zipball/5da4d3c796c275c55f057af5a643ae297d96b4d8", + "reference": "5da4d3c796c275c55f057af5a643ae297d96b4d8", + "shasum": "" + }, + "require": { + "php": ">=5.2.0" + }, + "require-dev": { + "phpunit/phpunit": "4.*|5.*" + }, + "suggest": { + "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." + }, + "type": "library", + "autoload": { + "files": [ + "lib/random.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Paragon Initiative Enterprises", + "email": "security@paragonie.com", + "homepage": "https://paragonie.com" + } + ], + "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", + "keywords": [ + "csprng", + "pseudorandom", + "random" + ], + "time": "2017-09-27T21:40:39+00:00" + }, + { + "name": "phar-io/manifest", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/phar-io/manifest.git", + "reference": "014feadb268809af7c8e2f7ccd396b8494901f58" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/014feadb268809af7c8e2f7ccd396b8494901f58", + "reference": "014feadb268809af7c8e2f7ccd396b8494901f58", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-phar": "*", + "phar-io/version": "^1.0.1", + "php": "^5.6 || ^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.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)", + "time": "2017-04-07T07:07:10+00:00" + }, + { + "name": "phar-io/version", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/phar-io/version.git", + "reference": "a70c0ced4be299a63d32fa96d9281d03e94041df" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/version/zipball/a70c0ced4be299a63d32fa96d9281d03e94041df", + "reference": "a70c0ced4be299a63d32fa96d9281d03e94041df", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.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", + "time": "2017-03-05T17:38:23+00:00" + }, + { + "name": "phpdocumentor/reflection-common", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionCommon.git", + "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", + "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", + "shasum": "" + }, + "require": { + "php": ">=5.5" + }, + "require-dev": { + "phpunit/phpunit": "^4.6" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": [ + "src" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jaap van Otterdijk", + "email": "opensource@ijaap.nl" + } + ], + "description": "Common reflection classes used by phpdocumentor to reflect the code structure", + "homepage": "http://www.phpdoc.org", + "keywords": [ + "FQSEN", + "phpDocumentor", + "phpdoc", + "reflection", + "static analysis" + ], + "time": "2017-09-11T18:02:19+00:00" + }, + { + "name": "phpdocumentor/reflection-docblock", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", + "reference": "bab88701ea52d718b4d56728670f43a456720e6b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/bab88701ea52d718b4d56728670f43a456720e6b", + "reference": "bab88701ea52d718b4d56728670f43a456720e6b", + "shasum": "" + }, + "require": { + "php": "^7.1", + "phpdocumentor/reflection-common": "^1.0", + "phpdocumentor/type-resolver": "^0.4", + "webmozart/assert": "^1.0" + }, + "require-dev": { + "doctrine/instantiator": "^1.0", + "mockery/mockery": "^1.0", + "phpstan/phpstan": "^0.9.0", + "phpunit/phpunit": "^6.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + } + ], + "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", + "time": "2017-12-02T18:12:29+00:00" + }, + { + "name": "phpdocumentor/type-resolver", + "version": "0.4.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/TypeResolver.git", + "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/9c977708995954784726e25d0cd1dddf4e65b0f7", + "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7", + "shasum": "" + }, + "require": { + "php": "^5.5 || ^7.0", + "phpdocumentor/reflection-common": "^1.0" + }, + "require-dev": { + "mockery/mockery": "^0.9.4", + "phpunit/phpunit": "^5.2||^4.8.24" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": [ + "src/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + } + ], + "time": "2017-07-14T14:27:02+00:00" + }, + { + "name": "phpspec/prophecy", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/phpspec/prophecy.git", + "reference": "e4ed002c67da8eceb0eb8ddb8b3847bb53c5c2bf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/e4ed002c67da8eceb0eb8ddb8b3847bb53c5c2bf", + "reference": "e4ed002c67da8eceb0eb8ddb8b3847bb53c5c2bf", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.0.2", + "php": "^5.3|^7.0", + "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0", + "sebastian/comparator": "^1.1|^2.0", + "sebastian/recursion-context": "^1.0|^2.0|^3.0" + }, + "require-dev": { + "phpspec/phpspec": "^2.5|^3.2", + "phpunit/phpunit": "^4.8.35 || ^5.7" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.7.x-dev" + } + }, + "autoload": { + "psr-0": { + "Prophecy\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" + }, + { + "name": "Marcello Duarte", + "email": "marcello.duarte@gmail.com" + } + ], + "description": "Highly opinionated mocking framework for PHP 5.3+", + "homepage": "https://github.com/phpspec/prophecy", + "keywords": [ + "Double", + "Dummy", + "fake", + "mock", + "spy", + "stub" + ], + "time": "2017-11-24T13:59:53+00:00" + }, + { + "name": "phpunit/php-code-coverage", + "version": "5.2.x-dev", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "7d7739ff9e07475ba0eb1a46dfd6eb98c2fd04bc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/7d7739ff9e07475ba0eb1a46dfd6eb98c2fd04bc", + "reference": "7d7739ff9e07475ba0eb1a46dfd6eb98c2fd04bc", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-xmlwriter": "*", + "php": "^7.0", + "phpunit/php-file-iterator": "^1.4.2", + "phpunit/php-text-template": "^1.2.1", + "phpunit/php-token-stream": "^2.0.1", + "sebastian/code-unit-reverse-lookup": "^1.0.1", + "sebastian/environment": "^3.0", + "sebastian/version": "^2.0.1", + "theseer/tokenizer": "^1.1" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" + }, + "suggest": { + "ext-xdebug": "^2.5.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.2.x-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" + ], + "time": "2017-11-28T06:05:44+00:00" + }, + { + "name": "phpunit/php-file-iterator", + "version": "1.4.x-dev", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/730b01bc3e867237eaac355e06a36b85dd93a8b4", + "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sb@sebastian-bergmann.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" + ], + "time": "2017-11-27T13:52:08+00:00" + }, + { + "name": "phpunit/php-text-template", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "keywords": [ + "template" + ], + "time": "2015-06-21T13:50:34+00:00" + }, + { + "name": "phpunit/php-timer", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "d107f347d368dd8a384601398280c7c608390ab7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/d107f347d368dd8a384601398280c7c608390ab7", + "reference": "d107f347d368dd8a384601398280c7c608390ab7", + "shasum": "" + }, + "require": { + "php": "^5.3.3 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" + }, + "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": "sb@sebastian-bergmann.de", + "role": "lead" + } + ], + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", + "keywords": [ + "timer" + ], + "time": "2017-03-07T15:42:04+00:00" + }, + { + "name": "phpunit/php-token-stream", + "version": "2.0.x-dev", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-token-stream.git", + "reference": "13eb9aba9626b1a3811c6a492acc9669d24bb85a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/13eb9aba9626b1a3811c6a492acc9669d24bb85a", + "reference": "13eb9aba9626b1a3811c6a492acc9669d24bb85a", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": "^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.2.4" + }, + "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": "Wrapper around PHP's tokenizer extension.", + "homepage": "https://github.com/sebastianbergmann/php-token-stream/", + "keywords": [ + "tokenizer" + ], + "time": "2017-11-27T08:47:38+00:00" + }, + { + "name": "phpunit/phpunit", + "version": "6.5.x-dev", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "b2bd71c37f873d95609e5427b2e8f215d1e729ce" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/b2bd71c37f873d95609e5427b2e8f215d1e729ce", + "reference": "b2bd71c37f873d95609e5427b2e8f215d1e729ce", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xml": "*", + "myclabs/deep-copy": "^1.6.1", + "phar-io/manifest": "^1.0.1", + "phar-io/version": "^1.0", + "php": "^7.0", + "phpspec/prophecy": "^1.7", + "phpunit/php-code-coverage": "^5.2.3", + "phpunit/php-file-iterator": "^1.4.3", + "phpunit/php-text-template": "^1.2.1", + "phpunit/php-timer": "^1.0.9", + "phpunit/phpunit-mock-objects": "^5.0.4", + "sebastian/comparator": "^2.1", + "sebastian/diff": "^2.0", + "sebastian/environment": "^3.1", + "sebastian/exporter": "^3.1", + "sebastian/global-state": "^2.0", + "sebastian/object-enumerator": "^3.0.3", + "sebastian/resource-operations": "^1.0", + "sebastian/version": "^2.0.1" + }, + "conflict": { + "phpdocumentor/reflection-docblock": "3.0.2", + "phpunit/dbunit": "<3.0" + }, + "require-dev": { + "ext-pdo": "*" + }, + "suggest": { + "ext-xdebug": "*", + "phpunit/php-invoker": "^1.1" + }, + "bin": [ + "phpunit" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "6.5.x-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": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", + "keywords": [ + "phpunit", + "testing", + "xunit" + ], + "time": "2017-12-04T16:42:16+00:00" + }, + { + "name": "phpunit/phpunit-mock-objects", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", + "reference": "c93faa8e25f880627a580db54e0c798702f325d1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/c93faa8e25f880627a580db54e0c798702f325d1", + "reference": "c93faa8e25f880627a580db54e0c798702f325d1", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.0.5", + "php": "^7.0", + "phpunit/php-text-template": "^1.2.1", + "sebastian/exporter": "^3.0" + }, + "conflict": { + "phpunit/phpunit": "<6.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.5" + }, + "suggest": { + "ext-soap": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0.x-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": "Mock Object library for PHPUnit", + "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/", + "keywords": [ + "mock", + "xunit" + ], + "time": "2017-12-04T15:08:52+00:00" + }, + { + "name": "psr/container", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "2cc4a01788191489dc7459446ba832fa79a216a7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/2cc4a01788191489dc7459446ba832fa79a216a7", + "reference": "2cc4a01788191489dc7459446ba832fa79a216a7", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://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" + ], + "time": "2017-06-28T15:35:32+00:00" + }, + { + "name": "psr/log", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", + "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "Psr/Log/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "time": "2016-10-10T12:19:37+00:00" + }, + { + "name": "psr/simple-cache", + "version": "dev-master", + "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" + ], + "time": "2017-10-23T01:57:42+00:00" + }, + { + "name": "ramsey/uuid", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/ramsey/uuid.git", + "reference": "21063bd7166614e96e4a30fd12ca4b230ad36820" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/21063bd7166614e96e4a30fd12ca4b230ad36820", + "reference": "21063bd7166614e96e4a30fd12ca4b230ad36820", + "shasum": "" + }, + "require": { + "paragonie/random_compat": "^1.0|^2.0", + "php": "^5.4 || ^7.0" + }, + "replace": { + "rhumsaa/uuid": "self.version" + }, + "require-dev": { + "apigen/apigen": "^4.1", + "codeception/aspect-mock": "^1.0 | ~2.0.0", + "doctrine/annotations": "~1.2.0", + "goaop/framework": "1.0.0-alpha.2 | ^1.0 | ^2.1", + "ircmaxell/random-lib": "^1.1", + "jakub-onderka/php-parallel-lint": "^0.9.0", + "mockery/mockery": "^0.9.4", + "moontoast/math": "^1.1", + "php-mock/php-mock-phpunit": "^0.3|^1.1", + "phpunit/phpunit": "^4.7|^5.0", + "satooshi/php-coveralls": "^0.6.1", + "squizlabs/php_codesniffer": "^2.3" + }, + "suggest": { + "ext-libsodium": "Provides the PECL libsodium extension for use with the SodiumRandomGenerator", + "ext-uuid": "Provides the PECL UUID extension for use with the PeclUuidTimeGenerator and PeclUuidRandomGenerator", + "ircmaxell/random-lib": "Provides RandomLib for use with the RandomLibAdapter", + "moontoast/math": "Provides support for converting UUID to 128-bit integer (in string form).", + "ramsey/uuid-console": "A console application for generating UUIDs with ramsey/uuid", + "ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Ramsey\\Uuid\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marijn Huizendveld", + "email": "marijn.huizendveld@gmail.com" + }, + { + "name": "Thibaud Fabre", + "email": "thibaud@aztech.io" + }, + { + "name": "Ben Ramsey", + "email": "ben@benramsey.com", + "homepage": "https://benramsey.com" + } + ], + "description": "Formerly rhumsaa/uuid. A PHP 5.4+ library for generating RFC 4122 version 1, 3, 4, and 5 universally unique identifiers (UUID).", + "homepage": "https://github.com/ramsey/uuid", + "keywords": [ + "guid", + "identifier", + "uuid" + ], + "time": "2017-12-01T17:02:13+00:00" + }, + { + "name": "sebastian/code-unit-reverse-lookup", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", + "reference": "3488be0a7b346cd6e5361510ed07e88f9bea2e88" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/3488be0a7b346cd6e5361510ed07e88f9bea2e88", + "reference": "3488be0a7b346cd6e5361510ed07e88f9bea2e88", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^5.7 || ^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-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/", + "time": "2017-03-04T10:23:55+00:00" + }, + { + "name": "sebastian/comparator", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "96f0814e52a4266030eac2075ceb56d27f0deddd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/96f0814e52a4266030eac2075ceb56d27f0deddd", + "reference": "96f0814e52a4266030eac2075ceb56d27f0deddd", + "shasum": "" + }, + "require": { + "php": "^7.0", + "sebastian/diff": "^2.0", + "sebastian/exporter": "^3.1" + }, + "require-dev": { + "phpunit/phpunit": "^6.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.1.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides the functionality to compare PHP values for equality", + "homepage": "https://github.com/sebastianbergmann/comparator", + "keywords": [ + "comparator", + "compare", + "equality" + ], + "time": "2017-11-16T09:46:37+00:00" + }, + { + "name": "sebastian/diff", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "52a3981380ae504aa493579408fe4bc3ba3894d6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/52a3981380ae504aa493579408fe4bc3ba3894d6", + "reference": "52a3981380ae504aa493579408fe4bc3ba3894d6", + "shasum": "" + }, + "require": { + "php": "^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.2" + }, + "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": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", + "keywords": [ + "diff" + ], + "time": "2017-11-16T09:47:25+00:00" + }, + { + "name": "sebastian/environment", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/environment.git", + "reference": "ceaeb5d93eb3cf16184957e7141bd34a1edd44e1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/ceaeb5d93eb3cf16184957e7141bd34a1edd44e1", + "reference": "ceaeb5d93eb3cf16184957e7141bd34a1edd44e1", + "shasum": "" + }, + "require": { + "php": "^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1.x-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" + ], + "time": "2017-11-16T09:47:49+00:00" + }, + { + "name": "sebastian/exporter", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/exporter.git", + "reference": "573f8b71a29cc8afa5f8285d1aee4b4d52717637" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/573f8b71a29cc8afa5f8285d1aee4b4d52717637", + "reference": "573f8b71a29cc8afa5f8285d1aee4b4d52717637", + "shasum": "" + }, + "require": { + "php": "^7.0", + "sebastian/recursion-context": "^3.0" + }, + "require-dev": { + "ext-mbstring": "*", + "phpunit/phpunit": "^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + } + ], + "description": "Provides the functionality to export PHP variables for visualization", + "homepage": "http://www.github.com/sebastianbergmann/exporter", + "keywords": [ + "export", + "exporter" + ], + "time": "2017-11-16T09:48:09+00:00" + }, + { + "name": "sebastian/global-state", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "a27e666314b2df0ab686c2abdee43ffbda48ac10" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/a27e666314b2df0ab686c2abdee43ffbda48ac10", + "reference": "a27e666314b2df0ab686c2abdee43ffbda48ac10", + "shasum": "" + }, + "require": { + "php": "^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" + }, + "suggest": { + "ext-uopz": "*" + }, + "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": "Snapshotting of global state", + "homepage": "http://www.github.com/sebastianbergmann/global-state", + "keywords": [ + "global state" + ], + "time": "2017-11-16T09:49:42+00:00" + }, + { + "name": "sebastian/object-enumerator", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-enumerator.git", + "reference": "a496797f3bd6821bfe2acb594e0901dfb00572dd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/a496797f3bd6821bfe2acb594e0901dfb00572dd", + "reference": "a496797f3bd6821bfe2acb594e0901dfb00572dd", + "shasum": "" + }, + "require": { + "php": "^7.0", + "sebastian/object-reflector": "^1.1.1", + "sebastian/recursion-context": "^3.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0.x-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/", + "time": "2017-11-16T09:50:04+00:00" + }, + { + "name": "sebastian/object-reflector", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-reflector.git", + "reference": "e1b86d7bde734bd7d05454ea964eb8283a3259b6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/e1b86d7bde734bd7d05454ea964eb8283a3259b6", + "reference": "e1b86d7bde734bd7d05454ea964eb8283a3259b6", + "shasum": "" + }, + "require": { + "php": "^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1-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/", + "time": "2017-11-16T09:51:26+00:00" + }, + { + "name": "sebastian/recursion-context", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "0f7f5eb7697036c570aff6812a8efe60c417725e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/0f7f5eb7697036c570aff6812a8efe60c417725e", + "reference": "0f7f5eb7697036c570aff6812a8efe60c417725e", + "shasum": "" + }, + "require": { + "php": "^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + } + ], + "description": "Provides functionality to recursively process PHP variables", + "homepage": "http://www.github.com/sebastianbergmann/recursion-context", + "time": "2017-11-16T10:04:08+00:00" + }, + { + "name": "sebastian/resource-operations", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/resource-operations.git", + "reference": "fadc83f7c41fb2924e542635fea47ae546816ece" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/fadc83f7c41fb2924e542635fea47ae546816ece", + "reference": "fadc83f7c41fb2924e542635fea47ae546816ece", + "shasum": "" + }, + "require": { + "php": ">=5.6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-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", + "time": "2016-10-03T07:43:09+00:00" + }, + { + "name": "sebastian/version", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", + "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", + "shasum": "" + }, + "require": { + "php": ">=5.6" + }, + "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": "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", + "time": "2016-10-03T07:35:21+00:00" + }, + { + "name": "swiftmailer/swiftmailer", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/swiftmailer/swiftmailer.git", + "reference": "17e67a2603b568826447530bc3b1f774f88e572d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/17e67a2603b568826447530bc3b1f774f88e572d", + "reference": "17e67a2603b568826447530bc3b1f774f88e572d", + "shasum": "" + }, + "require": { + "egulias/email-validator": "~2.0", + "php": ">=7.0.0" + }, + "require-dev": { + "mockery/mockery": "~0.9.1", + "symfony/phpunit-bridge": "~3.3@dev" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "6.0-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" + ], + "time": "2017-11-23T14:49:29+00:00" + }, + { + "name": "symfony/console", + "version": "3.4.x-dev", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "2cdef78de8f54f68ff16a857e710e7302b47d4c7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/2cdef78de8f54f68ff16a857e710e7302b47d4c7", + "reference": "2cdef78de8f54f68ff16a857e710e7302b47d4c7", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8", + "symfony/debug": "~2.8|~3.0|~4.0", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/dependency-injection": "<3.4", + "symfony/process": "<3.3" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "~3.3|~4.0", + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/event-dispatcher": "~2.8|~3.0|~4.0", + "symfony/lock": "~3.4|~4.0", + "symfony/process": "~3.3|~4.0" + }, + "suggest": { + "psr/log": "For using the console logger", + "symfony/event-dispatcher": "", + "symfony/lock": "", + "symfony/process": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "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": "Symfony Console Component", + "homepage": "https://symfony.com", + "time": "2017-12-02T18:20:11+00:00" + }, + { + "name": "symfony/css-selector", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/symfony/css-selector.git", + "reference": "203661ce81506a22752efd8c54312a48424493d0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/203661ce81506a22752efd8c54312a48424493d0", + "reference": "203661ce81506a22752efd8c54312a48424493d0", + "shasum": "" + }, + "require": { + "php": "^7.1.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.1-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\CssSelector\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jean-François Simon", + "email": "jeanfrancois.simon@sensiolabs.com" + }, + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony CssSelector Component", + "homepage": "https://symfony.com", + "time": "2017-11-21T17:31:29+00:00" + }, + { + "name": "symfony/debug", + "version": "3.4.x-dev", + "source": { + "type": "git", + "url": "https://github.com/symfony/debug.git", + "reference": "fb2001e5d85f95d8b6ab94ae3be5d2672df128fd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/debug/zipball/fb2001e5d85f95d8b6ab94ae3be5d2672df128fd", + "reference": "fb2001e5d85f95d8b6ab94ae3be5d2672df128fd", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8", + "psr/log": "~1.0" + }, + "conflict": { + "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2" + }, + "require-dev": { + "symfony/http-kernel": "~2.8|~3.0|~4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Debug\\": "" + }, + "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": "Symfony Debug Component", + "homepage": "https://symfony.com", + "time": "2017-11-21T09:01:46+00:00" + }, + { + "name": "symfony/event-dispatcher", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "f14edd74c27abb2f59efb7b8ee41a27e969c5f8b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/f14edd74c27abb2f59efb7b8ee41a27e969c5f8b", + "reference": "f14edd74c27abb2f59efb7b8ee41a27e969c5f8b", + "shasum": "" + }, + "require": { + "php": "^7.1.3" + }, + "conflict": { + "symfony/dependency-injection": "<3.4" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "~3.4|~4.0", + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/expression-language": "~3.4|~4.0", + "symfony/stopwatch": "~3.4|~4.0" + }, + "suggest": { + "symfony/dependency-injection": "", + "symfony/http-kernel": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.1-dev" + } + }, + "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": "Symfony EventDispatcher Component", + "homepage": "https://symfony.com", + "time": "2017-11-21T17:31:29+00:00" + }, + { + "name": "symfony/finder", + "version": "3.4.x-dev", + "source": { + "type": "git", + "url": "https://github.com/symfony/finder.git", + "reference": "dac8d7db537bac7ad8143eb11360a8c2231f251a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/finder/zipball/dac8d7db537bac7ad8143eb11360a8c2231f251a", + "reference": "dac8d7db537bac7ad8143eb11360a8c2231f251a", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "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": "Symfony Finder Component", + "homepage": "https://symfony.com", + "time": "2017-11-05T16:10:10+00:00" + }, + { + "name": "symfony/http-foundation", + "version": "3.4.x-dev", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-foundation.git", + "reference": "d9625c8abb907e0ca2d7506afd7a719a572c766f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/d9625c8abb907e0ca2d7506afd7a719a572c766f", + "reference": "d9625c8abb907e0ca2d7506afd7a719a572c766f", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8", + "symfony/polyfill-mbstring": "~1.1", + "symfony/polyfill-php70": "~1.6" + }, + "require-dev": { + "symfony/expression-language": "~2.8|~3.0|~4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "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": "Symfony HttpFoundation Component", + "homepage": "https://symfony.com", + "time": "2017-11-30T14:56:21+00:00" + }, + { + "name": "symfony/http-kernel", + "version": "3.4.x-dev", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-kernel.git", + "reference": "32305a3b5dc7583704a0334e7f3f57c986bf23a0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/32305a3b5dc7583704a0334e7f3f57c986bf23a0", + "reference": "32305a3b5dc7583704a0334e7f3f57c986bf23a0", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8", + "psr/log": "~1.0", + "symfony/debug": "~2.8|~3.0|~4.0", + "symfony/event-dispatcher": "~2.8|~3.0|~4.0", + "symfony/http-foundation": "^3.3.11|~4.0" + }, + "conflict": { + "symfony/config": "<2.8", + "symfony/dependency-injection": "<3.4", + "symfony/var-dumper": "<3.3", + "twig/twig": "<1.34|<2.4,>=2" + }, + "provide": { + "psr/log-implementation": "1.0" + }, + "require-dev": { + "psr/cache": "~1.0", + "symfony/browser-kit": "~2.8|~3.0|~4.0", + "symfony/class-loader": "~2.8|~3.0", + "symfony/config": "~2.8|~3.0|~4.0", + "symfony/console": "~2.8|~3.0|~4.0", + "symfony/css-selector": "~2.8|~3.0|~4.0", + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/dom-crawler": "~2.8|~3.0|~4.0", + "symfony/expression-language": "~2.8|~3.0|~4.0", + "symfony/finder": "~2.8|~3.0|~4.0", + "symfony/process": "~2.8|~3.0|~4.0", + "symfony/routing": "~3.4|~4.0", + "symfony/stopwatch": "~2.8|~3.0|~4.0", + "symfony/templating": "~2.8|~3.0|~4.0", + "symfony/translation": "~2.8|~3.0|~4.0", + "symfony/var-dumper": "~3.3|~4.0" + }, + "suggest": { + "symfony/browser-kit": "", + "symfony/config": "", + "symfony/console": "", + "symfony/dependency-injection": "", + "symfony/finder": "", + "symfony/var-dumper": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "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": "Symfony HttpKernel Component", + "homepage": "https://symfony.com", + "time": "2017-12-02T23:04:03+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "2ec8b39c38cb16674bbf3fea2b6ce5bf117e1296" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/2ec8b39c38cb16674bbf3fea2b6ce5bf117e1296", + "reference": "2ec8b39c38cb16674bbf3fea2b6ce5bf117e1296", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.6-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + }, + "files": [ + "bootstrap.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": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "time": "2017-10-11T12:05:26+00:00" + }, + { + "name": "symfony/polyfill-php70", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php70.git", + "reference": "0442b9c0596610bd24ae7b5f0a6cdbbc16d9fcff" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/0442b9c0596610bd24ae7b5f0a6cdbbc16d9fcff", + "reference": "0442b9c0596610bd24ae7b5f0a6cdbbc16d9fcff", + "shasum": "" + }, + "require": { + "paragonie/random_compat": "~1.0|~2.0", + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.6-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php70\\": "" + }, + "files": [ + "bootstrap.php" + ], + "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.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "time": "2017-10-11T12:05:26+00:00" + }, + { + "name": "symfony/process", + "version": "3.4.x-dev", + "source": { + "type": "git", + "url": "https://github.com/symfony/process.git", + "reference": "db25e810fd5e124085e3777257d0cf4ae533d0ea" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/process/zipball/db25e810fd5e124085e3777257d0cf4ae533d0ea", + "reference": "db25e810fd5e124085e3777257d0cf4ae533d0ea", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "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": "Symfony Process Component", + "homepage": "https://symfony.com", + "time": "2017-11-22T12:18:49+00:00" + }, + { + "name": "symfony/routing", + "version": "3.4.x-dev", + "source": { + "type": "git", + "url": "https://github.com/symfony/routing.git", + "reference": "d768aa5b25d98188bae3fe4ce3eb2924c97aafac" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/routing/zipball/d768aa5b25d98188bae3fe4ce3eb2924c97aafac", + "reference": "d768aa5b25d98188bae3fe4ce3eb2924c97aafac", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8" + }, + "conflict": { + "symfony/config": "<2.8", + "symfony/dependency-injection": "<3.3", + "symfony/yaml": "<3.4" + }, + "require-dev": { + "doctrine/annotations": "~1.0", + "doctrine/common": "~2.2", + "psr/log": "~1.0", + "symfony/config": "~2.8|~3.0|~4.0", + "symfony/dependency-injection": "~3.3|~4.0", + "symfony/expression-language": "~2.8|~3.0|~4.0", + "symfony/http-foundation": "~2.8|~3.0|~4.0", + "symfony/yaml": "~3.4|~4.0" + }, + "suggest": { + "doctrine/annotations": "For using the annotation loader", + "symfony/config": "For using the all-in-one router or any loader", + "symfony/dependency-injection": "For loading routes from a service", + "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", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "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": "Symfony Routing Component", + "homepage": "https://symfony.com", + "keywords": [ + "router", + "routing", + "uri", + "url" + ], + "time": "2017-11-24T14:13:49+00:00" + }, + { + "name": "symfony/translation", + "version": "3.4.x-dev", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation.git", + "reference": "e05b0a5996ad7a35ba3a19ffad8b72c9daa64dfa" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation/zipball/e05b0a5996ad7a35ba3a19ffad8b72c9daa64dfa", + "reference": "e05b0a5996ad7a35ba3a19ffad8b72c9daa64dfa", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/config": "<2.8", + "symfony/dependency-injection": "<3.4", + "symfony/yaml": "<3.4" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "~2.8|~3.0|~4.0", + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/finder": "~2.8|~3.0|~4.0", + "symfony/intl": "^2.8.18|^3.2.5|~4.0", + "symfony/yaml": "~3.4|~4.0" + }, + "suggest": { + "psr/log": "To use logging capability in translator", + "symfony/config": "", + "symfony/yaml": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "autoload": { + "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": "Symfony Translation Component", + "homepage": "https://symfony.com", + "time": "2017-11-27T14:23:00+00:00" + }, + { + "name": "symfony/var-dumper", + "version": "3.4.x-dev", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-dumper.git", + "reference": "ec650a975a8e04e0c114d35eab732981243db3a2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/ec650a975a8e04e0c114d35eab732981243db3a2", + "reference": "ec650a975a8e04e0c114d35eab732981243db3a2", + "shasum": "" + }, + "require": { + "php": "^5.5.9|>=7.0.8", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0" + }, + "require-dev": { + "ext-iconv": "*", + "twig/twig": "~1.34|~2.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", + "ext-symfony_debug": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "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": "Symfony mechanism for exploring and dumping PHP variables", + "homepage": "https://symfony.com", + "keywords": [ + "debug", + "dump" + ], + "time": "2017-11-30T14:59:23+00:00" + }, + { + "name": "theseer/tokenizer", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/theseer/tokenizer.git", + "reference": "cb2f008f3f05af2893a87208fe6a6c4985483f8b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/cb2f008f3f05af2893a87208fe6a6c4985483f8b", + "reference": "cb2f008f3f05af2893a87208fe6a6c4985483f8b", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": "^7.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", + "time": "2017-04-07T12:08:54+00:00" + }, + { + "name": "tijsverkoyen/css-to-inline-styles", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/tijsverkoyen/CssToInlineStyles.git", + "reference": "0ed4a2ea4e0902dac0489e6436ebcd5bbcae9757" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/0ed4a2ea4e0902dac0489e6436ebcd5bbcae9757", + "reference": "0ed4a2ea4e0902dac0489e6436ebcd5bbcae9757", + "shasum": "" + }, + "require": { + "php": "^5.5 || ^7.0", + "symfony/css-selector": "^2.7 || ^3.0 || ^4.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" + }, + "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", + "time": "2017-11-27T11:13:29+00:00" + }, + { + "name": "vlucas/phpdotenv", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/vlucas/phpdotenv.git", + "reference": "ec37c495d56b68f103acafa95fec5ed39b14d7db" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/ec37c495d56b68f103acafa95fec5ed39b14d7db", + "reference": "ec37c495d56b68f103acafa95fec5ed39b14d7db", + "shasum": "" + }, + "require": { + "php": ">=5.3.9" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.5-dev" + } + }, + "autoload": { + "psr-4": { + "Dotenv\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause-Attribution" + ], + "authors": [ + { + "name": "Vance Lucas", + "email": "vance@vancelucas.com", + "homepage": "http://www.vancelucas.com" + } + ], + "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.", + "keywords": [ + "dotenv", + "env", + "environment" + ], + "time": "2017-11-24T14:28:50+00:00" + }, + { + "name": "webmozart/assert", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/webmozart/assert.git", + "reference": "4a8bf11547e139e77b651365113fc12850c43d9a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozart/assert/zipball/4a8bf11547e139e77b651365113fc12850c43d9a", + "reference": "4a8bf11547e139e77b651365113fc12850c43d9a", + "shasum": "" + }, + "require": { + "php": "^5.3.3 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.6", + "sebastian/version": "^1.0.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3-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" + ], + "time": "2016-11-23T20:04:41+00:00" + } + ], + "aliases": [], + "minimum-stability": "dev", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": { + "php": ">=7.1" + }, + "platform-dev": [] +} diff --git a/phpunit.xml b/phpunit.xml new file mode 100644 index 0000000..84acf72 --- /dev/null +++ b/phpunit.xml @@ -0,0 +1,27 @@ + + + + + ./tests + + + + + ./src + + + + + + + + + diff --git a/src/Webpatser/Countries/Countries.php b/src/Webpatser/Countries/Countries.php index ca21d19..a245c80 100644 --- a/src/Webpatser/Countries/Countries.php +++ b/src/Webpatser/Countries/Countries.php @@ -4,128 +4,116 @@ use Illuminate\Database\Eloquent\Model; -/** - * CountryList - * - */ -class Countries extends Model { - - /** - * @var string - * Path to the directory containing countries data. - */ - protected $countries; +class Countries extends Model +{ + /** + * Path to the directory containing countries data. + * + * @var array + */ + protected $countries = []; - /** - * @var string - * The table for the countries in the database, is "countries" by default. - */ - protected $table; + /** + * The table for the countries in the database, is "countries" by default. + * + * @var string + */ + protected $table; /** * Constructor. - * - * @return void */ public function __construct() { - $this->table = \Config::get('countries.table_name'); + parent::__construct(); + + $this->table = config('countries.table_name'); } /** - * Get the countries from the JSON file, if it hasn't already been loaded. + * Get the countries from the JSON file + * if it hasn't already been loaded. * * @return array */ - protected function getCountries() + protected function getCountries(): array { - //Get the countries from the JSON file - if (sizeof($this->countries) == 0){ - $this->countries = json_decode(file_get_contents(__DIR__ . '/Models/countries.json'), true); + if (count($this->countries) === 0) { + $this->countries = json_decode(file_get_contents(__DIR__.'/Models/countries.json'), true); } - //Return the countries return $this->countries; } - /** - * Returns one country - * - * @param string $id The country id + /** + * Get country by id. * - * @return array - */ - public function getOne($id) - { + * @param int $id + * @return array + */ + public function getOne(int $id): array + { $countries = $this->getCountries(); - return $countries[$id]; - } - /** - * Returns a list of countries - * - * @param string sort - * - * @return array - */ - public function getList($sort = null) - { - //Get the countries list - $countries = $this->getCountries(); + return $countries[$id]; + } + + /** + * Get list of countries. + * + * @param string|null $sort + * @return array + */ + public function getList(string $sort = null): array + { + $countries = $this->getCountries(); - //Sorting - $validSorts = [ - 'capital', - 'citizenship', - 'country-code', - 'currency', - 'currency_code', - 'currency_sub_unit', - 'full_name', - 'iso_3166_2', - 'iso_3166_3', - 'name', - 'region-code', - 'sub-region-code', - 'eea', - 'calling_code', - 'currency_symbol', - 'flag', + $validSorts = [ + 'capital', + 'citizenship', + 'country_code', + 'currency', + 'currency_code', + 'currency_sub_unit', + 'full_name', + 'iso_3166_2', + 'iso_3166_3', + 'name', + 'region_code', + 'sub_region_code', + 'eea', + 'calling_code', + 'currency_symbol', + 'flag', ]; - if (!is_null($sort) && in_array($sort, $validSorts)){ - uasort($countries, function($a, $b) use ($sort) { - if (!isset($a[$sort]) && !isset($b[$sort])){ - return 0; - } elseif (!isset($a[$sort])){ - return -1; - } elseif (!isset($b[$sort])){ - return 1; - } else { - return strcasecmp($a[$sort], $b[$sort]); - } - }); - } + if (!is_null($sort) && in_array($sort, $validSorts)) { + uasort($countries, function ($a, $b) use ($sort) { + if (!isset($a[$sort], $b[$sort])) { + return 0; + } elseif (!isset($a[$sort])) { + return -1; + } elseif (!isset($b[$sort])) { + return 1; + } else { + return strcasecmp($a[$sort], $b[$sort]); + } + }); + } - //Return the countries - return $countries; - } + return $countries; + } /** - * Returns a list of countries suitable to use with a select element in Laravelcollective\html - * Will show the value and sort by the column specified in the display attribute - * - * @param string display + * Get list of countries for use with a select form element. * + * @param string $display * @return array */ - public function getListForSelect($display = 'name') + public function getListForSelect(string $display = 'name'): array { - foreach ($this->getList($display) as $key => $value) { - $countries[$key] = $value[$display]; - } - - //return the array - return $countries; + return array_map(function(array $country) use ($display) { + return $country[$display]; + }, $this->getList($display)); } -} +} \ No newline at end of file diff --git a/src/Webpatser/Countries/CountriesFacade.php b/src/Webpatser/Countries/CountriesFacade.php index 611b492..7ccfc83 100644 --- a/src/Webpatser/Countries/CountriesFacade.php +++ b/src/Webpatser/Countries/CountriesFacade.php @@ -4,16 +4,15 @@ use Illuminate\Support\Facades\Facade; -/** - * CountriesFacade - * - */ -class CountriesFacade extends Facade { - +class CountriesFacade extends Facade +{ /** * Get the registered name of the component. * * @return string */ - protected static function getFacadeAccessor() { return 'countries'; } + protected static function getFacadeAccessor(): string + { + return 'countries'; + } } diff --git a/src/Webpatser/Countries/CountriesServiceProvider.php b/src/Webpatser/Countries/CountriesServiceProvider.php index e16cbfd..76656f3 100644 --- a/src/Webpatser/Countries/CountriesServiceProvider.php +++ b/src/Webpatser/Countries/CountriesServiceProvider.php @@ -3,34 +3,20 @@ namespace Webpatser\Countries; use Illuminate\Support\ServiceProvider; +use Illuminate\Contracts\Foundation\Application; -/** - * CountryListServiceProvider - */ -class CountriesServiceProvider extends ServiceProvider { - +class CountriesServiceProvider extends ServiceProvider +{ /** - * Indicates if loading of the provider is deferred. + * Bootstrap the application. * - * @var bool + * @return void */ - protected $defer = false; - - /** - * Bootstrap the application. - * - * @return void - */ - - public function boot() + public function boot(): void { - // The publication files to publish - $this->publishes([__DIR__ . '/../../config/config.php' => config_path('countries.php')]); - - // Append the country settings - $this->mergeConfigFrom( - __DIR__ . '/../../config/config.php', 'countries' - ); + $this->publishes([ + __DIR__.'/../../config/config.php' => config_path('countries.php') + ]); } /** @@ -38,7 +24,7 @@ public function boot() * * @return void */ - public function register() + public function register(): void { $this->registerCountries(); $this->registerCommands(); @@ -49,12 +35,15 @@ public function register() * * @return void */ - public function registerCountries() + public function registerCountries(): void { - $this->app->bind('countries', function($app) - { - return new Countries(); + $this->app->bind('countries', function () { + return new Countries; }); + + $this->mergeConfigFrom( + __DIR__.'/../../config/config.php', 'countries' + ); } /** @@ -62,9 +51,9 @@ public function registerCountries() * * @return void */ - protected function registerCommands() + protected function registerCommands(): void { - $this->app->singleton('command.countries.migration', function ($app) { + $this->app->singleton('command.countries.migration', function (Application $app) { return new MigrationCommand($app); }); @@ -76,9 +65,8 @@ protected function registerCommands() * * @return array */ - public function provides() + public function provides(): array { return ['countries']; } -} - +} \ No newline at end of file diff --git a/src/Webpatser/Countries/MigrationCommand.php b/src/Webpatser/Countries/MigrationCommand.php new file mode 100644 index 0000000..ee7365e --- /dev/null +++ b/src/Webpatser/Countries/MigrationCommand.php @@ -0,0 +1,140 @@ +setLaravel($app); + + $this->laravel['view']->addNamespace('countries', __DIR__.'/../../views'); + } + + /** + * Execute the console command. + * + * @return void + */ + public function handle(): void + { + $this->line(''); + $this->info('The migration process will create a migration file and a seeder for the countries list'); + + $this->line(''); + + if (!$this->confirm("Proceed with the migration creation? [Yes|no]")) { + return; + } + + $this->line(''); + + $this->info("Creating migration and seeder..."); + + if ($this->createMigration()) { + + $this->line(''); + + if (version_compare(app()->version(), '5.5.0', '<')) { + $this->call('optimize', []); + } + + $this->line(''); + + $this->info("Migration successfully created!"); + + } else { + + $this->error( + "Could not create migration.\n Check the write permissions". + " to the database/migrations directory." + ); + } + + $this->line(''); + } + + /** + * Create the migration + * + * @return bool + */ + protected function createMigration(): bool + { + $migrationFiles = [ + $this->laravel['path']."/../database/migrations/*_setup_countries_table.php" => 'countries::generators.migration' + ]; + + $seconds = 0; + + foreach ($migrationFiles as $migrationFile => $outputFile) { + + if (count(glob($migrationFile)) !== 0) { + continue; + } + + $migrationFile = str_replace('*', date('Y_m_d_His', strtotime('+'.$seconds.' seconds')), $migrationFile); + + if (!$fs = fopen($migrationFile, 'x')) { + return false; + } + + $output = "laravel['view']->make($outputFile)->render(); + + fwrite($fs, $output); + fclose($fs); + + $seconds++; + } + + return $this->addSeeder(); + } + + /** + * Add seeder file. + * + * @return bool + */ + private function addSeeder(): bool + { + $seeder = $this->laravel['path']."/../database/seeds/CountriesSeeder.php"; + $output = "laravel['view']->make('countries::generators.seeder')->render(); + + if (file_exists($seeder)) { + return true; + } + + if (!$fs = fopen($seeder, 'x')) { + return false; + } + + fwrite($fs, $output); + fclose($fs); + + return true; + } +} diff --git a/src/Webpatser/Countries/Models/countries.json b/src/Webpatser/Countries/Models/countries.json index 3408d9e..69534b8 100644 --- a/src/Webpatser/Countries/Models/countries.json +++ b/src/Webpatser/Countries/Models/countries.json @@ -2,7 +2,7 @@ "4":{ "capital":"Kabul", "citizenship":"Afghan", - "country-code":"004", + "country_code":"004", "currency":"afghani", "currency_code":"AFN", "currency_sub_unit":"pul", @@ -10,8 +10,8 @@ "iso_3166_2":"AF", "iso_3166_3":"AFG", "name":"Afghanistan", - "region-code":"142", - "sub-region-code":"034", + "region_code":"142", + "sub_region_code":"034", "eea":false, "calling_code":"93", "currency_symbol":"\u060b", @@ -21,7 +21,7 @@ "8":{ "capital":"Tirana", "citizenship":"Albanian", - "country-code":"008", + "country_code":"008", "currency":"lek", "currency_code":"ALL", "currency_sub_unit":"(qindar (pl. qindarka))", @@ -29,8 +29,8 @@ "iso_3166_2":"AL", "iso_3166_3":"ALB", "name":"Albania", - "region-code":"150", - "sub-region-code":"039", + "region_code":"150", + "sub_region_code":"039", "eea":false, "calling_code":"355", "currency_symbol":"Lek", @@ -40,7 +40,7 @@ "10":{ "capital":"Antartica", "citizenship":"of Antartica", - "country-code":"010", + "country_code":"010", "currency":"", "currency_code":"", "currency_sub_unit":"", @@ -48,8 +48,8 @@ "iso_3166_2":"AQ", "iso_3166_3":"ATA", "name":"Antarctica", - "region-code":"", - "sub-region-code":"", + "region_code":"", + "sub_region_code":"", "eea":false, "calling_code":"672", "currency_symbol":"", @@ -59,7 +59,7 @@ "12":{ "capital":"Algiers", "citizenship":"Algerian", - "country-code":"012", + "country_code":"012", "currency":"Algerian dinar", "currency_code":"DZD", "currency_sub_unit":"centime", @@ -67,8 +67,8 @@ "iso_3166_2":"DZ", "iso_3166_3":"DZA", "name":"Algeria", - "region-code":"002", - "sub-region-code":"015", + "region_code":"002", + "sub_region_code":"015", "eea":false, "calling_code":"213", "currency_symbol":"DZD", @@ -78,7 +78,7 @@ "16":{ "capital":"Pago Pago", "citizenship":"American Samoan", - "country-code":"016", + "country_code":"016", "currency":"US dollar", "currency_code":"USD", "currency_sub_unit":"cent", @@ -86,8 +86,8 @@ "iso_3166_2":"AS", "iso_3166_3":"ASM", "name":"American Samoa", - "region-code":"009", - "sub-region-code":"061", + "region_code":"009", + "sub_region_code":"061", "eea":false, "calling_code":"1", "currency_symbol":"$", @@ -97,7 +97,7 @@ "20":{ "capital":"Andorra la Vella", "citizenship":"Andorran", - "country-code":"020", + "country_code":"020", "currency":"euro", "currency_code":"EUR", "currency_sub_unit":"cent", @@ -105,8 +105,8 @@ "iso_3166_2":"AD", "iso_3166_3":"AND", "name":"Andorra", - "region-code":"150", - "sub-region-code":"039", + "region_code":"150", + "sub_region_code":"039", "eea":false, "calling_code":"376", "currency_symbol":"\u20ac", @@ -116,7 +116,7 @@ "24":{ "capital":"Luanda", "citizenship":"Angolan", - "country-code":"024", + "country_code":"024", "currency":"kwanza", "currency_code":"AOA", "currency_sub_unit":"c\u00eantimo", @@ -124,8 +124,8 @@ "iso_3166_2":"AO", "iso_3166_3":"AGO", "name":"Angola", - "region-code":"002", - "sub-region-code":"017", + "region_code":"002", + "sub_region_code":"017", "eea":false, "calling_code":"244", "currency_symbol":"Kz", @@ -135,7 +135,7 @@ "28":{ "capital":"St John\u2019s", "citizenship":"of Antigua and Barbuda", - "country-code":"028", + "country_code":"028", "currency":"East Caribbean dollar", "currency_code":"XCD", "currency_sub_unit":"cent", @@ -143,8 +143,8 @@ "iso_3166_2":"AG", "iso_3166_3":"ATG", "name":"Antigua and Barbuda", - "region-code":"019", - "sub-region-code":"029", + "region_code":"019", + "sub_region_code":"029", "eea":false, "calling_code":"1", "currency_symbol":"$", @@ -154,7 +154,7 @@ "31":{ "capital":"Baku", "citizenship":"Azerbaijani", - "country-code":"031", + "country_code":"031", "currency":"Azerbaijani manat", "currency_code":"AZN", "currency_sub_unit":"kepik (inv.)", @@ -162,8 +162,8 @@ "iso_3166_2":"AZ", "iso_3166_3":"AZE", "name":"Azerbaijan", - "region-code":"142", - "sub-region-code":"145", + "region_code":"142", + "sub_region_code":"145", "eea":false, "calling_code":"994", "currency_symbol":"\u043c\u0430\u043d", @@ -173,7 +173,7 @@ "32":{ "capital":"Buenos Aires", "citizenship":"Argentinian", - "country-code":"032", + "country_code":"032", "currency":"Argentine peso", "currency_code":"ARS", "currency_sub_unit":"centavo", @@ -181,8 +181,8 @@ "iso_3166_2":"AR", "iso_3166_3":"ARG", "name":"Argentina", - "region-code":"019", - "sub-region-code":"005", + "region_code":"019", + "sub_region_code":"005", "eea":false, "calling_code":"54", "currency_symbol":"$", @@ -192,7 +192,7 @@ "36":{ "capital":"Canberra", "citizenship":"Australian", - "country-code":"036", + "country_code":"036", "currency":"Australian dollar", "currency_code":"AUD", "currency_sub_unit":"cent", @@ -200,8 +200,8 @@ "iso_3166_2":"AU", "iso_3166_3":"AUS", "name":"Australia", - "region-code":"009", - "sub-region-code":"053", + "region_code":"009", + "sub_region_code":"053", "eea":false, "calling_code":"61", "currency_symbol":"$", @@ -211,7 +211,7 @@ "40":{ "capital":"Vienna", "citizenship":"Austrian", - "country-code":"040", + "country_code":"040", "currency":"euro", "currency_code":"EUR", "currency_sub_unit":"cent", @@ -219,8 +219,8 @@ "iso_3166_2":"AT", "iso_3166_3":"AUT", "name":"Austria", - "region-code":"150", - "sub-region-code":"155", + "region_code":"150", + "sub_region_code":"155", "eea":true, "calling_code":"43", "currency_symbol":"\u20ac", @@ -230,7 +230,7 @@ "44":{ "capital":"Nassau", "citizenship":"Bahamian", - "country-code":"044", + "country_code":"044", "currency":"Bahamian dollar", "currency_code":"BSD", "currency_sub_unit":"cent", @@ -238,8 +238,8 @@ "iso_3166_2":"BS", "iso_3166_3":"BHS", "name":"Bahamas", - "region-code":"019", - "sub-region-code":"029", + "region_code":"019", + "sub_region_code":"029", "eea":false, "calling_code":"1", "currency_symbol":"$", @@ -249,7 +249,7 @@ "48":{ "capital":"Manama", "citizenship":"Bahraini", - "country-code":"048", + "country_code":"048", "currency":"Bahraini dinar", "currency_code":"BHD", "currency_sub_unit":"fils (inv.)", @@ -257,8 +257,8 @@ "iso_3166_2":"BH", "iso_3166_3":"BHR", "name":"Bahrain", - "region-code":"142", - "sub-region-code":"145", + "region_code":"142", + "sub_region_code":"145", "eea":false, "calling_code":"973", "currency_symbol":"BHD", @@ -268,7 +268,7 @@ "50":{ "capital":"Dhaka", "citizenship":"Bangladeshi", - "country-code":"050", + "country_code":"050", "currency":"taka (inv.)", "currency_code":"BDT", "currency_sub_unit":"poisha (inv.)", @@ -276,8 +276,8 @@ "iso_3166_2":"BD", "iso_3166_3":"BGD", "name":"Bangladesh", - "region-code":"142", - "sub-region-code":"034", + "region_code":"142", + "sub_region_code":"034", "eea":false, "calling_code":"880", "currency_symbol":"BDT", @@ -287,7 +287,7 @@ "51":{ "capital":"Yerevan", "citizenship":"Armenian", - "country-code":"051", + "country_code":"051", "currency":"dram (inv.)", "currency_code":"AMD", "currency_sub_unit":"luma", @@ -295,8 +295,8 @@ "iso_3166_2":"AM", "iso_3166_3":"ARM", "name":"Armenia", - "region-code":"142", - "sub-region-code":"145", + "region_code":"142", + "sub_region_code":"145", "eea":false, "calling_code":"374", "currency_symbol":"AMD", @@ -306,7 +306,7 @@ "52":{ "capital":"Bridgetown", "citizenship":"Barbadian", - "country-code":"052", + "country_code":"052", "currency":"Barbados dollar", "currency_code":"BBD", "currency_sub_unit":"cent", @@ -314,8 +314,8 @@ "iso_3166_2":"BB", "iso_3166_3":"BRB", "name":"Barbados", - "region-code":"019", - "sub-region-code":"029", + "region_code":"019", + "sub_region_code":"029", "eea":false, "calling_code":"1", "currency_symbol":"$", @@ -325,7 +325,7 @@ "56":{ "capital":"Brussels", "citizenship":"Belgian", - "country-code":"056", + "country_code":"056", "currency":"euro", "currency_code":"EUR", "currency_sub_unit":"cent", @@ -333,8 +333,8 @@ "iso_3166_2":"BE", "iso_3166_3":"BEL", "name":"Belgium", - "region-code":"150", - "sub-region-code":"155", + "region_code":"150", + "sub_region_code":"155", "eea":true, "calling_code":"32", "currency_symbol":"\u20ac", @@ -344,7 +344,7 @@ "60":{ "capital":"Hamilton", "citizenship":"Bermudian", - "country-code":"060", + "country_code":"060", "currency":"Bermuda dollar", "currency_code":"BMD", "currency_sub_unit":"cent", @@ -352,8 +352,8 @@ "iso_3166_2":"BM", "iso_3166_3":"BMU", "name":"Bermuda", - "region-code":"019", - "sub-region-code":"021", + "region_code":"019", + "sub_region_code":"021", "eea":false, "calling_code":"1", "currency_symbol":"$", @@ -363,7 +363,7 @@ "64":{ "capital":"Thimphu", "citizenship":"Bhutanese", - "country-code":"064", + "country_code":"064", "currency":"ngultrum (inv.)", "currency_code":"BTN", "currency_sub_unit":"chhetrum (inv.)", @@ -371,8 +371,8 @@ "iso_3166_2":"BT", "iso_3166_3":"BTN", "name":"Bhutan", - "region-code":"142", - "sub-region-code":"034", + "region_code":"142", + "sub_region_code":"034", "eea":false, "calling_code":"975", "currency_symbol":"BTN", @@ -382,7 +382,7 @@ "68":{ "capital":"Sucre (BO1)", "citizenship":"Bolivian", - "country-code":"068", + "country_code":"068", "currency":"boliviano", "currency_code":"BOB", "currency_sub_unit":"centavo", @@ -390,8 +390,8 @@ "iso_3166_2":"BO", "iso_3166_3":"BOL", "name":"Bolivia, Plurinational State of", - "region-code":"019", - "sub-region-code":"005", + "region_code":"019", + "sub_region_code":"005", "eea":false, "calling_code":"591", "currency_symbol":"$b", @@ -401,7 +401,7 @@ "70":{ "capital":"Sarajevo", "citizenship":"of Bosnia and Herzegovina", - "country-code":"070", + "country_code":"070", "currency":"convertible mark", "currency_code":"BAM", "currency_sub_unit":"fening", @@ -409,8 +409,8 @@ "iso_3166_2":"BA", "iso_3166_3":"BIH", "name":"Bosnia and Herzegovina", - "region-code":"150", - "sub-region-code":"039", + "region_code":"150", + "sub_region_code":"039", "eea":false, "calling_code":"387", "currency_symbol":"KM", @@ -420,7 +420,7 @@ "72":{ "capital":"Gaborone", "citizenship":"Botswanan", - "country-code":"072", + "country_code":"072", "currency":"pula (inv.)", "currency_code":"BWP", "currency_sub_unit":"thebe (inv.)", @@ -428,8 +428,8 @@ "iso_3166_2":"BW", "iso_3166_3":"BWA", "name":"Botswana", - "region-code":"002", - "sub-region-code":"018", + "region_code":"002", + "sub_region_code":"018", "eea":false, "calling_code":"267", "currency_symbol":"P", @@ -439,7 +439,7 @@ "74":{ "capital":"Bouvet island", "citizenship":"of Bouvet island", - "country-code":"074", + "country_code":"074", "currency":"", "currency_code":"", "currency_sub_unit":"", @@ -447,8 +447,8 @@ "iso_3166_2":"BV", "iso_3166_3":"BVT", "name":"Bouvet Island", - "region-code":"", - "sub-region-code":"", + "region_code":"", + "sub_region_code":"", "eea":false, "calling_code":"47", "currency_symbol":"kr", @@ -458,7 +458,7 @@ "76":{ "capital":"Brasilia", "citizenship":"Brazilian", - "country-code":"076", + "country_code":"076", "currency":"real (pl. reais)", "currency_code":"BRL", "currency_sub_unit":"centavo", @@ -466,8 +466,8 @@ "iso_3166_2":"BR", "iso_3166_3":"BRA", "name":"Brazil", - "region-code":"019", - "sub-region-code":"005", + "region_code":"019", + "sub_region_code":"005", "eea":false, "calling_code":"55", "currency_symbol":"R$", @@ -477,7 +477,7 @@ "84":{ "capital":"Belmopan", "citizenship":"Belizean", - "country-code":"084", + "country_code":"084", "currency":"Belize dollar", "currency_code":"BZD", "currency_sub_unit":"cent", @@ -485,8 +485,8 @@ "iso_3166_2":"BZ", "iso_3166_3":"BLZ", "name":"Belize", - "region-code":"019", - "sub-region-code":"013", + "region_code":"019", + "sub_region_code":"013", "eea":false, "calling_code":"501", "currency_symbol":"BZ$", @@ -496,7 +496,7 @@ "86":{ "capital":"Diego Garcia", "citizenship":"Changosian", - "country-code":"086", + "country_code":"086", "currency":"US dollar", "currency_code":"USD", "currency_sub_unit":"cent", @@ -504,8 +504,8 @@ "iso_3166_2":"IO", "iso_3166_3":"IOT", "name":"British Indian Ocean Territory", - "region-code":"", - "sub-region-code":"", + "region_code":"", + "sub_region_code":"", "eea":false, "calling_code":"246", "currency_symbol":"$", @@ -515,7 +515,7 @@ "90":{ "capital":"Honiara", "citizenship":"Solomon Islander", - "country-code":"090", + "country_code":"090", "currency":"Solomon Islands dollar", "currency_code":"SBD", "currency_sub_unit":"cent", @@ -523,8 +523,8 @@ "iso_3166_2":"SB", "iso_3166_3":"SLB", "name":"Solomon Islands", - "region-code":"009", - "sub-region-code":"054", + "region_code":"009", + "sub_region_code":"054", "eea":false, "calling_code":"677", "currency_symbol":"$", @@ -534,7 +534,7 @@ "92":{ "capital":"Road Town", "citizenship":"British Virgin Islander;", - "country-code":"092", + "country_code":"092", "currency":"US dollar", "currency_code":"USD", "currency_sub_unit":"cent", @@ -542,8 +542,8 @@ "iso_3166_2":"VG", "iso_3166_3":"VGB", "name":"Virgin Islands, British", - "region-code":"019", - "sub-region-code":"029", + "region_code":"019", + "sub_region_code":"029", "eea":false, "calling_code":"1", "currency_symbol":"$", @@ -553,7 +553,7 @@ "96":{ "capital":"Bandar Seri Begawan", "citizenship":"Bruneian", - "country-code":"096", + "country_code":"096", "currency":"Brunei dollar", "currency_code":"BND", "currency_sub_unit":"sen (inv.)", @@ -561,8 +561,8 @@ "iso_3166_2":"BN", "iso_3166_3":"BRN", "name":"Brunei Darussalam", - "region-code":"142", - "sub-region-code":"035", + "region_code":"142", + "sub_region_code":"035", "eea":false, "calling_code":"673", "currency_symbol":"$", @@ -572,7 +572,7 @@ "100":{ "capital":"Sofia", "citizenship":"Bulgarian", - "country-code":"100", + "country_code":"100", "currency":"lev (pl. leva)", "currency_code":"BGN", "currency_sub_unit":"stotinka", @@ -580,8 +580,8 @@ "iso_3166_2":"BG", "iso_3166_3":"BGR", "name":"Bulgaria", - "region-code":"150", - "sub-region-code":"151", + "region_code":"150", + "sub_region_code":"151", "eea":true, "calling_code":"359", "currency_symbol":"\u043b\u0432", @@ -591,7 +591,7 @@ "104":{ "capital":"Yangon", "citizenship":"Burmese", - "country-code":"104", + "country_code":"104", "currency":"kyat", "currency_code":"MMK", "currency_sub_unit":"pya", @@ -599,8 +599,8 @@ "iso_3166_2":"MM", "iso_3166_3":"MMR", "name":"Myanmar", - "region-code":"142", - "sub-region-code":"035", + "region_code":"142", + "sub_region_code":"035", "eea":false, "calling_code":"95", "currency_symbol":"K", @@ -610,7 +610,7 @@ "108":{ "capital":"Bujumbura", "citizenship":"Burundian", - "country-code":"108", + "country_code":"108", "currency":"Burundi franc", "currency_code":"BIF", "currency_sub_unit":"centime", @@ -618,8 +618,8 @@ "iso_3166_2":"BI", "iso_3166_3":"BDI", "name":"Burundi", - "region-code":"002", - "sub-region-code":"014", + "region_code":"002", + "sub_region_code":"014", "eea":false, "calling_code":"257", "currency_symbol":"BIF", @@ -629,7 +629,7 @@ "112":{ "capital":"Minsk", "citizenship":"Belarusian", - "country-code":"112", + "country_code":"112", "currency":"Belarusian rouble", "currency_code":"BYR", "currency_sub_unit":"kopek", @@ -637,8 +637,8 @@ "iso_3166_2":"BY", "iso_3166_3":"BLR", "name":"Belarus", - "region-code":"150", - "sub-region-code":"151", + "region_code":"150", + "sub_region_code":"151", "eea":false, "calling_code":"375", "currency_symbol":"p.", @@ -648,7 +648,7 @@ "116":{ "capital":"Phnom Penh", "citizenship":"Cambodian", - "country-code":"116", + "country_code":"116", "currency":"riel", "currency_code":"KHR", "currency_sub_unit":"sen (inv.)", @@ -656,8 +656,8 @@ "iso_3166_2":"KH", "iso_3166_3":"KHM", "name":"Cambodia", - "region-code":"142", - "sub-region-code":"035", + "region_code":"142", + "sub_region_code":"035", "eea":false, "calling_code":"855", "currency_symbol":"\u17db", @@ -667,7 +667,7 @@ "120":{ "capital":"Yaound\u00e9", "citizenship":"Cameroonian", - "country-code":"120", + "country_code":"120", "currency":"CFA franc (BEAC)", "currency_code":"XAF", "currency_sub_unit":"centime", @@ -675,8 +675,8 @@ "iso_3166_2":"CM", "iso_3166_3":"CMR", "name":"Cameroon", - "region-code":"002", - "sub-region-code":"017", + "region_code":"002", + "sub_region_code":"017", "eea":false, "calling_code":"237", "currency_symbol":"FCF", @@ -686,7 +686,7 @@ "124":{ "capital":"Ottawa", "citizenship":"Canadian", - "country-code":"124", + "country_code":"124", "currency":"Canadian dollar", "currency_code":"CAD", "currency_sub_unit":"cent", @@ -694,8 +694,8 @@ "iso_3166_2":"CA", "iso_3166_3":"CAN", "name":"Canada", - "region-code":"019", - "sub-region-code":"021", + "region_code":"019", + "sub_region_code":"021", "eea":false, "calling_code":"1", "currency_symbol":"$", @@ -705,7 +705,7 @@ "132":{ "capital":"Praia", "citizenship":"Cape Verdean", - "country-code":"132", + "country_code":"132", "currency":"Cape Verde escudo", "currency_code":"CVE", "currency_sub_unit":"centavo", @@ -713,8 +713,8 @@ "iso_3166_2":"CV", "iso_3166_3":"CPV", "name":"Cape Verde", - "region-code":"002", - "sub-region-code":"011", + "region_code":"002", + "sub_region_code":"011", "eea":false, "calling_code":"238", "currency_symbol":"CVE", @@ -724,7 +724,7 @@ "136":{ "capital":"George Town", "citizenship":"Caymanian", - "country-code":"136", + "country_code":"136", "currency":"Cayman Islands dollar", "currency_code":"KYD", "currency_sub_unit":"cent", @@ -732,8 +732,8 @@ "iso_3166_2":"KY", "iso_3166_3":"CYM", "name":"Cayman Islands", - "region-code":"019", - "sub-region-code":"029", + "region_code":"019", + "sub_region_code":"029", "eea":false, "calling_code":"1", "currency_symbol":"$", @@ -743,7 +743,7 @@ "140":{ "capital":"Bangui", "citizenship":"Central African", - "country-code":"140", + "country_code":"140", "currency":"CFA franc (BEAC)", "currency_code":"XAF", "currency_sub_unit":"centime", @@ -751,8 +751,8 @@ "iso_3166_2":"CF", "iso_3166_3":"CAF", "name":"Central African Republic", - "region-code":"002", - "sub-region-code":"017", + "region_code":"002", + "sub_region_code":"017", "eea":false, "calling_code":"236", "currency_symbol":"CFA", @@ -762,7 +762,7 @@ "144":{ "capital":"Colombo", "citizenship":"Sri Lankan", - "country-code":"144", + "country_code":"144", "currency":"Sri Lankan rupee", "currency_code":"LKR", "currency_sub_unit":"cent", @@ -770,8 +770,8 @@ "iso_3166_2":"LK", "iso_3166_3":"LKA", "name":"Sri Lanka", - "region-code":"142", - "sub-region-code":"034", + "region_code":"142", + "sub_region_code":"034", "eea":false, "calling_code":"94", "currency_symbol":"\u20a8", @@ -781,7 +781,7 @@ "148":{ "capital":"N\u2019Djamena", "citizenship":"Chadian", - "country-code":"148", + "country_code":"148", "currency":"CFA franc (BEAC)", "currency_code":"XAF", "currency_sub_unit":"centime", @@ -789,8 +789,8 @@ "iso_3166_2":"TD", "iso_3166_3":"TCD", "name":"Chad", - "region-code":"002", - "sub-region-code":"017", + "region_code":"002", + "sub_region_code":"017", "eea":false, "calling_code":"235", "currency_symbol":"XAF", @@ -800,7 +800,7 @@ "152":{ "capital":"Santiago", "citizenship":"Chilean", - "country-code":"152", + "country_code":"152", "currency":"Chilean peso", "currency_code":"CLP", "currency_sub_unit":"centavo", @@ -808,8 +808,8 @@ "iso_3166_2":"CL", "iso_3166_3":"CHL", "name":"Chile", - "region-code":"019", - "sub-region-code":"005", + "region_code":"019", + "sub_region_code":"005", "eea":false, "calling_code":"56", "currency_symbol":"CLP", @@ -819,7 +819,7 @@ "156":{ "capital":"Beijing", "citizenship":"Chinese", - "country-code":"156", + "country_code":"156", "currency":"renminbi-yuan (inv.)", "currency_code":"CNY", "currency_sub_unit":"jiao (10)", @@ -827,8 +827,8 @@ "iso_3166_2":"CN", "iso_3166_3":"CHN", "name":"China", - "region-code":"142", - "sub-region-code":"030", + "region_code":"142", + "sub_region_code":"030", "eea":false, "calling_code":"86", "currency_symbol":"\u00a5", @@ -838,7 +838,7 @@ "158":{ "capital":"Taipei", "citizenship":"Taiwanese", - "country-code":"158", + "country_code":"158", "currency":"new Taiwan dollar", "currency_code":"TWD", "currency_sub_unit":"fen (inv.)", @@ -846,8 +846,8 @@ "iso_3166_2":"TW", "iso_3166_3":"TWN", "name":"Taiwan, Province of China", - "region-code":"142", - "sub-region-code":"030", + "region_code":"142", + "sub_region_code":"030", "eea":false, "calling_code":"886", "currency_symbol":"NT$", @@ -857,7 +857,7 @@ "162":{ "capital":"Flying Fish Cove", "citizenship":"Christmas Islander", - "country-code":"162", + "country_code":"162", "currency":"Australian dollar", "currency_code":"AUD", "currency_sub_unit":"cent", @@ -865,8 +865,8 @@ "iso_3166_2":"CX", "iso_3166_3":"CXR", "name":"Christmas Island", - "region-code":"", - "sub-region-code":"", + "region_code":"", + "sub_region_code":"", "eea":false, "calling_code":"61", "currency_symbol":"$", @@ -876,7 +876,7 @@ "166":{ "capital":"Bantam", "citizenship":"Cocos Islander", - "country-code":"166", + "country_code":"166", "currency":"Australian dollar", "currency_code":"AUD", "currency_sub_unit":"cent", @@ -884,8 +884,8 @@ "iso_3166_2":"CC", "iso_3166_3":"CCK", "name":"Cocos (Keeling) Islands", - "region-code":"", - "sub-region-code":"", + "region_code":"", + "sub_region_code":"", "eea":false, "calling_code":"61", "currency_symbol":"$", @@ -895,7 +895,7 @@ "170":{ "capital":"Santa Fe de Bogot\u00e1", "citizenship":"Colombian", - "country-code":"170", + "country_code":"170", "currency":"Colombian peso", "currency_code":"COP", "currency_sub_unit":"centavo", @@ -903,8 +903,8 @@ "iso_3166_2":"CO", "iso_3166_3":"COL", "name":"Colombia", - "region-code":"019", - "sub-region-code":"005", + "region_code":"019", + "sub_region_code":"005", "eea":false, "calling_code":"57", "currency_symbol":"$", @@ -914,7 +914,7 @@ "174":{ "capital":"Moroni", "citizenship":"Comorian", - "country-code":"174", + "country_code":"174", "currency":"Comorian franc", "currency_code":"KMF", "currency_sub_unit":"", @@ -922,8 +922,8 @@ "iso_3166_2":"KM", "iso_3166_3":"COM", "name":"Comoros", - "region-code":"002", - "sub-region-code":"014", + "region_code":"002", + "sub_region_code":"014", "eea":false, "calling_code":"269", "currency_symbol":"KMF", @@ -933,7 +933,7 @@ "175":{ "capital":"Mamoudzou", "citizenship":"Mahorais", - "country-code":"175", + "country_code":"175", "currency":"euro", "currency_code":"EUR", "currency_sub_unit":"cent", @@ -941,8 +941,8 @@ "iso_3166_2":"YT", "iso_3166_3":"MYT", "name":"Mayotte", - "region-code":"002", - "sub-region-code":"014", + "region_code":"002", + "sub_region_code":"014", "eea":false, "calling_code":"262", "currency_symbol":"\u20ac", @@ -952,7 +952,7 @@ "178":{ "capital":"Brazzaville", "citizenship":"Congolese", - "country-code":"178", + "country_code":"178", "currency":"CFA franc (BEAC)", "currency_code":"XAF", "currency_sub_unit":"centime", @@ -960,8 +960,8 @@ "iso_3166_2":"CG", "iso_3166_3":"COG", "name":"Congo", - "region-code":"002", - "sub-region-code":"017", + "region_code":"002", + "sub_region_code":"017", "eea":false, "calling_code":"242", "currency_symbol":"FCF", @@ -971,7 +971,7 @@ "180":{ "capital":"Kinshasa", "citizenship":"Congolese", - "country-code":"180", + "country_code":"180", "currency":"Congolese franc", "currency_code":"CDF", "currency_sub_unit":"centime", @@ -979,8 +979,8 @@ "iso_3166_2":"CD", "iso_3166_3":"COD", "name":"Congo, the Democratic Republic of the", - "region-code":"002", - "sub-region-code":"017", + "region_code":"002", + "sub_region_code":"017", "eea":false, "calling_code":"243", "currency_symbol":"CDF", @@ -990,7 +990,7 @@ "184":{ "capital":"Avarua", "citizenship":"Cook Islander", - "country-code":"184", + "country_code":"184", "currency":"New Zealand dollar", "currency_code":"NZD", "currency_sub_unit":"cent", @@ -998,8 +998,8 @@ "iso_3166_2":"CK", "iso_3166_3":"COK", "name":"Cook Islands", - "region-code":"009", - "sub-region-code":"061", + "region_code":"009", + "sub_region_code":"061", "eea":false, "calling_code":"682", "currency_symbol":"$", @@ -1009,7 +1009,7 @@ "188":{ "capital":"San Jos\u00e9", "citizenship":"Costa Rican", - "country-code":"188", + "country_code":"188", "currency":"Costa Rican col\u00f3n (pl. colones)", "currency_code":"CRC", "currency_sub_unit":"c\u00e9ntimo", @@ -1017,8 +1017,8 @@ "iso_3166_2":"CR", "iso_3166_3":"CRI", "name":"Costa Rica", - "region-code":"019", - "sub-region-code":"013", + "region_code":"019", + "sub_region_code":"013", "eea":false, "calling_code":"506", "currency_symbol":"\u20a1", @@ -1028,7 +1028,7 @@ "191":{ "capital":"Zagreb", "citizenship":"Croatian", - "country-code":"191", + "country_code":"191", "currency":"kuna (inv.)", "currency_code":"HRK", "currency_sub_unit":"lipa (inv.)", @@ -1036,8 +1036,8 @@ "iso_3166_2":"HR", "iso_3166_3":"HRV", "name":"Croatia", - "region-code":"150", - "sub-region-code":"039", + "region_code":"150", + "sub_region_code":"039", "eea":true, "calling_code":"385", "currency_symbol":"kn", @@ -1047,7 +1047,7 @@ "192":{ "capital":"Havana", "citizenship":"Cuban", - "country-code":"192", + "country_code":"192", "currency":"Cuban peso", "currency_code":"CUP", "currency_sub_unit":"centavo", @@ -1055,8 +1055,8 @@ "iso_3166_2":"CU", "iso_3166_3":"CUB", "name":"Cuba", - "region-code":"019", - "sub-region-code":"029", + "region_code":"019", + "sub_region_code":"029", "eea":false, "calling_code":"53", "currency_symbol":"\u20b1", @@ -1066,7 +1066,7 @@ "196":{ "capital":"Nicosia", "citizenship":"Cypriot", - "country-code":"196", + "country_code":"196", "currency":"euro", "currency_code":"EUR", "currency_sub_unit":"cent", @@ -1074,8 +1074,8 @@ "iso_3166_2":"CY", "iso_3166_3":"CYP", "name":"Cyprus", - "region-code":"142", - "sub-region-code":"145", + "region_code":"142", + "sub_region_code":"145", "eea":true, "calling_code":"357", "currency_symbol":"CYP", @@ -1085,7 +1085,7 @@ "203":{ "capital":"Prague", "citizenship":"Czech", - "country-code":"203", + "country_code":"203", "currency":"Czech koruna (pl. koruny)", "currency_code":"CZK", "currency_sub_unit":"hal\u00e9r", @@ -1093,8 +1093,8 @@ "iso_3166_2":"CZ", "iso_3166_3":"CZE", "name":"Czech Republic", - "region-code":"150", - "sub-region-code":"151", + "region_code":"150", + "sub_region_code":"151", "eea":true, "calling_code":"420", "currency_symbol":"K\u010d", @@ -1104,7 +1104,7 @@ "204":{ "capital":"Porto Novo (BJ1)", "citizenship":"Beninese", - "country-code":"204", + "country_code":"204", "currency":"CFA franc (BCEAO)", "currency_code":"XOF", "currency_sub_unit":"centime", @@ -1112,8 +1112,8 @@ "iso_3166_2":"BJ", "iso_3166_3":"BEN", "name":"Benin", - "region-code":"002", - "sub-region-code":"011", + "region_code":"002", + "sub_region_code":"011", "eea":false, "calling_code":"229", "currency_symbol":"XOF", @@ -1123,7 +1123,7 @@ "208":{ "capital":"Copenhagen", "citizenship":"Danish", - "country-code":"208", + "country_code":"208", "currency":"Danish krone", "currency_code":"DKK", "currency_sub_unit":"\u00f8re (inv.)", @@ -1131,8 +1131,8 @@ "iso_3166_2":"DK", "iso_3166_3":"DNK", "name":"Denmark", - "region-code":"150", - "sub-region-code":"154", + "region_code":"150", + "sub_region_code":"154", "eea":true, "calling_code":"45", "currency_symbol":"kr", @@ -1142,7 +1142,7 @@ "212":{ "capital":"Roseau", "citizenship":"Dominican", - "country-code":"212", + "country_code":"212", "currency":"East Caribbean dollar", "currency_code":"XCD", "currency_sub_unit":"cent", @@ -1150,8 +1150,8 @@ "iso_3166_2":"DM", "iso_3166_3":"DMA", "name":"Dominica", - "region-code":"019", - "sub-region-code":"029", + "region_code":"019", + "sub_region_code":"029", "eea":false, "calling_code":"1", "currency_symbol":"$", @@ -1161,7 +1161,7 @@ "214":{ "capital":"Santo Domingo", "citizenship":"Dominican", - "country-code":"214", + "country_code":"214", "currency":"Dominican peso", "currency_code":"DOP", "currency_sub_unit":"centavo", @@ -1169,8 +1169,8 @@ "iso_3166_2":"DO", "iso_3166_3":"DOM", "name":"Dominican Republic", - "region-code":"019", - "sub-region-code":"029", + "region_code":"019", + "sub_region_code":"029", "eea":false, "calling_code":"1", "currency_symbol":"RD$", @@ -1180,7 +1180,7 @@ "218":{ "capital":"Quito", "citizenship":"Ecuadorian", - "country-code":"218", + "country_code":"218", "currency":"US dollar", "currency_code":"USD", "currency_sub_unit":"cent", @@ -1188,8 +1188,8 @@ "iso_3166_2":"EC", "iso_3166_3":"ECU", "name":"Ecuador", - "region-code":"019", - "sub-region-code":"005", + "region_code":"019", + "sub_region_code":"005", "eea":false, "calling_code":"593", "currency_symbol":"$", @@ -1199,7 +1199,7 @@ "222":{ "capital":"San Salvador", "citizenship":"Salvadoran", - "country-code":"222", + "country_code":"222", "currency":"Salvadorian col\u00f3n (pl. colones)", "currency_code":"SVC", "currency_sub_unit":"centavo", @@ -1207,8 +1207,8 @@ "iso_3166_2":"SV", "iso_3166_3":"SLV", "name":"El Salvador", - "region-code":"019", - "sub-region-code":"013", + "region_code":"019", + "sub_region_code":"013", "eea":false, "calling_code":"503", "currency_symbol":"$", @@ -1218,7 +1218,7 @@ "226":{ "capital":"Malabo", "citizenship":"Equatorial Guinean", - "country-code":"226", + "country_code":"226", "currency":"CFA franc (BEAC)", "currency_code":"XAF", "currency_sub_unit":"centime", @@ -1226,8 +1226,8 @@ "iso_3166_2":"GQ", "iso_3166_3":"GNQ", "name":"Equatorial Guinea", - "region-code":"002", - "sub-region-code":"017", + "region_code":"002", + "sub_region_code":"017", "eea":false, "calling_code":"240", "currency_symbol":"FCF", @@ -1237,7 +1237,7 @@ "231":{ "capital":"Addis Ababa", "citizenship":"Ethiopian", - "country-code":"231", + "country_code":"231", "currency":"birr (inv.)", "currency_code":"ETB", "currency_sub_unit":"cent", @@ -1245,8 +1245,8 @@ "iso_3166_2":"ET", "iso_3166_3":"ETH", "name":"Ethiopia", - "region-code":"002", - "sub-region-code":"014", + "region_code":"002", + "sub_region_code":"014", "eea":false, "calling_code":"251", "currency_symbol":"ETB", @@ -1256,7 +1256,7 @@ "232":{ "capital":"Asmara", "citizenship":"Eritrean", - "country-code":"232", + "country_code":"232", "currency":"nakfa", "currency_code":"ERN", "currency_sub_unit":"cent", @@ -1264,8 +1264,8 @@ "iso_3166_2":"ER", "iso_3166_3":"ERI", "name":"Eritrea", - "region-code":"002", - "sub-region-code":"014", + "region_code":"002", + "sub_region_code":"014", "eea":false, "calling_code":"291", "currency_symbol":"Nfk", @@ -1275,7 +1275,7 @@ "233":{ "capital":"Tallinn", "citizenship":"Estonian", - "country-code":"233", + "country_code":"233", "currency":"euro", "currency_code":"EUR", "currency_sub_unit":"cent", @@ -1283,8 +1283,8 @@ "iso_3166_2":"EE", "iso_3166_3":"EST", "name":"Estonia", - "region-code":"150", - "sub-region-code":"154", + "region_code":"150", + "sub_region_code":"154", "eea":true, "calling_code":"372", "currency_symbol":"kr", @@ -1294,7 +1294,7 @@ "234":{ "capital":"T\u00f3rshavn", "citizenship":"Faeroese", - "country-code":"234", + "country_code":"234", "currency":"Danish krone", "currency_code":"DKK", "currency_sub_unit":"\u00f8re (inv.)", @@ -1302,8 +1302,8 @@ "iso_3166_2":"FO", "iso_3166_3":"FRO", "name":"Faroe Islands", - "region-code":"150", - "sub-region-code":"154", + "region_code":"150", + "sub_region_code":"154", "eea":false, "calling_code":"298", "currency_symbol":"kr", @@ -1313,7 +1313,7 @@ "238":{ "capital":"Stanley", "citizenship":"Falkland Islander", - "country-code":"238", + "country_code":"238", "currency":"Falkland Islands pound", "currency_code":"FKP", "currency_sub_unit":"new penny", @@ -1321,8 +1321,8 @@ "iso_3166_2":"FK", "iso_3166_3":"FLK", "name":"Falkland Islands (Malvinas)", - "region-code":"019", - "sub-region-code":"005", + "region_code":"019", + "sub_region_code":"005", "eea":false, "calling_code":"500", "currency_symbol":"\u00a3", @@ -1332,7 +1332,7 @@ "239":{ "capital":"King Edward Point (Grytviken)", "citizenship":"of South Georgia and the South Sandwich Islands", - "country-code":"239", + "country_code":"239", "currency":"", "currency_code":"", "currency_sub_unit":"", @@ -1340,8 +1340,8 @@ "iso_3166_2":"GS", "iso_3166_3":"SGS", "name":"South Georgia and the South Sandwich Islands", - "region-code":"", - "sub-region-code":"", + "region_code":"", + "sub_region_code":"", "eea":false, "calling_code":"44", "currency_symbol":"\u00a3", @@ -1351,7 +1351,7 @@ "242":{ "capital":"Suva", "citizenship":"Fijian", - "country-code":"242", + "country_code":"242", "currency":"Fiji dollar", "currency_code":"FJD", "currency_sub_unit":"cent", @@ -1359,8 +1359,8 @@ "iso_3166_2":"FJ", "iso_3166_3":"FJI", "name":"Fiji", - "region-code":"009", - "sub-region-code":"054", + "region_code":"009", + "sub_region_code":"054", "eea":false, "calling_code":"679", "currency_symbol":"$", @@ -1370,7 +1370,7 @@ "246":{ "capital":"Helsinki", "citizenship":"Finnish", - "country-code":"246", + "country_code":"246", "currency":"euro", "currency_code":"EUR", "currency_sub_unit":"cent", @@ -1378,8 +1378,8 @@ "iso_3166_2":"FI", "iso_3166_3":"FIN", "name":"Finland", - "region-code":"150", - "sub-region-code":"154", + "region_code":"150", + "sub_region_code":"154", "eea":true, "calling_code":"358", "currency_symbol":"\u20ac", @@ -1389,7 +1389,7 @@ "248":{ "capital":"Mariehamn", "citizenship":"\u00c5land Islander", - "country-code":"248", + "country_code":"248", "currency":"euro", "currency_code":"EUR", "currency_sub_unit":"cent", @@ -1397,15 +1397,15 @@ "iso_3166_2":"AX", "iso_3166_3":"ALA", "name":"\u00c5land Islands", - "region-code":"150", - "sub-region-code":"154", + "region_code":"150", + "sub_region_code":"154", "eea":false, "calling_code":"358" }, "250":{ "capital":"Paris", "citizenship":"French", - "country-code":"250", + "country_code":"250", "currency":"euro", "currency_code":"EUR", "currency_sub_unit":"cent", @@ -1413,8 +1413,8 @@ "iso_3166_2":"FR", "iso_3166_3":"FRA", "name":"France", - "region-code":"150", - "sub-region-code":"155", + "region_code":"150", + "sub_region_code":"155", "eea":true, "calling_code":"33", "currency_symbol":"\u20ac", @@ -1424,7 +1424,7 @@ "254":{ "capital":"Cayenne", "citizenship":"Guianese", - "country-code":"254", + "country_code":"254", "currency":"euro", "currency_code":"EUR", "currency_sub_unit":"cent", @@ -1432,8 +1432,8 @@ "iso_3166_2":"GF", "iso_3166_3":"GUF", "name":"French Guiana", - "region-code":"019", - "sub-region-code":"005", + "region_code":"019", + "sub_region_code":"005", "eea":false, "calling_code":"594", "currency_symbol":"\u20ac", @@ -1443,7 +1443,7 @@ "258":{ "capital":"Papeete", "citizenship":"Polynesian", - "country-code":"258", + "country_code":"258", "currency":"CFP franc", "currency_code":"XPF", "currency_sub_unit":"centime", @@ -1451,8 +1451,8 @@ "iso_3166_2":"PF", "iso_3166_3":"PYF", "name":"French Polynesia", - "region-code":"009", - "sub-region-code":"061", + "region_code":"009", + "sub_region_code":"061", "eea":false, "calling_code":"689", "currency_symbol":"XPF", @@ -1462,7 +1462,7 @@ "260":{ "capital":"Port-aux-Francais", "citizenship":"of French Southern and Antarctic Lands", - "country-code":"260", + "country_code":"260", "currency":"euro", "currency_code":"EUR", "currency_sub_unit":"cent", @@ -1470,8 +1470,8 @@ "iso_3166_2":"TF", "iso_3166_3":"ATF", "name":"French Southern Territories", - "region-code":"", - "sub-region-code":"", + "region_code":"", + "sub_region_code":"", "eea":false, "calling_code":"33", "currency_symbol":"\u20ac", @@ -1481,7 +1481,7 @@ "262":{ "capital":"Djibouti", "citizenship":"Djiboutian", - "country-code":"262", + "country_code":"262", "currency":"Djibouti franc", "currency_code":"DJF", "currency_sub_unit":"", @@ -1489,8 +1489,8 @@ "iso_3166_2":"DJ", "iso_3166_3":"DJI", "name":"Djibouti", - "region-code":"002", - "sub-region-code":"014", + "region_code":"002", + "sub_region_code":"014", "eea":false, "calling_code":"253", "currency_symbol":"DJF", @@ -1500,7 +1500,7 @@ "266":{ "capital":"Libreville", "citizenship":"Gabonese", - "country-code":"266", + "country_code":"266", "currency":"CFA franc (BEAC)", "currency_code":"XAF", "currency_sub_unit":"centime", @@ -1508,8 +1508,8 @@ "iso_3166_2":"GA", "iso_3166_3":"GAB", "name":"Gabon", - "region-code":"002", - "sub-region-code":"017", + "region_code":"002", + "sub_region_code":"017", "eea":false, "calling_code":"241", "currency_symbol":"FCF", @@ -1519,7 +1519,7 @@ "268":{ "capital":"Tbilisi", "citizenship":"Georgian", - "country-code":"268", + "country_code":"268", "currency":"lari", "currency_code":"GEL", "currency_sub_unit":"tetri (inv.)", @@ -1527,8 +1527,8 @@ "iso_3166_2":"GE", "iso_3166_3":"GEO", "name":"Georgia", - "region-code":"142", - "sub-region-code":"145", + "region_code":"142", + "sub_region_code":"145", "eea":false, "calling_code":"995", "currency_symbol":"GEL", @@ -1538,7 +1538,7 @@ "270":{ "capital":"Banjul", "citizenship":"Gambian", - "country-code":"270", + "country_code":"270", "currency":"dalasi (inv.)", "currency_code":"GMD", "currency_sub_unit":"butut", @@ -1546,8 +1546,8 @@ "iso_3166_2":"GM", "iso_3166_3":"GMB", "name":"Gambia", - "region-code":"002", - "sub-region-code":"011", + "region_code":"002", + "sub_region_code":"011", "eea":false, "calling_code":"220", "currency_symbol":"D", @@ -1556,12 +1556,12 @@ }, "275":{ "citizenship":"Palestinian", - "country-code":"275", + "country_code":"275", "iso_3166_2":"PS", "iso_3166_3":"PSE", "name":"Palestinian Territory, Occupied", - "region-code":"142", - "sub-region-code":"145", + "region_code":"142", + "sub_region_code":"145", "eea":false, "calling_code":"970", "currency_symbol":"\u20aa", @@ -1571,7 +1571,7 @@ "276":{ "capital":"Berlin", "citizenship":"German", - "country-code":"276", + "country_code":"276", "currency":"euro", "currency_code":"EUR", "currency_sub_unit":"cent", @@ -1579,8 +1579,8 @@ "iso_3166_2":"DE", "iso_3166_3":"DEU", "name":"Germany", - "region-code":"150", - "sub-region-code":"155", + "region_code":"150", + "sub_region_code":"155", "eea":true, "calling_code":"49", "currency_symbol":"\u20ac", @@ -1590,7 +1590,7 @@ "288":{ "capital":"Accra", "citizenship":"Ghanaian", - "country-code":"288", + "country_code":"288", "currency":"Ghana cedi", "currency_code":"GHS", "currency_sub_unit":"pesewa", @@ -1598,8 +1598,8 @@ "iso_3166_2":"GH", "iso_3166_3":"GHA", "name":"Ghana", - "region-code":"002", - "sub-region-code":"011", + "region_code":"002", + "sub_region_code":"011", "eea":false, "calling_code":"233", "currency_symbol":"\u00a2", @@ -1609,7 +1609,7 @@ "292":{ "capital":"Gibraltar", "citizenship":"Gibraltarian", - "country-code":"292", + "country_code":"292", "currency":"Gibraltar pound", "currency_code":"GIP", "currency_sub_unit":"penny", @@ -1617,8 +1617,8 @@ "iso_3166_2":"GI", "iso_3166_3":"GIB", "name":"Gibraltar", - "region-code":"150", - "sub-region-code":"039", + "region_code":"150", + "sub_region_code":"039", "eea":false, "calling_code":"350", "currency_symbol":"\u00a3", @@ -1628,7 +1628,7 @@ "296":{ "capital":"Tarawa", "citizenship":"Kiribatian", - "country-code":"296", + "country_code":"296", "currency":"Australian dollar", "currency_code":"AUD", "currency_sub_unit":"cent", @@ -1636,8 +1636,8 @@ "iso_3166_2":"KI", "iso_3166_3":"KIR", "name":"Kiribati", - "region-code":"009", - "sub-region-code":"057", + "region_code":"009", + "sub_region_code":"057", "eea":false, "calling_code":"686", "currency_symbol":"$", @@ -1647,7 +1647,7 @@ "300":{ "capital":"Athens", "citizenship":"Greek", - "country-code":"300", + "country_code":"300", "currency":"euro", "currency_code":"EUR", "currency_sub_unit":"cent", @@ -1655,8 +1655,8 @@ "iso_3166_2":"GR", "iso_3166_3":"GRC", "name":"Greece", - "region-code":"150", - "sub-region-code":"039", + "region_code":"150", + "sub_region_code":"039", "eea":true, "calling_code":"30", "currency_symbol":"\u20ac", @@ -1666,7 +1666,7 @@ "304":{ "capital":"Nuuk", "citizenship":"Greenlander", - "country-code":"304", + "country_code":"304", "currency":"Danish krone", "currency_code":"DKK", "currency_sub_unit":"\u00f8re (inv.)", @@ -1674,8 +1674,8 @@ "iso_3166_2":"GL", "iso_3166_3":"GRL", "name":"Greenland", - "region-code":"019", - "sub-region-code":"021", + "region_code":"019", + "sub_region_code":"021", "eea":false, "calling_code":"299", "currency_symbol":"kr", @@ -1685,7 +1685,7 @@ "308":{ "capital":"St George\u2019s", "citizenship":"Grenadian", - "country-code":"308", + "country_code":"308", "currency":"East Caribbean dollar", "currency_code":"XCD", "currency_sub_unit":"cent", @@ -1693,8 +1693,8 @@ "iso_3166_2":"GD", "iso_3166_3":"GRD", "name":"Grenada", - "region-code":"019", - "sub-region-code":"029", + "region_code":"019", + "sub_region_code":"029", "eea":false, "calling_code":"1", "currency_symbol":"$", @@ -1704,7 +1704,7 @@ "312":{ "capital":"Basse Terre", "citizenship":"Guadeloupean", - "country-code":"312", + "country_code":"312", "currency":"euro", "currency_code":"EUR", "currency_sub_unit":"cent", @@ -1712,8 +1712,8 @@ "iso_3166_2":"GP", "iso_3166_3":"GLP", "name":"Guadeloupe", - "region-code":"019", - "sub-region-code":"029", + "region_code":"019", + "sub_region_code":"029", "eea":false, "calling_code":"590", "currency_symbol":"\u20ac", @@ -1723,7 +1723,7 @@ "316":{ "capital":"Aga\u00f1a (Hag\u00e5t\u00f1a)", "citizenship":"Guamanian", - "country-code":"316", + "country_code":"316", "currency":"US dollar", "currency_code":"USD", "currency_sub_unit":"cent", @@ -1731,8 +1731,8 @@ "iso_3166_2":"GU", "iso_3166_3":"GUM", "name":"Guam", - "region-code":"009", - "sub-region-code":"057", + "region_code":"009", + "sub_region_code":"057", "eea":false, "calling_code":"1", "currency_symbol":"$", @@ -1742,7 +1742,7 @@ "320":{ "capital":"Guatemala City", "citizenship":"Guatemalan", - "country-code":"320", + "country_code":"320", "currency":"quetzal (pl. quetzales)", "currency_code":"GTQ", "currency_sub_unit":"centavo", @@ -1750,8 +1750,8 @@ "iso_3166_2":"GT", "iso_3166_3":"GTM", "name":"Guatemala", - "region-code":"019", - "sub-region-code":"013", + "region_code":"019", + "sub_region_code":"013", "eea":false, "calling_code":"502", "currency_symbol":"Q", @@ -1761,7 +1761,7 @@ "324":{ "capital":"Conakry", "citizenship":"Guinean", - "country-code":"324", + "country_code":"324", "currency":"Guinean franc", "currency_code":"GNF", "currency_sub_unit":"", @@ -1769,8 +1769,8 @@ "iso_3166_2":"GN", "iso_3166_3":"GIN", "name":"Guinea", - "region-code":"002", - "sub-region-code":"011", + "region_code":"002", + "sub_region_code":"011", "eea":false, "calling_code":"224", "currency_symbol":"GNF", @@ -1780,7 +1780,7 @@ "328":{ "capital":"Georgetown", "citizenship":"Guyanese", - "country-code":"328", + "country_code":"328", "currency":"Guyana dollar", "currency_code":"GYD", "currency_sub_unit":"cent", @@ -1788,8 +1788,8 @@ "iso_3166_2":"GY", "iso_3166_3":"GUY", "name":"Guyana", - "region-code":"019", - "sub-region-code":"005", + "region_code":"019", + "sub_region_code":"005", "eea":false, "calling_code":"592", "currency_symbol":"$", @@ -1799,7 +1799,7 @@ "332":{ "capital":"Port-au-Prince", "citizenship":"Haitian", - "country-code":"332", + "country_code":"332", "currency":"gourde", "currency_code":"HTG", "currency_sub_unit":"centime", @@ -1807,8 +1807,8 @@ "iso_3166_2":"HT", "iso_3166_3":"HTI", "name":"Haiti", - "region-code":"019", - "sub-region-code":"029", + "region_code":"019", + "sub_region_code":"029", "eea":false, "calling_code":"509", "currency_symbol":"G", @@ -1818,7 +1818,7 @@ "334":{ "capital":"Territory of Heard Island and McDonald Islands", "citizenship":"of Territory of Heard Island and McDonald Islands", - "country-code":"334", + "country_code":"334", "currency":"", "currency_code":"", "currency_sub_unit":"", @@ -1826,8 +1826,8 @@ "iso_3166_2":"HM", "iso_3166_3":"HMD", "name":"Heard Island and McDonald Islands", - "region-code":"", - "sub-region-code":"", + "region_code":"", + "sub_region_code":"", "eea":false, "calling_code":"61", "currency_symbol":"$", @@ -1837,7 +1837,7 @@ "336":{ "capital":"Vatican City", "citizenship":"of the Holy See\/of the Vatican", - "country-code":"336", + "country_code":"336", "currency":"euro", "currency_code":"EUR", "currency_sub_unit":"cent", @@ -1845,8 +1845,8 @@ "iso_3166_2":"VA", "iso_3166_3":"VAT", "name":"Holy See (Vatican City State)", - "region-code":"150", - "sub-region-code":"039", + "region_code":"150", + "sub_region_code":"039", "eea":false, "calling_code":"39", "currency_symbol":"\u20ac", @@ -1856,7 +1856,7 @@ "340":{ "capital":"Tegucigalpa", "citizenship":"Honduran", - "country-code":"340", + "country_code":"340", "currency":"lempira", "currency_code":"HNL", "currency_sub_unit":"centavo", @@ -1864,8 +1864,8 @@ "iso_3166_2":"HN", "iso_3166_3":"HND", "name":"Honduras", - "region-code":"019", - "sub-region-code":"013", + "region_code":"019", + "sub_region_code":"013", "eea":false, "calling_code":"504", "currency_symbol":"L", @@ -1875,7 +1875,7 @@ "344":{ "capital":"(HK3)", "citizenship":"Hong Kong Chinese", - "country-code":"344", + "country_code":"344", "currency":"Hong Kong dollar", "currency_code":"HKD", "currency_sub_unit":"cent", @@ -1883,8 +1883,8 @@ "iso_3166_2":"HK", "iso_3166_3":"HKG", "name":"Hong Kong", - "region-code":"142", - "sub-region-code":"030", + "region_code":"142", + "sub_region_code":"030", "eea":false, "calling_code":"852", "currency_symbol":"$", @@ -1894,7 +1894,7 @@ "348":{ "capital":"Budapest", "citizenship":"Hungarian", - "country-code":"348", + "country_code":"348", "currency":"forint (inv.)", "currency_code":"HUF", "currency_sub_unit":"(fill\u00e9r (inv.))", @@ -1902,8 +1902,8 @@ "iso_3166_2":"HU", "iso_3166_3":"HUN", "name":"Hungary", - "region-code":"150", - "sub-region-code":"151", + "region_code":"150", + "sub_region_code":"151", "eea":true, "calling_code":"36", "currency_symbol":"Ft", @@ -1913,7 +1913,7 @@ "352":{ "capital":"Reykjavik", "citizenship":"Icelander", - "country-code":"352", + "country_code":"352", "currency":"kr\u00f3na (pl. kr\u00f3nur)", "currency_code":"ISK", "currency_sub_unit":"", @@ -1921,8 +1921,8 @@ "iso_3166_2":"IS", "iso_3166_3":"ISL", "name":"Iceland", - "region-code":"150", - "sub-region-code":"154", + "region_code":"150", + "sub_region_code":"154", "eea":false, "calling_code":"354", "currency_symbol":"kr", @@ -1932,7 +1932,7 @@ "356":{ "capital":"New Delhi", "citizenship":"Indian", - "country-code":"356", + "country_code":"356", "currency":"Indian rupee", "currency_code":"INR", "currency_sub_unit":"paisa", @@ -1940,8 +1940,8 @@ "iso_3166_2":"IN", "iso_3166_3":"IND", "name":"India", - "region-code":"142", - "sub-region-code":"034", + "region_code":"142", + "sub_region_code":"034", "eea":false, "calling_code":"91", "currency_symbol":"\u20b9", @@ -1951,7 +1951,7 @@ "360":{ "capital":"Jakarta", "citizenship":"Indonesian", - "country-code":"360", + "country_code":"360", "currency":"Indonesian rupiah (inv.)", "currency_code":"IDR", "currency_sub_unit":"sen (inv.)", @@ -1959,8 +1959,8 @@ "iso_3166_2":"ID", "iso_3166_3":"IDN", "name":"Indonesia", - "region-code":"142", - "sub-region-code":"035", + "region_code":"142", + "sub_region_code":"035", "eea":false, "calling_code":"62", "currency_symbol":"Rp", @@ -1970,7 +1970,7 @@ "364":{ "capital":"Tehran", "citizenship":"Iranian", - "country-code":"364", + "country_code":"364", "currency":"Iranian rial", "currency_code":"IRR", "currency_sub_unit":"(dinar) (IR1)", @@ -1978,8 +1978,8 @@ "iso_3166_2":"IR", "iso_3166_3":"IRN", "name":"Iran, Islamic Republic of", - "region-code":"142", - "sub-region-code":"034", + "region_code":"142", + "sub_region_code":"034", "eea":false, "calling_code":"98", "currency_symbol":"\ufdfc", @@ -1989,7 +1989,7 @@ "368":{ "capital":"Baghdad", "citizenship":"Iraqi", - "country-code":"368", + "country_code":"368", "currency":"Iraqi dinar", "currency_code":"IQD", "currency_sub_unit":"fils (inv.)", @@ -1997,8 +1997,8 @@ "iso_3166_2":"IQ", "iso_3166_3":"IRQ", "name":"Iraq", - "region-code":"142", - "sub-region-code":"145", + "region_code":"142", + "sub_region_code":"145", "eea":false, "calling_code":"964", "currency_symbol":"IQD", @@ -2008,7 +2008,7 @@ "372":{ "capital":"Dublin", "citizenship":"Irish", - "country-code":"372", + "country_code":"372", "currency":"euro", "currency_code":"EUR", "currency_sub_unit":"cent", @@ -2016,8 +2016,8 @@ "iso_3166_2":"IE", "iso_3166_3":"IRL", "name":"Ireland", - "region-code":"150", - "sub-region-code":"154", + "region_code":"150", + "sub_region_code":"154", "eea":true, "calling_code":"353", "currency_symbol":"\u20ac", @@ -2027,7 +2027,7 @@ "376":{ "capital":"(IL1)", "citizenship":"Israeli", - "country-code":"376", + "country_code":"376", "currency":"shekel", "currency_code":"ILS", "currency_sub_unit":"agora", @@ -2035,8 +2035,8 @@ "iso_3166_2":"IL", "iso_3166_3":"ISR", "name":"Israel", - "region-code":"142", - "sub-region-code":"145", + "region_code":"142", + "sub_region_code":"145", "eea":false, "calling_code":"972", "currency_symbol":"\u20aa", @@ -2046,7 +2046,7 @@ "380":{ "capital":"Rome", "citizenship":"Italian", - "country-code":"380", + "country_code":"380", "currency":"euro", "currency_code":"EUR", "currency_sub_unit":"cent", @@ -2054,8 +2054,8 @@ "iso_3166_2":"IT", "iso_3166_3":"ITA", "name":"Italy", - "region-code":"150", - "sub-region-code":"039", + "region_code":"150", + "sub_region_code":"039", "eea":true, "calling_code":"39", "currency_symbol":"\u20ac", @@ -2065,7 +2065,7 @@ "384":{ "capital":"Yamoussoukro (CI1)", "citizenship":"Ivorian", - "country-code":"384", + "country_code":"384", "currency":"CFA franc (BCEAO)", "currency_code":"XOF", "currency_sub_unit":"centime", @@ -2073,8 +2073,8 @@ "iso_3166_2":"CI", "iso_3166_3":"CIV", "name":"C\u00f4te d'Ivoire", - "region-code":"002", - "sub-region-code":"011", + "region_code":"002", + "sub_region_code":"011", "eea":false, "calling_code":"225", "currency_symbol":"XOF", @@ -2084,7 +2084,7 @@ "388":{ "capital":"Kingston", "citizenship":"Jamaican", - "country-code":"388", + "country_code":"388", "currency":"Jamaica dollar", "currency_code":"JMD", "currency_sub_unit":"cent", @@ -2092,8 +2092,8 @@ "iso_3166_2":"JM", "iso_3166_3":"JAM", "name":"Jamaica", - "region-code":"019", - "sub-region-code":"029", + "region_code":"019", + "sub_region_code":"029", "eea":false, "calling_code":"1", "currency_symbol":"$", @@ -2103,7 +2103,7 @@ "392":{ "capital":"Tokyo", "citizenship":"Japanese", - "country-code":"392", + "country_code":"392", "currency":"yen (inv.)", "currency_code":"JPY", "currency_sub_unit":"(sen (inv.)) (JP1)", @@ -2111,8 +2111,8 @@ "iso_3166_2":"JP", "iso_3166_3":"JPN", "name":"Japan", - "region-code":"142", - "sub-region-code":"030", + "region_code":"142", + "sub_region_code":"030", "eea":false, "calling_code":"81", "currency_symbol":"\u00a5", @@ -2122,7 +2122,7 @@ "398":{ "capital":"Astana", "citizenship":"Kazakh", - "country-code":"398", + "country_code":"398", "currency":"tenge (inv.)", "currency_code":"KZT", "currency_sub_unit":"tiyn", @@ -2130,8 +2130,8 @@ "iso_3166_2":"KZ", "iso_3166_3":"KAZ", "name":"Kazakhstan", - "region-code":"142", - "sub-region-code":"143", + "region_code":"142", + "sub_region_code":"143", "eea":false, "calling_code":"7", "currency_symbol":"\u043b\u0432", @@ -2141,7 +2141,7 @@ "400":{ "capital":"Amman", "citizenship":"Jordanian", - "country-code":"400", + "country_code":"400", "currency":"Jordanian dinar", "currency_code":"JOD", "currency_sub_unit":"100 qirsh", @@ -2149,8 +2149,8 @@ "iso_3166_2":"JO", "iso_3166_3":"JOR", "name":"Jordan", - "region-code":"142", - "sub-region-code":"145", + "region_code":"142", + "sub_region_code":"145", "eea":false, "calling_code":"962", "currency_symbol":"JOD", @@ -2160,7 +2160,7 @@ "404":{ "capital":"Nairobi", "citizenship":"Kenyan", - "country-code":"404", + "country_code":"404", "currency":"Kenyan shilling", "currency_code":"KES", "currency_sub_unit":"cent", @@ -2168,8 +2168,8 @@ "iso_3166_2":"KE", "iso_3166_3":"KEN", "name":"Kenya", - "region-code":"002", - "sub-region-code":"014", + "region_code":"002", + "sub_region_code":"014", "eea":false, "calling_code":"254", "currency_symbol":"KES", @@ -2179,7 +2179,7 @@ "408":{ "capital":"Pyongyang", "citizenship":"North Korean", - "country-code":"408", + "country_code":"408", "currency":"North Korean won (inv.)", "currency_code":"KPW", "currency_sub_unit":"chun (inv.)", @@ -2187,8 +2187,8 @@ "iso_3166_2":"KP", "iso_3166_3":"PRK", "name":"Korea, Democratic People's Republic of", - "region-code":"142", - "sub-region-code":"030", + "region_code":"142", + "sub_region_code":"030", "eea":false, "calling_code":"850", "currency_symbol":"\u20a9", @@ -2198,7 +2198,7 @@ "410":{ "capital":"Seoul", "citizenship":"South Korean", - "country-code":"410", + "country_code":"410", "currency":"South Korean won (inv.)", "currency_code":"KRW", "currency_sub_unit":"(chun (inv.))", @@ -2206,8 +2206,8 @@ "iso_3166_2":"KR", "iso_3166_3":"KOR", "name":"Korea, Republic of", - "region-code":"142", - "sub-region-code":"030", + "region_code":"142", + "sub_region_code":"030", "eea":false, "calling_code":"82", "currency_symbol":"\u20a9", @@ -2217,7 +2217,7 @@ "414":{ "capital":"Kuwait City", "citizenship":"Kuwaiti", - "country-code":"414", + "country_code":"414", "currency":"Kuwaiti dinar", "currency_code":"KWD", "currency_sub_unit":"fils (inv.)", @@ -2225,8 +2225,8 @@ "iso_3166_2":"KW", "iso_3166_3":"KWT", "name":"Kuwait", - "region-code":"142", - "sub-region-code":"145", + "region_code":"142", + "sub_region_code":"145", "eea":false, "calling_code":"965", "currency_symbol":"KWD", @@ -2236,7 +2236,7 @@ "417":{ "capital":"Bishkek", "citizenship":"Kyrgyz", - "country-code":"417", + "country_code":"417", "currency":"som", "currency_code":"KGS", "currency_sub_unit":"tyiyn", @@ -2244,8 +2244,8 @@ "iso_3166_2":"KG", "iso_3166_3":"KGZ", "name":"Kyrgyzstan", - "region-code":"142", - "sub-region-code":"143", + "region_code":"142", + "sub_region_code":"143", "eea":false, "calling_code":"996", "currency_symbol":"\u043b\u0432", @@ -2255,7 +2255,7 @@ "418":{ "capital":"Vientiane", "citizenship":"Lao", - "country-code":"418", + "country_code":"418", "currency":"kip (inv.)", "currency_code":"LAK", "currency_sub_unit":"(at (inv.))", @@ -2263,8 +2263,8 @@ "iso_3166_2":"LA", "iso_3166_3":"LAO", "name":"Lao People's Democratic Republic", - "region-code":"142", - "sub-region-code":"035", + "region_code":"142", + "sub_region_code":"035", "eea":false, "calling_code":"856", "currency_symbol":"\u20ad", @@ -2274,7 +2274,7 @@ "422":{ "capital":"Beirut", "citizenship":"Lebanese", - "country-code":"422", + "country_code":"422", "currency":"Lebanese pound", "currency_code":"LBP", "currency_sub_unit":"(piastre)", @@ -2282,8 +2282,8 @@ "iso_3166_2":"LB", "iso_3166_3":"LBN", "name":"Lebanon", - "region-code":"142", - "sub-region-code":"145", + "region_code":"142", + "sub_region_code":"145", "eea":false, "calling_code":"961", "currency_symbol":"\u00a3", @@ -2293,7 +2293,7 @@ "426":{ "capital":"Maseru", "citizenship":"Basotho", - "country-code":"426", + "country_code":"426", "currency":"loti (pl. maloti)", "currency_code":"LSL", "currency_sub_unit":"sente", @@ -2301,8 +2301,8 @@ "iso_3166_2":"LS", "iso_3166_3":"LSO", "name":"Lesotho", - "region-code":"002", - "sub-region-code":"018", + "region_code":"002", + "sub_region_code":"018", "eea":false, "calling_code":"266", "currency_symbol":"L", @@ -2312,7 +2312,7 @@ "428":{ "capital":"Riga", "citizenship":"Latvian", - "country-code":"428", + "country_code":"428", "currency":"euro", "currency_code":"EUR", "currency_sub_unit":"cent", @@ -2320,8 +2320,8 @@ "iso_3166_2":"LV", "iso_3166_3":"LVA", "name":"Latvia", - "region-code":"150", - "sub-region-code":"154", + "region_code":"150", + "sub_region_code":"154", "eea":true, "calling_code":"371", "currency_symbol":"Ls", @@ -2331,7 +2331,7 @@ "430":{ "capital":"Monrovia", "citizenship":"Liberian", - "country-code":"430", + "country_code":"430", "currency":"Liberian dollar", "currency_code":"LRD", "currency_sub_unit":"cent", @@ -2339,8 +2339,8 @@ "iso_3166_2":"LR", "iso_3166_3":"LBR", "name":"Liberia", - "region-code":"002", - "sub-region-code":"011", + "region_code":"002", + "sub_region_code":"011", "eea":false, "calling_code":"231", "currency_symbol":"$", @@ -2350,7 +2350,7 @@ "434":{ "capital":"Tripoli", "citizenship":"Libyan", - "country-code":"434", + "country_code":"434", "currency":"Libyan dinar", "currency_code":"LYD", "currency_sub_unit":"dirham", @@ -2358,8 +2358,8 @@ "iso_3166_2":"LY", "iso_3166_3":"LBY", "name":"Libya", - "region-code":"002", - "sub-region-code":"015", + "region_code":"002", + "sub_region_code":"015", "eea":false, "calling_code":"218", "currency_symbol":"LYD", @@ -2369,7 +2369,7 @@ "438":{ "capital":"Vaduz", "citizenship":"Liechtensteiner", - "country-code":"438", + "country_code":"438", "currency":"Swiss franc", "currency_code":"CHF", "currency_sub_unit":"centime", @@ -2377,8 +2377,8 @@ "iso_3166_2":"LI", "iso_3166_3":"LIE", "name":"Liechtenstein", - "region-code":"150", - "sub-region-code":"155", + "region_code":"150", + "sub_region_code":"155", "eea":false, "calling_code":"423", "currency_symbol":"CHF", @@ -2388,7 +2388,7 @@ "440":{ "capital":"Vilnius", "citizenship":"Lithuanian", - "country-code":"440", + "country_code":"440", "currency":"euro", "currency_code":"EUR", "currency_sub_unit":"cent", @@ -2396,8 +2396,8 @@ "iso_3166_2":"LT", "iso_3166_3":"LTU", "name":"Lithuania", - "region-code":"150", - "sub-region-code":"154", + "region_code":"150", + "sub_region_code":"154", "eea":true, "calling_code":"370", "currency_symbol":"Lt", @@ -2407,7 +2407,7 @@ "442":{ "capital":"Luxembourg", "citizenship":"Luxembourger", - "country-code":"442", + "country_code":"442", "currency":"euro", "currency_code":"EUR", "currency_sub_unit":"cent", @@ -2415,8 +2415,8 @@ "iso_3166_2":"LU", "iso_3166_3":"LUX", "name":"Luxembourg", - "region-code":"150", - "sub-region-code":"155", + "region_code":"150", + "sub_region_code":"155", "eea":true, "calling_code":"352", "currency_symbol":"\u20ac", @@ -2426,7 +2426,7 @@ "446":{ "capital":"Macao (MO3)", "citizenship":"Macanese", - "country-code":"446", + "country_code":"446", "currency":"pataca", "currency_code":"MOP", "currency_sub_unit":"avo", @@ -2434,8 +2434,8 @@ "iso_3166_2":"MO", "iso_3166_3":"MAC", "name":"Macao", - "region-code":"142", - "sub-region-code":"030", + "region_code":"142", + "sub_region_code":"030", "eea":false, "calling_code":"853", "currency_symbol":"MOP", @@ -2445,7 +2445,7 @@ "450":{ "capital":"Antananarivo", "citizenship":"Malagasy", - "country-code":"450", + "country_code":"450", "currency":"ariary", "currency_code":"MGA", "currency_sub_unit":"iraimbilanja (inv.)", @@ -2453,8 +2453,8 @@ "iso_3166_2":"MG", "iso_3166_3":"MDG", "name":"Madagascar", - "region-code":"002", - "sub-region-code":"014", + "region_code":"002", + "sub_region_code":"014", "eea":false, "calling_code":"261", "currency_symbol":"MGA", @@ -2464,7 +2464,7 @@ "454":{ "capital":"Lilongwe", "citizenship":"Malawian", - "country-code":"454", + "country_code":"454", "currency":"Malawian kwacha (inv.)", "currency_code":"MWK", "currency_sub_unit":"tambala (inv.)", @@ -2472,8 +2472,8 @@ "iso_3166_2":"MW", "iso_3166_3":"MWI", "name":"Malawi", - "region-code":"002", - "sub-region-code":"014", + "region_code":"002", + "sub_region_code":"014", "eea":false, "calling_code":"265", "currency_symbol":"MK", @@ -2483,7 +2483,7 @@ "458":{ "capital":"Kuala Lumpur (MY1)", "citizenship":"Malaysian", - "country-code":"458", + "country_code":"458", "currency":"ringgit (inv.)", "currency_code":"MYR", "currency_sub_unit":"sen (inv.)", @@ -2491,8 +2491,8 @@ "iso_3166_2":"MY", "iso_3166_3":"MYS", "name":"Malaysia", - "region-code":"142", - "sub-region-code":"035", + "region_code":"142", + "sub_region_code":"035", "eea":false, "calling_code":"60", "currency_symbol":"RM", @@ -2502,7 +2502,7 @@ "462":{ "capital":"Mal\u00e9", "citizenship":"Maldivian", - "country-code":"462", + "country_code":"462", "currency":"rufiyaa", "currency_code":"MVR", "currency_sub_unit":"laari (inv.)", @@ -2510,8 +2510,8 @@ "iso_3166_2":"MV", "iso_3166_3":"MDV", "name":"Maldives", - "region-code":"142", - "sub-region-code":"034", + "region_code":"142", + "sub_region_code":"034", "eea":false, "calling_code":"960", "currency_symbol":"Rf", @@ -2521,7 +2521,7 @@ "466":{ "capital":"Bamako", "citizenship":"Malian", - "country-code":"466", + "country_code":"466", "currency":"CFA franc (BCEAO)", "currency_code":"XOF", "currency_sub_unit":"centime", @@ -2529,8 +2529,8 @@ "iso_3166_2":"ML", "iso_3166_3":"MLI", "name":"Mali", - "region-code":"002", - "sub-region-code":"011", + "region_code":"002", + "sub_region_code":"011", "eea":false, "calling_code":"223", "currency_symbol":"XOF", @@ -2540,7 +2540,7 @@ "470":{ "capital":"Valletta", "citizenship":"Maltese", - "country-code":"470", + "country_code":"470", "currency":"euro", "currency_code":"EUR", "currency_sub_unit":"cent", @@ -2548,8 +2548,8 @@ "iso_3166_2":"MT", "iso_3166_3":"MLT", "name":"Malta", - "region-code":"150", - "sub-region-code":"039", + "region_code":"150", + "sub_region_code":"039", "eea":true, "calling_code":"356", "currency_symbol":"MTL", @@ -2559,7 +2559,7 @@ "474":{ "capital":"Fort-de-France", "citizenship":"Martinican", - "country-code":"474", + "country_code":"474", "currency":"euro", "currency_code":"EUR", "currency_sub_unit":"cent", @@ -2567,8 +2567,8 @@ "iso_3166_2":"MQ", "iso_3166_3":"MTQ", "name":"Martinique", - "region-code":"019", - "sub-region-code":"029", + "region_code":"019", + "sub_region_code":"029", "eea":false, "calling_code":"596", "currency_symbol":"\u20ac", @@ -2578,7 +2578,7 @@ "478":{ "capital":"Nouakchott", "citizenship":"Mauritanian", - "country-code":"478", + "country_code":"478", "currency":"ouguiya", "currency_code":"MRO", "currency_sub_unit":"khoum", @@ -2586,8 +2586,8 @@ "iso_3166_2":"MR", "iso_3166_3":"MRT", "name":"Mauritania", - "region-code":"002", - "sub-region-code":"011", + "region_code":"002", + "sub_region_code":"011", "eea":false, "calling_code":"222", "currency_symbol":"UM", @@ -2597,7 +2597,7 @@ "480":{ "capital":"Port Louis", "citizenship":"Mauritian", - "country-code":"480", + "country_code":"480", "currency":"Mauritian rupee", "currency_code":"MUR", "currency_sub_unit":"cent", @@ -2605,8 +2605,8 @@ "iso_3166_2":"MU", "iso_3166_3":"MUS", "name":"Mauritius", - "region-code":"002", - "sub-region-code":"014", + "region_code":"002", + "sub_region_code":"014", "eea":false, "calling_code":"230", "currency_symbol":"\u20a8", @@ -2616,7 +2616,7 @@ "484":{ "capital":"Mexico City", "citizenship":"Mexican", - "country-code":"484", + "country_code":"484", "currency":"Mexican peso", "currency_code":"MXN", "currency_sub_unit":"centavo", @@ -2624,8 +2624,8 @@ "iso_3166_2":"MX", "iso_3166_3":"MEX", "name":"Mexico", - "region-code":"019", - "sub-region-code":"013", + "region_code":"019", + "sub_region_code":"013", "eea":false, "calling_code":"52", "currency_symbol":"$", @@ -2635,7 +2635,7 @@ "492":{ "capital":"Monaco", "citizenship":"Monegasque", - "country-code":"492", + "country_code":"492", "currency":"euro", "currency_code":"EUR", "currency_sub_unit":"cent", @@ -2643,8 +2643,8 @@ "iso_3166_2":"MC", "iso_3166_3":"MCO", "name":"Monaco", - "region-code":"150", - "sub-region-code":"155", + "region_code":"150", + "sub_region_code":"155", "eea":false, "calling_code":"377", "currency_symbol":"\u20ac", @@ -2654,7 +2654,7 @@ "496":{ "capital":"Ulan Bator", "citizenship":"Mongolian", - "country-code":"496", + "country_code":"496", "currency":"tugrik", "currency_code":"MNT", "currency_sub_unit":"m\u00f6ng\u00f6 (inv.)", @@ -2662,8 +2662,8 @@ "iso_3166_2":"MN", "iso_3166_3":"MNG", "name":"Mongolia", - "region-code":"142", - "sub-region-code":"030", + "region_code":"142", + "sub_region_code":"030", "eea":false, "calling_code":"976", "currency_symbol":"\u20ae", @@ -2673,7 +2673,7 @@ "498":{ "capital":"Chisinau", "citizenship":"Moldovan", - "country-code":"498", + "country_code":"498", "currency":"Moldovan leu (pl. lei)", "currency_code":"MDL", "currency_sub_unit":"ban", @@ -2681,8 +2681,8 @@ "iso_3166_2":"MD", "iso_3166_3":"MDA", "name":"Moldova, Republic of", - "region-code":"150", - "sub-region-code":"151", + "region_code":"150", + "sub_region_code":"151", "eea":false, "calling_code":"373", "currency_symbol":"MDL", @@ -2692,7 +2692,7 @@ "499":{ "capital":"Podgorica", "citizenship":"Montenegrin", - "country-code":"499", + "country_code":"499", "currency":"euro", "currency_code":"EUR", "currency_sub_unit":"cent", @@ -2700,8 +2700,8 @@ "iso_3166_2":"ME", "iso_3166_3":"MNE", "name":"Montenegro", - "region-code":"150", - "sub-region-code":"039", + "region_code":"150", + "sub_region_code":"039", "eea":false, "calling_code":"382", "currency_symbol":"\u20ac", @@ -2711,7 +2711,7 @@ "500":{ "capital":"Plymouth (MS2)", "citizenship":"Montserratian", - "country-code":"500", + "country_code":"500", "currency":"East Caribbean dollar", "currency_code":"XCD", "currency_sub_unit":"cent", @@ -2719,8 +2719,8 @@ "iso_3166_2":"MS", "iso_3166_3":"MSR", "name":"Montserrat", - "region-code":"019", - "sub-region-code":"029", + "region_code":"019", + "sub_region_code":"029", "eea":false, "calling_code":"1", "currency_symbol":"$", @@ -2730,7 +2730,7 @@ "504":{ "capital":"Rabat", "citizenship":"Moroccan", - "country-code":"504", + "country_code":"504", "currency":"Moroccan dirham", "currency_code":"MAD", "currency_sub_unit":"centime", @@ -2738,8 +2738,8 @@ "iso_3166_2":"MA", "iso_3166_3":"MAR", "name":"Morocco", - "region-code":"002", - "sub-region-code":"015", + "region_code":"002", + "sub_region_code":"015", "eea":false, "calling_code":"212", "currency_symbol":"MAD", @@ -2749,7 +2749,7 @@ "508":{ "capital":"Maputo", "citizenship":"Mozambican", - "country-code":"508", + "country_code":"508", "currency":"metical", "currency_code":"MZN", "currency_sub_unit":"centavo", @@ -2757,8 +2757,8 @@ "iso_3166_2":"MZ", "iso_3166_3":"MOZ", "name":"Mozambique", - "region-code":"002", - "sub-region-code":"014", + "region_code":"002", + "sub_region_code":"014", "eea":false, "calling_code":"258", "currency_symbol":"MT", @@ -2768,7 +2768,7 @@ "512":{ "capital":"Muscat", "citizenship":"Omani", - "country-code":"512", + "country_code":"512", "currency":"Omani rial", "currency_code":"OMR", "currency_sub_unit":"baiza", @@ -2776,8 +2776,8 @@ "iso_3166_2":"OM", "iso_3166_3":"OMN", "name":"Oman", - "region-code":"142", - "sub-region-code":"145", + "region_code":"142", + "sub_region_code":"145", "eea":false, "calling_code":"968", "currency_symbol":"\ufdfc", @@ -2787,7 +2787,7 @@ "516":{ "capital":"Windhoek", "citizenship":"Namibian", - "country-code":"516", + "country_code":"516", "currency":"Namibian dollar", "currency_code":"NAD", "currency_sub_unit":"cent", @@ -2795,8 +2795,8 @@ "iso_3166_2":"NA", "iso_3166_3":"NAM", "name":"Namibia", - "region-code":"002", - "sub-region-code":"018", + "region_code":"002", + "sub_region_code":"018", "eea":false, "calling_code":"264", "currency_symbol":"$", @@ -2806,7 +2806,7 @@ "520":{ "capital":"Yaren", "citizenship":"Nauruan", - "country-code":"520", + "country_code":"520", "currency":"Australian dollar", "currency_code":"AUD", "currency_sub_unit":"cent", @@ -2814,8 +2814,8 @@ "iso_3166_2":"NR", "iso_3166_3":"NRU", "name":"Nauru", - "region-code":"009", - "sub-region-code":"057", + "region_code":"009", + "sub_region_code":"057", "eea":false, "calling_code":"674", "currency_symbol":"$", @@ -2825,7 +2825,7 @@ "524":{ "capital":"Kathmandu", "citizenship":"Nepalese", - "country-code":"524", + "country_code":"524", "currency":"Nepalese rupee", "currency_code":"NPR", "currency_sub_unit":"paisa (inv.)", @@ -2833,8 +2833,8 @@ "iso_3166_2":"NP", "iso_3166_3":"NPL", "name":"Nepal", - "region-code":"142", - "sub-region-code":"034", + "region_code":"142", + "sub_region_code":"034", "eea":false, "calling_code":"977", "currency_symbol":"\u20a8", @@ -2844,7 +2844,7 @@ "528":{ "capital":"Amsterdam (NL2)", "citizenship":"Dutch", - "country-code":"528", + "country_code":"528", "currency":"euro", "currency_code":"EUR", "currency_sub_unit":"cent", @@ -2852,8 +2852,8 @@ "iso_3166_2":"NL", "iso_3166_3":"NLD", "name":"Netherlands", - "region-code":"150", - "sub-region-code":"155", + "region_code":"150", + "sub_region_code":"155", "eea":true, "calling_code":"31", "currency_symbol":"\u20ac", @@ -2863,7 +2863,7 @@ "531":{ "capital":"Willemstad", "citizenship":"Cura\u00e7aoan", - "country-code":"531", + "country_code":"531", "currency":"Netherlands Antillean guilder (CW1)", "currency_code":"ANG", "currency_sub_unit":"cent", @@ -2871,15 +2871,15 @@ "iso_3166_2":"CW", "iso_3166_3":"CUW", "name":"Cura\u00e7ao", - "region-code":"019", - "sub-region-code":"029", + "region_code":"019", + "sub_region_code":"029", "eea":false, "calling_code":"599" }, "533":{ "capital":"Oranjestad", "citizenship":"Aruban", - "country-code":"533", + "country_code":"533", "currency":"Aruban guilder", "currency_code":"AWG", "currency_sub_unit":"cent", @@ -2887,8 +2887,8 @@ "iso_3166_2":"AW", "iso_3166_3":"ABW", "name":"Aruba", - "region-code":"019", - "sub-region-code":"029", + "region_code":"019", + "sub_region_code":"029", "eea":false, "calling_code":"297", "currency_symbol":"\u0192", @@ -2898,7 +2898,7 @@ "534":{ "capital":"Philipsburg", "citizenship":"Sint Maartener", - "country-code":"534", + "country_code":"534", "currency":"Netherlands Antillean guilder (SX1)", "currency_code":"ANG", "currency_sub_unit":"cent", @@ -2906,29 +2906,29 @@ "iso_3166_2":"SX", "iso_3166_3":"SXM", "name":"Sint Maarten (Dutch part)", - "region-code":"019", - "sub-region-code":"029", + "region_code":"019", + "sub_region_code":"029", "eea":false, "calling_code":"721" }, "535":{ "citizenship":"of Bonaire, Sint Eustatius and Saba", - "country-code":"535", + "country_code":"535", "currency":"US dollar", "currency_code":"USD", "currency_sub_unit":"cent", "iso_3166_2":"BQ", "iso_3166_3":"BES", "name":"Bonaire, Sint Eustatius and Saba", - "region-code":"019", - "sub-region-code":"029", + "region_code":"019", + "sub_region_code":"029", "eea":false, "calling_code":"599" }, "540":{ "capital":"Noum\u00e9a", "citizenship":"New Caledonian", - "country-code":"540", + "country_code":"540", "currency":"CFP franc", "currency_code":"XPF", "currency_sub_unit":"centime", @@ -2936,8 +2936,8 @@ "iso_3166_2":"NC", "iso_3166_3":"NCL", "name":"New Caledonia", - "region-code":"009", - "sub-region-code":"054", + "region_code":"009", + "sub_region_code":"054", "eea":false, "calling_code":"687", "currency_symbol":"XPF", @@ -2947,7 +2947,7 @@ "548":{ "capital":"Port Vila", "citizenship":"Vanuatuan", - "country-code":"548", + "country_code":"548", "currency":"vatu (inv.)", "currency_code":"VUV", "currency_sub_unit":"", @@ -2955,8 +2955,8 @@ "iso_3166_2":"VU", "iso_3166_3":"VUT", "name":"Vanuatu", - "region-code":"009", - "sub-region-code":"054", + "region_code":"009", + "sub_region_code":"054", "eea":false, "calling_code":"678", "currency_symbol":"Vt", @@ -2966,7 +2966,7 @@ "554":{ "capital":"Wellington", "citizenship":"New Zealander", - "country-code":"554", + "country_code":"554", "currency":"New Zealand dollar", "currency_code":"NZD", "currency_sub_unit":"cent", @@ -2974,8 +2974,8 @@ "iso_3166_2":"NZ", "iso_3166_3":"NZL", "name":"New Zealand", - "region-code":"009", - "sub-region-code":"053", + "region_code":"009", + "sub_region_code":"053", "eea":false, "calling_code":"64", "currency_symbol":"$", @@ -2985,7 +2985,7 @@ "558":{ "capital":"Managua", "citizenship":"Nicaraguan", - "country-code":"558", + "country_code":"558", "currency":"c\u00f3rdoba oro", "currency_code":"NIO", "currency_sub_unit":"centavo", @@ -2993,8 +2993,8 @@ "iso_3166_2":"NI", "iso_3166_3":"NIC", "name":"Nicaragua", - "region-code":"019", - "sub-region-code":"013", + "region_code":"019", + "sub_region_code":"013", "eea":false, "calling_code":"505", "currency_symbol":"C$", @@ -3004,7 +3004,7 @@ "562":{ "capital":"Niamey", "citizenship":"Nigerien", - "country-code":"562", + "country_code":"562", "currency":"CFA franc (BCEAO)", "currency_code":"XOF", "currency_sub_unit":"centime", @@ -3012,8 +3012,8 @@ "iso_3166_2":"NE", "iso_3166_3":"NER", "name":"Niger", - "region-code":"002", - "sub-region-code":"011", + "region_code":"002", + "sub_region_code":"011", "eea":false, "calling_code":"227", "currency_symbol":"XOF", @@ -3023,7 +3023,7 @@ "566":{ "capital":"Abuja", "citizenship":"Nigerian", - "country-code":"566", + "country_code":"566", "currency":"naira (inv.)", "currency_code":"NGN", "currency_sub_unit":"kobo (inv.)", @@ -3031,8 +3031,8 @@ "iso_3166_2":"NG", "iso_3166_3":"NGA", "name":"Nigeria", - "region-code":"002", - "sub-region-code":"011", + "region_code":"002", + "sub_region_code":"011", "eea":false, "calling_code":"234", "currency_symbol":"\u20a6", @@ -3042,7 +3042,7 @@ "570":{ "capital":"Alofi", "citizenship":"Niuean", - "country-code":"570", + "country_code":"570", "currency":"New Zealand dollar", "currency_code":"NZD", "currency_sub_unit":"cent", @@ -3050,8 +3050,8 @@ "iso_3166_2":"NU", "iso_3166_3":"NIU", "name":"Niue", - "region-code":"009", - "sub-region-code":"061", + "region_code":"009", + "sub_region_code":"061", "eea":false, "calling_code":"683", "currency_symbol":"$", @@ -3061,7 +3061,7 @@ "574":{ "capital":"Kingston", "citizenship":"Norfolk Islander", - "country-code":"574", + "country_code":"574", "currency":"Australian dollar", "currency_code":"AUD", "currency_sub_unit":"cent", @@ -3069,8 +3069,8 @@ "iso_3166_2":"NF", "iso_3166_3":"NFK", "name":"Norfolk Island", - "region-code":"009", - "sub-region-code":"053", + "region_code":"009", + "sub_region_code":"053", "eea":false, "calling_code":"672", "currency_symbol":"$", @@ -3080,7 +3080,7 @@ "578":{ "capital":"Oslo", "citizenship":"Norwegian", - "country-code":"578", + "country_code":"578", "currency":"Norwegian krone (pl. kroner)", "currency_code":"NOK", "currency_sub_unit":"\u00f8re (inv.)", @@ -3088,8 +3088,8 @@ "iso_3166_2":"NO", "iso_3166_3":"NOR", "name":"Norway", - "region-code":"150", - "sub-region-code":"154", + "region_code":"150", + "sub_region_code":"154", "eea":false, "calling_code":"47", "currency_symbol":"kr", @@ -3099,7 +3099,7 @@ "580":{ "capital":"Saipan", "citizenship":"Northern Mariana Islander", - "country-code":"580", + "country_code":"580", "currency":"US dollar", "currency_code":"USD", "currency_sub_unit":"cent", @@ -3107,8 +3107,8 @@ "iso_3166_2":"MP", "iso_3166_3":"MNP", "name":"Northern Mariana Islands", - "region-code":"009", - "sub-region-code":"057", + "region_code":"009", + "sub_region_code":"057", "eea":false, "calling_code":"1", "currency_symbol":"$", @@ -3118,7 +3118,7 @@ "581":{ "capital":"United States Minor Outlying Islands", "citizenship":"of United States Minor Outlying Islands", - "country-code":"581", + "country_code":"581", "currency":"US dollar", "currency_code":"USD", "currency_sub_unit":"cent", @@ -3126,8 +3126,8 @@ "iso_3166_2":"UM", "iso_3166_3":"UMI", "name":"United States Minor Outlying Islands", - "region-code":"", - "sub-region-code":"", + "region_code":"", + "sub_region_code":"", "eea":false, "calling_code":"1", "currency_symbol":"$", @@ -3137,7 +3137,7 @@ "583":{ "capital":"Palikir", "citizenship":"Micronesian", - "country-code":"583", + "country_code":"583", "currency":"US dollar", "currency_code":"USD", "currency_sub_unit":"cent", @@ -3145,8 +3145,8 @@ "iso_3166_2":"FM", "iso_3166_3":"FSM", "name":"Micronesia, Federated States of", - "region-code":"009", - "sub-region-code":"057", + "region_code":"009", + "sub_region_code":"057", "eea":false, "calling_code":"691", "currency_symbol":"$", @@ -3156,7 +3156,7 @@ "584":{ "capital":"Majuro", "citizenship":"Marshallese", - "country-code":"584", + "country_code":"584", "currency":"US dollar", "currency_code":"USD", "currency_sub_unit":"cent", @@ -3164,8 +3164,8 @@ "iso_3166_2":"MH", "iso_3166_3":"MHL", "name":"Marshall Islands", - "region-code":"009", - "sub-region-code":"057", + "region_code":"009", + "sub_region_code":"057", "eea":false, "calling_code":"692", "currency_symbol":"$", @@ -3175,7 +3175,7 @@ "585":{ "capital":"Melekeok", "citizenship":"Palauan", - "country-code":"585", + "country_code":"585", "currency":"US dollar", "currency_code":"USD", "currency_sub_unit":"cent", @@ -3183,8 +3183,8 @@ "iso_3166_2":"PW", "iso_3166_3":"PLW", "name":"Palau", - "region-code":"009", - "sub-region-code":"057", + "region_code":"009", + "sub_region_code":"057", "eea":false, "calling_code":"680", "currency_symbol":"$", @@ -3194,7 +3194,7 @@ "586":{ "capital":"Islamabad", "citizenship":"Pakistani", - "country-code":"586", + "country_code":"586", "currency":"Pakistani rupee", "currency_code":"PKR", "currency_sub_unit":"paisa", @@ -3202,8 +3202,8 @@ "iso_3166_2":"PK", "iso_3166_3":"PAK", "name":"Pakistan", - "region-code":"142", - "sub-region-code":"034", + "region_code":"142", + "sub_region_code":"034", "eea":false, "calling_code":"92", "currency_symbol":"\u20a8", @@ -3213,7 +3213,7 @@ "591":{ "capital":"Panama City", "citizenship":"Panamanian", - "country-code":"591", + "country_code":"591", "currency":"balboa", "currency_code":"PAB", "currency_sub_unit":"cent\u00e9simo", @@ -3221,8 +3221,8 @@ "iso_3166_2":"PA", "iso_3166_3":"PAN", "name":"Panama", - "region-code":"019", - "sub-region-code":"013", + "region_code":"019", + "sub_region_code":"013", "eea":false, "calling_code":"507", "currency_symbol":"B\/.", @@ -3232,7 +3232,7 @@ "598":{ "capital":"Port Moresby", "citizenship":"Papua New Guinean", - "country-code":"598", + "country_code":"598", "currency":"kina (inv.)", "currency_code":"PGK", "currency_sub_unit":"toea (inv.)", @@ -3240,8 +3240,8 @@ "iso_3166_2":"PG", "iso_3166_3":"PNG", "name":"Papua New Guinea", - "region-code":"009", - "sub-region-code":"054", + "region_code":"009", + "sub_region_code":"054", "eea":false, "calling_code":"675", "currency_symbol":"PGK", @@ -3251,7 +3251,7 @@ "600":{ "capital":"Asunci\u00f3n", "citizenship":"Paraguayan", - "country-code":"600", + "country_code":"600", "currency":"guaran\u00ed", "currency_code":"PYG", "currency_sub_unit":"c\u00e9ntimo", @@ -3259,8 +3259,8 @@ "iso_3166_2":"PY", "iso_3166_3":"PRY", "name":"Paraguay", - "region-code":"019", - "sub-region-code":"005", + "region_code":"019", + "sub_region_code":"005", "eea":false, "calling_code":"595", "currency_symbol":"Gs", @@ -3270,7 +3270,7 @@ "604":{ "capital":"Lima", "citizenship":"Peruvian", - "country-code":"604", + "country_code":"604", "currency":"new sol", "currency_code":"PEN", "currency_sub_unit":"c\u00e9ntimo", @@ -3278,8 +3278,8 @@ "iso_3166_2":"PE", "iso_3166_3":"PER", "name":"Peru", - "region-code":"019", - "sub-region-code":"005", + "region_code":"019", + "sub_region_code":"005", "eea":false, "calling_code":"51", "currency_symbol":"S\/.", @@ -3289,7 +3289,7 @@ "608":{ "capital":"Manila", "citizenship":"Filipino", - "country-code":"608", + "country_code":"608", "currency":"Philippine peso", "currency_code":"PHP", "currency_sub_unit":"centavo", @@ -3297,8 +3297,8 @@ "iso_3166_2":"PH", "iso_3166_3":"PHL", "name":"Philippines", - "region-code":"142", - "sub-region-code":"035", + "region_code":"142", + "sub_region_code":"035", "eea":false, "calling_code":"63", "currency_symbol":"Php", @@ -3308,7 +3308,7 @@ "612":{ "capital":"Adamstown", "citizenship":"Pitcairner", - "country-code":"612", + "country_code":"612", "currency":"New Zealand dollar", "currency_code":"NZD", "currency_sub_unit":"cent", @@ -3316,8 +3316,8 @@ "iso_3166_2":"PN", "iso_3166_3":"PCN", "name":"Pitcairn", - "region-code":"009", - "sub-region-code":"061", + "region_code":"009", + "sub_region_code":"061", "eea":false, "calling_code":"649", "currency_symbol":"$", @@ -3327,7 +3327,7 @@ "616":{ "capital":"Warsaw", "citizenship":"Polish", - "country-code":"616", + "country_code":"616", "currency":"zloty", "currency_code":"PLN", "currency_sub_unit":"grosz (pl. groszy)", @@ -3335,8 +3335,8 @@ "iso_3166_2":"PL", "iso_3166_3":"POL", "name":"Poland", - "region-code":"150", - "sub-region-code":"151", + "region_code":"150", + "sub_region_code":"151", "eea":true, "calling_code":"48", "currency_symbol":"z\u0142", @@ -3346,7 +3346,7 @@ "620":{ "capital":"Lisbon", "citizenship":"Portuguese", - "country-code":"620", + "country_code":"620", "currency":"euro", "currency_code":"EUR", "currency_sub_unit":"cent", @@ -3354,8 +3354,8 @@ "iso_3166_2":"PT", "iso_3166_3":"PRT", "name":"Portugal", - "region-code":"150", - "sub-region-code":"039", + "region_code":"150", + "sub_region_code":"039", "eea":true, "calling_code":"351", "currency_symbol":"\u20ac", @@ -3365,7 +3365,7 @@ "624":{ "capital":"Bissau", "citizenship":"Guinea-Bissau national", - "country-code":"624", + "country_code":"624", "currency":"CFA franc (BCEAO)", "currency_code":"XOF", "currency_sub_unit":"centime", @@ -3373,8 +3373,8 @@ "iso_3166_2":"GW", "iso_3166_3":"GNB", "name":"Guinea-Bissau", - "region-code":"002", - "sub-region-code":"011", + "region_code":"002", + "sub_region_code":"011", "eea":false, "calling_code":"245", "currency_symbol":"XOF", @@ -3384,7 +3384,7 @@ "626":{ "capital":"Dili", "citizenship":"East Timorese", - "country-code":"626", + "country_code":"626", "currency":"US dollar", "currency_code":"USD", "currency_sub_unit":"cent", @@ -3392,8 +3392,8 @@ "iso_3166_2":"TL", "iso_3166_3":"TLS", "name":"Timor-Leste", - "region-code":"142", - "sub-region-code":"035", + "region_code":"142", + "sub_region_code":"035", "eea":false, "calling_code":"670", "currency_symbol":"$", @@ -3403,7 +3403,7 @@ "630":{ "capital":"San Juan", "citizenship":"Puerto Rican", - "country-code":"630", + "country_code":"630", "currency":"US dollar", "currency_code":"USD", "currency_sub_unit":"cent", @@ -3411,8 +3411,8 @@ "iso_3166_2":"PR", "iso_3166_3":"PRI", "name":"Puerto Rico", - "region-code":"019", - "sub-region-code":"029", + "region_code":"019", + "sub_region_code":"029", "eea":false, "calling_code":"1", "currency_symbol":"$", @@ -3422,7 +3422,7 @@ "634":{ "capital":"Doha", "citizenship":"Qatari", - "country-code":"634", + "country_code":"634", "currency":"Qatari riyal", "currency_code":"QAR", "currency_sub_unit":"dirham", @@ -3430,8 +3430,8 @@ "iso_3166_2":"QA", "iso_3166_3":"QAT", "name":"Qatar", - "region-code":"142", - "sub-region-code":"145", + "region_code":"142", + "sub_region_code":"145", "eea":false, "calling_code":"974", "currency_symbol":"\ufdfc", @@ -3441,7 +3441,7 @@ "638":{ "capital":"Saint-Denis", "citizenship":"Reunionese", - "country-code":"638", + "country_code":"638", "currency":"euro", "currency_code":"EUR", "currency_sub_unit":"cent", @@ -3449,8 +3449,8 @@ "iso_3166_2":"RE", "iso_3166_3":"REU", "name":"R\u00e9union", - "region-code":"002", - "sub-region-code":"014", + "region_code":"002", + "sub_region_code":"014", "eea":false, "calling_code":"262", "currency_symbol":"\u20ac", @@ -3460,7 +3460,7 @@ "642":{ "capital":"Bucharest", "citizenship":"Romanian", - "country-code":"642", + "country_code":"642", "currency":"Romanian leu (pl. lei)", "currency_code":"RON", "currency_sub_unit":"ban (pl. bani)", @@ -3468,8 +3468,8 @@ "iso_3166_2":"RO", "iso_3166_3":"ROU", "name":"Romania", - "region-code":"150", - "sub-region-code":"151", + "region_code":"150", + "sub_region_code":"151", "eea":true, "calling_code":"40", "currency_symbol":"lei", @@ -3479,7 +3479,7 @@ "643":{ "capital":"Moscow", "citizenship":"Russian", - "country-code":"643", + "country_code":"643", "currency":"Russian rouble", "currency_code":"RUB", "currency_sub_unit":"kopek", @@ -3487,8 +3487,8 @@ "iso_3166_2":"RU", "iso_3166_3":"RUS", "name":"Russian Federation", - "region-code":"150", - "sub-region-code":"151", + "region_code":"150", + "sub_region_code":"151", "eea":false, "calling_code":"7", "currency_symbol":"\u0440\u0443\u0431", @@ -3498,7 +3498,7 @@ "646":{ "capital":"Kigali", "citizenship":"Rwandan; Rwandese", - "country-code":"646", + "country_code":"646", "currency":"Rwandese franc", "currency_code":"RWF", "currency_sub_unit":"centime", @@ -3506,8 +3506,8 @@ "iso_3166_2":"RW", "iso_3166_3":"RWA", "name":"Rwanda", - "region-code":"002", - "sub-region-code":"014", + "region_code":"002", + "sub_region_code":"014", "eea":false, "calling_code":"250", "currency_symbol":"RWF", @@ -3517,7 +3517,7 @@ "652":{ "capital":"Gustavia", "citizenship":"of Saint Barth\u00e9lemy", - "country-code":"652", + "country_code":"652", "currency":"euro", "currency_code":"EUR", "currency_sub_unit":"cent", @@ -3525,15 +3525,15 @@ "iso_3166_2":"BL", "iso_3166_3":"BLM", "name":"Saint Barth\u00e9lemy", - "region-code":"019", - "sub-region-code":"029", + "region_code":"019", + "sub_region_code":"029", "eea":false, "calling_code":"590" }, "654":{ "capital":"Jamestown", "citizenship":"Saint Helenian", - "country-code":"654", + "country_code":"654", "currency":"Saint Helena pound", "currency_code":"SHP", "currency_sub_unit":"penny", @@ -3541,8 +3541,8 @@ "iso_3166_2":"SH", "iso_3166_3":"SHN", "name":"Saint Helena, Ascension and Tristan da Cunha", - "region-code":"002", - "sub-region-code":"011", + "region_code":"002", + "sub_region_code":"011", "eea":false, "calling_code":"290", "currency_symbol":"\u00a3", @@ -3552,7 +3552,7 @@ "659":{ "capital":"Basseterre", "citizenship":"Kittsian; Nevisian", - "country-code":"659", + "country_code":"659", "currency":"East Caribbean dollar", "currency_code":"XCD", "currency_sub_unit":"cent", @@ -3560,8 +3560,8 @@ "iso_3166_2":"KN", "iso_3166_3":"KNA", "name":"Saint Kitts and Nevis", - "region-code":"019", - "sub-region-code":"029", + "region_code":"019", + "sub_region_code":"029", "eea":false, "calling_code":"1", "currency_symbol":"$", @@ -3571,7 +3571,7 @@ "660":{ "capital":"The Valley", "citizenship":"Anguillan", - "country-code":"660", + "country_code":"660", "currency":"East Caribbean dollar", "currency_code":"XCD", "currency_sub_unit":"cent", @@ -3579,8 +3579,8 @@ "iso_3166_2":"AI", "iso_3166_3":"AIA", "name":"Anguilla", - "region-code":"019", - "sub-region-code":"029", + "region_code":"019", + "sub_region_code":"029", "eea":false, "calling_code":"1", "currency_symbol":"$", @@ -3590,7 +3590,7 @@ "662":{ "capital":"Castries", "citizenship":"Saint Lucian", - "country-code":"662", + "country_code":"662", "currency":"East Caribbean dollar", "currency_code":"XCD", "currency_sub_unit":"cent", @@ -3598,8 +3598,8 @@ "iso_3166_2":"LC", "iso_3166_3":"LCA", "name":"Saint Lucia", - "region-code":"019", - "sub-region-code":"029", + "region_code":"019", + "sub_region_code":"029", "eea":false, "calling_code":"1", "currency_symbol":"$", @@ -3609,7 +3609,7 @@ "663":{ "capital":"Marigot", "citizenship":"of Saint Martin", - "country-code":"663", + "country_code":"663", "currency":"euro", "currency_code":"EUR", "currency_sub_unit":"cent", @@ -3617,15 +3617,15 @@ "iso_3166_2":"MF", "iso_3166_3":"MAF", "name":"Saint Martin (French part)", - "region-code":"019", - "sub-region-code":"029", + "region_code":"019", + "sub_region_code":"029", "eea":false, "calling_code":"590" }, "666":{ "capital":"Saint-Pierre", "citizenship":"St-Pierrais; Miquelonnais", - "country-code":"666", + "country_code":"666", "currency":"euro", "currency_code":"EUR", "currency_sub_unit":"cent", @@ -3633,8 +3633,8 @@ "iso_3166_2":"PM", "iso_3166_3":"SPM", "name":"Saint Pierre and Miquelon", - "region-code":"019", - "sub-region-code":"021", + "region_code":"019", + "sub_region_code":"021", "eea":false, "calling_code":"508", "currency_symbol":"\u20ac", @@ -3644,7 +3644,7 @@ "670":{ "capital":"Kingstown", "citizenship":"Vincentian", - "country-code":"670", + "country_code":"670", "currency":"East Caribbean dollar", "currency_code":"XCD", "currency_sub_unit":"cent", @@ -3652,8 +3652,8 @@ "iso_3166_2":"VC", "iso_3166_3":"VCT", "name":"Saint Vincent and the Grenadines", - "region-code":"019", - "sub-region-code":"029", + "region_code":"019", + "sub_region_code":"029", "eea":false, "calling_code":"1", "currency_symbol":"$", @@ -3663,7 +3663,7 @@ "674":{ "capital":"San Marino", "citizenship":"San Marinese", - "country-code":"674", + "country_code":"674", "currency":"euro", "currency_code":"EUR", "currency_sub_unit":"cent", @@ -3671,8 +3671,8 @@ "iso_3166_2":"SM", "iso_3166_3":"SMR", "name":"San Marino", - "region-code":"150", - "sub-region-code":"039", + "region_code":"150", + "sub_region_code":"039", "eea":false, "calling_code":"378", "currency_symbol":"\u20ac", @@ -3682,7 +3682,7 @@ "678":{ "capital":"S\u00e3o Tom\u00e9", "citizenship":"S\u00e3o Tom\u00e9an", - "country-code":"678", + "country_code":"678", "currency":"dobra", "currency_code":"STD", "currency_sub_unit":"centavo", @@ -3690,8 +3690,8 @@ "iso_3166_2":"ST", "iso_3166_3":"STP", "name":"Sao Tome and Principe", - "region-code":"002", - "sub-region-code":"017", + "region_code":"002", + "sub_region_code":"017", "eea":false, "calling_code":"239", "currency_symbol":"Db", @@ -3701,7 +3701,7 @@ "682":{ "capital":"Riyadh", "citizenship":"Saudi Arabian", - "country-code":"682", + "country_code":"682", "currency":"riyal", "currency_code":"SAR", "currency_sub_unit":"halala", @@ -3709,8 +3709,8 @@ "iso_3166_2":"SA", "iso_3166_3":"SAU", "name":"Saudi Arabia", - "region-code":"142", - "sub-region-code":"145", + "region_code":"142", + "sub_region_code":"145", "eea":false, "calling_code":"966", "currency_symbol":"\ufdfc", @@ -3720,7 +3720,7 @@ "686":{ "capital":"Dakar", "citizenship":"Senegalese", - "country-code":"686", + "country_code":"686", "currency":"CFA franc (BCEAO)", "currency_code":"XOF", "currency_sub_unit":"centime", @@ -3728,8 +3728,8 @@ "iso_3166_2":"SN", "iso_3166_3":"SEN", "name":"Senegal", - "region-code":"002", - "sub-region-code":"011", + "region_code":"002", + "sub_region_code":"011", "eea":false, "calling_code":"221", "currency_symbol":"XOF", @@ -3739,7 +3739,7 @@ "688":{ "capital":"Belgrade", "citizenship":"Serb", - "country-code":"688", + "country_code":"688", "currency":"Serbian dinar", "currency_code":"RSD", "currency_sub_unit":"para (inv.)", @@ -3747,15 +3747,15 @@ "iso_3166_2":"RS", "iso_3166_3":"SRB", "name":"Serbia", - "region-code":"150", - "sub-region-code":"039", + "region_code":"150", + "sub_region_code":"039", "eea":false, "calling_code":"381" }, "690":{ "capital":"Victoria", "citizenship":"Seychellois", - "country-code":"690", + "country_code":"690", "currency":"Seychelles rupee", "currency_code":"SCR", "currency_sub_unit":"cent", @@ -3763,8 +3763,8 @@ "iso_3166_2":"SC", "iso_3166_3":"SYC", "name":"Seychelles", - "region-code":"002", - "sub-region-code":"014", + "region_code":"002", + "sub_region_code":"014", "eea":false, "calling_code":"248", "currency_symbol":"\u20a8", @@ -3774,7 +3774,7 @@ "694":{ "capital":"Freetown", "citizenship":"Sierra Leonean", - "country-code":"694", + "country_code":"694", "currency":"leone", "currency_code":"SLL", "currency_sub_unit":"cent", @@ -3782,8 +3782,8 @@ "iso_3166_2":"SL", "iso_3166_3":"SLE", "name":"Sierra Leone", - "region-code":"002", - "sub-region-code":"011", + "region_code":"002", + "sub_region_code":"011", "eea":false, "calling_code":"232", "currency_symbol":"Le", @@ -3793,7 +3793,7 @@ "702":{ "capital":"Singapore", "citizenship":"Singaporean", - "country-code":"702", + "country_code":"702", "currency":"Singapore dollar", "currency_code":"SGD", "currency_sub_unit":"cent", @@ -3801,8 +3801,8 @@ "iso_3166_2":"SG", "iso_3166_3":"SGP", "name":"Singapore", - "region-code":"142", - "sub-region-code":"035", + "region_code":"142", + "sub_region_code":"035", "eea":false, "calling_code":"65", "currency_symbol":"$", @@ -3812,7 +3812,7 @@ "703":{ "capital":"Bratislava", "citizenship":"Slovak", - "country-code":"703", + "country_code":"703", "currency":"euro", "currency_code":"EUR", "currency_sub_unit":"cent", @@ -3820,8 +3820,8 @@ "iso_3166_2":"SK", "iso_3166_3":"SVK", "name":"Slovakia", - "region-code":"150", - "sub-region-code":"151", + "region_code":"150", + "sub_region_code":"151", "eea":true, "calling_code":"421", "currency_symbol":"Sk", @@ -3831,7 +3831,7 @@ "704":{ "capital":"Hanoi", "citizenship":"Vietnamese", - "country-code":"704", + "country_code":"704", "currency":"dong", "currency_code":"VND", "currency_sub_unit":"(10 h\u00e0o", @@ -3839,8 +3839,8 @@ "iso_3166_2":"VN", "iso_3166_3":"VNM", "name":"Viet Nam", - "region-code":"142", - "sub-region-code":"035", + "region_code":"142", + "sub_region_code":"035", "eea":false, "calling_code":"84", "currency_symbol":"\u20ab", @@ -3850,7 +3850,7 @@ "705":{ "capital":"Ljubljana", "citizenship":"Slovene", - "country-code":"705", + "country_code":"705", "currency":"euro", "currency_code":"EUR", "currency_sub_unit":"cent", @@ -3858,8 +3858,8 @@ "iso_3166_2":"SI", "iso_3166_3":"SVN", "name":"Slovenia", - "region-code":"150", - "sub-region-code":"039", + "region_code":"150", + "sub_region_code":"039", "eea":true, "calling_code":"386", "currency_symbol":"\u20ac", @@ -3869,7 +3869,7 @@ "706":{ "capital":"Mogadishu", "citizenship":"Somali", - "country-code":"706", + "country_code":"706", "currency":"Somali shilling", "currency_code":"SOS", "currency_sub_unit":"cent", @@ -3877,8 +3877,8 @@ "iso_3166_2":"SO", "iso_3166_3":"SOM", "name":"Somalia", - "region-code":"002", - "sub-region-code":"014", + "region_code":"002", + "sub_region_code":"014", "eea":false, "calling_code":"252", "currency_symbol":"S", @@ -3888,7 +3888,7 @@ "710":{ "capital":"Pretoria (ZA1)", "citizenship":"South African", - "country-code":"710", + "country_code":"710", "currency":"rand", "currency_code":"ZAR", "currency_sub_unit":"cent", @@ -3896,8 +3896,8 @@ "iso_3166_2":"ZA", "iso_3166_3":"ZAF", "name":"South Africa", - "region-code":"002", - "sub-region-code":"018", + "region_code":"002", + "sub_region_code":"018", "eea":false, "calling_code":"27", "currency_symbol":"R", @@ -3907,7 +3907,7 @@ "716":{ "capital":"Harare", "citizenship":"Zimbabwean", - "country-code":"716", + "country_code":"716", "currency":"Zimbabwe dollar (ZW1)", "currency_code":"ZWL", "currency_sub_unit":"cent", @@ -3915,8 +3915,8 @@ "iso_3166_2":"ZW", "iso_3166_3":"ZWE", "name":"Zimbabwe", - "region-code":"002", - "sub-region-code":"014", + "region_code":"002", + "sub_region_code":"014", "eea":false, "calling_code":"263", "currency_symbol":"Z$", @@ -3926,7 +3926,7 @@ "724":{ "capital":"Madrid", "citizenship":"Spaniard", - "country-code":"724", + "country_code":"724", "currency":"euro", "currency_code":"EUR", "currency_sub_unit":"cent", @@ -3934,8 +3934,8 @@ "iso_3166_2":"ES", "iso_3166_3":"ESP", "name":"Spain", - "region-code":"150", - "sub-region-code":"039", + "region_code":"150", + "sub_region_code":"039", "eea":true, "calling_code":"34", "currency_symbol":"\u20ac", @@ -3945,7 +3945,7 @@ "728":{ "capital":"Juba", "citizenship":"South Sudanese", - "country-code":"728", + "country_code":"728", "currency":"South Sudanese pound", "currency_code":"SSP", "currency_sub_unit":"piaster", @@ -3953,15 +3953,15 @@ "iso_3166_2":"SS", "iso_3166_3":"SSD", "name":"South Sudan", - "region-code":"002", - "sub-region-code":"015", + "region_code":"002", + "sub_region_code":"015", "eea":false, "calling_code":"211" }, "729":{ "capital":"Khartoum", "citizenship":"Sudanese", - "country-code":"729", + "country_code":"729", "currency":"Sudanese pound", "currency_code":"SDG", "currency_sub_unit":"piastre", @@ -3969,15 +3969,15 @@ "iso_3166_2":"SD", "iso_3166_3":"SDN", "name":"Sudan", - "region-code":"002", - "sub-region-code":"015", + "region_code":"002", + "sub_region_code":"015", "eea":false, "calling_code":"249" }, "732":{ "capital":"Al aaiun", "citizenship":"Sahrawi", - "country-code":"732", + "country_code":"732", "currency":"Moroccan dirham", "currency_code":"MAD", "currency_sub_unit":"centime", @@ -3985,8 +3985,8 @@ "iso_3166_2":"EH", "iso_3166_3":"ESH", "name":"Western Sahara", - "region-code":"002", - "sub-region-code":"015", + "region_code":"002", + "sub_region_code":"015", "eea":false, "calling_code":"212", "currency_symbol":"MAD", @@ -3996,7 +3996,7 @@ "740":{ "capital":"Paramaribo", "citizenship":"Surinamese", - "country-code":"740", + "country_code":"740", "currency":"Surinamese dollar", "currency_code":"SRD", "currency_sub_unit":"cent", @@ -4004,8 +4004,8 @@ "iso_3166_2":"SR", "iso_3166_3":"SUR", "name":"Suriname", - "region-code":"019", - "sub-region-code":"005", + "region_code":"019", + "sub_region_code":"005", "eea":false, "calling_code":"597", "currency_symbol":"$", @@ -4015,7 +4015,7 @@ "744":{ "capital":"Longyearbyen", "citizenship":"of Svalbard", - "country-code":"744", + "country_code":"744", "currency":"Norwegian krone (pl. kroner)", "currency_code":"NOK", "currency_sub_unit":"\u00f8re (inv.)", @@ -4023,8 +4023,8 @@ "iso_3166_2":"SJ", "iso_3166_3":"SJM", "name":"Svalbard and Jan Mayen", - "region-code":"150", - "sub-region-code":"154", + "region_code":"150", + "sub_region_code":"154", "eea":false, "calling_code":"47", "currency_symbol":"kr", @@ -4034,7 +4034,7 @@ "748":{ "capital":"Mbabane", "citizenship":"Swazi", - "country-code":"748", + "country_code":"748", "currency":"lilangeni", "currency_code":"SZL", "currency_sub_unit":"cent", @@ -4042,8 +4042,8 @@ "iso_3166_2":"SZ", "iso_3166_3":"SWZ", "name":"Swaziland", - "region-code":"002", - "sub-region-code":"018", + "region_code":"002", + "sub_region_code":"018", "eea":false, "calling_code":"268", "currency_symbol":"SZL", @@ -4053,7 +4053,7 @@ "752":{ "capital":"Stockholm", "citizenship":"Swedish", - "country-code":"752", + "country_code":"752", "currency":"krona (pl. kronor)", "currency_code":"SEK", "currency_sub_unit":"\u00f6re (inv.)", @@ -4061,8 +4061,8 @@ "iso_3166_2":"SE", "iso_3166_3":"SWE", "name":"Sweden", - "region-code":"150", - "sub-region-code":"154", + "region_code":"150", + "sub_region_code":"154", "eea":true, "calling_code":"46", "currency_symbol":"kr", @@ -4072,7 +4072,7 @@ "756":{ "capital":"Berne", "citizenship":"Swiss", - "country-code":"756", + "country_code":"756", "currency":"Swiss franc", "currency_code":"CHF", "currency_sub_unit":"centime", @@ -4080,8 +4080,8 @@ "iso_3166_2":"CH", "iso_3166_3":"CHE", "name":"Switzerland", - "region-code":"150", - "sub-region-code":"155", + "region_code":"150", + "sub_region_code":"155", "eea":false, "calling_code":"41", "currency_symbol":"CHF", @@ -4091,7 +4091,7 @@ "760":{ "capital":"Damascus", "citizenship":"Syrian", - "country-code":"760", + "country_code":"760", "currency":"Syrian pound", "currency_code":"SYP", "currency_sub_unit":"piastre", @@ -4099,8 +4099,8 @@ "iso_3166_2":"SY", "iso_3166_3":"SYR", "name":"Syrian Arab Republic", - "region-code":"142", - "sub-region-code":"145", + "region_code":"142", + "sub_region_code":"145", "eea":false, "calling_code":"963", "currency_symbol":"\u00a3", @@ -4110,7 +4110,7 @@ "762":{ "capital":"Dushanbe", "citizenship":"Tajik", - "country-code":"762", + "country_code":"762", "currency":"somoni", "currency_code":"TJS", "currency_sub_unit":"diram", @@ -4118,8 +4118,8 @@ "iso_3166_2":"TJ", "iso_3166_3":"TJK", "name":"Tajikistan", - "region-code":"142", - "sub-region-code":"143", + "region_code":"142", + "sub_region_code":"143", "eea":false, "calling_code":"992", "currency_symbol":"TJS", @@ -4129,7 +4129,7 @@ "764":{ "capital":"Bangkok", "citizenship":"Thai", - "country-code":"764", + "country_code":"764", "currency":"baht (inv.)", "currency_code":"THB", "currency_sub_unit":"satang (inv.)", @@ -4137,8 +4137,8 @@ "iso_3166_2":"TH", "iso_3166_3":"THA", "name":"Thailand", - "region-code":"142", - "sub-region-code":"035", + "region_code":"142", + "sub_region_code":"035", "eea":false, "calling_code":"66", "currency_symbol":"\u0e3f", @@ -4148,7 +4148,7 @@ "768":{ "capital":"Lom\u00e9", "citizenship":"Togolese", - "country-code":"768", + "country_code":"768", "currency":"CFA franc (BCEAO)", "currency_code":"XOF", "currency_sub_unit":"centime", @@ -4156,8 +4156,8 @@ "iso_3166_2":"TG", "iso_3166_3":"TGO", "name":"Togo", - "region-code":"002", - "sub-region-code":"011", + "region_code":"002", + "sub_region_code":"011", "eea":false, "calling_code":"228", "currency_symbol":"XOF", @@ -4167,7 +4167,7 @@ "772":{ "capital":"(TK2)", "citizenship":"Tokelauan", - "country-code":"772", + "country_code":"772", "currency":"New Zealand dollar", "currency_code":"NZD", "currency_sub_unit":"cent", @@ -4175,8 +4175,8 @@ "iso_3166_2":"TK", "iso_3166_3":"TKL", "name":"Tokelau", - "region-code":"009", - "sub-region-code":"061", + "region_code":"009", + "sub_region_code":"061", "eea":false, "calling_code":"690", "currency_symbol":"$", @@ -4186,7 +4186,7 @@ "776":{ "capital":"Nuku\u2019alofa", "citizenship":"Tongan", - "country-code":"776", + "country_code":"776", "currency":"pa\u2019anga (inv.)", "currency_code":"TOP", "currency_sub_unit":"seniti (inv.)", @@ -4194,8 +4194,8 @@ "iso_3166_2":"TO", "iso_3166_3":"TON", "name":"Tonga", - "region-code":"009", - "sub-region-code":"061", + "region_code":"009", + "sub_region_code":"061", "eea":false, "calling_code":"676", "currency_symbol":"T$", @@ -4205,7 +4205,7 @@ "780":{ "capital":"Port of Spain", "citizenship":"Trinidadian; Tobagonian", - "country-code":"780", + "country_code":"780", "currency":"Trinidad and Tobago dollar", "currency_code":"TTD", "currency_sub_unit":"cent", @@ -4213,8 +4213,8 @@ "iso_3166_2":"TT", "iso_3166_3":"TTO", "name":"Trinidad and Tobago", - "region-code":"019", - "sub-region-code":"029", + "region_code":"019", + "sub_region_code":"029", "eea":false, "calling_code":"1", "currency_symbol":"TT$", @@ -4224,7 +4224,7 @@ "784":{ "capital":"Abu Dhabi", "citizenship":"Emirian", - "country-code":"784", + "country_code":"784", "currency":"UAE dirham", "currency_code":"AED", "currency_sub_unit":"fils (inv.)", @@ -4232,8 +4232,8 @@ "iso_3166_2":"AE", "iso_3166_3":"ARE", "name":"United Arab Emirates", - "region-code":"142", - "sub-region-code":"145", + "region_code":"142", + "sub_region_code":"145", "eea":false, "calling_code":"971", "currency_symbol":"AED", @@ -4243,7 +4243,7 @@ "788":{ "capital":"Tunis", "citizenship":"Tunisian", - "country-code":"788", + "country_code":"788", "currency":"Tunisian dinar", "currency_code":"TND", "currency_sub_unit":"millime", @@ -4251,8 +4251,8 @@ "iso_3166_2":"TN", "iso_3166_3":"TUN", "name":"Tunisia", - "region-code":"002", - "sub-region-code":"015", + "region_code":"002", + "sub_region_code":"015", "eea":false, "calling_code":"216", "currency_symbol":"TND", @@ -4262,7 +4262,7 @@ "792":{ "capital":"Ankara", "citizenship":"Turk", - "country-code":"792", + "country_code":"792", "currency":"Turkish lira (inv.)", "currency_code":"TRY", "currency_sub_unit":"kurus (inv.)", @@ -4270,8 +4270,8 @@ "iso_3166_2":"TR", "iso_3166_3":"TUR", "name":"Turkey", - "region-code":"142", - "sub-region-code":"145", + "region_code":"142", + "sub_region_code":"145", "eea":false, "calling_code":"90", "currency_symbol":"₺", @@ -4281,7 +4281,7 @@ "795":{ "capital":"Ashgabat", "citizenship":"Turkmen", - "country-code":"795", + "country_code":"795", "currency":"Turkmen manat (inv.)", "currency_code":"TMT", "currency_sub_unit":"tenge (inv.)", @@ -4289,8 +4289,8 @@ "iso_3166_2":"TM", "iso_3166_3":"TKM", "name":"Turkmenistan", - "region-code":"142", - "sub-region-code":"143", + "region_code":"142", + "sub_region_code":"143", "eea":false, "calling_code":"993", "currency_symbol":"m", @@ -4300,7 +4300,7 @@ "796":{ "capital":"Cockburn Town", "citizenship":"Turks and Caicos Islander", - "country-code":"796", + "country_code":"796", "currency":"US dollar", "currency_code":"USD", "currency_sub_unit":"cent", @@ -4308,8 +4308,8 @@ "iso_3166_2":"TC", "iso_3166_3":"TCA", "name":"Turks and Caicos Islands", - "region-code":"019", - "sub-region-code":"029", + "region_code":"019", + "sub_region_code":"029", "eea":false, "calling_code":"1", "currency_symbol":"$", @@ -4319,7 +4319,7 @@ "798":{ "capital":"Funafuti", "citizenship":"Tuvaluan", - "country-code":"798", + "country_code":"798", "currency":"Australian dollar", "currency_code":"AUD", "currency_sub_unit":"cent", @@ -4327,8 +4327,8 @@ "iso_3166_2":"TV", "iso_3166_3":"TUV", "name":"Tuvalu", - "region-code":"009", - "sub-region-code":"061", + "region_code":"009", + "sub_region_code":"061", "eea":false, "calling_code":"688", "currency_symbol":"$", @@ -4338,7 +4338,7 @@ "800":{ "capital":"Kampala", "citizenship":"Ugandan", - "country-code":"800", + "country_code":"800", "currency":"Uganda shilling", "currency_code":"UGX", "currency_sub_unit":"cent", @@ -4346,8 +4346,8 @@ "iso_3166_2":"UG", "iso_3166_3":"UGA", "name":"Uganda", - "region-code":"002", - "sub-region-code":"014", + "region_code":"002", + "sub_region_code":"014", "eea":false, "calling_code":"256", "currency_symbol":"UGX", @@ -4357,7 +4357,7 @@ "804":{ "capital":"Kiev", "citizenship":"Ukrainian", - "country-code":"804", + "country_code":"804", "currency":"hryvnia", "currency_code":"UAH", "currency_sub_unit":"kopiyka", @@ -4365,8 +4365,8 @@ "iso_3166_2":"UA", "iso_3166_3":"UKR", "name":"Ukraine", - "region-code":"150", - "sub-region-code":"151", + "region_code":"150", + "sub_region_code":"151", "eea":false, "calling_code":"380", "currency_symbol":"\u20b4", @@ -4376,7 +4376,7 @@ "807":{ "capital":"Skopje", "citizenship":"of the former Yugoslav Republic of Macedonia", - "country-code":"807", + "country_code":"807", "currency":"denar (pl. denars)", "currency_code":"MKD", "currency_sub_unit":"deni (inv.)", @@ -4384,8 +4384,8 @@ "iso_3166_2":"MK", "iso_3166_3":"MKD", "name":"Macedonia, the former Yugoslav Republic of", - "region-code":"150", - "sub-region-code":"039", + "region_code":"150", + "sub_region_code":"039", "eea":false, "calling_code":"389", "currency_symbol":"\u0434\u0435\u043d", @@ -4395,7 +4395,7 @@ "818":{ "capital":"Cairo", "citizenship":"Egyptian", - "country-code":"818", + "country_code":"818", "currency":"Egyptian pound", "currency_code":"EGP", "currency_sub_unit":"piastre", @@ -4403,8 +4403,8 @@ "iso_3166_2":"EG", "iso_3166_3":"EGY", "name":"Egypt", - "region-code":"002", - "sub-region-code":"015", + "region_code":"002", + "sub_region_code":"015", "eea":false, "calling_code":"20", "currency_symbol":"\u00a3", @@ -4414,7 +4414,7 @@ "826":{ "capital":"London", "citizenship":"British", - "country-code":"826", + "country_code":"826", "currency":"pound sterling", "currency_code":"GBP", "currency_sub_unit":"penny (pl. pence)", @@ -4422,8 +4422,8 @@ "iso_3166_2":"GB", "iso_3166_3":"GBR", "name":"United Kingdom", - "region-code":"150", - "sub-region-code":"154", + "region_code":"150", + "sub_region_code":"154", "eea":true, "calling_code":"44", "currency_symbol":"\u00a3", @@ -4433,7 +4433,7 @@ "831":{ "capital":"St Peter Port", "citizenship":"of Guernsey", - "country-code":"831", + "country_code":"831", "currency":"Guernsey pound (GG2)", "currency_code":"GGP (GG2)", "currency_sub_unit":"penny (pl. pence)", @@ -4441,15 +4441,15 @@ "iso_3166_2":"GG", "iso_3166_3":"GGY", "name":"Guernsey", - "region-code":"150", - "sub-region-code":"154", + "region_code":"150", + "sub_region_code":"154", "eea":false, "calling_code":"44" }, "832":{ "capital":"St Helier", "citizenship":"of Jersey", - "country-code":"832", + "country_code":"832", "currency":"Jersey pound (JE2)", "currency_code":"JEP (JE2)", "currency_sub_unit":"penny (pl. pence)", @@ -4457,15 +4457,15 @@ "iso_3166_2":"JE", "iso_3166_3":"JEY", "name":"Jersey", - "region-code":"150", - "sub-region-code":"154", + "region_code":"150", + "sub_region_code":"154", "eea":false, "calling_code":"44" }, "833":{ "capital":"Douglas", "citizenship":"Manxman; Manxwoman", - "country-code":"833", + "country_code":"833", "currency":"Manx pound (IM2)", "currency_code":"IMP (IM2)", "currency_sub_unit":"penny (pl. pence)", @@ -4473,15 +4473,15 @@ "iso_3166_2":"IM", "iso_3166_3":"IMN", "name":"Isle of Man", - "region-code":"150", - "sub-region-code":"154", + "region_code":"150", + "sub_region_code":"154", "eea":false, "calling_code":"44" }, "834":{ "capital":"Dodoma (TZ1)", "citizenship":"Tanzanian", - "country-code":"834", + "country_code":"834", "currency":"Tanzanian shilling", "currency_code":"TZS", "currency_sub_unit":"cent", @@ -4489,8 +4489,8 @@ "iso_3166_2":"TZ", "iso_3166_3":"TZA", "name":"Tanzania, United Republic of", - "region-code":"002", - "sub-region-code":"014", + "region_code":"002", + "sub_region_code":"014", "eea":false, "calling_code":"255", "currency_symbol":"TZS", @@ -4500,7 +4500,7 @@ "840":{ "capital":"Washington DC", "citizenship":"American", - "country-code":"840", + "country_code":"840", "currency":"US dollar", "currency_code":"USD", "currency_sub_unit":"cent", @@ -4508,8 +4508,8 @@ "iso_3166_2":"US", "iso_3166_3":"USA", "name":"United States", - "region-code":"019", - "sub-region-code":"021", + "region_code":"019", + "sub_region_code":"021", "eea":false, "calling_code":"1", "currency_symbol":"$", @@ -4519,7 +4519,7 @@ "850":{ "capital":"Charlotte Amalie", "citizenship":"US Virgin Islander", - "country-code":"850", + "country_code":"850", "currency":"US dollar", "currency_code":"USD", "currency_sub_unit":"cent", @@ -4527,8 +4527,8 @@ "iso_3166_2":"VI", "iso_3166_3":"VIR", "name":"Virgin Islands, U.S.", - "region-code":"019", - "sub-region-code":"029", + "region_code":"019", + "sub_region_code":"029", "eea":false, "calling_code":"1", "currency_symbol":"$", @@ -4538,7 +4538,7 @@ "854":{ "capital":"Ouagadougou", "citizenship":"Burkinabe", - "country-code":"854", + "country_code":"854", "currency":"CFA franc (BCEAO)", "currency_code":"XOF", "currency_sub_unit":"centime", @@ -4546,8 +4546,8 @@ "iso_3166_2":"BF", "iso_3166_3":"BFA", "name":"Burkina Faso", - "region-code":"002", - "sub-region-code":"011", + "region_code":"002", + "sub_region_code":"011", "eea":false, "calling_code":"226", "currency_symbol":"XOF", @@ -4557,7 +4557,7 @@ "858":{ "capital":"Montevideo", "citizenship":"Uruguayan", - "country-code":"858", + "country_code":"858", "currency":"Uruguayan peso", "currency_code":"UYU", "currency_sub_unit":"cent\u00e9simo", @@ -4565,8 +4565,8 @@ "iso_3166_2":"UY", "iso_3166_3":"URY", "name":"Uruguay", - "region-code":"019", - "sub-region-code":"005", + "region_code":"019", + "sub_region_code":"005", "eea":false, "calling_code":"598", "currency_symbol":"$U", @@ -4576,7 +4576,7 @@ "860":{ "capital":"Tashkent", "citizenship":"Uzbek", - "country-code":"860", + "country_code":"860", "currency":"sum (inv.)", "currency_code":"UZS", "currency_sub_unit":"tiyin (inv.)", @@ -4584,8 +4584,8 @@ "iso_3166_2":"UZ", "iso_3166_3":"UZB", "name":"Uzbekistan", - "region-code":"142", - "sub-region-code":"143", + "region_code":"142", + "sub_region_code":"143", "eea":false, "calling_code":"998", "currency_symbol":"\u043b\u0432", @@ -4595,7 +4595,7 @@ "862":{ "capital":"Caracas", "citizenship":"Venezuelan", - "country-code":"862", + "country_code":"862", "currency":"bol\u00edvar fuerte (pl. bol\u00edvares fuertes)", "currency_code":"VEF", "currency_sub_unit":"c\u00e9ntimo", @@ -4603,8 +4603,8 @@ "iso_3166_2":"VE", "iso_3166_3":"VEN", "name":"Venezuela, Bolivarian Republic of", - "region-code":"019", - "sub-region-code":"005", + "region_code":"019", + "sub_region_code":"005", "eea":false, "calling_code":"58", "currency_symbol":"Bs", @@ -4614,7 +4614,7 @@ "876":{ "capital":"Mata-Utu", "citizenship":"Wallisian; Futunan; Wallis and Futuna Islander", - "country-code":"876", + "country_code":"876", "currency":"CFP franc", "currency_code":"XPF", "currency_sub_unit":"centime", @@ -4622,8 +4622,8 @@ "iso_3166_2":"WF", "iso_3166_3":"WLF", "name":"Wallis and Futuna", - "region-code":"009", - "sub-region-code":"061", + "region_code":"009", + "sub_region_code":"061", "eea":false, "calling_code":"681", "currency_symbol":"XPF", @@ -4633,7 +4633,7 @@ "882":{ "capital":"Apia", "citizenship":"Samoan", - "country-code":"882", + "country_code":"882", "currency":"tala (inv.)", "currency_code":"WST", "currency_sub_unit":"sene (inv.)", @@ -4641,8 +4641,8 @@ "iso_3166_2":"WS", "iso_3166_3":"WSM", "name":"Samoa", - "region-code":"009", - "sub-region-code":"061", + "region_code":"009", + "sub_region_code":"061", "eea":false, "calling_code":"685", "currency_symbol":"WS$", @@ -4652,7 +4652,7 @@ "887":{ "capital":"San\u2019a", "citizenship":"Yemenite", - "country-code":"887", + "country_code":"887", "currency":"Yemeni rial", "currency_code":"YER", "currency_sub_unit":"fils (inv.)", @@ -4660,8 +4660,8 @@ "iso_3166_2":"YE", "iso_3166_3":"YEM", "name":"Yemen", - "region-code":"142", - "sub-region-code":"145", + "region_code":"142", + "sub_region_code":"145", "eea":false, "calling_code":"967", "currency_symbol":"\ufdfc", @@ -4671,7 +4671,7 @@ "894":{ "capital":"Lusaka", "citizenship":"Zambian", - "country-code":"894", + "country_code":"894", "currency":"Zambian kwacha (inv.)", "currency_code":"ZMW", "currency_sub_unit":"ngwee (inv.)", @@ -4679,8 +4679,8 @@ "iso_3166_2":"ZM", "iso_3166_3":"ZMB", "name":"Zambia", - "region-code":"002", - "sub-region-code":"014", + "region_code":"002", + "sub_region_code":"014", "eea":false, "calling_code":"260", "currency_symbol":"ZK", diff --git a/src/commands/MigrationCommand.php b/src/commands/MigrationCommand.php deleted file mode 100644 index 5678bd6..0000000 --- a/src/commands/MigrationCommand.php +++ /dev/null @@ -1,147 +0,0 @@ -addNamespace('countries',substr(__DIR__,0,-8).'views'); - } - - /** - * Execute the console command. - * - * @return void - */ - public function fire() - { - $this->line(''); - $this->info('The migration process will create a migration file and a seeder for the countries list'); - - $this->line(''); - - if ( $this->confirm("Proceed with the migration creation? [Yes|no]") ) - { - $this->line(''); - - $this->info( "Creating migration and seeder..." ); - if( $this->createMigration( 'countries' ) ) - { - $this->line(''); - - if (version_compare(app()->version(), '5.5.0', '<')) { - $this->call('optimize', []); - } - - $this->line(''); - - $this->info( "Migration successfully created!" ); - } - else{ - $this->error( - "Coudn't create migration.\n Check the write permissions". - " within the app/database/migrations directory." - ); - } - - $this->line(''); - } - } - - /** - * Alias fire method. - * - * @return void - */ - public function handle() - { - $this->fire(); - } - - /** - * Get the console command options. - * - * @return array - */ - protected function getOptions() - { - return []; - } - - /** - * Create the migration - * - * @param string $name - * @return bool - */ - protected function createMigration() - { - //Create the migration - $app = app(); - $migrationFiles = [ - $this->laravel->path."/../database/migrations/*_setup_countries_table.php" => 'countries::generators.migration', - $this->laravel->path."/../database/migrations/*_charify_countries_table.php" => 'countries::generators.char_migration', - ]; - - $seconds = 0; - - foreach ($migrationFiles as $migrationFile => $outputFile) { - if (sizeof(glob($migrationFile)) == 0) { - $migrationFile = str_replace('*', date('Y_m_d_His', strtotime('+' . $seconds . ' seconds')), $migrationFile); - - $fs = fopen($migrationFile, 'x'); - if ($fs) { - $output = "make($outputFile)->with('table', 'countries')->render(); - - fwrite($fs, $output); - fclose($fs); - } else { - return false; - } - - $seconds++; - } - } - - //Create the seeder - $seeder_file = $this->laravel->path."/../database/seeds/CountriesSeeder.php"; - $output = "make('countries::generators.seeder')->render(); - - if (!file_exists( $seeder_file )) { - $fs = fopen($seeder_file, 'x'); - if ($fs) { - fwrite($fs, $output); - fclose($fs); - } else { - return false; - } - } - - return true; - } - -} diff --git a/src/config/config.php b/src/config/config.php index 1a2cb17..db46183 100644 --- a/src/config/config.php +++ b/src/config/config.php @@ -1,13 +1,15 @@ 'countries', + + /* + |-------------------------------------------------------------------------- + | Database settings + |-------------------------------------------------------------------------- + | + | The name of the table to create in the database + | + */ + + 'table_name' => 'countries', ]; diff --git a/src/views/generators/char_migration.blade.php b/src/views/generators/char_migration.blade.php deleted file mode 100644 index 065d989..0000000 --- a/src/views/generators/char_migration.blade.php +++ /dev/null @@ -1,38 +0,0 @@ -use Illuminate\Database\Migrations\Migration; - -class CharifyCountriesTable extends Migration { - - /** - * Run the migrations. - * - * @return void - */ - public function up() - { - Schema::table(\Config::get('countries.table_name'), function($table) - { - DB::statement("ALTER TABLE " . DB::getTablePrefix() . \Config::get('countries.table_name') . " MODIFY country_code CHAR(3) NOT NULL DEFAULT ''"); - DB::statement("ALTER TABLE " . DB::getTablePrefix() . \Config::get('countries.table_name') . " MODIFY iso_3166_2 CHAR(2) NOT NULL DEFAULT ''"); - DB::statement("ALTER TABLE " . DB::getTablePrefix() . \Config::get('countries.table_name') . " MODIFY iso_3166_3 CHAR(3) NOT NULL DEFAULT ''"); - DB::statement("ALTER TABLE " . DB::getTablePrefix() . \Config::get('countries.table_name') . " MODIFY region_code CHAR(3) NOT NULL DEFAULT ''"); - DB::statement("ALTER TABLE " . DB::getTablePrefix() . \Config::get('countries.table_name') . " MODIFY sub_region_code CHAR(3) NOT NULL DEFAULT ''"); - }); - } - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::table(\Config::get('countries.table_name'), function($table) - { - DB::statement("ALTER TABLE " . DB::getTablePrefix() . \Config::get('countries.table_name') . " MODIFY country_code VARCHAR(3) NOT NULL DEFAULT ''"); - DB::statement("ALTER TABLE " . DB::getTablePrefix() . \Config::get('countries.table_name') . " MODIFY iso_3166_2 VARCHAR(2) NOT NULL DEFAULT ''"); - DB::statement("ALTER TABLE " . DB::getTablePrefix() . \Config::get('countries.table_name') . " MODIFY iso_3166_3 VARCHAR(3) NOT NULL DEFAULT ''"); - DB::statement("ALTER TABLE " . DB::getTablePrefix() . \Config::get('countries.table_name') . " MODIFY region_code VARCHAR(3) NOT NULL DEFAULT ''"); - DB::statement("ALTER TABLE " . DB::getTablePrefix() . \Config::get('countries.table_name') . " MODIFY sub_region_code VARCHAR(3) NOT NULL DEFAULT ''"); - }); - } - -} diff --git a/src/views/generators/migration.blade.php b/src/views/generators/migration.blade.php index c0b1b65..0077729 100644 --- a/src/views/generators/migration.blade.php +++ b/src/views/generators/migration.blade.php @@ -1,48 +1,45 @@ +use Illuminate\Support\Facades\Schema; +use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration; -class SetupCountriesTable extends Migration { - - /** - * Run the migrations. - * - * @return void - */ - public function up() - { - // Creates the users table - Schema::create(\Config::get('countries.table_name'), function($table) - { - $table->integer('id')->unsigned()->index(); - $table->string('capital', 255)->nullable(); - $table->string('citizenship', 255)->nullable(); - $table->string('country_code', 3)->default(''); - $table->string('currency', 255)->nullable(); - $table->string('currency_code', 255)->nullable(); - $table->string('currency_sub_unit', 255)->nullable(); +class SetupCountriesTable extends Migration +{ + /** + * Run the migrations. + * + * @return void + */ + public function up(): void + { + Schema::create(config('countries.table_name'), function (Blueprint $table) { + $table->increments('id'); + $table->string('capital', 191)->nullable(); + $table->string('citizenship', 191)->nullable(); + $table->string('country_code', 3)->default(''); + $table->string('currency', 191)->nullable(); + $table->string('currency_code', 191)->nullable(); + $table->string('currency_sub_unit', 191)->nullable(); $table->string('currency_symbol', 3)->nullable(); $table->integer('currency_decimals')->nullable(); - $table->string('full_name', 255)->nullable(); - $table->string('iso_3166_2', 2)->default(''); - $table->string('iso_3166_3', 3)->default(''); - $table->string('name', 255)->default(''); - $table->string('region_code', 3)->default(''); - $table->string('sub_region_code', 3)->default(''); - $table->boolean('eea')->default(0); - $table->string('calling_code', 3)->nullable(); - $table->string('flag', 6)->nullable(); - - $table->primary('id'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::drop(\Config::get('countries.table_name')); - } + $table->string('full_name', 191)->nullable(); + $table->string('iso_3166_2', 2); + $table->string('iso_3166_3', 3); + $table->string('name', 191); + $table->string('region_code', 3); + $table->string('sub_region_code', 3); + $table->boolean('eea')->default(0); + $table->string('calling_code', 3)->nullable(); + $table->string('flag', 6)->nullable(); + }); + } -} + /** + * Reverse the migrations. + * + * @return void + */ + public function down(): void + { + Schema::drop(config('countries.table_name')); + } +} \ No newline at end of file diff --git a/src/views/generators/seeder.blade.php b/src/views/generators/seeder.blade.php index 7f571f0..79f58f9 100644 --- a/src/views/generators/seeder.blade.php +++ b/src/views/generators/seeder.blade.php @@ -1,40 +1,49 @@ use Illuminate\Database\Seeder; +use Illuminate\Support\Collection; +use Illuminate\Support\Facades\DB; -class CountriesSeeder extends Seeder { - +class CountriesSeeder extends Seeder +{ /** * Run the database seeds. * * @return void */ - public function run() + public function run(): void { - //Empty the countries table - DB::table(\Config::get('countries.table_name'))->delete(); + DB::table($table = config('countries.table_name'))->delete(); + + DB::table($table)->insert($this->records()); + } - //Get all of the countries - $countries = Countries::getList(); - foreach ($countries as $countryId => $country){ - DB::table(\Config::get('countries.table_name'))->insert(array( - 'id' => $countryId, - 'capital' => ((isset($country['capital'])) ? $country['capital'] : null), - 'citizenship' => ((isset($country['citizenship'])) ? $country['citizenship'] : null), - 'country_code' => $country['country-code'], - 'currency' => ((isset($country['currency'])) ? $country['currency'] : null), - 'currency_code' => ((isset($country['currency_code'])) ? $country['currency_code'] : null), - 'currency_sub_unit' => ((isset($country['currency_sub_unit'])) ? $country['currency_sub_unit'] : null), - 'currency_decimals' => ((isset($country['currency_decimals'])) ? $country['currency_decimals'] : null), - 'full_name' => ((isset($country['full_name'])) ? $country['full_name'] : null), + /** + * Get collection of records. + * + * @return \Illuminate\Support\Collection + */ + private function records(): Collection + { + return collect(app('countries')->getList())->map(function(array $country, int $id) { + return [ + 'id' => $id, + 'capital' => $country['capital'] ?? null, + 'citizenship' => $country['citizenship'] ?? null, + 'country_code' => $country['country_code'], + 'currency' => $country['currency'] ?? null, + 'currency_code' => $country['currency_code'] ?? null, + 'currency_sub_unit' => $country['currency_sub_unit'] ?? null, + 'currency_symbol' => $country['currency_symbol'] ?? null, + 'currency_decimals' => $country['currency_decimals'] ?? null, + 'full_name' => $country['full_name'] ?? null, 'iso_3166_2' => $country['iso_3166_2'], 'iso_3166_3' => $country['iso_3166_3'], 'name' => $country['name'], - 'region_code' => $country['region-code'], - 'sub_region_code' => $country['sub-region-code'], + 'region_code' => $country['region_code'], + 'sub_region_code' => $country['sub_region_code'], 'eea' => (bool)$country['eea'], 'calling_code' => $country['calling_code'], - 'currency_symbol' => ((isset($country['currency_symbol'])) ? $country['currency_symbol'] : null), - 'flag' =>((isset($country['flag'])) ? $country['flag'] : null), - )); - } + 'flag' => $country['flag'] ?? null, + ]; + }); } } diff --git a/tests/BaseCase.php b/tests/BaseCase.php new file mode 100644 index 0000000..8b6ef71 --- /dev/null +++ b/tests/BaseCase.php @@ -0,0 +1,20 @@ +getCountries(); + } + }; + + $this->assertEquals( + $this->content(), + $countries->getCountriesFileContent() + ); + } + + /** + * @test + */ + public function returns_single_country_record() + { + $this->assertEquals( + $this->content()[4], + (new Countries)->getOne(4) + ); + } + + /** + * @test + */ + public function returns_unsorted_list_of_countries() + { + $this->assertEquals( + $this->content(), + (new Countries)->getList() + ); + } + + /** + * @test + */ + public function returns_sorted_list_of_countries() + { + $countries = new class extends Countries + { + protected function getCountries(): array + { + return [ + 1 => [ + 'capital' => 'London', + 'currency_code' => 'GBP' + ], + 2 => [ + 'capital' => 'Warsaw', + 'currency_code' => 'PLN' + ], + 3 => [ + 'capital' => 'Lisbon', + 'currency_code' => 'EUR' + ], + 4 => [ + 'capital' => 'Madrid', + 'currency_code' => 'EUR' + ] + ]; + } + }; + + $this->assertEquals( + [ + 3 => [ + 'capital' => 'Lisbon', + 'currency_code' => 'EUR' + ], + 1 => [ + 'capital' => 'London', + 'currency_code' => 'GBP' + ], + 4 => [ + 'capital' => 'Madrid', + 'currency_code' => 'EUR' + ], + 2 => [ + 'capital' => 'Warsaw', + 'currency_code' => 'PLN' + ] + ], + $countries->getList('capital') + ); + } + + /** + * @test + */ + public function returns_list_for_select_form_element() + { + $countries = new class extends Countries + { + protected function getCountries(): array + { + return [ + 1 => [ + 'name' => 'United Kingdom' + ], + 2 => [ + 'name' => 'Poland' + ], + 3 => [ + 'name' => 'Portugal' + ], + 4 => [ + 'name' => 'Spain' + ] + ]; + } + }; + + $this->assertEquals( + [ + 2 => 'Poland', + 3 => 'Portugal', + 4 => 'Spain', + 1 => 'United Kingdom' + ], + $countries->getListForSelect('name') + ); + } +} \ No newline at end of file From ea86e778701f2e06a72ec222c0ca417b307d83f0 Mon Sep 17 00:00:00 2001 From: Sebastian Sulinski Date: Mon, 4 Dec 2017 21:53:56 +0000 Subject: [PATCH 2/6] Fix for seeder --- src/Webpatser/Countries/MigrationCommand.php | 4 ++-- src/views/generators/migration.blade.php | 2 +- src/views/generators/seeder.blade.php | 8 ++++---- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/Webpatser/Countries/MigrationCommand.php b/src/Webpatser/Countries/MigrationCommand.php index ee7365e..afeb6c5 100644 --- a/src/Webpatser/Countries/MigrationCommand.php +++ b/src/Webpatser/Countries/MigrationCommand.php @@ -86,7 +86,7 @@ public function handle(): void protected function createMigration(): bool { $migrationFiles = [ - $this->laravel['path']."/../database/migrations/*_setup_countries_table.php" => 'countries::generators.migration' + $this->laravel['path']."/../database/migrations/*_create_countries_table.php" => 'countries::generators.migration' ]; $seconds = 0; @@ -121,7 +121,7 @@ protected function createMigration(): bool */ private function addSeeder(): bool { - $seeder = $this->laravel['path']."/../database/seeds/CountriesSeeder.php"; + $seeder = $this->laravel['path']."/../database/seeds/CountriesTableSeeder.php"; $output = "laravel['view']->make('countries::generators.seeder')->render(); if (file_exists($seeder)) { diff --git a/src/views/generators/migration.blade.php b/src/views/generators/migration.blade.php index 0077729..e0345b4 100644 --- a/src/views/generators/migration.blade.php +++ b/src/views/generators/migration.blade.php @@ -2,7 +2,7 @@ use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration; -class SetupCountriesTable extends Migration +class CreateCountriesTable extends Migration { /** * Run the migrations. diff --git a/src/views/generators/seeder.blade.php b/src/views/generators/seeder.blade.php index 79f58f9..2b60ab1 100644 --- a/src/views/generators/seeder.blade.php +++ b/src/views/generators/seeder.blade.php @@ -2,7 +2,7 @@ use Illuminate\Support\Collection; use Illuminate\Support\Facades\DB; -class CountriesSeeder extends Seeder +class CountriesTableSeeder extends Seeder { /** * Run the database seeds. @@ -19,9 +19,9 @@ public function run(): void /** * Get collection of records. * - * @return \Illuminate\Support\Collection + * @return array */ - private function records(): Collection + private function records(): array { return collect(app('countries')->getList())->map(function(array $country, int $id) { return [ @@ -44,6 +44,6 @@ private function records(): Collection 'calling_code' => $country['calling_code'], 'flag' => $country['flag'] ?? null, ]; - }); + })->toArray(); } } From 03c41159c35c60df4f9467f995a7203b32e9c6c3 Mon Sep 17 00:00:00 2001 From: Sebastian Sulinski Date: Mon, 4 Dec 2017 22:02:03 +0000 Subject: [PATCH 3/6] Removed redundant import --- src/views/generators/seeder.blade.php | 1 - 1 file changed, 1 deletion(-) diff --git a/src/views/generators/seeder.blade.php b/src/views/generators/seeder.blade.php index 2b60ab1..7715669 100644 --- a/src/views/generators/seeder.blade.php +++ b/src/views/generators/seeder.blade.php @@ -1,5 +1,4 @@ use Illuminate\Database\Seeder; -use Illuminate\Support\Collection; use Illuminate\Support\Facades\DB; class CountriesTableSeeder extends Seeder From cc60ec6a0e879d28543b84bbe49ccb4d26afbb05 Mon Sep 17 00:00:00 2001 From: Sebastian Sulinski Date: Mon, 4 Dec 2017 22:03:41 +0000 Subject: [PATCH 4/6] Updated name of the seeder class --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0defe6b..8e4771d 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ Next generate the migration file: It will generate the `_setup_countries_table.php` migration and the `CountriesSeeder.php` seeder. To make sure the data is seeded insert the following code in the `seeds/DatabaseSeeder.php` //Seed the countries - $this->call('CountriesSeeder'); + $this->call('CountriesTableSeeder'); $this->command->info('Seeded the countries!'); You may now run it with the artisan migrate command: From 387369e1afc56f6a94b883e3995c824095553ca7 Mon Sep 17 00:00:00 2001 From: Sebastian Sulinski Date: Mon, 4 Dec 2017 22:23:42 +0000 Subject: [PATCH 5/6] Added MigrationFailedException and split createMigration method to separate methods --- src/Webpatser/Countries/MigrationCommand.php | 87 +++++++++++++------ .../Countries/MigrationFailedException.php | 13 +++ 2 files changed, 72 insertions(+), 28 deletions(-) create mode 100644 src/Webpatser/Countries/MigrationFailedException.php diff --git a/src/Webpatser/Countries/MigrationCommand.php b/src/Webpatser/Countries/MigrationCommand.php index afeb6c5..f2ec047 100644 --- a/src/Webpatser/Countries/MigrationCommand.php +++ b/src/Webpatser/Countries/MigrationCommand.php @@ -55,7 +55,9 @@ public function handle(): void $this->info("Creating migration and seeder..."); - if ($this->createMigration()) { + try { + + $this->createMigration(); $this->line(''); @@ -67,12 +69,10 @@ public function handle(): void $this->info("Migration successfully created!"); - } else { + } catch (MigrationFailedException $exception) { + + $this->error($exception->getMessage()); - $this->error( - "Could not create migration.\n Check the write permissions". - " to the database/migrations directory." - ); } $this->line(''); @@ -81,60 +81,91 @@ public function handle(): void /** * Create the migration * - * @return bool + * @return void + * @throws \Webpatser\Countries\MigrationFailedException */ - protected function createMigration(): bool + protected function createMigration(): void { - $migrationFiles = [ - $this->laravel['path']."/../database/migrations/*_create_countries_table.php" => 'countries::generators.migration' - ]; - $seconds = 0; - foreach ($migrationFiles as $migrationFile => $outputFile) { + foreach ($this->migrationFiles() as $migrationFile => $outputFile) { if (count(glob($migrationFile)) !== 0) { continue; } - $migrationFile = str_replace('*', date('Y_m_d_His', strtotime('+'.$seconds.' seconds')), $migrationFile); + $this->addMigrationFile($this->migrationFileName($migrationFile, $seconds), $outputFile); - if (!$fs = fopen($migrationFile, 'x')) { - return false; - } + $seconds++; + } - $output = "laravel['view']->make($outputFile)->render(); + $this->addSeeder(); + } + + /** + * Get migration files. + * + * @return array + */ + private function migrationFiles(): array + { + return [ + $this->laravel['path']."/../database/migrations/*_create_countries_table.php" => 'countries::generators.migration' + ]; + } - fwrite($fs, $output); - fclose($fs); + /** + * Get name of the migration file. + * + * @param string $migrationFile + * @param int $seconds + * @return string + */ + private function migrationFileName(string $migrationFile, int $seconds): string + { + return str_replace('*', date('Y_m_d_His', strtotime('+'.$seconds.' seconds')), $migrationFile); + } - $seconds++; + /** + * Add new migration file. + * + * @param string $migrationFile + * @param string $outputFile + * @return void + * @throws \Webpatser\Countries\MigrationFailedException + */ + private function addMigrationFile(string $migrationFile, string $outputFile): void + { + if (!$fs = fopen($migrationFile, 'x')) { + throw new MigrationFailedException; } - return $this->addSeeder(); + $output = "laravel['view']->make($outputFile)->render(); + + fwrite($fs, $output); + fclose($fs); } /** * Add seeder file. * - * @return bool + * @return void + * @throws \Webpatser\Countries\MigrationFailedException */ - private function addSeeder(): bool + private function addSeeder(): void { $seeder = $this->laravel['path']."/../database/seeds/CountriesTableSeeder.php"; $output = "laravel['view']->make('countries::generators.seeder')->render(); if (file_exists($seeder)) { - return true; + throw new MigrationFailedException; } if (!$fs = fopen($seeder, 'x')) { - return false; + throw new MigrationFailedException; } fwrite($fs, $output); fclose($fs); - - return true; } } diff --git a/src/Webpatser/Countries/MigrationFailedException.php b/src/Webpatser/Countries/MigrationFailedException.php new file mode 100644 index 0000000..daaaafd --- /dev/null +++ b/src/Webpatser/Countries/MigrationFailedException.php @@ -0,0 +1,13 @@ + Date: Mon, 4 Dec 2017 22:36:51 +0000 Subject: [PATCH 6/6] Updated docblocks --- src/Webpatser/Countries/Countries.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Webpatser/Countries/Countries.php b/src/Webpatser/Countries/Countries.php index a245c80..8716611 100644 --- a/src/Webpatser/Countries/Countries.php +++ b/src/Webpatser/Countries/Countries.php @@ -7,14 +7,14 @@ class Countries extends Model { /** - * Path to the directory containing countries data. + * Array containing countries data. * * @var array */ protected $countries = []; /** - * The table for the countries in the database, is "countries" by default. + * Table name - "countries" by default. * * @var string */