From 05cd7745133310db64fd4e2e9c39340af1330e59 Mon Sep 17 00:00:00 2001 From: Yann Robin Date: Tue, 12 Dec 2017 16:18:11 +0000 Subject: [PATCH] [NF] - ZF -> Laravel: Customer CRUD - closes islandbridgenetworks/IXP-Manager#108 --- .idea/ixpv.iml | 6 + .idea/php.xml | 2 + .phpstorm.meta.php/laravel.meta.php | 100 +- _ide_helper.php | 2736 ++++++++++++-- .../Customer/CustomerController.php | 533 +++ app/Http/Requests/StoreCustomer.php | 110 + .../StoreCustomerBillingInformation.php | 84 + app/Mail/Customer/Email.php | 82 + composer.json | 3 +- composer.lock | 574 +-- config/app.php | 4 + config/countries.php | 13 + config/mail.php | 2 +- database/Entities/Customer.php | 85 +- database/Proxies/__CG__EntitiesCustomer.php | 26 +- .../CompanyRegistrationDetail.php | 12 + database/Repositories/Customer.php | 37 + database/Repositories/IRRDBConfig.php | 23 + database/seeds/CountriesSeeder.php | 42 + database/seeds/DatabaseSeeder.php | 6 +- package-lock.json | 3146 +++++++++++++++-- package.json | 1 - .../customer/billing-registration.foil.php | 225 ++ resources/views/customer/cust-type.foil.php | 10 +- resources/views/customer/detail.foil.php | 367 ++ resources/views/customer/details.foil.php | 104 + resources/views/customer/edit.foil.php | 294 ++ .../customer/emails/billing-details.blade.php | 89 + resources/views/customer/list.foil.php | 176 + .../views/layouts/menus/associate.foil.php | 2 +- .../views/layouts/menus/custuser.foil.php | 2 +- .../views/layouts/menus/superuser.foil.php | 2 +- resources/views/menu.foil.php | 2 +- routes/web-auth-superuser.php | 12 + routes/web.php | 5 + 35 files changed, 7998 insertions(+), 919 deletions(-) create mode 100644 app/Http/Controllers/Customer/CustomerController.php create mode 100644 app/Http/Requests/StoreCustomer.php create mode 100644 app/Http/Requests/StoreCustomerBillingInformation.php create mode 100644 app/Mail/Customer/Email.php create mode 100644 config/countries.php create mode 100644 database/seeds/CountriesSeeder.php create mode 100644 resources/views/customer/billing-registration.foil.php create mode 100644 resources/views/customer/detail.foil.php create mode 100644 resources/views/customer/details.foil.php create mode 100644 resources/views/customer/edit.foil.php create mode 100644 resources/views/customer/emails/billing-details.blade.php create mode 100644 resources/views/customer/list.foil.php diff --git a/.idea/ixpv.iml b/.idea/ixpv.iml index 419c01b81..ecb798536 100644 --- a/.idea/ixpv.iml +++ b/.idea/ixpv.iml @@ -113,6 +113,7 @@ + @@ -122,6 +123,7 @@ + @@ -236,6 +238,7 @@ + @@ -245,6 +248,7 @@ + @@ -354,6 +358,7 @@ + @@ -363,6 +368,7 @@ + diff --git a/.idea/php.xml b/.idea/php.xml index 1ab3677c2..e47663f47 100644 --- a/.idea/php.xml +++ b/.idea/php.xml @@ -136,6 +136,8 @@ + + diff --git a/.phpstorm.meta.php/laravel.meta.php b/.phpstorm.meta.php/laravel.meta.php index cc190fc48..3e43e752d 100644 --- a/.phpstorm.meta.php/laravel.meta.php +++ b/.phpstorm.meta.php/laravel.meta.php @@ -3,7 +3,7 @@ /** * PhpStorm Meta file, to provide autocomplete information for PhpStorm - * Generated on 2017-11-25. + * Generated on 2017-12-12. * * @author Barry vd. Heuvel * @see https://github.com/barryvdh/laravel-ide-helper @@ -40,6 +40,12 @@ 'view.engine.resolver' => \Illuminate\View\Engines\EngineResolver::class, 'dompdf' => \Dompdf\Dompdf::class, 'dompdf.wrapper' => \Barryvdh\DomPDF\PDF::class, + 'flysystem.adapterfactory' => \GrahamCampbell\Flysystem\Adapters\ConnectionFactory::class, + 'flysystem.cachefactory' => \GrahamCampbell\Flysystem\Cache\ConnectionFactory::class, + 'flysystem.factory' => \GrahamCampbell\Flysystem\FlysystemFactory::class, + 'flysystem' => \GrahamCampbell\Flysystem\FlysystemManager::class, + 'flysystem.connection' => \League\Flysystem\Filesystem::class, + 'image' => \Intervention\Image\ImageManager::class, 'LaravelDoctrine\ORM\Configuration\Cache\CacheManager' => \LaravelDoctrine\ORM\Configuration\Cache\CacheManager::class, 'LaravelDoctrine\ORM\Configuration\MetaData\MetaDataManager' => \LaravelDoctrine\ORM\Configuration\MetaData\MetaDataManager::class, 'LaravelDoctrine\ORM\Configuration\Connections\ConnectionManager' => \LaravelDoctrine\ORM\Configuration\Connections\ConnectionManager::class, @@ -48,13 +54,9 @@ 'Doctrine\ORM\Mapping\ClassMetadataFactory' => \Doctrine\ORM\Mapping\ClassMetadataFactory::class, 'LaravelDoctrine\ORM\Extensions\ExtensionManager' => \LaravelDoctrine\ORM\Extensions\ExtensionManager::class, 'validation.presence' => \LaravelDoctrine\ORM\Validation\DoctrinePresenceVerifier::class, - 'image' => \Intervention\Image\ImageManager::class, - 'flysystem.adapterfactory' => \GrahamCampbell\Flysystem\Adapters\ConnectionFactory::class, - 'flysystem.cachefactory' => \GrahamCampbell\Flysystem\Cache\ConnectionFactory::class, - 'flysystem.factory' => \GrahamCampbell\Flysystem\FlysystemFactory::class, - 'flysystem' => \GrahamCampbell\Flysystem\FlysystemManager::class, - 'flysystem.connection' => \League\Flysystem\Filesystem::class, 'parsedown' => \Parsedown::class, + 'countries' => \Webpatser\Countries\Countries::class, + 'command.countries.migration' => \Webpatser\Countries\MigrationCommand::class, 'debugbar' => \Barryvdh\Debugbar\LaravelDebugbar::class, 'command.debugbar.clear' => \Barryvdh\Debugbar\Console\ClearCommand::class, 'command.ide-helper.generate' => \Barryvdh\LaravelIdeHelper\Console\GeneratorCommand::class, @@ -194,6 +196,12 @@ 'view.engine.resolver' => \Illuminate\View\Engines\EngineResolver::class, 'dompdf' => \Dompdf\Dompdf::class, 'dompdf.wrapper' => \Barryvdh\DomPDF\PDF::class, + 'flysystem.adapterfactory' => \GrahamCampbell\Flysystem\Adapters\ConnectionFactory::class, + 'flysystem.cachefactory' => \GrahamCampbell\Flysystem\Cache\ConnectionFactory::class, + 'flysystem.factory' => \GrahamCampbell\Flysystem\FlysystemFactory::class, + 'flysystem' => \GrahamCampbell\Flysystem\FlysystemManager::class, + 'flysystem.connection' => \League\Flysystem\Filesystem::class, + 'image' => \Intervention\Image\ImageManager::class, 'LaravelDoctrine\ORM\Configuration\Cache\CacheManager' => \LaravelDoctrine\ORM\Configuration\Cache\CacheManager::class, 'LaravelDoctrine\ORM\Configuration\MetaData\MetaDataManager' => \LaravelDoctrine\ORM\Configuration\MetaData\MetaDataManager::class, 'LaravelDoctrine\ORM\Configuration\Connections\ConnectionManager' => \LaravelDoctrine\ORM\Configuration\Connections\ConnectionManager::class, @@ -202,13 +210,9 @@ 'Doctrine\ORM\Mapping\ClassMetadataFactory' => \Doctrine\ORM\Mapping\ClassMetadataFactory::class, 'LaravelDoctrine\ORM\Extensions\ExtensionManager' => \LaravelDoctrine\ORM\Extensions\ExtensionManager::class, 'validation.presence' => \LaravelDoctrine\ORM\Validation\DoctrinePresenceVerifier::class, - 'image' => \Intervention\Image\ImageManager::class, - 'flysystem.adapterfactory' => \GrahamCampbell\Flysystem\Adapters\ConnectionFactory::class, - 'flysystem.cachefactory' => \GrahamCampbell\Flysystem\Cache\ConnectionFactory::class, - 'flysystem.factory' => \GrahamCampbell\Flysystem\FlysystemFactory::class, - 'flysystem' => \GrahamCampbell\Flysystem\FlysystemManager::class, - 'flysystem.connection' => \League\Flysystem\Filesystem::class, 'parsedown' => \Parsedown::class, + 'countries' => \Webpatser\Countries\Countries::class, + 'command.countries.migration' => \Webpatser\Countries\MigrationCommand::class, 'debugbar' => \Barryvdh\Debugbar\LaravelDebugbar::class, 'command.debugbar.clear' => \Barryvdh\Debugbar\Console\ClearCommand::class, 'command.ide-helper.generate' => \Barryvdh\LaravelIdeHelper\Console\GeneratorCommand::class, @@ -348,6 +352,12 @@ 'view.engine.resolver' => \Illuminate\View\Engines\EngineResolver::class, 'dompdf' => \Dompdf\Dompdf::class, 'dompdf.wrapper' => \Barryvdh\DomPDF\PDF::class, + 'flysystem.adapterfactory' => \GrahamCampbell\Flysystem\Adapters\ConnectionFactory::class, + 'flysystem.cachefactory' => \GrahamCampbell\Flysystem\Cache\ConnectionFactory::class, + 'flysystem.factory' => \GrahamCampbell\Flysystem\FlysystemFactory::class, + 'flysystem' => \GrahamCampbell\Flysystem\FlysystemManager::class, + 'flysystem.connection' => \League\Flysystem\Filesystem::class, + 'image' => \Intervention\Image\ImageManager::class, 'LaravelDoctrine\ORM\Configuration\Cache\CacheManager' => \LaravelDoctrine\ORM\Configuration\Cache\CacheManager::class, 'LaravelDoctrine\ORM\Configuration\MetaData\MetaDataManager' => \LaravelDoctrine\ORM\Configuration\MetaData\MetaDataManager::class, 'LaravelDoctrine\ORM\Configuration\Connections\ConnectionManager' => \LaravelDoctrine\ORM\Configuration\Connections\ConnectionManager::class, @@ -356,13 +366,9 @@ 'Doctrine\ORM\Mapping\ClassMetadataFactory' => \Doctrine\ORM\Mapping\ClassMetadataFactory::class, 'LaravelDoctrine\ORM\Extensions\ExtensionManager' => \LaravelDoctrine\ORM\Extensions\ExtensionManager::class, 'validation.presence' => \LaravelDoctrine\ORM\Validation\DoctrinePresenceVerifier::class, - 'image' => \Intervention\Image\ImageManager::class, - 'flysystem.adapterfactory' => \GrahamCampbell\Flysystem\Adapters\ConnectionFactory::class, - 'flysystem.cachefactory' => \GrahamCampbell\Flysystem\Cache\ConnectionFactory::class, - 'flysystem.factory' => \GrahamCampbell\Flysystem\FlysystemFactory::class, - 'flysystem' => \GrahamCampbell\Flysystem\FlysystemManager::class, - 'flysystem.connection' => \League\Flysystem\Filesystem::class, 'parsedown' => \Parsedown::class, + 'countries' => \Webpatser\Countries\Countries::class, + 'command.countries.migration' => \Webpatser\Countries\MigrationCommand::class, 'debugbar' => \Barryvdh\Debugbar\LaravelDebugbar::class, 'command.debugbar.clear' => \Barryvdh\Debugbar\Console\ClearCommand::class, 'command.ide-helper.generate' => \Barryvdh\LaravelIdeHelper\Console\GeneratorCommand::class, @@ -502,6 +508,12 @@ 'view.engine.resolver' => \Illuminate\View\Engines\EngineResolver::class, 'dompdf' => \Dompdf\Dompdf::class, 'dompdf.wrapper' => \Barryvdh\DomPDF\PDF::class, + 'flysystem.adapterfactory' => \GrahamCampbell\Flysystem\Adapters\ConnectionFactory::class, + 'flysystem.cachefactory' => \GrahamCampbell\Flysystem\Cache\ConnectionFactory::class, + 'flysystem.factory' => \GrahamCampbell\Flysystem\FlysystemFactory::class, + 'flysystem' => \GrahamCampbell\Flysystem\FlysystemManager::class, + 'flysystem.connection' => \League\Flysystem\Filesystem::class, + 'image' => \Intervention\Image\ImageManager::class, 'LaravelDoctrine\ORM\Configuration\Cache\CacheManager' => \LaravelDoctrine\ORM\Configuration\Cache\CacheManager::class, 'LaravelDoctrine\ORM\Configuration\MetaData\MetaDataManager' => \LaravelDoctrine\ORM\Configuration\MetaData\MetaDataManager::class, 'LaravelDoctrine\ORM\Configuration\Connections\ConnectionManager' => \LaravelDoctrine\ORM\Configuration\Connections\ConnectionManager::class, @@ -510,13 +522,9 @@ 'Doctrine\ORM\Mapping\ClassMetadataFactory' => \Doctrine\ORM\Mapping\ClassMetadataFactory::class, 'LaravelDoctrine\ORM\Extensions\ExtensionManager' => \LaravelDoctrine\ORM\Extensions\ExtensionManager::class, 'validation.presence' => \LaravelDoctrine\ORM\Validation\DoctrinePresenceVerifier::class, - 'image' => \Intervention\Image\ImageManager::class, - 'flysystem.adapterfactory' => \GrahamCampbell\Flysystem\Adapters\ConnectionFactory::class, - 'flysystem.cachefactory' => \GrahamCampbell\Flysystem\Cache\ConnectionFactory::class, - 'flysystem.factory' => \GrahamCampbell\Flysystem\FlysystemFactory::class, - 'flysystem' => \GrahamCampbell\Flysystem\FlysystemManager::class, - 'flysystem.connection' => \League\Flysystem\Filesystem::class, 'parsedown' => \Parsedown::class, + 'countries' => \Webpatser\Countries\Countries::class, + 'command.countries.migration' => \Webpatser\Countries\MigrationCommand::class, 'debugbar' => \Barryvdh\Debugbar\LaravelDebugbar::class, 'command.debugbar.clear' => \Barryvdh\Debugbar\Console\ClearCommand::class, 'command.ide-helper.generate' => \Barryvdh\LaravelIdeHelper\Console\GeneratorCommand::class, @@ -656,6 +664,12 @@ 'view.engine.resolver' => \Illuminate\View\Engines\EngineResolver::class, 'dompdf' => \Dompdf\Dompdf::class, 'dompdf.wrapper' => \Barryvdh\DomPDF\PDF::class, + 'flysystem.adapterfactory' => \GrahamCampbell\Flysystem\Adapters\ConnectionFactory::class, + 'flysystem.cachefactory' => \GrahamCampbell\Flysystem\Cache\ConnectionFactory::class, + 'flysystem.factory' => \GrahamCampbell\Flysystem\FlysystemFactory::class, + 'flysystem' => \GrahamCampbell\Flysystem\FlysystemManager::class, + 'flysystem.connection' => \League\Flysystem\Filesystem::class, + 'image' => \Intervention\Image\ImageManager::class, 'LaravelDoctrine\ORM\Configuration\Cache\CacheManager' => \LaravelDoctrine\ORM\Configuration\Cache\CacheManager::class, 'LaravelDoctrine\ORM\Configuration\MetaData\MetaDataManager' => \LaravelDoctrine\ORM\Configuration\MetaData\MetaDataManager::class, 'LaravelDoctrine\ORM\Configuration\Connections\ConnectionManager' => \LaravelDoctrine\ORM\Configuration\Connections\ConnectionManager::class, @@ -664,13 +678,9 @@ 'Doctrine\ORM\Mapping\ClassMetadataFactory' => \Doctrine\ORM\Mapping\ClassMetadataFactory::class, 'LaravelDoctrine\ORM\Extensions\ExtensionManager' => \LaravelDoctrine\ORM\Extensions\ExtensionManager::class, 'validation.presence' => \LaravelDoctrine\ORM\Validation\DoctrinePresenceVerifier::class, - 'image' => \Intervention\Image\ImageManager::class, - 'flysystem.adapterfactory' => \GrahamCampbell\Flysystem\Adapters\ConnectionFactory::class, - 'flysystem.cachefactory' => \GrahamCampbell\Flysystem\Cache\ConnectionFactory::class, - 'flysystem.factory' => \GrahamCampbell\Flysystem\FlysystemFactory::class, - 'flysystem' => \GrahamCampbell\Flysystem\FlysystemManager::class, - 'flysystem.connection' => \League\Flysystem\Filesystem::class, 'parsedown' => \Parsedown::class, + 'countries' => \Webpatser\Countries\Countries::class, + 'command.countries.migration' => \Webpatser\Countries\MigrationCommand::class, 'debugbar' => \Barryvdh\Debugbar\LaravelDebugbar::class, 'command.debugbar.clear' => \Barryvdh\Debugbar\Console\ClearCommand::class, 'command.ide-helper.generate' => \Barryvdh\LaravelIdeHelper\Console\GeneratorCommand::class, @@ -810,6 +820,12 @@ 'view.engine.resolver' => \Illuminate\View\Engines\EngineResolver::class, 'dompdf' => \Dompdf\Dompdf::class, 'dompdf.wrapper' => \Barryvdh\DomPDF\PDF::class, + 'flysystem.adapterfactory' => \GrahamCampbell\Flysystem\Adapters\ConnectionFactory::class, + 'flysystem.cachefactory' => \GrahamCampbell\Flysystem\Cache\ConnectionFactory::class, + 'flysystem.factory' => \GrahamCampbell\Flysystem\FlysystemFactory::class, + 'flysystem' => \GrahamCampbell\Flysystem\FlysystemManager::class, + 'flysystem.connection' => \League\Flysystem\Filesystem::class, + 'image' => \Intervention\Image\ImageManager::class, 'LaravelDoctrine\ORM\Configuration\Cache\CacheManager' => \LaravelDoctrine\ORM\Configuration\Cache\CacheManager::class, 'LaravelDoctrine\ORM\Configuration\MetaData\MetaDataManager' => \LaravelDoctrine\ORM\Configuration\MetaData\MetaDataManager::class, 'LaravelDoctrine\ORM\Configuration\Connections\ConnectionManager' => \LaravelDoctrine\ORM\Configuration\Connections\ConnectionManager::class, @@ -818,13 +834,9 @@ 'Doctrine\ORM\Mapping\ClassMetadataFactory' => \Doctrine\ORM\Mapping\ClassMetadataFactory::class, 'LaravelDoctrine\ORM\Extensions\ExtensionManager' => \LaravelDoctrine\ORM\Extensions\ExtensionManager::class, 'validation.presence' => \LaravelDoctrine\ORM\Validation\DoctrinePresenceVerifier::class, - 'image' => \Intervention\Image\ImageManager::class, - 'flysystem.adapterfactory' => \GrahamCampbell\Flysystem\Adapters\ConnectionFactory::class, - 'flysystem.cachefactory' => \GrahamCampbell\Flysystem\Cache\ConnectionFactory::class, - 'flysystem.factory' => \GrahamCampbell\Flysystem\FlysystemFactory::class, - 'flysystem' => \GrahamCampbell\Flysystem\FlysystemManager::class, - 'flysystem.connection' => \League\Flysystem\Filesystem::class, 'parsedown' => \Parsedown::class, + 'countries' => \Webpatser\Countries\Countries::class, + 'command.countries.migration' => \Webpatser\Countries\MigrationCommand::class, 'debugbar' => \Barryvdh\Debugbar\LaravelDebugbar::class, 'command.debugbar.clear' => \Barryvdh\Debugbar\Console\ClearCommand::class, 'command.ide-helper.generate' => \Barryvdh\LaravelIdeHelper\Console\GeneratorCommand::class, @@ -964,6 +976,12 @@ 'view.engine.resolver' => \Illuminate\View\Engines\EngineResolver::class, 'dompdf' => \Dompdf\Dompdf::class, 'dompdf.wrapper' => \Barryvdh\DomPDF\PDF::class, + 'flysystem.adapterfactory' => \GrahamCampbell\Flysystem\Adapters\ConnectionFactory::class, + 'flysystem.cachefactory' => \GrahamCampbell\Flysystem\Cache\ConnectionFactory::class, + 'flysystem.factory' => \GrahamCampbell\Flysystem\FlysystemFactory::class, + 'flysystem' => \GrahamCampbell\Flysystem\FlysystemManager::class, + 'flysystem.connection' => \League\Flysystem\Filesystem::class, + 'image' => \Intervention\Image\ImageManager::class, 'LaravelDoctrine\ORM\Configuration\Cache\CacheManager' => \LaravelDoctrine\ORM\Configuration\Cache\CacheManager::class, 'LaravelDoctrine\ORM\Configuration\MetaData\MetaDataManager' => \LaravelDoctrine\ORM\Configuration\MetaData\MetaDataManager::class, 'LaravelDoctrine\ORM\Configuration\Connections\ConnectionManager' => \LaravelDoctrine\ORM\Configuration\Connections\ConnectionManager::class, @@ -972,13 +990,9 @@ 'Doctrine\ORM\Mapping\ClassMetadataFactory' => \Doctrine\ORM\Mapping\ClassMetadataFactory::class, 'LaravelDoctrine\ORM\Extensions\ExtensionManager' => \LaravelDoctrine\ORM\Extensions\ExtensionManager::class, 'validation.presence' => \LaravelDoctrine\ORM\Validation\DoctrinePresenceVerifier::class, - 'image' => \Intervention\Image\ImageManager::class, - 'flysystem.adapterfactory' => \GrahamCampbell\Flysystem\Adapters\ConnectionFactory::class, - 'flysystem.cachefactory' => \GrahamCampbell\Flysystem\Cache\ConnectionFactory::class, - 'flysystem.factory' => \GrahamCampbell\Flysystem\FlysystemFactory::class, - 'flysystem' => \GrahamCampbell\Flysystem\FlysystemManager::class, - 'flysystem.connection' => \League\Flysystem\Filesystem::class, 'parsedown' => \Parsedown::class, + 'countries' => \Webpatser\Countries\Countries::class, + 'command.countries.migration' => \Webpatser\Countries\MigrationCommand::class, 'debugbar' => \Barryvdh\Debugbar\LaravelDebugbar::class, 'command.debugbar.clear' => \Barryvdh\Debugbar\Console\ClearCommand::class, 'command.ide-helper.generate' => \Barryvdh\LaravelIdeHelper\Console\GeneratorCommand::class, diff --git a/_ide_helper.php b/_ide_helper.php index 6812703ec..66a3fff99 100644 --- a/_ide_helper.php +++ b/_ide_helper.php @@ -1,7 +1,7 @@ * @see https://github.com/barryvdh/laravel-ide-helper @@ -2828,29 +2828,7 @@ public static function macroCall($method, $parameters) */ public static function flush() { - return \Illuminate\Cache\FileStore::flush(); - } - - /** - * Get the Filesystem instance. - * - * @return \Illuminate\Filesystem\Filesystem - * @static - */ - public static function getFilesystem() - { - return \Illuminate\Cache\FileStore::getFilesystem(); - } - - /** - * Get the working directory of the cache. - * - * @return string - * @static - */ - public static function getDirectory() - { - return \Illuminate\Cache\FileStore::getDirectory(); + return \Illuminate\Cache\ArrayStore::flush(); } /** @@ -2861,7 +2839,7 @@ public static function getDirectory() */ public static function getPrefix() { - return \Illuminate\Cache\FileStore::getPrefix(); + return \Illuminate\Cache\ArrayStore::getPrefix(); } } @@ -6211,6 +6189,24 @@ public static function isMethodCacheable() return \Illuminate\Http\Request::isMethodCacheable(); } + /** + * Returns the protocol version. + * + * If the application is behind a proxy, the protocol version used in the + * requests between the client and the proxy and between the proxy and the + * server might be different. This returns the former (from the "Via" header) + * if the proxy is trusted (see "setTrustedProxies()"), otherwise it returns + * the latter (from the "SERVER_PROTOCOL" server parameter). + * + * @return string + * @static + */ + public static function getProtocolVersion() + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + return \Illuminate\Http\Request::getProtocolVersion(); + } + /** * Returns the request body content. * @@ -9565,6 +9561,24 @@ public static function isMethodCacheable() return \Illuminate\Http\Request::isMethodCacheable(); } + /** + * Returns the protocol version. + * + * If the application is behind a proxy, the protocol version used in the + * requests between the client and the proxy and between the proxy and the + * server might be different. This returns the former (from the "Via" header) + * if the proxy is trusted (see "setTrustedProxies()"), otherwise it returns + * the latter (from the "SERVER_PROTOCOL" server parameter). + * + * @return string + * @static + */ + public static function getProtocolVersion() + { + //Method inherited from \Symfony\Component\HttpFoundation\Request + return \Illuminate\Http\Request::getProtocolVersion(); + } + /** * Returns the request body content. * @@ -12135,6 +12149,35 @@ public static function get($path) return \Illuminate\Filesystem\FilesystemAdapter::get($path); } + /** + * Create a streamed response for a given file. + * + * @param string $path + * @param string|null $name + * @param array|null $headers + * @param string|null $disposition + * @return \Symfony\Component\HttpFoundation\StreamedResponse + * @static + */ + public static function response($path, $name = null, $headers = array(), $disposition = 'inline') + { + return \Illuminate\Filesystem\FilesystemAdapter::response($path, $name, $headers, $disposition); + } + + /** + * Create a streamed download response for a given file. + * + * @param string $path + * @param string|null $name + * @param array|null $headers + * @return \Symfony\Component\HttpFoundation\StreamedResponse + * @static + */ + public static function download($path, $name = null, $headers = array()) + { + return \Illuminate\Filesystem\FilesystemAdapter::download($path, $name, $headers); + } + /** * Write the contents of a file. * @@ -12352,7 +12395,7 @@ public static function getAwsTemporaryUrl($adapter, $path, $expiration, $options * @param \League\Flysystem\Rackspace\RackspaceAdapter $adapter * @param string $path * @param \DateTimeInterface $expiration - * @param $options + * @param array $options * @return string * @static */ @@ -12435,6 +12478,17 @@ public static function deleteDirectory($directory) return \Illuminate\Filesystem\FilesystemAdapter::deleteDirectory($directory); } + /** + * Flush the Flysystem cache. + * + * @return void + * @static + */ + public static function flushCache() + { + \Illuminate\Filesystem\FilesystemAdapter::flushCache(); + } + /** * Get the Flysystem driver. * @@ -16405,198 +16459,2418 @@ public static function stream($filename = 'document.pdf') } +namespace Webpatser\Countries { -namespace { - - class App extends \Illuminate\Support\Facades\App {} - - class Artisan extends \Illuminate\Support\Facades\Artisan {} - - class Auth extends \Illuminate\Support\Facades\Auth {} - - class Blade extends \Illuminate\Support\Facades\Blade {} - - class Bus extends \Illuminate\Support\Facades\Bus {} - - class Cache extends \Illuminate\Support\Facades\Cache {} - - class Config extends \Illuminate\Support\Facades\Config {} - - class Cookie extends \Illuminate\Support\Facades\Cookie {} - - class Crypt extends \Illuminate\Support\Facades\Crypt {} - - class DB extends \Illuminate\Support\Facades\DB {} - - class Eloquent extends \Illuminate\Database\Eloquent\Model { - /** - * Create and return an un-saved model instance. - * - * @param array $attributes - * @return \Illuminate\Database\Eloquent\Model - * @static - */ - public static function make($attributes = array()) - { - return \Illuminate\Database\Eloquent\Builder::make($attributes); - } - - /** - * Register a new global scope. - * - * @param string $identifier - * @param \Illuminate\Database\Eloquent\Scope|\Closure $scope - * @return $this - * @static - */ - public static function withGlobalScope($identifier, $scope) - { - return \Illuminate\Database\Eloquent\Builder::withGlobalScope($identifier, $scope); - } - - /** - * Remove a registered global scope. - * - * @param \Illuminate\Database\Eloquent\Scope|string $scope - * @return $this - * @static - */ - public static function withoutGlobalScope($scope) - { - return \Illuminate\Database\Eloquent\Builder::withoutGlobalScope($scope); - } - - /** - * Remove all or passed registered global scopes. - * - * @param array|null $scopes - * @return $this - * @static - */ - public static function withoutGlobalScopes($scopes = null) - { - return \Illuminate\Database\Eloquent\Builder::withoutGlobalScopes($scopes); - } - - /** - * Get an array of global scopes that were removed from the query. - * - * @return array - * @static - */ - public static function removedScopes() - { - return \Illuminate\Database\Eloquent\Builder::removedScopes(); - } - - /** - * Add a where clause on the primary key to the query. - * - * @param mixed $id - * @return $this - * @static - */ - public static function whereKey($id) - { - return \Illuminate\Database\Eloquent\Builder::whereKey($id); - } - - /** - * Add a where clause on the primary key to the query. - * - * @param mixed $id - * @return $this - * @static - */ - public static function whereKeyNot($id) - { - return \Illuminate\Database\Eloquent\Builder::whereKeyNot($id); - } - - /** - * Add a basic where clause to the query. - * - * @param string|array|\Closure $column - * @param string $operator - * @param mixed $value - * @param string $boolean - * @return $this - * @static - */ - public static function where($column, $operator = null, $value = null, $boolean = 'and') - { - return \Illuminate\Database\Eloquent\Builder::where($column, $operator, $value, $boolean); - } - - /** - * Add an "or where" clause to the query. - * - * @param \Closure|array|string $column - * @param string $operator - * @param mixed $value - * @return \Illuminate\Database\Eloquent\Builder|static - * @static - */ - public static function orWhere($column, $operator = null, $value = null) - { - return \Illuminate\Database\Eloquent\Builder::orWhere($column, $operator, $value); - } - - /** - * Create a collection of models from plain arrays. - * - * @param array $items - * @return \Illuminate\Database\Eloquent\Collection - * @static - */ - public static function hydrate($items) - { - return \Illuminate\Database\Eloquent\Builder::hydrate($items); - } - - /** - * Create a collection of models from a raw query. - * - * @param string $query - * @param array $bindings - * @return \Illuminate\Database\Eloquent\Collection - * @static - */ - public static function fromQuery($query, $bindings = array()) - { - return \Illuminate\Database\Eloquent\Builder::fromQuery($query, $bindings); - } - - /** - * Find a model by its primary key. - * - * @param mixed $id - * @param array $columns - * @return \Illuminate\Database\Eloquent\Model|\Illuminate\Database\Eloquent\Collection|static[]|static|null - * @static - */ - public static function find($id, $columns = array()) - { - return \Illuminate\Database\Eloquent\Builder::find($id, $columns); - } - - /** - * Find multiple models by their primary keys. - * - * @param \Illuminate\Contracts\Support\Arrayable|array $ids - * @param array $columns - * @return \Illuminate\Database\Eloquent\Collection - * @static - */ - public static function findMany($ids, $columns = array()) - { - return \Illuminate\Database\Eloquent\Builder::findMany($ids, $columns); - } - - /** - * Find a model by its primary key or throw an exception. - * - * @param mixed $id + class CountriesFacade { + + /** + * Returns one country + * + * @param string $id The country id + * @return array + * @static + */ + public static function getOne($id) + { + return \Webpatser\Countries\Countries::getOne($id); + } + + /** + * Returns a list of countries + * + * @param string sort + * @return array + * @static + */ + public static function getList($sort = null) + { + return \Webpatser\Countries\Countries::getList($sort); + } + + /** + * 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 + * @return array + * @static + */ + public static function getListForSelect($display = 'name') + { + return \Webpatser\Countries\Countries::getListForSelect($display); + } + + /** + * Clear the list of booted models so they will be re-booted. + * + * @return void + * @static + */ + public static function clearBootedModels() + { + //Method inherited from \Illuminate\Database\Eloquent\Model + \Webpatser\Countries\Countries::clearBootedModels(); + } + + /** + * Fill the model with an array of attributes. + * + * @param array $attributes + * @return $this + * @throws \Illuminate\Database\Eloquent\MassAssignmentException + * @static + */ + public static function fill($attributes) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::fill($attributes); + } + + /** + * Fill the model with an array of attributes. Force mass assignment. + * + * @param array $attributes + * @return $this + * @static + */ + public static function forceFill($attributes) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::forceFill($attributes); + } + + /** + * Create a new instance of the given model. + * + * @param array $attributes + * @param bool $exists + * @return static + * @static + */ + public static function newInstance($attributes = array(), $exists = false) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::newInstance($attributes, $exists); + } + + /** + * Create a new model instance that is existing. + * + * @param array $attributes + * @param string|null $connection + * @return static + * @static + */ + public static function newFromBuilder($attributes = array(), $connection = null) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::newFromBuilder($attributes, $connection); + } + + /** + * Begin querying the model on a given connection. + * + * @param string|null $connection + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function on($connection = null) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::on($connection); + } + + /** + * Begin querying the model on the write connection. + * + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function onWriteConnection() + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::onWriteConnection(); + } + + /** + * Get all of the models from the database. + * + * @param array|mixed $columns + * @return \Illuminate\Database\Eloquent\Collection|static[] + * @static + */ + public static function all($columns = array()) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::all($columns); + } + + /** + * Begin querying a model with eager loading. + * + * @param array|string $relations + * @return \Illuminate\Database\Eloquent\Builder|static + * @static + */ + public static function with($relations) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::with($relations); + } + + /** + * Eager load relations on the model. + * + * @param array|string $relations + * @return $this + * @static + */ + public static function load($relations) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::load($relations); + } + + /** + * Eager load relations on the model if they are not already eager loaded. + * + * @param array|string $relations + * @return $this + * @static + */ + public static function loadMissing($relations) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::loadMissing($relations); + } + + /** + * Update the model in the database. + * + * @param array $attributes + * @param array $options + * @return bool + * @static + */ + public static function update($attributes = array(), $options = array()) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::update($attributes, $options); + } + + /** + * Save the model and all of its relationships. + * + * @return bool + * @static + */ + public static function push() + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::push(); + } + + /** + * Save the model to the database. + * + * @param array $options + * @return bool + * @static + */ + public static function save($options = array()) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::save($options); + } + + /** + * Save the model to the database using transaction. + * + * @param array $options + * @return bool + * @throws \Throwable + * @static + */ + public static function saveOrFail($options = array()) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::saveOrFail($options); + } + + /** + * Destroy the models for the given IDs. + * + * @param array|int $ids + * @return int + * @static + */ + public static function destroy($ids) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::destroy($ids); + } + + /** + * Delete the model from the database. + * + * @return bool|null + * @throws \Exception + * @static + */ + public static function delete() + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::delete(); + } + + /** + * Force a hard delete on a soft deleted model. + * + * This method protects developers from running forceDelete when trait is missing. + * + * @return bool|null + * @static + */ + public static function forceDelete() + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::forceDelete(); + } + + /** + * Begin querying the model. + * + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function query() + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::query(); + } + + /** + * Get a new query builder for the model's table. + * + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function newQuery() + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::newQuery(); + } + + /** + * Get a new query builder with no relationships loaded. + * + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function newQueryWithoutRelationships() + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::newQueryWithoutRelationships(); + } + + /** + * Register the global scopes for this builder instance. + * + * @param \Illuminate\Database\Eloquent\Builder $builder + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function registerGlobalScopes($builder) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::registerGlobalScopes($builder); + } + + /** + * Get a new query builder that doesn't have any global scopes. + * + * @return \Illuminate\Database\Eloquent\Builder|static + * @static + */ + public static function newQueryWithoutScopes() + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::newQueryWithoutScopes(); + } + + /** + * Get a new query instance without a given scope. + * + * @param \Illuminate\Database\Eloquent\Scope|string $scope + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function newQueryWithoutScope($scope) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::newQueryWithoutScope($scope); + } + + /** + * Get a new query to restore one or more models by their queueable IDs. + * + * @param array|int $ids + * @return \Illuminate\Database\Eloquent\Builder + * @static + */ + public static function newQueryForRestoration($ids) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::newQueryForRestoration($ids); + } + + /** + * Create a new Eloquent query builder for the model. + * + * @param \Illuminate\Database\Query\Builder $query + * @return \Illuminate\Database\Eloquent\Builder|static + * @static + */ + public static function newEloquentBuilder($query) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::newEloquentBuilder($query); + } + + /** + * Create a new Eloquent Collection instance. + * + * @param array $models + * @return \Illuminate\Database\Eloquent\Collection + * @static + */ + public static function newCollection($models = array()) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::newCollection($models); + } + + /** + * Create a new pivot model instance. + * + * @param \Illuminate\Database\Eloquent\Model $parent + * @param array $attributes + * @param string $table + * @param bool $exists + * @param string|null $using + * @return \Illuminate\Database\Eloquent\Relations\Pivot + * @static + */ + public static function newPivot($parent, $attributes, $table, $exists, $using = null) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::newPivot($parent, $attributes, $table, $exists, $using); + } + + /** + * Convert the model instance to an array. + * + * @return array + * @static + */ + public static function toArray() + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::toArray(); + } + + /** + * Convert the model instance to JSON. + * + * @param int $options + * @return string + * @throws \Illuminate\Database\Eloquent\JsonEncodingException + * @static + */ + public static function toJson($options = 0) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::toJson($options); + } + + /** + * Convert the object into something JSON serializable. + * + * @return array + * @static + */ + public static function jsonSerialize() + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::jsonSerialize(); + } + + /** + * Reload a fresh model instance from the database. + * + * @param array|string $with + * @return static|null + * @static + */ + public static function fresh($with = array()) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::fresh($with); + } + + /** + * Reload the current model instance with fresh attributes from the database. + * + * @return $this + * @static + */ + public static function refresh() + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::refresh(); + } + + /** + * Clone the model into a new, non-existing instance. + * + * @param array|null $except + * @return \Illuminate\Database\Eloquent\Model + * @static + */ + public static function replicate($except = null) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::replicate($except); + } + + /** + * Determine if two models have the same ID and belong to the same table. + * + * @param \Illuminate\Database\Eloquent\Model|null $model + * @return bool + * @static + */ + public static function is($model) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::is($model); + } + + /** + * Determine if two models are not the same. + * + * @param \Illuminate\Database\Eloquent\Model|null $model + * @return bool + * @static + */ + public static function isNot($model) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::isNot($model); + } + + /** + * Get the database connection for the model. + * + * @return \Illuminate\Database\Connection + * @static + */ + public static function getConnection() + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::getConnection(); + } + + /** + * Get the current connection name for the model. + * + * @return string + * @static + */ + public static function getConnectionName() + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::getConnectionName(); + } + + /** + * Set the connection associated with the model. + * + * @param string $name + * @return $this + * @static + */ + public static function setConnection($name) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::setConnection($name); + } + + /** + * Resolve a connection instance. + * + * @param string|null $connection + * @return \Illuminate\Database\Connection + * @static + */ + public static function resolveConnection($connection = null) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::resolveConnection($connection); + } + + /** + * Get the connection resolver instance. + * + * @return \Illuminate\Database\ConnectionResolverInterface + * @static + */ + public static function getConnectionResolver() + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::getConnectionResolver(); + } + + /** + * Set the connection resolver instance. + * + * @param \Illuminate\Database\ConnectionResolverInterface $resolver + * @return void + * @static + */ + public static function setConnectionResolver($resolver) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + \Webpatser\Countries\Countries::setConnectionResolver($resolver); + } + + /** + * Unset the connection resolver for models. + * + * @return void + * @static + */ + public static function unsetConnectionResolver() + { + //Method inherited from \Illuminate\Database\Eloquent\Model + \Webpatser\Countries\Countries::unsetConnectionResolver(); + } + + /** + * Get the table associated with the model. + * + * @return string + * @static + */ + public static function getTable() + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::getTable(); + } + + /** + * Set the table associated with the model. + * + * @param string $table + * @return $this + * @static + */ + public static function setTable($table) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::setTable($table); + } + + /** + * Get the primary key for the model. + * + * @return string + * @static + */ + public static function getKeyName() + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::getKeyName(); + } + + /** + * Set the primary key for the model. + * + * @param string $key + * @return $this + * @static + */ + public static function setKeyName($key) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::setKeyName($key); + } + + /** + * Get the table qualified key name. + * + * @return string + * @static + */ + public static function getQualifiedKeyName() + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::getQualifiedKeyName(); + } + + /** + * Get the auto-incrementing key type. + * + * @return string + * @static + */ + public static function getKeyType() + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::getKeyType(); + } + + /** + * Set the data type for the primary key. + * + * @param string $type + * @return $this + * @static + */ + public static function setKeyType($type) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::setKeyType($type); + } + + /** + * Get the value indicating whether the IDs are incrementing. + * + * @return bool + * @static + */ + public static function getIncrementing() + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::getIncrementing(); + } + + /** + * Set whether IDs are incrementing. + * + * @param bool $value + * @return $this + * @static + */ + public static function setIncrementing($value) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::setIncrementing($value); + } + + /** + * Get the value of the model's primary key. + * + * @return mixed + * @static + */ + public static function getKey() + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::getKey(); + } + + /** + * Get the queueable identity for the entity. + * + * @return mixed + * @static + */ + public static function getQueueableId() + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::getQueueableId(); + } + + /** + * Get the queueable connection for the entity. + * + * @return mixed + * @static + */ + public static function getQueueableConnection() + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::getQueueableConnection(); + } + + /** + * Get the value of the model's route key. + * + * @return mixed + * @static + */ + public static function getRouteKey() + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::getRouteKey(); + } + + /** + * Get the route key for the model. + * + * @return string + * @static + */ + public static function getRouteKeyName() + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::getRouteKeyName(); + } + + /** + * Retrieve the model for a bound value. + * + * @param mixed $value + * @return \Illuminate\Database\Eloquent\Model|null + * @static + */ + public static function resolveRouteBinding($value) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::resolveRouteBinding($value); + } + + /** + * Get the default foreign key name for the model. + * + * @return string + * @static + */ + public static function getForeignKey() + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::getForeignKey(); + } + + /** + * Get the number of models to return per page. + * + * @return int + * @static + */ + public static function getPerPage() + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::getPerPage(); + } + + /** + * Set the number of models to return per page. + * + * @param int $perPage + * @return $this + * @static + */ + public static function setPerPage($perPage) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::setPerPage($perPage); + } + + /** + * Determine if the given attribute exists. + * + * @param mixed $offset + * @return bool + * @static + */ + public static function offsetExists($offset) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::offsetExists($offset); + } + + /** + * Get the value for a given offset. + * + * @param mixed $offset + * @return mixed + * @static + */ + public static function offsetGet($offset) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::offsetGet($offset); + } + + /** + * Set the value for a given offset. + * + * @param mixed $offset + * @param mixed $value + * @return void + * @static + */ + public static function offsetSet($offset, $value) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + \Webpatser\Countries\Countries::offsetSet($offset, $value); + } + + /** + * Unset the value for a given offset. + * + * @param mixed $offset + * @return void + * @static + */ + public static function offsetUnset($offset) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + \Webpatser\Countries\Countries::offsetUnset($offset); + } + + /** + * Convert the model's attributes to an array. + * + * @return array + * @static + */ + public static function attributesToArray() + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::attributesToArray(); + } + + /** + * Get the model's relationships in array form. + * + * @return array + * @static + */ + public static function relationsToArray() + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::relationsToArray(); + } + + /** + * Get an attribute from the model. + * + * @param string $key + * @return mixed + * @static + */ + public static function getAttribute($key) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::getAttribute($key); + } + + /** + * Get a plain attribute (not a relationship). + * + * @param string $key + * @return mixed + * @static + */ + public static function getAttributeValue($key) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::getAttributeValue($key); + } + + /** + * Get a relationship. + * + * @param string $key + * @return mixed + * @static + */ + public static function getRelationValue($key) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::getRelationValue($key); + } + + /** + * Determine if a get mutator exists for an attribute. + * + * @param string $key + * @return bool + * @static + */ + public static function hasGetMutator($key) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::hasGetMutator($key); + } + + /** + * Set a given attribute on the model. + * + * @param string $key + * @param mixed $value + * @return $this + * @static + */ + public static function setAttribute($key, $value) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::setAttribute($key, $value); + } + + /** + * Determine if a set mutator exists for an attribute. + * + * @param string $key + * @return bool + * @static + */ + public static function hasSetMutator($key) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::hasSetMutator($key); + } + + /** + * Set a given JSON attribute on the model. + * + * @param string $key + * @param mixed $value + * @return $this + * @static + */ + public static function fillJsonAttribute($key, $value) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::fillJsonAttribute($key, $value); + } + + /** + * Decode the given JSON back into an array or object. + * + * @param string $value + * @param bool $asObject + * @return mixed + * @static + */ + public static function fromJson($value, $asObject = false) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::fromJson($value, $asObject); + } + + /** + * Convert a DateTime to a storable string. + * + * @param \DateTime|int $value + * @return string + * @static + */ + public static function fromDateTime($value) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::fromDateTime($value); + } + + /** + * Get the attributes that should be converted to dates. + * + * @return array + * @static + */ + public static function getDates() + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::getDates(); + } + + /** + * Set the date format used by the model. + * + * @param string $format + * @return $this + * @static + */ + public static function setDateFormat($format) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::setDateFormat($format); + } + + /** + * Determine whether an attribute should be cast to a native type. + * + * @param string $key + * @param array|string|null $types + * @return bool + * @static + */ + public static function hasCast($key, $types = null) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::hasCast($key, $types); + } + + /** + * Get the casts array. + * + * @return array + * @static + */ + public static function getCasts() + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::getCasts(); + } + + /** + * Get all of the current attributes on the model. + * + * @return array + * @static + */ + public static function getAttributes() + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::getAttributes(); + } + + /** + * Set the array of model attributes. No checking is done. + * + * @param array $attributes + * @param bool $sync + * @return $this + * @static + */ + public static function setRawAttributes($attributes, $sync = false) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::setRawAttributes($attributes, $sync); + } + + /** + * Get the model's original attribute values. + * + * @param string|null $key + * @param mixed $default + * @return mixed|array + * @static + */ + public static function getOriginal($key = null, $default = null) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::getOriginal($key, $default); + } + + /** + * Get a subset of the model's attributes. + * + * @param array|mixed $attributes + * @return array + * @static + */ + public static function only($attributes) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::only($attributes); + } + + /** + * Sync the original attributes with the current. + * + * @return $this + * @static + */ + public static function syncOriginal() + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::syncOriginal(); + } + + /** + * Sync a single original attribute with its current value. + * + * @param string $attribute + * @return $this + * @static + */ + public static function syncOriginalAttribute($attribute) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::syncOriginalAttribute($attribute); + } + + /** + * Sync the changed attributes. + * + * @return $this + * @static + */ + public static function syncChanges() + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::syncChanges(); + } + + /** + * Determine if the model or given attribute(s) have been modified. + * + * @param array|string|null $attributes + * @return bool + * @static + */ + public static function isDirty($attributes = null) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::isDirty($attributes); + } + + /** + * Determine if the model or given attribute(s) have remained the same. + * + * @param array|string|null $attributes + * @return bool + * @static + */ + public static function isClean($attributes = null) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::isClean($attributes); + } + + /** + * Determine if the model or given attribute(s) have been modified. + * + * @param array|string|null $attributes + * @return bool + * @static + */ + public static function wasChanged($attributes = null) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::wasChanged($attributes); + } + + /** + * Get the attributes that have been changed since last sync. + * + * @return array + * @static + */ + public static function getDirty() + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::getDirty(); + } + + /** + * Get the attributes that were changed. + * + * @return array + * @static + */ + public static function getChanges() + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::getChanges(); + } + + /** + * Append attributes to query when building a query. + * + * @param array|string $attributes + * @return $this + * @static + */ + public static function append($attributes) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::append($attributes); + } + + /** + * Set the accessors to append to model arrays. + * + * @param array $appends + * @return $this + * @static + */ + public static function setAppends($appends) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::setAppends($appends); + } + + /** + * Get the mutated attributes for a given instance. + * + * @return array + * @static + */ + public static function getMutatedAttributes() + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::getMutatedAttributes(); + } + + /** + * Extract and cache all the mutated attributes of a class. + * + * @param string $class + * @return void + * @static + */ + public static function cacheMutatedAttributes($class) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + \Webpatser\Countries\Countries::cacheMutatedAttributes($class); + } + + /** + * Register an observer with the Model. + * + * @param object|string $class + * @return void + * @static + */ + public static function observe($class) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + \Webpatser\Countries\Countries::observe($class); + } + + /** + * Get the observable event names. + * + * @return array + * @static + */ + public static function getObservableEvents() + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::getObservableEvents(); + } + + /** + * Set the observable event names. + * + * @param array $observables + * @return $this + * @static + */ + public static function setObservableEvents($observables) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::setObservableEvents($observables); + } + + /** + * Add an observable event name. + * + * @param array|mixed $observables + * @return void + * @static + */ + public static function addObservableEvents($observables) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + \Webpatser\Countries\Countries::addObservableEvents($observables); + } + + /** + * Remove an observable event name. + * + * @param array|mixed $observables + * @return void + * @static + */ + public static function removeObservableEvents($observables) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + \Webpatser\Countries\Countries::removeObservableEvents($observables); + } + + /** + * Register a retrieved model event with the dispatcher. + * + * @param \Closure|string $callback + * @return void + * @static + */ + public static function retrieved($callback) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + \Webpatser\Countries\Countries::retrieved($callback); + } + + /** + * Register a saving model event with the dispatcher. + * + * @param \Closure|string $callback + * @return void + * @static + */ + public static function saving($callback) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + \Webpatser\Countries\Countries::saving($callback); + } + + /** + * Register a saved model event with the dispatcher. + * + * @param \Closure|string $callback + * @return void + * @static + */ + public static function saved($callback) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + \Webpatser\Countries\Countries::saved($callback); + } + + /** + * Register an updating model event with the dispatcher. + * + * @param \Closure|string $callback + * @return void + * @static + */ + public static function updating($callback) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + \Webpatser\Countries\Countries::updating($callback); + } + + /** + * Register an updated model event with the dispatcher. + * + * @param \Closure|string $callback + * @return void + * @static + */ + public static function updated($callback) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + \Webpatser\Countries\Countries::updated($callback); + } + + /** + * Register a creating model event with the dispatcher. + * + * @param \Closure|string $callback + * @return void + * @static + */ + public static function creating($callback) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + \Webpatser\Countries\Countries::creating($callback); + } + + /** + * Register a created model event with the dispatcher. + * + * @param \Closure|string $callback + * @return void + * @static + */ + public static function created($callback) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + \Webpatser\Countries\Countries::created($callback); + } + + /** + * Register a deleting model event with the dispatcher. + * + * @param \Closure|string $callback + * @return void + * @static + */ + public static function deleting($callback) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + \Webpatser\Countries\Countries::deleting($callback); + } + + /** + * Register a deleted model event with the dispatcher. + * + * @param \Closure|string $callback + * @return void + * @static + */ + public static function deleted($callback) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + \Webpatser\Countries\Countries::deleted($callback); + } + + /** + * Remove all of the event listeners for the model. + * + * @return void + * @static + */ + public static function flushEventListeners() + { + //Method inherited from \Illuminate\Database\Eloquent\Model + \Webpatser\Countries\Countries::flushEventListeners(); + } + + /** + * Get the event dispatcher instance. + * + * @return \Illuminate\Contracts\Events\Dispatcher + * @static + */ + public static function getEventDispatcher() + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::getEventDispatcher(); + } + + /** + * Set the event dispatcher instance. + * + * @param \Illuminate\Contracts\Events\Dispatcher $dispatcher + * @return void + * @static + */ + public static function setEventDispatcher($dispatcher) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + \Webpatser\Countries\Countries::setEventDispatcher($dispatcher); + } + + /** + * Unset the event dispatcher for models. + * + * @return void + * @static + */ + public static function unsetEventDispatcher() + { + //Method inherited from \Illuminate\Database\Eloquent\Model + \Webpatser\Countries\Countries::unsetEventDispatcher(); + } + + /** + * Register a new global scope on the model. + * + * @param \Illuminate\Database\Eloquent\Scope|\Closure|string $scope + * @param \Closure|null $implementation + * @return mixed + * @throws \InvalidArgumentException + * @static + */ + public static function addGlobalScope($scope, $implementation = null) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::addGlobalScope($scope, $implementation); + } + + /** + * Determine if a model has a global scope. + * + * @param \Illuminate\Database\Eloquent\Scope|string $scope + * @return bool + * @static + */ + public static function hasGlobalScope($scope) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::hasGlobalScope($scope); + } + + /** + * Get a global scope registered with the model. + * + * @param \Illuminate\Database\Eloquent\Scope|string $scope + * @return \Illuminate\Database\Eloquent\Scope|\Closure|null + * @static + */ + public static function getGlobalScope($scope) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::getGlobalScope($scope); + } + + /** + * Get the global scopes for this class instance. + * + * @return array + * @static + */ + public static function getGlobalScopes() + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::getGlobalScopes(); + } + + /** + * Define a one-to-one relationship. + * + * @param string $related + * @param string $foreignKey + * @param string $localKey + * @return \Illuminate\Database\Eloquent\Relations\HasOne + * @static + */ + public static function hasOne($related, $foreignKey = null, $localKey = null) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::hasOne($related, $foreignKey, $localKey); + } + + /** + * Define a polymorphic one-to-one relationship. + * + * @param string $related + * @param string $name + * @param string $type + * @param string $id + * @param string $localKey + * @return \Illuminate\Database\Eloquent\Relations\MorphOne + * @static + */ + public static function morphOne($related, $name, $type = null, $id = null, $localKey = null) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::morphOne($related, $name, $type, $id, $localKey); + } + + /** + * Define an inverse one-to-one or many relationship. + * + * @param string $related + * @param string $foreignKey + * @param string $ownerKey + * @param string $relation + * @return \Illuminate\Database\Eloquent\Relations\BelongsTo + * @static + */ + public static function belongsTo($related, $foreignKey = null, $ownerKey = null, $relation = null) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::belongsTo($related, $foreignKey, $ownerKey, $relation); + } + + /** + * Define a polymorphic, inverse one-to-one or many relationship. + * + * @param string $name + * @param string $type + * @param string $id + * @return \Illuminate\Database\Eloquent\Relations\MorphTo + * @static + */ + public static function morphTo($name = null, $type = null, $id = null) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::morphTo($name, $type, $id); + } + + /** + * Retrieve the actual class name for a given morph class. + * + * @param string $class + * @return string + * @static + */ + public static function getActualClassNameForMorph($class) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::getActualClassNameForMorph($class); + } + + /** + * Define a one-to-many relationship. + * + * @param string $related + * @param string $foreignKey + * @param string $localKey + * @return \Illuminate\Database\Eloquent\Relations\HasMany + * @static + */ + public static function hasMany($related, $foreignKey = null, $localKey = null) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::hasMany($related, $foreignKey, $localKey); + } + + /** + * Define a has-many-through relationship. + * + * @param string $related + * @param string $through + * @param string|null $firstKey + * @param string|null $secondKey + * @param string|null $localKey + * @param string|null $secondLocalKey + * @return \Illuminate\Database\Eloquent\Relations\HasManyThrough + * @static + */ + public static function hasManyThrough($related, $through, $firstKey = null, $secondKey = null, $localKey = null, $secondLocalKey = null) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::hasManyThrough($related, $through, $firstKey, $secondKey, $localKey, $secondLocalKey); + } + + /** + * Define a polymorphic one-to-many relationship. + * + * @param string $related + * @param string $name + * @param string $type + * @param string $id + * @param string $localKey + * @return \Illuminate\Database\Eloquent\Relations\MorphMany + * @static + */ + public static function morphMany($related, $name, $type = null, $id = null, $localKey = null) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::morphMany($related, $name, $type, $id, $localKey); + } + + /** + * Define a many-to-many relationship. + * + * @param string $related + * @param string $table + * @param string $foreignPivotKey + * @param string $relatedPivotKey + * @param string $parentKey + * @param string $relatedKey + * @param string $relation + * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany + * @static + */ + public static function belongsToMany($related, $table = null, $foreignPivotKey = null, $relatedPivotKey = null, $parentKey = null, $relatedKey = null, $relation = null) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::belongsToMany($related, $table, $foreignPivotKey, $relatedPivotKey, $parentKey, $relatedKey, $relation); + } + + /** + * Define a polymorphic many-to-many relationship. + * + * @param string $related + * @param string $name + * @param string $table + * @param string $foreignPivotKey + * @param string $relatedPivotKey + * @param string $parentKey + * @param string $relatedKey + * @param bool $inverse + * @return \Illuminate\Database\Eloquent\Relations\MorphToMany + * @static + */ + public static function morphToMany($related, $name, $table = null, $foreignPivotKey = null, $relatedPivotKey = null, $parentKey = null, $relatedKey = null, $inverse = false) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::morphToMany($related, $name, $table, $foreignPivotKey, $relatedPivotKey, $parentKey, $relatedKey, $inverse); + } + + /** + * Define a polymorphic, inverse many-to-many relationship. + * + * @param string $related + * @param string $name + * @param string $table + * @param string $foreignPivotKey + * @param string $relatedPivotKey + * @param string $parentKey + * @param string $relatedKey + * @return \Illuminate\Database\Eloquent\Relations\MorphToMany + * @static + */ + public static function morphedByMany($related, $name, $table = null, $foreignPivotKey = null, $relatedPivotKey = null, $parentKey = null, $relatedKey = null) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::morphedByMany($related, $name, $table, $foreignPivotKey, $relatedPivotKey, $parentKey, $relatedKey); + } + + /** + * Get the joining table name for a many-to-many relation. + * + * @param string $related + * @return string + * @static + */ + public static function joiningTable($related) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::joiningTable($related); + } + + /** + * Determine if the model touches a given relation. + * + * @param string $relation + * @return bool + * @static + */ + public static function touches($relation) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::touches($relation); + } + + /** + * Touch the owning relations of the model. + * + * @return void + * @static + */ + public static function touchOwners() + { + //Method inherited from \Illuminate\Database\Eloquent\Model + \Webpatser\Countries\Countries::touchOwners(); + } + + /** + * Get the class name for polymorphic relations. + * + * @return string + * @static + */ + public static function getMorphClass() + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::getMorphClass(); + } + + /** + * Get all the loaded relations for the instance. + * + * @return array + * @static + */ + public static function getRelations() + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::getRelations(); + } + + /** + * Get a specified relationship. + * + * @param string $relation + * @return mixed + * @static + */ + public static function getRelation($relation) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::getRelation($relation); + } + + /** + * Determine if the given relation is loaded. + * + * @param string $key + * @return bool + * @static + */ + public static function relationLoaded($key) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::relationLoaded($key); + } + + /** + * Set the specific relationship in the model. + * + * @param string $relation + * @param mixed $value + * @return $this + * @static + */ + public static function setRelation($relation, $value) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::setRelation($relation, $value); + } + + /** + * Set the entire relations array on the model. + * + * @param array $relations + * @return $this + * @static + */ + public static function setRelations($relations) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::setRelations($relations); + } + + /** + * Get the relationships that are touched on save. + * + * @return array + * @static + */ + public static function getTouchedRelations() + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::getTouchedRelations(); + } + + /** + * Set the relationships that are touched on save. + * + * @param array $touches + * @return $this + * @static + */ + public static function setTouchedRelations($touches) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::setTouchedRelations($touches); + } + + /** + * Update the model's update timestamp. + * + * @return bool + * @static + */ + public static function touch() + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::touch(); + } + + /** + * Set the value of the "created at" attribute. + * + * @param mixed $value + * @return $this + * @static + */ + public static function setCreatedAt($value) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::setCreatedAt($value); + } + + /** + * Set the value of the "updated at" attribute. + * + * @param mixed $value + * @return $this + * @static + */ + public static function setUpdatedAt($value) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::setUpdatedAt($value); + } + + /** + * Get a fresh timestamp for the model. + * + * @return \Illuminate\Support\Carbon + * @static + */ + public static function freshTimestamp() + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::freshTimestamp(); + } + + /** + * Get a fresh timestamp for the model. + * + * @return string + * @static + */ + public static function freshTimestampString() + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::freshTimestampString(); + } + + /** + * Determine if the model uses timestamps. + * + * @return bool + * @static + */ + public static function usesTimestamps() + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::usesTimestamps(); + } + + /** + * Get the name of the "created at" column. + * + * @return string + * @static + */ + public static function getCreatedAtColumn() + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::getCreatedAtColumn(); + } + + /** + * Get the name of the "updated at" column. + * + * @return string + * @static + */ + public static function getUpdatedAtColumn() + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::getUpdatedAtColumn(); + } + + /** + * Get the hidden attributes for the model. + * + * @return array + * @static + */ + public static function getHidden() + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::getHidden(); + } + + /** + * Set the hidden attributes for the model. + * + * @param array $hidden + * @return $this + * @static + */ + public static function setHidden($hidden) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::setHidden($hidden); + } + + /** + * Add hidden attributes for the model. + * + * @param array|string|null $attributes + * @return void + * @static + */ + public static function addHidden($attributes = null) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + \Webpatser\Countries\Countries::addHidden($attributes); + } + + /** + * Get the visible attributes for the model. + * + * @return array + * @static + */ + public static function getVisible() + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::getVisible(); + } + + /** + * Set the visible attributes for the model. + * + * @param array $visible + * @return $this + * @static + */ + public static function setVisible($visible) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::setVisible($visible); + } + + /** + * Add visible attributes for the model. + * + * @param array|string|null $attributes + * @return void + * @static + */ + public static function addVisible($attributes = null) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + \Webpatser\Countries\Countries::addVisible($attributes); + } + + /** + * Make the given, typically hidden, attributes visible. + * + * @param array|string $attributes + * @return $this + * @static + */ + public static function makeVisible($attributes) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::makeVisible($attributes); + } + + /** + * Make the given, typically visible, attributes hidden. + * + * @param array|string $attributes + * @return $this + * @static + */ + public static function makeHidden($attributes) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::makeHidden($attributes); + } + + /** + * Get the fillable attributes for the model. + * + * @return array + * @static + */ + public static function getFillable() + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::getFillable(); + } + + /** + * Set the fillable attributes for the model. + * + * @param array $fillable + * @return $this + * @static + */ + public static function fillable($fillable) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::fillable($fillable); + } + + /** + * Get the guarded attributes for the model. + * + * @return array + * @static + */ + public static function getGuarded() + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::getGuarded(); + } + + /** + * Set the guarded attributes for the model. + * + * @param array $guarded + * @return $this + * @static + */ + public static function guard($guarded) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::guard($guarded); + } + + /** + * Disable all mass assignable restrictions. + * + * @param bool $state + * @return void + * @static + */ + public static function unguard($state = true) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + \Webpatser\Countries\Countries::unguard($state); + } + + /** + * Enable the mass assignment restrictions. + * + * @return void + * @static + */ + public static function reguard() + { + //Method inherited from \Illuminate\Database\Eloquent\Model + \Webpatser\Countries\Countries::reguard(); + } + + /** + * Determine if current state is "unguarded". + * + * @return bool + * @static + */ + public static function isUnguarded() + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::isUnguarded(); + } + + /** + * Run the given callable while being unguarded. + * + * @param callable $callback + * @return mixed + * @static + */ + public static function unguarded($callback) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::unguarded($callback); + } + + /** + * Determine if the given attribute may be mass assigned. + * + * @param string $key + * @return bool + * @static + */ + public static function isFillable($key) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::isFillable($key); + } + + /** + * Determine if the given key is guarded. + * + * @param string $key + * @return bool + * @static + */ + public static function isGuarded($key) + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::isGuarded($key); + } + + /** + * Determine if the model is totally guarded. + * + * @return bool + * @static + */ + public static function totallyGuarded() + { + //Method inherited from \Illuminate\Database\Eloquent\Model + return \Webpatser\Countries\Countries::totallyGuarded(); + } + + } + +} + + +namespace { + + class App extends \Illuminate\Support\Facades\App {} + + class Artisan extends \Illuminate\Support\Facades\Artisan {} + + class Auth extends \Illuminate\Support\Facades\Auth {} + + class Blade extends \Illuminate\Support\Facades\Blade {} + + class Bus extends \Illuminate\Support\Facades\Bus {} + + class Cache extends \Illuminate\Support\Facades\Cache {} + + class Config extends \Illuminate\Support\Facades\Config {} + + class Cookie extends \Illuminate\Support\Facades\Cookie {} + + class Crypt extends \Illuminate\Support\Facades\Crypt {} + + class DB extends \Illuminate\Support\Facades\DB {} + + class Eloquent extends \Illuminate\Database\Eloquent\Model { + /** + * Create and return an un-saved model instance. + * + * @param array $attributes + * @return \Illuminate\Database\Eloquent\Model + * @static + */ + public static function make($attributes = array()) + { + return \Illuminate\Database\Eloquent\Builder::make($attributes); + } + + /** + * Register a new global scope. + * + * @param string $identifier + * @param \Illuminate\Database\Eloquent\Scope|\Closure $scope + * @return $this + * @static + */ + public static function withGlobalScope($identifier, $scope) + { + return \Illuminate\Database\Eloquent\Builder::withGlobalScope($identifier, $scope); + } + + /** + * Remove a registered global scope. + * + * @param \Illuminate\Database\Eloquent\Scope|string $scope + * @return $this + * @static + */ + public static function withoutGlobalScope($scope) + { + return \Illuminate\Database\Eloquent\Builder::withoutGlobalScope($scope); + } + + /** + * Remove all or passed registered global scopes. + * + * @param array|null $scopes + * @return $this + * @static + */ + public static function withoutGlobalScopes($scopes = null) + { + return \Illuminate\Database\Eloquent\Builder::withoutGlobalScopes($scopes); + } + + /** + * Get an array of global scopes that were removed from the query. + * + * @return array + * @static + */ + public static function removedScopes() + { + return \Illuminate\Database\Eloquent\Builder::removedScopes(); + } + + /** + * Add a where clause on the primary key to the query. + * + * @param mixed $id + * @return $this + * @static + */ + public static function whereKey($id) + { + return \Illuminate\Database\Eloquent\Builder::whereKey($id); + } + + /** + * Add a where clause on the primary key to the query. + * + * @param mixed $id + * @return $this + * @static + */ + public static function whereKeyNot($id) + { + return \Illuminate\Database\Eloquent\Builder::whereKeyNot($id); + } + + /** + * Add a basic where clause to the query. + * + * @param string|array|\Closure $column + * @param string $operator + * @param mixed $value + * @param string $boolean + * @return $this + * @static + */ + public static function where($column, $operator = null, $value = null, $boolean = 'and') + { + return \Illuminate\Database\Eloquent\Builder::where($column, $operator, $value, $boolean); + } + + /** + * Add an "or where" clause to the query. + * + * @param \Closure|array|string $column + * @param string $operator + * @param mixed $value + * @return \Illuminate\Database\Eloquent\Builder|static + * @static + */ + public static function orWhere($column, $operator = null, $value = null) + { + return \Illuminate\Database\Eloquent\Builder::orWhere($column, $operator, $value); + } + + /** + * Create a collection of models from plain arrays. + * + * @param array $items + * @return \Illuminate\Database\Eloquent\Collection + * @static + */ + public static function hydrate($items) + { + return \Illuminate\Database\Eloquent\Builder::hydrate($items); + } + + /** + * Create a collection of models from a raw query. + * + * @param string $query + * @param array $bindings + * @return \Illuminate\Database\Eloquent\Collection + * @static + */ + public static function fromQuery($query, $bindings = array()) + { + return \Illuminate\Database\Eloquent\Builder::fromQuery($query, $bindings); + } + + /** + * Find a model by its primary key. + * + * @param mixed $id + * @param array $columns + * @return \Illuminate\Database\Eloquent\Model|\Illuminate\Database\Eloquent\Collection|static[]|static|null + * @static + */ + public static function find($id, $columns = array()) + { + return \Illuminate\Database\Eloquent\Builder::find($id, $columns); + } + + /** + * Find multiple models by their primary keys. + * + * @param \Illuminate\Contracts\Support\Arrayable|array $ids + * @param array $columns + * @return \Illuminate\Database\Eloquent\Collection + * @static + */ + public static function findMany($ids, $columns = array()) + { + return \Illuminate\Database\Eloquent\Builder::findMany($ids, $columns); + } + + /** + * Find a model by its primary key or throw an exception. + * + * @param mixed $id * @param array $columns * @return \Illuminate\Database\Eloquent\Model|\Illuminate\Database\Eloquent\Collection * @throws \Illuminate\Database\Eloquent\ModelNotFoundException @@ -18537,6 +20811,8 @@ class Purifier extends \LukeTowers\Purifier\Facades\Purifier {} class PDF extends \Barryvdh\DomPDF\Facade {} class EntityManager extends \LaravelDoctrine\ORM\Facades\EntityManager {} + + class Countries extends \Webpatser\Countries\CountriesFacade {} } @@ -19092,7 +21368,7 @@ function data_set(&$target, $key, $value, $overwrite = true) /** * Dump the passed variables and end the script. * - * @param mixed + * @param mixed $args * @return void */ function dd(...$args) @@ -19584,37 +21860,41 @@ function tap($value, $callback = null) if (! function_exists('throw_if')) { /** - * Throw the given exception if the given boolean is true. + * Throw the given exception if the given condition is true. * - * @param bool $boolean + * @param mixed $condition * @param \Throwable|string $exception * @param array ...$parameters - * @return void + * @return mixed * @throws \Throwable */ - function throw_if($boolean, $exception, ...$parameters) + function throw_if($condition, $exception, ...$parameters) { - if ($boolean) { + if ($condition) { throw (is_string($exception) ? new $exception(...$parameters) : $exception); } + + return $condition; } } if (! function_exists('throw_unless')) { /** - * Throw the given exception unless the given boolean is true. + * Throw the given exception unless the given condition is true. * - * @param bool $boolean + * @param mixed $condition * @param \Throwable|string $exception * @param array ...$parameters - * @return void + * @return mixed * @throws \Throwable */ - function throw_unless($boolean, $exception, ...$parameters) + function throw_unless($condition, $exception, ...$parameters) { - if (! $boolean) { + if (! $condition) { throw (is_string($exception) ? new $exception(...$parameters) : $exception); } + + return $condition; } } diff --git a/app/Http/Controllers/Customer/CustomerController.php b/app/Http/Controllers/Customer/CustomerController.php new file mode 100644 index 000000000..02d888658 --- /dev/null +++ b/app/Http/Controllers/Customer/CustomerController.php @@ -0,0 +1,533 @@ + + * @author Yann Robin + * @category Interfaces + * @copyright Copyright (C) 2009-2017 Internet Neutral Exchange Association Company Limited By Guarantee + * @license http://www.gnu.org/licenses/gpl-2.0.html GNU GPL V2.0 + */ +class CustomerController extends Controller +{ + + /** + * Display all the Customers that are current in terms of `datejoin` and `dateleave` as a list + * + * @param bool $currentCust Display customers that are current in terms of `datejoin` and `dateleave` + * + * @return View + */ + public function listByCurrentCust( $currentCust = null ): View { + if( $currentCust && !in_array( $currentCust, [ 0, 1 ] )){ + abort( 404); + } + + return $this->list( $currentCust , null , null ); + } + + /** + * Display all the Customers as a list + * + * @param int $status Display customer by specific status + * + * @return View + */ + public function listByStatus( $status = null ): View { + if( $status && !array_key_exists( $status, CustomerEntity::$CUST_STATUS_TEXT)){ + abort( 404); + } + + return $this->list( null, $status, null ); + } + + /** + * Display all the Customers as a list + * + * @param int $type Display customer by specific types + * + * @return View + */ + public function listByType( $type = null ): View { + if( $type && !array_key_exists( $type, CustomerEntity::$CUST_TYPES_TEXT)){ + abort( 404); + } + return $this->list( null,null, $type ); + } + + /** + * Display all the Customers as a list + * + * @param bool $currentCust Display customers that are current in terms of `datejoin` and `dateleave` + * @param int $status Display customer by specific status + * @param int $type Display customer by specific types + * + * @return View + */ + public function list( $currentCust = null, $status = null, $type = null ): View { + + if( $status !== null ){ + Session::put( "cust-list-status", $status ); + } else { + if ( Session::exists( "cust-list-status" ) ) { + $status = Session::get( "cust-list-status" ); + } + } + + if( $type !== null ){ + Session::put( "cust-list-type", $type ); + } else { + if ( Session::exists( "cust-list-type" ) ) { + $type = Session::get( "cust-list-type" ); + } + } + + if( $currentCust !== null ){ + Session::put( "cust-list-current", $currentCust ); + } else { + if ( Session::exists( "cust-list-current" ) ) { + $currentCust = Session::get( "cust-list-current" ); + } + } + + return view( 'customer/list' )->with([ + 'custs' => D2EM::getRepository( CustomerEntity::class )->getAllForFeList( $currentCust, $status, $type ), + 'resellerMode' => $this->resellerMode(), + 'status' => $status ?? false, + 'type' => $type ?? false, + 'currentCust' => $currentCust ?? false, + ]); + } + + /** + * Display the form to add/edit a customer + * + * @param int $id The Customer ID + * + * @return View + */ + public function edit( int $id = null ): View { + + $cust = false; /** @var CustomerEntity $cust */ + if( $id and !( $cust = D2EM::getRepository( CustomerEntity::class )->find( $id ) ) ) { + abort(404); + } + + if( $cust ) { + // populate the form with VLAN interface data + Former::populate([ + 'name' => $cust->getName(), + 'type' => $cust->getType(), + 'shortname' => $cust->getShortname(), + 'corpwww' => $cust->getCorpwww(), + 'datejoin' => $cust->getDatejoin() ? $cust->getDatejoin()->format( "Y-m-d" ) : null, + 'dateleft' => $cust->getDateleave() ? $cust->getDateleave()->format( "Y-m-d" ) : null, + 'status' => $cust->getStatus(), + 'md5support' => $cust->getMD5Support(), + 'abbreviatedName' => $cust->getAbbreviatedName(), + 'autsys' => $cust->getAutsys(), + 'maxprefixes' => $cust->getMaxprefixes(), + 'peeringpolicy' => $cust->getPeeringpolicy(), + 'peeringemail' => $cust->getPeeringemail(), + 'peeringmacro' => $cust->getPeeringmacro(), + 'peeringmacrov6' => $cust->getPeeringmacrov6(), + 'status' => $cust->getStatus(), + 'irrdb' => $cust->getIRRDB()->getId(), + 'activepeeringmatrix' => $cust->getActivepeeringmatrix() ? 1 : 0, + 'nocphone' => $cust->getNocphone(), + 'noc24hphone' => $cust->getNoc24hphone(), + 'nocfax' => $cust->getNocfax(), + 'nocemail' => $cust->getNocemail(), + 'nochours' => $cust->getNoc24hphone(), + 'nocwww' => $cust->getNocwww(), + 'nocwww' => $cust->getNocwww(), + 'isReseller' => $cust->getIsReseller() ? 1 : 0, + 'isResold' => $this->resellerMode() && $cust->getReseller() ? 1 : 0, + 'reseller' => $this->resellerMode() && $cust->getReseller() ? $cust->getReseller()->getId() : false, + ]); + } + + return view( 'customer/edit' )->with([ + 'cust' => $cust, + 'irrdbs' => D2EM::getRepository( IRRDBConfigEntity::class )->getAsArray(), + 'resellerMode' => $this->resellerMode(), + 'resellers' => D2EM::getRepository( CustomerEntity::class )->getResellerNames(), + 'ixp' => D2EM::getRepository( IXPEntity::class )->find( 1 ), + ]); + } + + /** + * Add or edit a customer (set all the data needed) + * + * @param StoreCustomer $request instance of the current HTTP request + * + * @return RedirectResponse + * @throws + */ + public function store( StoreCustomer $request ): RedirectResponse { + $isEdit = $request->input( 'id' ) ? true : false; + /** @var CustomerEntity $cust */ + if( $isEdit && $cust = D2EM::getRepository( CustomerEntity::class )->find( $request->input( 'id' ) ) ) { + if( !$cust ) { + abort(404, 'Unknown customer'); + } + } else { + $cust = new CustomerEntity; + D2EM::persist( $cust ); + } + + + $cust->setName( $request->input( 'name' ) ); + $cust->setType( $request->input( 'type' ) ); + $cust->setShortname( $request->input( 'shortname' ) ); + $cust->setCorpwww( $request->input( 'corpwww' ) ); + $cust->setDatejoin( $request->input( 'datejoin' ) ? new \DateTime( $request->input( 'datejoin' ) ) : null ); + $cust->setDateleave( $request->input( 'dateleave' ) ? new \DateTime( $request->input( 'dateleave' ) ) : null ); + $cust->setStatus( $request->input( 'status' ) ); + $cust->setMD5Support( $request->input( 'md5support' ) ); + $cust->setAbbreviatedName( $request->input( 'abbreviatedName' ) ); + + + $cust->setAutsys( $request->input( 'autsys' ) ); + $cust->setMaxprefixes( $request->input( 'maxprefixes' ) ); + $cust->setPeeringemail( $request->input( 'peeringemail' ) ); + $cust->setPeeringmacro( $request->input( 'peeringmacro' ) ); + $cust->setPeeringmacrov6( $request->input( 'peeringmacrov6' ) ); + $cust->setPeeringpolicy( $request->input( 'peeringpolicy' ) ); + $cust->setActivepeeringmatrix( $request->input( 'activepeeringmatrix' ) ); + + + $cust->setNocphone( $request->input( 'nocphone' ) ); + $cust->setNoc24hphone( $request->input( 'noc24hphone' ) ); + $cust->setNocfax( $request->input( 'nocfax' ) ); + $cust->setNocemail( $request->input( 'nocemail' ) ); + $cust->setNochours( $request->input( 'nochours' ) ); + $cust->setNocwww( $request->input( 'nocwww' ) ); + + $cust->setIsReseller( $request->input( 'isReseller' ) ?? false ); + + if( !$this->setReseller( $request, $cust ) ) { + return Redirect::back( )->withErrors(); + } + + + if( $isEdit ) { + $cust->setLastupdated( new DateTime() ); + $cust->setLastupdatedby( Auth::getUser()->getId() ); + + $bdetail = $cust->getBillingDetails(); + $rdetail = $cust->getRegistrationDetails(); + } else { + $cust->setCreated( new DateTime() ); + $cust->setCreator( Auth::getUser()->getId() ); + + $bdetail = new CompanyBillingDetailEntity; + D2EM::persist( $bdetail ); + $bdetail->setPurchaseOrderRequired( 0 ); + + $cust->setBillingDetails( $bdetail ); + + $rdetail = new CompanyRegisteredDetailEntity; + D2EM::persist( $rdetail ); + + $cust->setRegistrationDetails( $rdetail ); + + $cust->setIsReseller( 0 ); + } + + if( $request->input( 'irrdb' ) ) { + $cust->setIRRDB( D2EM::getRepository( IRRDBConfigEntity::class)->find( $request->input( 'irrdb' ) ) ) ; + } else { + $cust->setIRRDB( null ); + } + + if( !$isEdit ) { + $cust->addIXP( D2EM::getRepository( IXPEntity::class )->find( $request->input( 'ixp' ) ) ); + } + + + D2EM::flush(); + + AlertContainer::push( 'Customer successfully ' . ( $isEdit ? ' edited.' : ' added.' ), Alert::SUCCESS ); + + if( $isEdit ){ + return Redirect::to( 'customer/overview/id/' . $cust->getId() ); + } else { + return Redirect::to( 'customer/billing-registration/' . $cust->getId() ); + } + + } + + /** + * Sets reseller to customer from form + * + * @param StoreCustomer $request instance of the current HTTP request + * @param CustomerEntity $cust + * + * @return bool If false, the form is not processed + */ + private function setReseller( $request, $cust ){ + $isOK = true; + + if( !$this->resellerMode() ) + $isOK = true; + + if( $request->input( 'isResold' ) ) { + if( !( $reseller = D2EM::getRepository( CustomerEntity::class )->find( $request->input( "reseller" ) ) ) ) { + AlertContainer::push( 'Please select a reseller', Alert::DANGER ); + $isOK = false; + } + + if( $cust->getReseller() && $cust->getReseller()->getId() != $request->input( 'reseller' ) ) { + foreach( $cust->getVirtualInterfaces() as $viInt ) { + foreach( $viInt->getPhysicalInterfaces() as $pi ) { + if( $pi->getFanoutPhysicalInterface() && $pi->getFanoutPhysicalInterface()->getVirtualInterface()->getCustomer()->getId() == $cust->getReseller()->getId() ) { + AlertContainer::push( 'You can not change the reseller because there are still fanout ports from the current reseller linked to this customer\'s physical interfaces. You need to reassign these first.', Alert::DANGER ); + $isOK = false; + } + } + } + } + + $cust->setReseller( $reseller ); + } + else if( $cust->getReseller() ) { + foreach( $cust->getVirtualInterfaces() as $vi ) { + foreach( $vi->getPhysicalInterfaces() as $pi ) { + if( $pi->getFanoutPhysicalInterface() && $pi->getFanoutPhysicalInterface()->getVirtualInterface()->getCustomer()->getId() == $cust->getReseller()->getId() ) { + AlertContainer::push( 'You can not change this resold customer state because there are still physical interface(s) of this customer linked to fanout ports or the current reseller. You need to reassign these first', Alert::DANGER ); + $isOK = false; + } + } + } + $cust->setReseller( null ); + } + + if( !$request->input( 'isReseller' ) && $cust->getIsReseller() && count( $cust->getResoldCustomers() ) ) { + AlertContainer::push( 'You can not change the reseller state because this customer still has resold customers. You need to reassign these first.', Alert::DANGER ); + $isOK = false; + } + + return $isOK; + } + + /** + * Display the billing registration form a customer + * + * @param int $id The Customer ID + * + * @return View + */ + public function billingRegistration( int $id = null ): View { + + $cust = false; /** @var CustomerEntity $cust */ + if( $id and !( $cust = D2EM::getRepository( CustomerEntity::class )->find( $id ) ) ) { + abort(404); + } + + $billingDetails = $cust->getBillingDetails(); + $registrationDetails = $cust->getRegistrationDetails(); + $billingNotify = config( 'ixp_tools.billing_updates_notify' ); + if( $cust ) { + $dataBillingDetail = []; + + if( ( !isset( $billingNotify ) || !$billingNotify ) || !$this->resellerMode() || !$cust->isResoldCustomer() ){ + $dataBillingDetail = [ + 'billingContactName' => $billingDetails->getBillingContactName(), + 'billingFrequency' => $billingDetails->getBillingFrequency(), + 'billingAddress1' => $billingDetails->getBillingAddress1(), + 'billingAddress2' => $billingDetails->getBillingAddress2(), + 'billingAddress3' => $billingDetails->getBillingAddress3(), + 'billingTownCity' => $billingDetails->getBillingTownCity(), + 'billingPostcode' => $billingDetails->getBillingPostcode(), + 'billingCountry' => $billingDetails->getBillingCountry(), + 'billingEmail' => $billingDetails->getBillingEmail(), + 'billingTelephone' => $billingDetails->getBillingTelephone(), + 'purchaseOrderRequired' => $billingDetails->getPurchaseOrderRequired() ? 1 : 0, + 'invoiceMethod' => $billingDetails->getInvoiceMethod(), + 'invoiceEmail' => $billingDetails->getInvoiceEmail(), + 'vatRate' => $billingDetails->getVatRate(), + 'vatNumber' => $billingDetails->getVatNumber(), + ]; + } + + $dataRegistrationDetail = [ + 'registeredName' => $registrationDetails->getRegisteredName(), + 'companyNumber' => $registrationDetails->getCompanyNumber(), + 'jurisdiction' => $registrationDetails->getJurisdiction(), + 'address1' => $registrationDetails->getAddress1(), + 'address2' => $registrationDetails->getAddress2(), + 'address3' => $registrationDetails->getAddress3(), + 'townCity' => $registrationDetails->getTownCity(), + 'postcode' => $registrationDetails->getPostcode(), + 'country' => $registrationDetails->getCountry(), + ]; + + Former::populate( array_merge( $dataRegistrationDetail, $dataBillingDetail ) ); + } + + return view( 'customer/billing-registration' )->with([ + 'cust' => $cust, + 'juridictions' => D2EM::getRepository( CompanyRegisteredDetailEntity::class )->getJuridictionsAsArray(), + 'billingNotify' => $billingNotify, + 'resellerMode' => $this->resellerMode(), + ]); + } + + + /** + * Add or edit a customer billing information + * + * email notification + * + * @param StoreCustomerBillingInformation $request instance of the current HTTP request + * + * @return RedirectResponse + * @throws + */ + public function storeBillingInformation( StoreCustomerBillingInformation $request ): RedirectResponse { + $isEdit = $request->input( 'id' ) ? true : false; + /** @var CustomerEntity $cust */ + if( $cust = D2EM::getRepository( CustomerEntity::class )->find( $request->input( 'id' ) ) ) { + if( !$cust ) { + abort(404, 'Unknown customer'); + } + } + + $oldBillingDetail = $billingDetails = $cust->getBillingDetails(); + $registrationDetails = $cust->getRegistrationDetails(); + + $registrationDetails->setRegisteredName( $request->input( 'registeredName' ) ); + $registrationDetails->setCompanyNumber( $request->input( 'companyNumber' ) ); + $registrationDetails->setJurisdiction( $request->input( 'jurisdiction' ) ); + $registrationDetails->setAddress1( $request->input( 'address1' ) ); + $registrationDetails->setAddress2( $request->input( 'address2' ) ); + $registrationDetails->setAddress3( $request->input( 'address3' ) ); + $registrationDetails->setTownCity( $request->input( 'townCity' ) ); + $registrationDetails->setPostcode( $request->input( 'postcode' ) ); + $registrationDetails->setCountry( $request->input( 'nacountryme' ) ); + + $billingDetails->setBillingContactName( $request->input( 'billingContactName' ) ); + $billingDetails->setBillingFrequency( $request->input( 'billingFrequency' ) ); + $billingDetails->setBillingAddress1( $request->input( 'billingAddress1' ) ); + $billingDetails->setBillingAddress2( $request->input( 'billingAddress2' ) ); + $billingDetails->setBillingAddress3( $request->input( 'billingAddress3' ) ); + $billingDetails->setBillingTownCity( $request->input( 'billingTownCity' ) ); + $billingDetails->setBillingPostcode( $request->input( 'billingPostcode' ) ); + $billingDetails->setBillingCountry( $request->input( 'billingCountry' ) ); + $billingDetails->setBillingEmail( $request->input( 'billingEmail' ) ); + $billingDetails->setBillingTelephone( $request->input( 'billingTelephone' ) ); + $billingDetails->setPurchaseOrderRequired( $request->input( 'purchaseOrderRequired') ?? 0 ); + $billingDetails->setInvoiceMethod( $request->input( 'invoiceMethod' ) ); + $billingDetails->setInvoiceEmail( $request->input( 'invoiceEmail' ) ); + $billingDetails->setVatRate( $request->input( 'vatRate' ) ); + $billingDetails->setVatNumber( $request->input( 'vatNumber' ) ); + + + D2EM::flush( $billingDetails ); + D2EM::flush( $registrationDetails ); + + if( config( 'ixp_tools.billing_updates_notify', false ) && !$cust->getReseller() ) { + $mailable = new EmailCustomer( $cust ); + try { + $mailable->subject( config('identity.sitename') . " - ('Billing Details Change Notification')" ); + $mailable->from( config('identity.email'), config('identity.name') ); + $mailable->to( config('ixp_tools.billing_updates_notify'), config('identity.sitename') . ' - Accounts' ); + $mailable->view( "customer/emails/billing-details" )->with( ['cust' => $cust, 'oldDetails' => $oldBillingDetail] ); + Mail::send( $mailable ); + + if( Auth::getUser()->getPrivs() == UserEntity::AUTH_SUPERUSER ) { + AlertContainer::push( "Notification of updated billing details has been sent to " . config('ixp_tools.billing_updates_notify'), Alert::SUCCESS ); + } + } catch( Exception $e ) { + + AlertContainer::push( "Could not sent notification of updated billing details to " . config('ixp_tools.billing_updates_notify') + . ". Check your email settings.", Alert::DANGER ); + } + + } + + return Redirect::to( 'customer/overview/id/' . $cust->getId() . '/tab/billing' ); + + + } + + public function details( ): View { + $ixp = D2EM::getRepository( IXPEntity::class )->getDefault(); + $custs = D2EM::getRepository( CustomerEntity::class )->getCurrentActive( false, false, false, false); + + return view( 'customer/details' )->with([ + 'ixp' => $ixp, + 'custs' => $custs, + ]); + } + + public function detail( int $id = null ): View { + if( !( $cust = D2EM::getRepository( CustomerEntity::class )->find( $id ) ) ){ + abort( 404); + } + + + return view( 'customer/detail' )->with([ + 'as112UiActive' => $this->as112UiActive(), + 'cust' => $cust, + 'netInfo' => D2EM::getRepository( NetworkInfoEntity::class )->asVlanProtoArray() + ]); + } +} \ No newline at end of file diff --git a/app/Http/Requests/StoreCustomer.php b/app/Http/Requests/StoreCustomer.php new file mode 100644 index 000000000..3ce3599fb --- /dev/null +++ b/app/Http/Requests/StoreCustomer.php @@ -0,0 +1,110 @@ +isSuperUser(); + } + + /** + * Get the validation rules that apply to the request. + * + * @return array + */ + public function rules() + { + + $arrayDetails = [ + 'name' => 'required|string|max:255', + 'type' => 'required|integer|in:' . implode( ',', array_keys( CustomerEntity::$CUST_TYPES_TEXT ) ), + 'shortname' => 'required|string|max:255|unique:Entities\Customer,shortname'. ( $this->input('id') ? ','. $this->input('id') : '' ), + 'corpwww' => 'nullable|url', + 'datejoin' => 'nullable|date', + 'dateleft' => 'nullable|date', + 'status' => 'required|integer|in:' . implode( ',', array_keys( CustomerEntity::$CUST_STATUS_TEXT ) ), + 'md5support' => 'nullable|string|in:' . implode( ',', array_keys( CustomerEntity::$MD5_SUPPORT ) ), + 'abbreviatedName' => 'required|string|max:255', + + ]; + + $arrayOtherInfo = [ + 'autsys' => 'nullable|int|min:0', + 'maxprefixes' => 'nullable|int|min:0', + 'peeringemail' => 'nullable|email', + 'peeringmacro' => 'nullable|string|max:255', + 'peeringmacrov6' => 'nullable|string|max:255', + 'peeringpolicy' => 'nullable|string|in:' . implode( ',', array_keys( CustomerEntity::$PEERING_POLICIES ) ), + 'irrdb' => 'nullable|integer'. $this->input( 'irrdb' ) ? "|exists:Entities\IRRDBConfig,id" : '', + 'nocphone' => 'nullable|string|max:255', + 'noc24hphone' => 'nullable|string|max:255', + 'nocfax' => 'nullable|string|max:255', + 'nocemail' => 'nullable|email|max:255', + 'nochours' => 'nullable|string|in:' . implode( ',', array_keys( CustomerEntity::$NOC_HOURS ) ), + 'nocwww' => 'nullable|url', + ]; + + return $this->input( 'type' ) == CustomerEntity::TYPE_ASSOCIATE ? $arrayDetails : array_merge( $arrayDetails, $arrayOtherInfo ) ; + } + + /** + * Configure the validator instance. + * + * @param \Illuminate\Validation\Validator $validator + * @return void + */ + public function withValidator( $validator ) + { + $validator->after(function ($validator) { + + if( ( $this->input( 'type' ) == CustomerEntity::TYPE_FULL || $this->input( 'type' ) == CustomerEntity::TYPE_PROBONO ) && !$this->input( 'irrdb' ) ) { + $validator->errors()->add( 'irrdb', 'Please select an IRRDB Config.' ); + return; + } else if( $this->input( 'irrdb' ) ) { + if( !( $irrdb = D2EM::getRepository( IRRDBConfigEntity::class )->find( $this->input( 'irrdb' ) ) ) ) { + $validator->errors()->add( 'irrdb', 'Invalid IRRDB source' ); + return; + } + } + }); + } +} \ No newline at end of file diff --git a/app/Http/Requests/StoreCustomerBillingInformation.php b/app/Http/Requests/StoreCustomerBillingInformation.php new file mode 100644 index 000000000..e33874d81 --- /dev/null +++ b/app/Http/Requests/StoreCustomerBillingInformation.php @@ -0,0 +1,84 @@ +isSuperUser(); + } + + /** + * Get the validation rules that apply to the request. + * + * @return array + */ + public function rules() + { + + return [ + 'registeredName' => 'nullable|string|max:255', + 'companyNumber' => 'nullable|string|max:255', + 'jurisdiction' => 'nullable|string|max:255|exists:Entities\CompanyRegisteredDetail,jurisdiction', + 'address1' => 'nullable|string|max:255', + 'address2' => 'nullable|string|max:255', + 'address3' => 'nullable|string|max:255', + 'townCity' => 'nullable|string|max:255', + 'postcode' => 'nullable|string|max:255', + 'country' => 'nullable|string|max:255', + + 'billingContactName' => 'nullable|string|max:255', + 'billingFrequency' => 'nullable|string|max:255|in:' . implode( ',', array_keys( CompanyBillingDetailEntity::$BILLING_FREQUENCIES ) ), + 'billingAddress1' => 'nullable|string|max:255', + 'billingAddress2' => 'nullable|string|max:255', + 'billingAddress3' => 'nullable|string|max:255', + 'billingTownCity' => 'nullable|string|max:255', + 'billingPostcode' => 'nullable|string|max:255', + 'billingCountry' => 'nullable|string|max:255', + 'billingEmail' => 'nullable|email|max:255', + 'billingTelephone' => 'nullable|string|max:255', + 'invoiceMethod' => 'nullable|string|max:255|in:' . implode( ',', array_keys( CompanyBillingDetailEntity::$INVOICE_METHODS ) ), + 'invoiceEmail' => 'nullable|string|max:255', + 'vatRate' => 'nullable|string|max:255', + 'vatNumber' => 'nullable|string|max:255', + ]; + + } +} \ No newline at end of file diff --git a/app/Mail/Customer/Email.php b/app/Mail/Customer/Email.php new file mode 100644 index 000000000..1c9554ca6 --- /dev/null +++ b/app/Mail/Customer/Email.php @@ -0,0 +1,82 @@ + + * @author Yanm Robin + * @category Customer + * @package IXP\Mail\Customer + * @copyright Copyright (C) 2009-2017 Internet Neutral Exchange Association Company Limited By Guarantee + * @license http://www.gnu.org/licenses/gpl-2.0.html GNU GPL V2.0 + */ +class Email extends Mailable +{ + use Queueable, SerializesModels; + + /** + * @var CustomerEntity + */ + public $cust; + + /** + * @var string + */ + public $subject; + + /** + * @var string The template to use to create the email + */ + protected $tmpl; + + /** + * Create a new message instance. + * + * @param CustomerEntity $cust + */ + public function __construct( CustomerEntity $cust ) { + $this->cust = $cust; + } + + /** + * Build the message. + * + * @return $this + */ + public function build() + { + return $this; + } +} diff --git a/composer.json b/composer.json index 5fe2950da..71bdc29d3 100644 --- a/composer.json +++ b/composer.json @@ -49,7 +49,8 @@ "laravel-doctrine/extensions": "1.0.*", "graham-campbell/flysystem": "^4.0", "s1lentium/iptools": "^1.1", - "parsedown/laravel": "^1.0" + "parsedown/laravel": "^1.0", + "webpatser/laravel-countries": "dev-master" }, "require-dev": { diff --git a/composer.lock b/composer.lock index 5951cfa74..8e4f0ecd3 100644 --- a/composer.lock +++ b/composer.lock @@ -4,20 +4,20 @@ "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": "09c3c3c02e694561f2f3becdc49ebe5e", + "content-hash": "81f8df7d8806e59700b5a1676d25d83c", "packages": [ { "name": "anahkiasen/former", - "version": "4.1.3", + "version": "4.1.5", "source": { "type": "git", "url": "https://github.com/formers/former.git", - "reference": "08c1cffdbec9db8deba0c8539f140ee2bae59de5" + "reference": "657151b3cbe5eb13d59f93d0ca413c7778d15a6f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/formers/former/zipball/08c1cffdbec9db8deba0c8539f140ee2bae59de5", - "reference": "08c1cffdbec9db8deba0c8539f140ee2bae59de5", + "url": "https://api.github.com/repos/formers/former/zipball/657151b3cbe5eb13d59f93d0ca413c7778d15a6f", + "reference": "657151b3cbe5eb13d59f93d0ca413c7778d15a6f", "shasum": "" }, "require": { @@ -37,6 +37,9 @@ }, "type": "library", "extra": { + "branch-alias": { + "dev-master": "4.1-dev" + }, "laravel": { "providers": [ "Former\\FormerServiceProvider" @@ -73,7 +76,7 @@ "foundation", "laravel" ], - "time": "2017-11-22T20:51:04+00:00" + "time": "2017-11-27T14:58:10+00:00" }, { "name": "anahkiasen/html-object", @@ -285,16 +288,16 @@ }, { "name": "beberlei/DoctrineExtensions", - "version": "v1.0.19", + "version": "v1.0.20", "source": { "type": "git", "url": "https://github.com/beberlei/DoctrineExtensions.git", - "reference": "edc0ef1bf7b9f84f91fbd1f27560395ce70a3092" + "reference": "f592c495f1c43851f5e3418cf9c2514e61d67e64" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/beberlei/DoctrineExtensions/zipball/edc0ef1bf7b9f84f91fbd1f27560395ce70a3092", - "reference": "edc0ef1bf7b9f84f91fbd1f27560395ce70a3092", + "url": "https://api.github.com/repos/beberlei/DoctrineExtensions/zipball/f592c495f1c43851f5e3418cf9c2514e61d67e64", + "reference": "f592c495f1c43851f5e3418cf9c2514e61d67e64", "shasum": "" }, "require": { @@ -343,7 +346,7 @@ "doctrine", "orm" ], - "time": "2017-10-02T17:29:15+00:00" + "time": "2017-12-01T10:02:05+00:00" }, { "name": "dnoegel/php-xdg-base-dir", @@ -904,16 +907,16 @@ }, { "name": "doctrine/orm", - "version": "v2.5.12", + "version": "v2.5.13", "source": { "type": "git", "url": "https://github.com/doctrine/doctrine2.git", - "reference": "984535cadc609e9eef8c89414aa3568ee97aa79f" + "reference": "93103f44a3e36e7b48165b6e6b736833f33b18ef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/doctrine2/zipball/984535cadc609e9eef8c89414aa3568ee97aa79f", - "reference": "984535cadc609e9eef8c89414aa3568ee97aa79f", + "url": "https://api.github.com/repos/doctrine/doctrine2/zipball/93103f44a3e36e7b48165b6e6b736833f33b18ef", + "reference": "93103f44a3e36e7b48165b6e6b736833f33b18ef", "shasum": "" }, "require": { @@ -976,20 +979,20 @@ "database", "orm" ], - "time": "2017-10-23T18:21:04+00:00" + "time": "2017-11-27T23:25:55+00:00" }, { "name": "dompdf/dompdf", - "version": "v0.8.1", + "version": "v0.8.2", "source": { "type": "git", "url": "https://github.com/dompdf/dompdf.git", - "reference": "9ea852c4bdc74fac5def165e6cd52353f7ca3b3f" + "reference": "5113accd9ae5d466077cce5208dcf3fb871bf8f6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dompdf/dompdf/zipball/9ea852c4bdc74fac5def165e6cd52353f7ca3b3f", - "reference": "9ea852c4bdc74fac5def165e6cd52353f7ca3b3f", + "url": "https://api.github.com/repos/dompdf/dompdf/zipball/5113accd9ae5d466077cce5208dcf3fb871bf8f6", + "reference": "5113accd9ae5d466077cce5208dcf3fb871bf8f6", "shasum": "" }, "require": { @@ -998,7 +1001,7 @@ "ext-mbstring": "*", "phenx/php-font-lib": "0.5.*", "phenx/php-svg-lib": "0.3.*", - "php": ">=5.3.0" + "php": ">=5.4.0" }, "require-dev": { "phpunit/phpunit": "4.8.*", @@ -1038,7 +1041,7 @@ ], "description": "DOMPDF is a CSS 2.1 compliant HTML to PDF converter", "homepage": "https://github.com/dompdf/dompdf", - "time": "2017-09-14T01:36:24+00:00" + "time": "2017-11-26T14:49:08+00:00" }, { "name": "egulias/email-validator", @@ -2078,16 +2081,16 @@ }, { "name": "laravel/framework", - "version": "v5.5.21", + "version": "v5.5.25", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "6321069a75723d88103526903d3192f0b231544a" + "reference": "0a5b6112f325c56ae5a6679c08a0a10723153fe0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/6321069a75723d88103526903d3192f0b231544a", - "reference": "6321069a75723d88103526903d3192f0b231544a", + "url": "https://api.github.com/repos/laravel/framework/zipball/0a5b6112f325c56ae5a6679c08a0a10723153fe0", + "reference": "0a5b6112f325c56ae5a6679c08a0a10723153fe0", "shasum": "" }, "require": { @@ -2167,6 +2170,7 @@ "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-cached-adapter": "Required to use Flysystem caching (~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).", @@ -2207,7 +2211,7 @@ "framework", "laravel" ], - "time": "2017-11-14T15:08:13+00:00" + "time": "2017-12-11T14:59:28+00:00" }, { "name": "laravel/tinker", @@ -2769,12 +2773,12 @@ "source": { "type": "git", "url": "https://github.com/opensolutions/OSS_SNMP.git", - "reference": "52c04ae80f046d6e935b73d0a5917d785d816d26" + "reference": "64df767c1469a4b988b78f66ce1902bc64efead7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/opensolutions/OSS_SNMP/zipball/52c04ae80f046d6e935b73d0a5917d785d816d26", - "reference": "52c04ae80f046d6e935b73d0a5917d785d816d26", + "url": "https://api.github.com/repos/opensolutions/OSS_SNMP/zipball/64df767c1469a4b988b78f66ce1902bc64efead7", + "reference": "64df767c1469a4b988b78f66ce1902bc64efead7", "shasum": "" }, "require": { @@ -2802,7 +2806,7 @@ "oss_snmp", "snmp" ], - "time": "2017-10-31T14:22:45+00:00" + "time": "2017-11-28T13:23:43+00:00" }, { "name": "paragonie/random_compat", @@ -3279,16 +3283,16 @@ }, { "name": "psy/psysh", - "version": "v0.8.15", + "version": "v0.8.16", "source": { "type": "git", "url": "https://github.com/bobthecow/psysh.git", - "reference": "b1d289c2cb03a2f8249912c53e96ced38f879926" + "reference": "d4c8eab0683dc056f2ca54ca67f5388527c068b1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/b1d289c2cb03a2f8249912c53e96ced38f879926", - "reference": "b1d289c2cb03a2f8249912c53e96ced38f879926", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/d4c8eab0683dc056f2ca54ca67f5388527c068b1", + "reference": "d4c8eab0683dc056f2ca54ca67f5388527c068b1", "shasum": "" }, "require": { @@ -3296,14 +3300,13 @@ "jakub-onderka/php-console-highlighter": "0.3.*", "nikic/php-parser": "~1.3|~2.0|~3.0", "php": ">=5.3.9", - "symfony/console": "~2.3.10|^2.4.2|~3.0", - "symfony/var-dumper": "~2.7|~3.0" + "symfony/console": "~2.3.10|^2.4.2|~3.0|~4.0", + "symfony/var-dumper": "~2.7|~3.0|~4.0" }, "require-dev": { - "friendsofphp/php-cs-fixer": "~1.11", "hoa/console": "~3.16|~1.14", "phpunit/phpunit": "^4.8.35|^5.4.3", - "symfony/finder": "~2.1|~3.0" + "symfony/finder": "~2.1|~3.0|~4.0" }, "suggest": { "ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)", @@ -3348,7 +3351,7 @@ "interactive", "shell" ], - "time": "2017-11-16T14:29:51+00:00" + "time": "2017-12-10T21:49:27+00:00" }, { "name": "ramsey/uuid", @@ -3636,44 +3639,45 @@ }, { "name": "symfony/console", - "version": "v3.3.13", + "version": "v3.4.1", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "63cd7960a0a522c3537f6326706d7f3b8de65805" + "reference": "2cdef78de8f54f68ff16a857e710e7302b47d4c7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/63cd7960a0a522c3537f6326706d7f3b8de65805", - "reference": "63cd7960a0a522c3537f6326706d7f3b8de65805", + "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", + "symfony/debug": "~2.8|~3.0|~4.0", "symfony/polyfill-mbstring": "~1.0" }, "conflict": { - "symfony/dependency-injection": "<3.3" + "symfony/dependency-injection": "<3.4", + "symfony/process": "<3.3" }, "require-dev": { "psr/log": "~1.0", - "symfony/config": "~3.3", - "symfony/dependency-injection": "~3.3", - "symfony/event-dispatcher": "~2.8|~3.0", - "symfony/filesystem": "~2.8|~3.0", - "symfony/process": "~2.8|~3.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/filesystem": "", + "symfony/lock": "", "symfony/process": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.3-dev" + "dev-master": "3.4-dev" } }, "autoload": { @@ -3700,20 +3704,20 @@ ], "description": "Symfony Console Component", "homepage": "https://symfony.com", - "time": "2017-11-16T15:24:32+00:00" + "time": "2017-12-02T18:20:11+00:00" }, { "name": "symfony/css-selector", - "version": "v3.3.13", + "version": "v3.4.1", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "66e6e046032ebdf1f562c26928549f613d428bd1" + "reference": "7134b93e90ea7e7881fcb2da006d21b4c5f31908" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/66e6e046032ebdf1f562c26928549f613d428bd1", - "reference": "66e6e046032ebdf1f562c26928549f613d428bd1", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/7134b93e90ea7e7881fcb2da006d21b4c5f31908", + "reference": "7134b93e90ea7e7881fcb2da006d21b4c5f31908", "shasum": "" }, "require": { @@ -3722,7 +3726,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.3-dev" + "dev-master": "3.4-dev" } }, "autoload": { @@ -3753,20 +3757,20 @@ ], "description": "Symfony CssSelector Component", "homepage": "https://symfony.com", - "time": "2017-11-05T15:47:03+00:00" + "time": "2017-11-05T16:10:10+00:00" }, { "name": "symfony/debug", - "version": "v3.3.13", + "version": "v3.4.1", "source": { "type": "git", "url": "https://github.com/symfony/debug.git", - "reference": "74557880e2846b5c84029faa96b834da37e29810" + "reference": "fb2001e5d85f95d8b6ab94ae3be5d2672df128fd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/74557880e2846b5c84029faa96b834da37e29810", - "reference": "74557880e2846b5c84029faa96b834da37e29810", + "url": "https://api.github.com/repos/symfony/debug/zipball/fb2001e5d85f95d8b6ab94ae3be5d2672df128fd", + "reference": "fb2001e5d85f95d8b6ab94ae3be5d2672df128fd", "shasum": "" }, "require": { @@ -3777,12 +3781,12 @@ "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" + "symfony/http-kernel": "~2.8|~3.0|~4.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.3-dev" + "dev-master": "3.4-dev" } }, "autoload": { @@ -3809,20 +3813,20 @@ ], "description": "Symfony Debug Component", "homepage": "https://symfony.com", - "time": "2017-11-10T16:38:39+00:00" + "time": "2017-11-21T09:01:46+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v3.3.13", + "version": "v3.4.1", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "271d8c27c3ec5ecee6e2ac06016232e249d638d9" + "reference": "ca20b8f9ef149f40ff656d52965f240d85f7a8e4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/271d8c27c3ec5ecee6e2ac06016232e249d638d9", - "reference": "271d8c27c3ec5ecee6e2ac06016232e249d638d9", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/ca20b8f9ef149f40ff656d52965f240d85f7a8e4", + "reference": "ca20b8f9ef149f40ff656d52965f240d85f7a8e4", "shasum": "" }, "require": { @@ -3833,10 +3837,10 @@ }, "require-dev": { "psr/log": "~1.0", - "symfony/config": "~2.8|~3.0", - "symfony/dependency-injection": "~3.3", - "symfony/expression-language": "~2.8|~3.0", - "symfony/stopwatch": "~2.8|~3.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/stopwatch": "~2.8|~3.0|~4.0" }, "suggest": { "symfony/dependency-injection": "", @@ -3845,7 +3849,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.3-dev" + "dev-master": "3.4-dev" } }, "autoload": { @@ -3872,20 +3876,20 @@ ], "description": "Symfony EventDispatcher Component", "homepage": "https://symfony.com", - "time": "2017-11-05T15:47:03+00:00" + "time": "2017-11-09T14:14:31+00:00" }, { "name": "symfony/finder", - "version": "v3.3.13", + "version": "v3.4.1", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "138af5ec075d4b1d1bd19de08c38a34bb2d7d880" + "reference": "dac8d7db537bac7ad8143eb11360a8c2231f251a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/138af5ec075d4b1d1bd19de08c38a34bb2d7d880", - "reference": "138af5ec075d4b1d1bd19de08c38a34bb2d7d880", + "url": "https://api.github.com/repos/symfony/finder/zipball/dac8d7db537bac7ad8143eb11360a8c2231f251a", + "reference": "dac8d7db537bac7ad8143eb11360a8c2231f251a", "shasum": "" }, "require": { @@ -3894,7 +3898,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.3-dev" + "dev-master": "3.4-dev" } }, "autoload": { @@ -3921,33 +3925,34 @@ ], "description": "Symfony Finder Component", "homepage": "https://symfony.com", - "time": "2017-11-05T15:47:03+00:00" + "time": "2017-11-05T16:10:10+00:00" }, { "name": "symfony/http-foundation", - "version": "v3.3.13", + "version": "v3.4.1", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "5943f0f19817a7e05992d20a90729b0dc93faf36" + "reference": "d9625c8abb907e0ca2d7506afd7a719a572c766f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/5943f0f19817a7e05992d20a90729b0dc93faf36", - "reference": "5943f0f19817a7e05992d20a90729b0dc93faf36", + "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-mbstring": "~1.1", + "symfony/polyfill-php70": "~1.6" }, "require-dev": { - "symfony/expression-language": "~2.8|~3.0" + "symfony/expression-language": "~2.8|~3.0|~4.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.3-dev" + "dev-master": "3.4-dev" } }, "autoload": { @@ -3974,56 +3979,58 @@ ], "description": "Symfony HttpFoundation Component", "homepage": "https://symfony.com", - "time": "2017-11-13T18:13:16+00:00" + "time": "2017-11-30T14:56:21+00:00" }, { "name": "symfony/http-kernel", - "version": "v3.3.13", + "version": "v3.4.1", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "a2a942172b742217ab2ccd9399494af2aa17c766" + "reference": "b101bb29071163563d4c8b537b35845eaf909235" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/a2a942172b742217ab2ccd9399494af2aa17c766", - "reference": "a2a942172b742217ab2ccd9399494af2aa17c766", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/b101bb29071163563d4c8b537b35845eaf909235", + "reference": "b101bb29071163563d4c8b537b35845eaf909235", "shasum": "" }, "require": { "php": "^5.5.9|>=7.0.8", "psr/log": "~1.0", - "symfony/debug": "~2.8|~3.0", - "symfony/event-dispatcher": "~2.8|~3.0", - "symfony/http-foundation": "^3.3.11" + "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.3", + "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", + "symfony/browser-kit": "~2.8|~3.0|~4.0", "symfony/class-loader": "~2.8|~3.0", - "symfony/config": "~2.8|~3.0", - "symfony/console": "~2.8|~3.0", - "symfony/css-selector": "~2.8|~3.0", - "symfony/dependency-injection": "~3.3", - "symfony/dom-crawler": "~2.8|~3.0", - "symfony/expression-language": "~2.8|~3.0", - "symfony/finder": "~2.8|~3.0", - "symfony/process": "~2.8|~3.0", - "symfony/routing": "~2.8|~3.0", - "symfony/stopwatch": "~2.8|~3.0", - "symfony/templating": "~2.8|~3.0", - "symfony/translation": "~2.8|~3.0", - "symfony/var-dumper": "~3.3" + "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/class-loader": "", "symfony/config": "", "symfony/console": "", "symfony/dependency-injection": "", @@ -4033,7 +4040,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.3-dev" + "dev-master": "3.4-dev" } }, "autoload": { @@ -4060,7 +4067,7 @@ ], "description": "Symfony HttpKernel Component", "homepage": "https://symfony.com", - "time": "2017-11-16T18:14:43+00:00" + "time": "2017-12-04T23:05:00+00:00" }, { "name": "symfony/polyfill-mbstring", @@ -4121,18 +4128,77 @@ ], "time": "2017-10-11T12:05:26+00:00" }, + { + "name": "symfony/polyfill-php70", + "version": "v1.6.0", + "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": "v3.3.13", + "version": "v3.4.1", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "a56a3989fb762d7b19a0cf8e7693ee99a6ffb78d" + "reference": "db25e810fd5e124085e3777257d0cf4ae533d0ea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/a56a3989fb762d7b19a0cf8e7693ee99a6ffb78d", - "reference": "a56a3989fb762d7b19a0cf8e7693ee99a6ffb78d", + "url": "https://api.github.com/repos/symfony/process/zipball/db25e810fd5e124085e3777257d0cf4ae533d0ea", + "reference": "db25e810fd5e124085e3777257d0cf4ae533d0ea", "shasum": "" }, "require": { @@ -4141,7 +4207,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.3-dev" + "dev-master": "3.4-dev" } }, "autoload": { @@ -4168,20 +4234,20 @@ ], "description": "Symfony Process Component", "homepage": "https://symfony.com", - "time": "2017-11-13T15:31:11+00:00" + "time": "2017-11-22T12:18:49+00:00" }, { "name": "symfony/routing", - "version": "v3.3.13", + "version": "v3.4.1", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "cf7fa1dfcfee2c96969bfa1c0341e5627ecb1e95" + "reference": "d768aa5b25d98188bae3fe4ce3eb2924c97aafac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/cf7fa1dfcfee2c96969bfa1c0341e5627ecb1e95", - "reference": "cf7fa1dfcfee2c96969bfa1c0341e5627ecb1e95", + "url": "https://api.github.com/repos/symfony/routing/zipball/d768aa5b25d98188bae3fe4ce3eb2924c97aafac", + "reference": "d768aa5b25d98188bae3fe4ce3eb2924c97aafac", "shasum": "" }, "require": { @@ -4190,17 +4256,17 @@ "conflict": { "symfony/config": "<2.8", "symfony/dependency-injection": "<3.3", - "symfony/yaml": "<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", - "symfony/dependency-injection": "~3.3", - "symfony/expression-language": "~2.8|~3.0", - "symfony/http-foundation": "~2.8|~3.0", - "symfony/yaml": "~3.3" + "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", @@ -4213,7 +4279,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.3-dev" + "dev-master": "3.4-dev" } }, "autoload": { @@ -4246,20 +4312,20 @@ "uri", "url" ], - "time": "2017-11-07T14:16:22+00:00" + "time": "2017-11-24T14:13:49+00:00" }, { "name": "symfony/serializer", - "version": "v3.3.13", + "version": "v3.4.1", "source": { "type": "git", "url": "https://github.com/symfony/serializer.git", - "reference": "d6dc07653b872b3091c70140751d5f3f4905082a" + "reference": "ac3e016189682e7d388e00d5c5cd0e84f1c9e55c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/serializer/zipball/d6dc07653b872b3091c70140751d5f3f4905082a", - "reference": "d6dc07653b872b3091c70140751d5f3f4905082a", + "url": "https://api.github.com/repos/symfony/serializer/zipball/ac3e016189682e7d388e00d5c5cd0e84f1c9e55c", + "reference": "ac3e016189682e7d388e00d5c5cd0e84f1c9e55c", "shasum": "" }, "require": { @@ -4270,19 +4336,19 @@ "symfony/dependency-injection": "<3.2", "symfony/property-access": ">=3.0,<3.0.4|>=2.8,<2.8.4", "symfony/property-info": "<3.1", - "symfony/yaml": "<3.3" + "symfony/yaml": "<3.4" }, "require-dev": { "doctrine/annotations": "~1.0", "doctrine/cache": "~1.0", "phpdocumentor/reflection-docblock": "^3.0|^4.0", - "symfony/cache": "~3.1", - "symfony/config": "~2.8|~3.0", - "symfony/dependency-injection": "~3.2", - "symfony/http-foundation": "~2.8|~3.0", - "symfony/property-access": "~2.8|~3.0", - "symfony/property-info": "~3.1", - "symfony/yaml": "~3.3" + "symfony/cache": "~3.1|~4.0", + "symfony/config": "~2.8|~3.0|~4.0", + "symfony/dependency-injection": "~3.2|~4.0", + "symfony/http-foundation": "~2.8|~3.0|~4.0", + "symfony/property-access": "~2.8|~3.0|~4.0", + "symfony/property-info": "~3.1|~4.0", + "symfony/yaml": "~3.4|~4.0" }, "suggest": { "doctrine/annotations": "For using the annotation mapping. You will also need doctrine/cache.", @@ -4297,7 +4363,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.3-dev" + "dev-master": "3.4-dev" } }, "autoload": { @@ -4324,20 +4390,20 @@ ], "description": "Symfony Serializer Component", "homepage": "https://symfony.com", - "time": "2017-11-07T14:16:22+00:00" + "time": "2017-11-29T13:28:14+00:00" }, { "name": "symfony/translation", - "version": "v3.3.13", + "version": "v3.4.1", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "373e553477e55cd08f8b86b74db766c75b987fdb" + "reference": "e05b0a5996ad7a35ba3a19ffad8b72c9daa64dfa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/373e553477e55cd08f8b86b74db766c75b987fdb", - "reference": "373e553477e55cd08f8b86b74db766c75b987fdb", + "url": "https://api.github.com/repos/symfony/translation/zipball/e05b0a5996ad7a35ba3a19ffad8b72c9daa64dfa", + "reference": "e05b0a5996ad7a35ba3a19ffad8b72c9daa64dfa", "shasum": "" }, "require": { @@ -4346,13 +4412,16 @@ }, "conflict": { "symfony/config": "<2.8", - "symfony/yaml": "<3.3" + "symfony/dependency-injection": "<3.4", + "symfony/yaml": "<3.4" }, "require-dev": { "psr/log": "~1.0", - "symfony/config": "~2.8|~3.0", - "symfony/intl": "^2.8.18|^3.2.5", - "symfony/yaml": "~3.3" + "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", @@ -4362,7 +4431,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.3-dev" + "dev-master": "3.4-dev" } }, "autoload": { @@ -4389,20 +4458,20 @@ ], "description": "Symfony Translation Component", "homepage": "https://symfony.com", - "time": "2017-11-07T14:12:55+00:00" + "time": "2017-11-27T14:23:00+00:00" }, { "name": "symfony/var-dumper", - "version": "v3.3.13", + "version": "v3.4.1", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "805de6bd6869073e60610df1b14ab7d969c61b01" + "reference": "ec650a975a8e04e0c114d35eab732981243db3a2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/805de6bd6869073e60610df1b14ab7d969c61b01", - "reference": "805de6bd6869073e60610df1b14ab7d969c61b01", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/ec650a975a8e04e0c114d35eab732981243db3a2", + "reference": "ec650a975a8e04e0c114d35eab732981243db3a2", "shasum": "" }, "require": { @@ -4418,12 +4487,13 @@ }, "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.3-dev" + "dev-master": "3.4-dev" } }, "autoload": { @@ -4457,7 +4527,7 @@ "debug", "dump" ], - "time": "2017-11-07T14:16:22+00:00" + "time": "2017-11-30T14:59:23+00:00" }, { "name": "tijsverkoyen/css-to-inline-styles", @@ -4556,6 +4626,68 @@ ], "time": "2016-09-01T10:05:43+00:00" }, + { + "name": "webpatser/laravel-countries", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/webpatser/laravel-countries.git", + "reference": "2568394dd6bcc983be190086576ff2715c236f42" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webpatser/laravel-countries/zipball/2568394dd6bcc983be190086576ff2715c236f42", + "reference": "2568394dd6bcc983be190086576ff2715c236f42", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Webpatser\\Countries\\CountriesServiceProvider" + ], + "aliases": { + "Countries": "Webpatser\\Countries\\CountriesFacade" + } + } + }, + "autoload": { + "psr-0": { + "Webpatser\\Countries": "src/" + }, + "classmap": [ + "src/commands" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christoph Kempen", + "email": "christoph@downsized.nl", + "homepage": "http://downsized.nl/", + "role": "developer" + }, + { + "name": "Paul Kievits", + "role": "developer" + } + ], + "description": "Laravel Countries is a bundle for Laravel, providing Almost ISO 3166_2, 3166_3, currency, Capital and more for all countries.", + "homepage": "https://github.com/webpatser/laravel-countries", + "keywords": [ + "countries", + "iso_3166_2", + "iso_3166_3", + "laravel" + ], + "time": "2017-10-15T11:08:15+00:00" + }, { "name": "zendesk/zendesk_api_client_php", "version": "v2.2.3", @@ -5193,29 +5325,35 @@ }, { "name": "phpdocumentor/reflection-docblock", - "version": "4.1.1", + "version": "4.2.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "2d3d238c433cf69caeb4842e97a3223a116f94b2" + "reference": "66465776cfc249844bde6d117abff1d22e06c2da" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/2d3d238c433cf69caeb4842e97a3223a116f94b2", - "reference": "2d3d238c433cf69caeb4842e97a3223a116f94b2", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/66465776cfc249844bde6d117abff1d22e06c2da", + "reference": "66465776cfc249844bde6d117abff1d22e06c2da", "shasum": "" }, "require": { "php": "^7.0", - "phpdocumentor/reflection-common": "^1.0@dev", + "phpdocumentor/reflection-common": "^1.0.0", "phpdocumentor/type-resolver": "^0.4.0", "webmozart/assert": "^1.0" }, "require-dev": { - "mockery/mockery": "^0.9.4", - "phpunit/phpunit": "^4.4" + "doctrine/instantiator": "~1.0.5", + "mockery/mockery": "^1.0", + "phpunit/phpunit": "^6.4" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.x-dev" + } + }, "autoload": { "psr-4": { "phpDocumentor\\Reflection\\": [ @@ -5234,7 +5372,7 @@ } ], "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-08-30T18:51:59+00:00" + "time": "2017-11-27T17:38:31+00:00" }, { "name": "phpdocumentor/type-resolver", @@ -5348,16 +5486,16 @@ }, { "name": "phpunit/php-code-coverage", - "version": "5.2.3", + "version": "5.3.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "8e1d2397d8adf59a3f12b2878a3aaa66d1ab189d" + "reference": "661f34d0bd3f1a7225ef491a70a020ad23a057a1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/8e1d2397d8adf59a3f12b2878a3aaa66d1ab189d", - "reference": "8e1d2397d8adf59a3f12b2878a3aaa66d1ab189d", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/661f34d0bd3f1a7225ef491a70a020ad23a057a1", + "reference": "661f34d0bd3f1a7225ef491a70a020ad23a057a1", "shasum": "" }, "require": { @@ -5366,14 +5504,13 @@ "php": "^7.0", "phpunit/php-file-iterator": "^1.4.2", "phpunit/php-text-template": "^1.2.1", - "phpunit/php-token-stream": "^2.0", + "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": { - "ext-xdebug": "^2.5", "phpunit/phpunit": "^6.0" }, "suggest": { @@ -5382,7 +5519,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "5.2.x-dev" + "dev-master": "5.3.x-dev" } }, "autoload": { @@ -5397,7 +5534,7 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", + "email": "sebastian@phpunit.de", "role": "lead" } ], @@ -5408,20 +5545,20 @@ "testing", "xunit" ], - "time": "2017-11-03T13:47:33+00:00" + "time": "2017-12-06T09:29:45+00:00" }, { "name": "phpunit/php-file-iterator", - "version": "1.4.3", + "version": "1.4.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "8ebba84e5bd74fc5fdeb916b38749016c7232f93" + "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/8ebba84e5bd74fc5fdeb916b38749016c7232f93", - "reference": "8ebba84e5bd74fc5fdeb916b38749016c7232f93", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/730b01bc3e867237eaac355e06a36b85dd93a8b4", + "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4", "shasum": "" }, "require": { @@ -5455,7 +5592,7 @@ "filesystem", "iterator" ], - "time": "2017-11-24T15:00:59+00:00" + "time": "2017-11-27T13:52:08+00:00" }, { "name": "phpunit/php-text-template", @@ -5549,16 +5686,16 @@ }, { "name": "phpunit/php-token-stream", - "version": "2.0.1", + "version": "2.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "9a02332089ac48e704c70f6cefed30c224e3c0b0" + "reference": "791198a2c6254db10131eecfe8c06670700904db" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/9a02332089ac48e704c70f6cefed30c224e3c0b0", - "reference": "9a02332089ac48e704c70f6cefed30c224e3c0b0", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/791198a2c6254db10131eecfe8c06670700904db", + "reference": "791198a2c6254db10131eecfe8c06670700904db", "shasum": "" }, "require": { @@ -5594,20 +5731,20 @@ "keywords": [ "tokenizer" ], - "time": "2017-08-20T05:47:52+00:00" + "time": "2017-11-27T05:48:46+00:00" }, { "name": "phpunit/phpunit", - "version": "6.4.4", + "version": "6.5.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "562f7dc75d46510a4ed5d16189ae57fbe45a9932" + "reference": "1b2f933d5775f9237369deaa2d2bfbf9d652be4c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/562f7dc75d46510a4ed5d16189ae57fbe45a9932", - "reference": "562f7dc75d46510a4ed5d16189ae57fbe45a9932", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/1b2f933d5775f9237369deaa2d2bfbf9d652be4c", + "reference": "1b2f933d5775f9237369deaa2d2bfbf9d652be4c", "shasum": "" }, "require": { @@ -5621,12 +5758,12 @@ "phar-io/version": "^1.0", "php": "^7.0", "phpspec/prophecy": "^1.7", - "phpunit/php-code-coverage": "^5.2.2", - "phpunit/php-file-iterator": "^1.4.2", + "phpunit/php-code-coverage": "^5.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": "^4.0.3", - "sebastian/comparator": "^2.0.2", + "phpunit/phpunit-mock-objects": "^5.0.5", + "sebastian/comparator": "^2.1", "sebastian/diff": "^2.0", "sebastian/environment": "^3.1", "sebastian/exporter": "^3.1", @@ -5652,7 +5789,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "6.4.x-dev" + "dev-master": "6.5.x-dev" } }, "autoload": { @@ -5678,33 +5815,33 @@ "testing", "xunit" ], - "time": "2017-11-08T11:26:09+00:00" + "time": "2017-12-10T08:06:19+00:00" }, { "name": "phpunit/phpunit-mock-objects", - "version": "4.0.4", + "version": "5.0.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", - "reference": "2f789b59ab89669015ad984afa350c4ec577ade0" + "reference": "283b9f4f670e3a6fd6c4ff95c51a952eb5c75933" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/2f789b59ab89669015ad984afa350c4ec577ade0", - "reference": "2f789b59ab89669015ad984afa350c4ec577ade0", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/283b9f4f670e3a6fd6c4ff95c51a952eb5c75933", + "reference": "283b9f4f670e3a6fd6c4ff95c51a952eb5c75933", "shasum": "" }, "require": { "doctrine/instantiator": "^1.0.5", "php": "^7.0", "phpunit/php-text-template": "^1.2.1", - "sebastian/exporter": "^3.0" + "sebastian/exporter": "^3.1" }, "conflict": { "phpunit/phpunit": "<6.0" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^6.5" }, "suggest": { "ext-soap": "*" @@ -5712,7 +5849,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0.x-dev" + "dev-master": "5.0.x-dev" } }, "autoload": { @@ -5727,7 +5864,7 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", + "email": "sebastian@phpunit.de", "role": "lead" } ], @@ -5737,7 +5874,7 @@ "mock", "xunit" ], - "time": "2017-08-03T14:08:16+00:00" + "time": "2017-12-10T08:01:53+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", @@ -6300,23 +6437,23 @@ }, { "name": "symfony/class-loader", - "version": "v3.3.13", + "version": "v3.4.1", "source": { "type": "git", "url": "https://github.com/symfony/class-loader.git", - "reference": "df173ac2af96ce202bf8bb5a3fc0bec8a4fdd4d1" + "reference": "e8d36a7b5568d232f5c3f8ef92665836b9f1e038" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/class-loader/zipball/df173ac2af96ce202bf8bb5a3fc0bec8a4fdd4d1", - "reference": "df173ac2af96ce202bf8bb5a3fc0bec8a4fdd4d1", + "url": "https://api.github.com/repos/symfony/class-loader/zipball/e8d36a7b5568d232f5c3f8ef92665836b9f1e038", + "reference": "e8d36a7b5568d232f5c3f8ef92665836b9f1e038", "shasum": "" }, "require": { "php": "^5.5.9|>=7.0.8" }, "require-dev": { - "symfony/finder": "~2.8|~3.0", + "symfony/finder": "~2.8|~3.0|~4.0", "symfony/polyfill-apcu": "~1.1" }, "suggest": { @@ -6325,7 +6462,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.3-dev" + "dev-master": "3.4-dev" } }, "autoload": { @@ -6352,7 +6489,7 @@ ], "description": "Symfony ClassLoader Component", "homepage": "https://symfony.com", - "time": "2017-11-05T15:47:03+00:00" + "time": "2017-11-05T16:10:10+00:00" }, { "name": "theseer/tokenizer", @@ -6449,7 +6586,8 @@ "minimum-stability": "stable", "stability-flags": { "komola/bootstrap-zend-framework": 20, - "opensolutions/oss-snmp": 20 + "opensolutions/oss-snmp": 20, + "webpatser/laravel-countries": 20 }, "prefer-stable": false, "prefer-lowest": false, diff --git a/config/app.php b/config/app.php index 66bfb5348..07ddc6226 100644 --- a/config/app.php +++ b/config/app.php @@ -191,6 +191,8 @@ LukeTowers\Purifier\PurifierServiceProvider::class, + Webpatser\Countries\CountriesServiceProvider::class, + ], /* @@ -253,6 +255,8 @@ 'Purifier' => LukeTowers\Purifier\Facades\Purifier::class, 'PDF' => Barryvdh\DomPDF\Facade::class, + 'Countries' => Webpatser\Countries\CountriesFacade::class, + ], ]; diff --git a/config/countries.php b/config/countries.php new file mode 100644 index 000000000..1a2cb1772 --- /dev/null +++ b/config/countries.php @@ -0,0 +1,13 @@ + 'countries', +]; diff --git a/config/mail.php b/config/mail.php index 47e4428e4..050d71cb0 100644 --- a/config/mail.php +++ b/config/mail.php @@ -15,7 +15,7 @@ | "sparkpost", "log", "array" | */ - 'driver' => env( 'MAIL_DRIVER', 'smtp' ), + 'driver' => env( 'MAIL_DRIVER', 'mail' ), /* |-------------------------------------------------------------------------- diff --git a/database/Entities/Customer.php b/database/Entities/Customer.php index 10756d0cc..87bd93aaf 100644 --- a/database/Entities/Customer.php +++ b/database/Entities/Customer.php @@ -268,6 +268,10 @@ class Customer */ protected $IXPs; + /** + * @var \Doctrine\Common\Collections\Collection + */ + private $patchPanelPorts; /** @@ -2331,43 +2335,56 @@ public function getLogo($type) return null; } -/** - * @var \Doctrine\Common\Collections\Collection - */ -private $patchPanelPorts; -/** - * Add patchPanelPort - * - * @param \Entities\PatchPanelPort $patchPanelPort - * - * @return Customer - */ -public function addPatchPanelPort(\Entities\PatchPanelPort $patchPanelPort) -{ -$this->patchPanelPorts[] = $patchPanelPort; -return $this; -} -/** - * Remove patchPanelPort - * - * @param \Entities\PatchPanelPort $patchPanelPort - */ -public function removePatchPanelPort(\Entities\PatchPanelPort $patchPanelPort) -{ -$this->patchPanelPorts->removeElement($patchPanelPort); -} + /** + * Add patchPanelPort + * + * @param \Entities\PatchPanelPort $patchPanelPort + * + * @return Customer + */ + public function addPatchPanelPort(\Entities\PatchPanelPort $patchPanelPort){ + $this->patchPanelPorts[] = $patchPanelPort; -/** - * Get patchPanelPorts - * - * @return \Doctrine\Common\Collections\Collection - */ -public function getPatchPanelPorts() -{ -return $this->patchPanelPorts; -} + return $this; + } + + /** + * Remove patchPanelPort + * + * @param \Entities\PatchPanelPort $patchPanelPort + */ + public function removePatchPanelPort(\Entities\PatchPanelPort $patchPanelPort){ + $this->patchPanelPorts->removeElement($patchPanelPort); + } + + /** + * Get patchPanelPorts + * + * @return \Doctrine\Common\Collections\Collection + */ + public function getPatchPanelPorts(){ + return $this->patchPanelPorts; + } + + /** + * Turn the database integer representation of the type into text as + * defined in the self::$CUST_TYPES_TEXT array (or 'Unknown') + * @return string + */ + public function resolveType(): string { + return self::$CUST_TYPES_TEXT[ $this->getType() ] ?? 'Unknown'; + } + + /** + * Turn the database integer representation of the status into text as + * defined in the self::$CUST_STATUS_TEXT array (or 'Unknown') + * @return string + */ + public function resolveStatus(): string { + return self::$CUST_STATUS_TEXT[ $this->getStatus() ] ?? 'Unknown'; + } } diff --git a/database/Proxies/__CG__EntitiesCustomer.php b/database/Proxies/__CG__EntitiesCustomer.php index 369c727fd..46c6ba8e1 100644 --- a/database/Proxies/__CG__EntitiesCustomer.php +++ b/database/Proxies/__CG__EntitiesCustomer.php @@ -64,10 +64,10 @@ public function __construct($initializer = null, $cloner = null) public function __sleep() { if ($this->__isInitialized__) { - return ['__isInitialized__', 'name', 'type', 'shortname', 'autsys', 'maxprefixes', 'peeringemail', 'nocphone', 'nocfax', 'nocemail', 'nochours', 'nocwww', 'peeringmacro', 'peeringpolicy', 'corpwww', 'datejoin', 'dateleave', 'status', 'activepeeringmatrix', 'lastupdated', 'lastupdatedby', 'creator', 'created', 'id', 'VirtualInterfaces', 'Contacts', 'ConsoleServerConnections', 'CustomerEquipment', 'Peers', 'PeersWith', 'XCusts', 'YCusts', 'Users', 'Traffic95ths', 'Traffic95thMonthlys', 'TrafficDailies', 'RegistrationDetails', 'BillingDetails', 'IXPs', 'noc24hphone', 'RSPrefixes', 'IRRDB', 'peeringDb', 'Notes', 'peeringmacrov6', 'abbreviatedName', 'MD5Support', 'isReseller', 'ResoldCustomers', 'Reseller', '' . "\0" . 'Entities\\Customer' . "\0" . 'IrrdbPrefixes', '' . "\0" . 'Entities\\Customer' . "\0" . 'IrrdbASNs', '' . "\0" . 'Entities\\Customer' . "\0" . 'logos', '' . "\0" . 'Entities\\Customer' . "\0" . 'patchPanelPorts']; + return ['__isInitialized__', 'name', 'type', 'shortname', 'autsys', 'maxprefixes', 'peeringemail', 'nocphone', 'nocfax', 'nocemail', 'nochours', 'nocwww', 'peeringmacro', 'peeringpolicy', 'corpwww', 'datejoin', 'dateleave', 'status', 'activepeeringmatrix', 'lastupdated', 'lastupdatedby', 'creator', 'created', 'id', 'VirtualInterfaces', 'Contacts', 'ConsoleServerConnections', 'CustomerEquipment', 'Peers', 'PeersWith', 'XCusts', 'YCusts', 'Users', 'Traffic95ths', 'Traffic95thMonthlys', 'TrafficDailies', 'RegistrationDetails', 'BillingDetails', 'IXPs', '' . "\0" . 'Entities\\Customer' . "\0" . 'patchPanelPorts', 'noc24hphone', 'RSPrefixes', 'IRRDB', 'peeringDb', 'Notes', 'peeringmacrov6', 'abbreviatedName', 'MD5Support', 'isReseller', 'ResoldCustomers', 'Reseller', '' . "\0" . 'Entities\\Customer' . "\0" . 'IrrdbPrefixes', '' . "\0" . 'Entities\\Customer' . "\0" . 'IrrdbASNs', '' . "\0" . 'Entities\\Customer' . "\0" . 'logos']; } - return ['__isInitialized__', 'name', 'type', 'shortname', 'autsys', 'maxprefixes', 'peeringemail', 'nocphone', 'nocfax', 'nocemail', 'nochours', 'nocwww', 'peeringmacro', 'peeringpolicy', 'corpwww', 'datejoin', 'dateleave', 'status', 'activepeeringmatrix', 'lastupdated', 'lastupdatedby', 'creator', 'created', 'id', 'VirtualInterfaces', 'Contacts', 'ConsoleServerConnections', 'CustomerEquipment', 'Peers', 'PeersWith', 'XCusts', 'YCusts', 'Users', 'Traffic95ths', 'Traffic95thMonthlys', 'TrafficDailies', 'RegistrationDetails', 'BillingDetails', 'IXPs', 'noc24hphone', 'RSPrefixes', 'IRRDB', 'peeringDb', 'Notes', 'peeringmacrov6', 'abbreviatedName', 'MD5Support', 'isReseller', 'ResoldCustomers', 'Reseller', '' . "\0" . 'Entities\\Customer' . "\0" . 'IrrdbPrefixes', '' . "\0" . 'Entities\\Customer' . "\0" . 'IrrdbASNs', '' . "\0" . 'Entities\\Customer' . "\0" . 'logos', '' . "\0" . 'Entities\\Customer' . "\0" . 'patchPanelPorts']; + return ['__isInitialized__', 'name', 'type', 'shortname', 'autsys', 'maxprefixes', 'peeringemail', 'nocphone', 'nocfax', 'nocemail', 'nochours', 'nocwww', 'peeringmacro', 'peeringpolicy', 'corpwww', 'datejoin', 'dateleave', 'status', 'activepeeringmatrix', 'lastupdated', 'lastupdatedby', 'creator', 'created', 'id', 'VirtualInterfaces', 'Contacts', 'ConsoleServerConnections', 'CustomerEquipment', 'Peers', 'PeersWith', 'XCusts', 'YCusts', 'Users', 'Traffic95ths', 'Traffic95thMonthlys', 'TrafficDailies', 'RegistrationDetails', 'BillingDetails', 'IXPs', '' . "\0" . 'Entities\\Customer' . "\0" . 'patchPanelPorts', 'noc24hphone', 'RSPrefixes', 'IRRDB', 'peeringDb', 'Notes', 'peeringmacrov6', 'abbreviatedName', 'MD5Support', 'isReseller', 'ResoldCustomers', 'Reseller', '' . "\0" . 'Entities\\Customer' . "\0" . 'IrrdbPrefixes', '' . "\0" . 'Entities\\Customer' . "\0" . 'IrrdbASNs', '' . "\0" . 'Entities\\Customer' . "\0" . 'logos']; } /** @@ -1959,4 +1959,26 @@ public function getPatchPanelPorts() return parent::getPatchPanelPorts(); } + /** + * {@inheritDoc} + */ + public function resolveType(): string + { + + $this->__initializer__ && $this->__initializer__->__invoke($this, 'resolveType', []); + + return parent::resolveType(); + } + + /** + * {@inheritDoc} + */ + public function resolveStatus(): string + { + + $this->__initializer__ && $this->__initializer__->__invoke($this, 'resolveStatus', []); + + return parent::resolveStatus(); + } + } diff --git a/database/Repositories/CompanyRegistrationDetail.php b/database/Repositories/CompanyRegistrationDetail.php index 096ffebc2..cf4e76ebf 100644 --- a/database/Repositories/CompanyRegistrationDetail.php +++ b/database/Repositories/CompanyRegistrationDetail.php @@ -12,4 +12,16 @@ */ class CompanyRegistrationDetail extends EntityRepository { + /** + * Get all the juridictions + * + * @return array Array of juridiction + */ + public function getJuridictionsAsArray(){ + $dql = "SELECT DISTINCT crd.jurisdiction + FROM Entities\\CompanyRegisteredDetail crd + WHERE crd.jurisdiction != '' "; + + return $this->getEntityManager()->createQuery( $dql )->getResult(); + } } diff --git a/database/Repositories/Customer.php b/database/Repositories/Customer.php index acb7d735d..dc29852e7 100644 --- a/database/Repositories/Customer.php +++ b/database/Repositories/Customer.php @@ -485,4 +485,41 @@ public function getAsArray( int $cid = null, array $types = [] ): array { return $customers; } + + /** + * Return an array of one or all customer names where the array key is the customer id. + * + * @param $types array the types needed + * @param $cid int The customer ID + * + * @return array An array of all customers names with the customers id as the key. + */ + public function getAllForFeList( bool $currentCust = null, int $state = null, int $type = null ): array { + $request = "SELECT c + FROM \\Entities\\customer c + WHERE 1 = 1"; + + if( $state ){ + $request .= " AND c.status = {$state} " ; + } + + if( $type ){ + $request .= " AND c.type = {$type} " ; + } + + if( $currentCust ){ + $request .= " AND " . Customer::DQL_CUST_CURRENT ; + } + + $request .= " ORDER BY c.name ASC "; + + $listCustomers = $this->getEntityManager()->createQuery( $request )->getResult(); + + $customers = []; + foreach( $listCustomers as $cust ) { + $customers[ ] = $cust ; + } + + return $customers; + } } diff --git a/database/Repositories/IRRDBConfig.php b/database/Repositories/IRRDBConfig.php index 743dc28ac..77d2583d5 100644 --- a/database/Repositories/IRRDBConfig.php +++ b/database/Repositories/IRRDBConfig.php @@ -2,6 +2,8 @@ namespace Repositories; +use Entities\IRRDBConfig as IRRDBConfigEntity; + use Doctrine\ORM\EntityRepository; /** @@ -45,4 +47,25 @@ public function getAllForFeList( \stdClass $feParams, int $id = null ) return $query->getArrayResult(); } + + /** + * Return an array of all IRRDB Config + * @return array An array of IRRDB Config + */ + public function getAsArray(): array { + $irrdb = []; + + foreach( $this->findBy( [], [ 'source' => 'ASC' ] ) as $i ) { + /** @var IRRDBConfigEntity $i */ + $irrdb[ $i->getId()] = [ + 'id' => $i->getId(), + 'protocol' => $i->getProtocol(), + 'source' => $i->getSource(), + 'host' => $i->getHost(), + 'notes' => $i->getNotes(), + ]; + } + + return $irrdb; + } } diff --git a/database/seeds/CountriesSeeder.php b/database/seeds/CountriesSeeder.php new file mode 100644 index 000000000..cfa2b0bfb --- /dev/null +++ b/database/seeds/CountriesSeeder.php @@ -0,0 +1,42 @@ +delete(); + + //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), + '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'], + '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), + )); + } + } +} diff --git a/database/seeds/DatabaseSeeder.php b/database/seeds/DatabaseSeeder.php index b3c69b56e..2722766bf 100644 --- a/database/seeds/DatabaseSeeder.php +++ b/database/seeds/DatabaseSeeder.php @@ -12,9 +12,9 @@ class DatabaseSeeder extends Seeder { */ public function run() { - Model::unguard(); + $this->call('CountriesSeeder'); + $this->command->info('Seeded the countries!'); - // $this->call('UserTableSeeder'); - } + } } diff --git a/package-lock.json b/package-lock.json index 4e9fa2656..a899f5c8d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,4 +1,5 @@ { + "requires": true, "lockfileVersion": 1, "dependencies": { "abbrev": { @@ -11,7 +12,11 @@ "version": "1.3.3", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz", "integrity": "sha1-w8p0NJOGSMPg2cHjKN1otiLChMo=", - "dev": true + "dev": true, + "requires": { + "mime-types": "2.1.16", + "negotiator": "0.6.1" + } }, "acorn": { "version": "5.1.1", @@ -24,6 +29,9 @@ "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz", "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=", "dev": true, + "requires": { + "acorn": "4.0.13" + }, "dependencies": { "acorn": { "version": "4.0.13", @@ -43,7 +51,11 @@ "version": "4.11.8", "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", - "dev": true + "dev": true, + "requires": { + "co": "4.6.0", + "json-stable-stringify": "1.0.1" + } }, "ajv-keywords": { "version": "1.5.1", @@ -55,7 +67,12 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", - "dev": true + "dev": true, + "requires": { + "kind-of": "3.2.2", + "longest": "1.0.1", + "repeat-string": "1.6.1" + } }, "amdefine": { "version": "1.0.1", @@ -91,7 +108,11 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", - "dev": true + "dev": true, + "requires": { + "micromatch": "2.3.11", + "normalize-path": "2.1.1" + } }, "aproba": { "version": "1.1.2", @@ -103,19 +124,29 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", - "dev": true + "dev": true, + "requires": { + "delegates": "1.0.0", + "readable-stream": "2.3.3" + } }, "argparse": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", - "dev": true + "dev": true, + "requires": { + "sprintf-js": "1.0.3" + } }, "arr-diff": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "dev": true + "dev": true, + "requires": { + "arr-flatten": "1.1.0" + } }, "arr-flatten": { "version": "1.1.0", @@ -139,7 +170,10 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dev": true + "dev": true, + "requires": { + "array-uniq": "1.0.3" + } }, "array-uniq": { "version": "1.0.3", @@ -176,13 +210,21 @@ "version": "4.9.1", "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.1.tgz", "integrity": "sha1-SLokC0WpKA6UdImQull9IWYX/UA=", - "dev": true + "dev": true, + "requires": { + "bn.js": "4.11.7", + "inherits": "2.0.3", + "minimalistic-assert": "1.0.0" + } }, "assert": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", - "dev": true + "dev": true, + "requires": { + "util": "0.10.3" + } }, "assert-plus": { "version": "0.2.0", @@ -236,7 +278,15 @@ "version": "6.7.7", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz", "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=", - "dev": true + "dev": true, + "requires": { + "browserslist": "1.7.7", + "caniuse-db": "1.0.30000708", + "normalize-range": "0.1.2", + "num2fraction": "1.2.2", + "postcss": "5.2.17", + "postcss-value-parser": "3.3.0" + } }, "aws-sign2": { "version": "0.6.0", @@ -254,277 +304,548 @@ "version": "0.15.3", "resolved": "https://registry.npmjs.org/axios/-/axios-0.15.3.tgz", "integrity": "sha1-LJ1jiy4ZGgjqHWzJiOrda6W9wFM=", - "dev": true + "dev": true, + "requires": { + "follow-redirects": "1.0.0" + } }, "babel-code-frame": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.22.0.tgz", "integrity": "sha1-AnYgvuVnqIwyVhV05/0IAdMxGOQ=", - "dev": true + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } }, "babel-core": { "version": "6.25.0", "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.25.0.tgz", "integrity": "sha1-fdQrBGPHQunVKW3rPsZ6kyLa1yk=", - "dev": true + "dev": true, + "requires": { + "babel-code-frame": "6.22.0", + "babel-generator": "6.25.0", + "babel-helpers": "6.24.1", + "babel-messages": "6.23.0", + "babel-register": "6.24.1", + "babel-runtime": "6.25.0", + "babel-template": "6.25.0", + "babel-traverse": "6.25.0", + "babel-types": "6.25.0", + "babylon": "6.17.4", + "convert-source-map": "1.5.0", + "debug": "2.6.8", + "json5": "0.5.1", + "lodash": "4.17.4", + "minimatch": "3.0.4", + "path-is-absolute": "1.0.1", + "private": "0.1.7", + "slash": "1.0.0", + "source-map": "0.5.6" + } }, "babel-generator": { "version": "6.25.0", "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.25.0.tgz", "integrity": "sha1-M6GvcNXyiQrrRlpKd5PB32qeqfw=", - "dev": true + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.25.0", + "babel-types": "6.25.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.4", + "source-map": "0.5.6", + "trim-right": "1.0.1" + } }, "babel-helper-call-delegate": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", - "dev": true + "dev": true, + "requires": { + "babel-helper-hoist-variables": "6.24.1", + "babel-runtime": "6.25.0", + "babel-traverse": "6.25.0", + "babel-types": "6.25.0" + } }, "babel-helper-define-map": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.24.1.tgz", "integrity": "sha1-epdH8ljYlH0y1RX2qhx70CIEoIA=", - "dev": true + "dev": true, + "requires": { + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.25.0", + "babel-types": "6.25.0", + "lodash": "4.17.4" + } }, "babel-helper-function-name": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", - "dev": true + "dev": true, + "requires": { + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.25.0", + "babel-template": "6.25.0", + "babel-traverse": "6.25.0", + "babel-types": "6.25.0" + } }, "babel-helper-get-function-arity": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", - "dev": true + "dev": true, + "requires": { + "babel-runtime": "6.25.0", + "babel-types": "6.25.0" + } }, "babel-helper-hoist-variables": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", - "dev": true + "dev": true, + "requires": { + "babel-runtime": "6.25.0", + "babel-types": "6.25.0" + } }, "babel-helper-optimise-call-expression": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", - "dev": true + "dev": true, + "requires": { + "babel-runtime": "6.25.0", + "babel-types": "6.25.0" + } }, "babel-helper-regex": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.24.1.tgz", "integrity": "sha1-024i+rEAjXnYhkjjIRaGgShFbOg=", - "dev": true + "dev": true, + "requires": { + "babel-runtime": "6.25.0", + "babel-types": "6.25.0", + "lodash": "4.17.4" + } }, "babel-helper-replace-supers": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", - "dev": true + "dev": true, + "requires": { + "babel-helper-optimise-call-expression": "6.24.1", + "babel-messages": "6.23.0", + "babel-runtime": "6.25.0", + "babel-template": "6.25.0", + "babel-traverse": "6.25.0", + "babel-types": "6.25.0" + } }, "babel-helpers": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", - "dev": true + "dev": true, + "requires": { + "babel-runtime": "6.25.0", + "babel-template": "6.25.0" + } }, "babel-loader": { "version": "6.4.1", "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-6.4.1.tgz", "integrity": "sha1-CzQRLVsHSKjc2/Uaz2+b1C1QuMo=", - "dev": true + "dev": true, + "requires": { + "find-cache-dir": "0.1.1", + "loader-utils": "0.2.17", + "mkdirp": "0.5.1", + "object-assign": "4.1.1" + } }, "babel-messages": { "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "dev": true + "dev": true, + "requires": { + "babel-runtime": "6.25.0" + } }, "babel-plugin-check-es2015-constants": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", - "dev": true + "dev": true, + "requires": { + "babel-runtime": "6.25.0" + } }, "babel-plugin-transform-es2015-arrow-functions": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", - "dev": true + "dev": true, + "requires": { + "babel-runtime": "6.25.0" + } }, "babel-plugin-transform-es2015-block-scoped-functions": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", - "dev": true + "dev": true, + "requires": { + "babel-runtime": "6.25.0" + } }, "babel-plugin-transform-es2015-block-scoping": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.24.1.tgz", "integrity": "sha1-dsKV3DpHQbFmWt/TFnIV3P8ypXY=", - "dev": true + "dev": true, + "requires": { + "babel-runtime": "6.25.0", + "babel-template": "6.25.0", + "babel-traverse": "6.25.0", + "babel-types": "6.25.0", + "lodash": "4.17.4" + } }, "babel-plugin-transform-es2015-classes": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", - "dev": true + "dev": true, + "requires": { + "babel-helper-define-map": "6.24.1", + "babel-helper-function-name": "6.24.1", + "babel-helper-optimise-call-expression": "6.24.1", + "babel-helper-replace-supers": "6.24.1", + "babel-messages": "6.23.0", + "babel-runtime": "6.25.0", + "babel-template": "6.25.0", + "babel-traverse": "6.25.0", + "babel-types": "6.25.0" + } }, "babel-plugin-transform-es2015-computed-properties": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", - "dev": true + "dev": true, + "requires": { + "babel-runtime": "6.25.0", + "babel-template": "6.25.0" + } }, "babel-plugin-transform-es2015-destructuring": { "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", - "dev": true + "dev": true, + "requires": { + "babel-runtime": "6.25.0" + } }, "babel-plugin-transform-es2015-duplicate-keys": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", - "dev": true + "dev": true, + "requires": { + "babel-runtime": "6.25.0", + "babel-types": "6.25.0" + } }, "babel-plugin-transform-es2015-for-of": { "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", - "dev": true + "dev": true, + "requires": { + "babel-runtime": "6.25.0" + } }, "babel-plugin-transform-es2015-function-name": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", - "dev": true + "dev": true, + "requires": { + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.25.0", + "babel-types": "6.25.0" + } }, "babel-plugin-transform-es2015-literals": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", - "dev": true + "dev": true, + "requires": { + "babel-runtime": "6.25.0" + } }, "babel-plugin-transform-es2015-modules-amd": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", - "dev": true + "dev": true, + "requires": { + "babel-plugin-transform-es2015-modules-commonjs": "6.24.1", + "babel-runtime": "6.25.0", + "babel-template": "6.25.0" + } }, "babel-plugin-transform-es2015-modules-commonjs": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.24.1.tgz", "integrity": "sha1-0+MQtA72ZKNmIiAAl8bUQCmPK/4=", - "dev": true + "dev": true, + "requires": { + "babel-plugin-transform-strict-mode": "6.24.1", + "babel-runtime": "6.25.0", + "babel-template": "6.25.0", + "babel-types": "6.25.0" + } }, "babel-plugin-transform-es2015-modules-systemjs": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", - "dev": true + "dev": true, + "requires": { + "babel-helper-hoist-variables": "6.24.1", + "babel-runtime": "6.25.0", + "babel-template": "6.25.0" + } }, "babel-plugin-transform-es2015-modules-umd": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", - "dev": true + "dev": true, + "requires": { + "babel-plugin-transform-es2015-modules-amd": "6.24.1", + "babel-runtime": "6.25.0", + "babel-template": "6.25.0" + } }, "babel-plugin-transform-es2015-object-super": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", - "dev": true + "dev": true, + "requires": { + "babel-helper-replace-supers": "6.24.1", + "babel-runtime": "6.25.0" + } }, "babel-plugin-transform-es2015-parameters": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", - "dev": true + "dev": true, + "requires": { + "babel-helper-call-delegate": "6.24.1", + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.25.0", + "babel-template": "6.25.0", + "babel-traverse": "6.25.0", + "babel-types": "6.25.0" + } }, "babel-plugin-transform-es2015-shorthand-properties": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", - "dev": true + "dev": true, + "requires": { + "babel-runtime": "6.25.0", + "babel-types": "6.25.0" + } }, "babel-plugin-transform-es2015-spread": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", - "dev": true + "dev": true, + "requires": { + "babel-runtime": "6.25.0" + } }, "babel-plugin-transform-es2015-sticky-regex": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", - "dev": true + "dev": true, + "requires": { + "babel-helper-regex": "6.24.1", + "babel-runtime": "6.25.0", + "babel-types": "6.25.0" + } }, "babel-plugin-transform-es2015-template-literals": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", - "dev": true + "dev": true, + "requires": { + "babel-runtime": "6.25.0" + } }, "babel-plugin-transform-es2015-typeof-symbol": { "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", - "dev": true + "dev": true, + "requires": { + "babel-runtime": "6.25.0" + } }, "babel-plugin-transform-es2015-unicode-regex": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", - "dev": true + "dev": true, + "requires": { + "babel-helper-regex": "6.24.1", + "babel-runtime": "6.25.0", + "regexpu-core": "2.0.0" + } }, "babel-plugin-transform-regenerator": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.24.1.tgz", "integrity": "sha1-uNowWtQ8PJm0hI5P5AN7dw0jxBg=", - "dev": true + "dev": true, + "requires": { + "regenerator-transform": "0.9.11" + } }, "babel-plugin-transform-strict-mode": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", - "dev": true + "dev": true, + "requires": { + "babel-runtime": "6.25.0", + "babel-types": "6.25.0" + } }, "babel-preset-es2015": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", - "dev": true + "dev": true, + "requires": { + "babel-plugin-check-es2015-constants": "6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoping": "6.24.1", + "babel-plugin-transform-es2015-classes": "6.24.1", + "babel-plugin-transform-es2015-computed-properties": "6.24.1", + "babel-plugin-transform-es2015-destructuring": "6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", + "babel-plugin-transform-es2015-for-of": "6.23.0", + "babel-plugin-transform-es2015-function-name": "6.24.1", + "babel-plugin-transform-es2015-literals": "6.22.0", + "babel-plugin-transform-es2015-modules-amd": "6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "6.24.1", + "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", + "babel-plugin-transform-es2015-modules-umd": "6.24.1", + "babel-plugin-transform-es2015-object-super": "6.24.1", + "babel-plugin-transform-es2015-parameters": "6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", + "babel-plugin-transform-es2015-spread": "6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "6.24.1", + "babel-plugin-transform-es2015-template-literals": "6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "6.24.1", + "babel-plugin-transform-regenerator": "6.24.1" + } }, "babel-register": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.24.1.tgz", "integrity": "sha1-fhDhOi9xBlvfrVoXh7pFvKbe118=", - "dev": true + "dev": true, + "requires": { + "babel-core": "6.25.0", + "babel-runtime": "6.25.0", + "core-js": "2.4.1", + "home-or-tmp": "2.0.0", + "lodash": "4.17.4", + "mkdirp": "0.5.1", + "source-map-support": "0.4.15" + } }, "babel-runtime": { "version": "6.25.0", "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.25.0.tgz", "integrity": "sha1-M7mOql1IK7AajRqmtDetKwGuxBw=", - "dev": true + "dev": true, + "requires": { + "core-js": "2.4.1", + "regenerator-runtime": "0.10.5" + } }, "babel-template": { "version": "6.25.0", "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.25.0.tgz", "integrity": "sha1-ZlJBFmt8KqTGGdceGSlpVSsQwHE=", - "dev": true + "dev": true, + "requires": { + "babel-runtime": "6.25.0", + "babel-traverse": "6.25.0", + "babel-types": "6.25.0", + "babylon": "6.17.4", + "lodash": "4.17.4" + } }, "babel-traverse": { "version": "6.25.0", "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.25.0.tgz", "integrity": "sha1-IldJfi/NGbie3BPEyROB+VEklvE=", - "dev": true + "dev": true, + "requires": { + "babel-code-frame": "6.22.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.25.0", + "babel-types": "6.25.0", + "babylon": "6.17.4", + "debug": "2.6.8", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.4" + } }, "babel-types": { "version": "6.25.0", "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.25.0.tgz", "integrity": "sha1-cK+ySNVmDl0Y+BHZHIMDtUE0oY4=", - "dev": true + "dev": true, + "requires": { + "babel-runtime": "6.25.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" + } }, "babylon": { "version": "6.17.4", @@ -573,13 +894,19 @@ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", "dev": true, - "optional": true + "optional": true, + "requires": { + "tweetnacl": "0.14.5" + } }, "better-assert": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", - "dev": true + "dev": true, + "requires": { + "callsite": "1.0.0" + } }, "big.js": { "version": "3.1.3", @@ -603,7 +930,10 @@ "version": "0.0.9", "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", - "dev": true + "dev": true, + "requires": { + "inherits": "2.0.3" + } }, "bluebird": { "version": "2.11.0", @@ -621,13 +951,24 @@ "version": "3.5.0", "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", - "dev": true + "dev": true, + "requires": { + "array-flatten": "2.1.1", + "deep-equal": "1.0.1", + "dns-equal": "1.0.0", + "dns-txt": "2.0.2", + "multicast-dns": "6.1.1", + "multicast-dns-service-types": "1.1.0" + } }, "boom": { "version": "2.10.1", "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", - "dev": true + "dev": true, + "requires": { + "hoek": "2.16.3" + } }, "bootstrap-sass": { "version": "3.3.7", @@ -639,13 +980,22 @@ "version": "1.1.8", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", - "dev": true + "dev": true, + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + } }, "braces": { "version": "1.8.5", "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "dev": true + "dev": true, + "requires": { + "expand-range": "1.8.2", + "preserve": "0.2.0", + "repeat-element": "1.1.2" + } }, "brorand": { "version": "1.1.0", @@ -657,67 +1007,147 @@ "version": "2.18.13", "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.18.13.tgz", "integrity": "sha512-qhdrmgshVGwweogT/bdOKkZDxVxqiF4+9mibaDeAxvDBeoUtdgABk5x7YQ1KCcLRchAfv8AVtp9NuITl5CTNqg==", - "dev": true + "dev": true, + "requires": { + "browser-sync-client": "2.5.1", + "browser-sync-ui": "0.6.3", + "bs-recipes": "1.3.4", + "chokidar": "1.7.0", + "connect": "3.5.0", + "dev-ip": "1.0.1", + "easy-extender": "2.3.2", + "eazy-logger": "3.0.2", + "emitter-steward": "1.0.0", + "fs-extra": "3.0.1", + "http-proxy": "1.15.2", + "immutable": "3.8.1", + "localtunnel": "1.8.3", + "micromatch": "2.3.11", + "opn": "4.0.2", + "portscanner": "2.1.1", + "qs": "6.2.1", + "resp-modifier": "6.0.2", + "rx": "4.1.0", + "serve-index": "1.8.0", + "serve-static": "1.12.2", + "server-destroy": "1.0.1", + "socket.io": "1.6.0", + "socket.io-client": "1.6.0", + "ua-parser-js": "0.7.12", + "yargs": "6.4.0" + } }, "browser-sync-client": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.5.1.tgz", "integrity": "sha1-7BrWmknC4tS2RbGLHAbCmz2a+Os=", - "dev": true + "dev": true, + "requires": { + "etag": "1.8.0", + "fresh": "0.3.0" + } }, "browser-sync-ui": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-0.6.3.tgz", "integrity": "sha1-ZApTfBgGiTA9W+krxHa568RBwLw=", - "dev": true + "dev": true, + "requires": { + "async-each-series": "0.1.1", + "connect-history-api-fallback": "1.3.0", + "immutable": "3.8.1", + "server-destroy": "1.0.1", + "stream-throttle": "0.1.3", + "weinre": "2.0.0-pre-I0Z7U9OV" + } }, "browser-sync-webpack-plugin": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/browser-sync-webpack-plugin/-/browser-sync-webpack-plugin-1.2.0.tgz", "integrity": "sha512-kPM7BjcZHRa5UjBIdyQbC4HoGprHoZpzlsPDb2P+UaCSmnjonLC3Z9vQBtSmJDghU0KuijkHZ/eLvKF1AyO7zg==", - "dev": true + "dev": true, + "requires": { + "lodash": "4.17.4" + } }, "browserify-aes": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.0.6.tgz", "integrity": "sha1-Xncl297x/Vkw1OurSFZ85FHEigo=", - "dev": true + "dev": true, + "requires": { + "buffer-xor": "1.0.3", + "cipher-base": "1.0.4", + "create-hash": "1.1.3", + "evp_bytestokey": "1.0.0", + "inherits": "2.0.3" + } }, "browserify-cipher": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz", "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=", - "dev": true + "dev": true, + "requires": { + "browserify-aes": "1.0.6", + "browserify-des": "1.0.0", + "evp_bytestokey": "1.0.0" + } }, "browserify-des": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz", "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=", - "dev": true + "dev": true, + "requires": { + "cipher-base": "1.0.4", + "des.js": "1.0.0", + "inherits": "2.0.3" + } }, "browserify-rsa": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", - "dev": true + "dev": true, + "requires": { + "bn.js": "4.11.7", + "randombytes": "2.0.5" + } }, "browserify-sign": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", - "dev": true + "dev": true, + "requires": { + "bn.js": "4.11.7", + "browserify-rsa": "4.0.1", + "create-hash": "1.1.3", + "create-hmac": "1.1.6", + "elliptic": "6.4.0", + "inherits": "2.0.3", + "parse-asn1": "5.1.0" + } }, "browserify-zlib": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=", - "dev": true + "dev": true, + "requires": { + "pako": "0.2.9" + } }, "browserslist": { "version": "1.7.7", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", - "dev": true + "dev": true, + "requires": { + "caniuse-db": "1.0.30000708", + "electron-to-chromium": "1.3.16" + } }, "bs-recipes": { "version": "1.3.4", @@ -729,7 +1159,12 @@ "version": "4.9.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", - "dev": true + "dev": true, + "requires": { + "base64-js": "1.2.1", + "ieee754": "1.1.8", + "isarray": "1.0.0" + } }, "buffer-indexof": { "version": "1.1.0", @@ -771,7 +1206,11 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", - "dev": true + "dev": true, + "requires": { + "no-case": "2.3.1", + "upper-case": "1.1.3" + } }, "camelcase": { "version": "1.2.1", @@ -784,6 +1223,10 @@ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", "dev": true, + "requires": { + "camelcase": "2.1.1", + "map-obj": "1.0.1" + }, "dependencies": { "camelcase": { "version": "2.1.1", @@ -803,7 +1246,11 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-1.0.0.tgz", "integrity": "sha1-UOIcGwqjdyn5N33vGWtanOyTLuk=", - "dev": true + "dev": true, + "requires": { + "ansicolors": "0.2.1", + "redeyed": "1.0.1" + } }, "caseless": { "version": "0.12.0", @@ -815,13 +1262,24 @@ "version": "0.1.3", "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", - "dev": true + "dev": true, + "requires": { + "align-text": "0.1.4", + "lazy-cache": "1.0.4" + } }, "chalk": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + }, "dependencies": { "supports-color": { "version": "2.0.0", @@ -841,37 +1299,67 @@ "version": "1.7.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", - "dev": true + "dev": true, + "requires": { + "anymatch": "1.3.2", + "async-each": "1.0.1", + "fsevents": "1.1.2", + "glob-parent": "2.0.0", + "inherits": "2.0.3", + "is-binary-path": "1.0.1", + "is-glob": "2.0.1", + "path-is-absolute": "1.0.1", + "readdirp": "2.1.0" + } }, "cipher-base": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true + "dev": true, + "requires": { + "inherits": "2.0.3", + "safe-buffer": "5.1.1" + } }, "clean-css": { "version": "4.1.7", "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.1.7.tgz", "integrity": "sha1-ua6k+FZ5iJzz6ui0A0nsTr390DI=", - "dev": true + "dev": true, + "requires": { + "source-map": "0.5.6" + } }, "cli-table": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz", "integrity": "sha1-9TsFJmqLGguTSz0IIebi3FkUriM=", - "dev": true + "dev": true, + "requires": { + "colors": "1.0.3" + } }, "cli-usage": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/cli-usage/-/cli-usage-0.1.4.tgz", "integrity": "sha1-fAHg3HBsI0s5yTODjI4gshdXduI=", - "dev": true + "dev": true, + "requires": { + "marked": "0.3.6", + "marked-terminal": "1.7.0" + } }, "cliui": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "dev": true + "dev": true, + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wrap-ansi": "2.1.0" + } }, "co": { "version": "4.6.0", @@ -895,7 +1383,10 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", - "dev": true + "dev": true, + "requires": { + "delayed-stream": "1.0.0" + } }, "commander": { "version": "2.11.0", @@ -931,13 +1422,25 @@ "version": "2.0.10", "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.10.tgz", "integrity": "sha1-/tocf3YXkScyspv4zyYlKiC57s0=", - "dev": true + "dev": true, + "requires": { + "mime-db": "1.29.0" + } }, "compression": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.0.tgz", "integrity": "sha1-AwyfGY8WQ6BX13anOOki2kNzAS0=", - "dev": true + "dev": true, + "requires": { + "accepts": "1.3.3", + "bytes": "2.5.0", + "compressible": "2.0.10", + "debug": "2.6.8", + "on-headers": "1.0.1", + "safe-buffer": "5.1.1", + "vary": "1.1.1" + } }, "concat-map": { "version": "0.0.1", @@ -949,25 +1452,41 @@ "version": "0.0.2", "resolved": "https://registry.npmjs.org/concatenate/-/concatenate-0.0.2.tgz", "integrity": "sha1-C0nW6MQQR9dyjNyNYqCGYjOXtJ8=", - "dev": true + "dev": true, + "requires": { + "globs": "0.1.3" + } }, "config-chain": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.11.tgz", "integrity": "sha1-q6CXR9++TD5w52am5BWG4YWfxvI=", - "dev": true + "dev": true, + "requires": { + "ini": "1.3.4", + "proto-list": "1.2.4" + } }, "connect": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/connect/-/connect-3.5.0.tgz", "integrity": "sha1-s1dSWgtMH1BZnNmD4dnv7qlncZg=", "dev": true, + "requires": { + "debug": "2.2.0", + "finalhandler": "0.5.0", + "parseurl": "1.3.1", + "utils-merge": "1.0.0" + }, "dependencies": { "debug": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", - "dev": true + "dev": true, + "requires": { + "ms": "0.7.1" + } }, "ms": { "version": "0.7.1", @@ -987,7 +1506,10 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", - "dev": true + "dev": true, + "requires": { + "date-now": "0.1.4" + } }, "console-control-strings": { "version": "1.1.0", @@ -1000,6 +1522,9 @@ "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.14.5.tgz", "integrity": "sha1-WiUEe8dvcwcmZ8jLUsmJiI9JTGM=", "dev": true, + "requires": { + "bluebird": "3.5.0" + }, "dependencies": { "bluebird": { "version": "3.5.0", @@ -1050,18 +1575,42 @@ "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.0.1.tgz", "integrity": "sha1-lyjjg7lDFgUNDHRjlY8rhcCqggA=", "dev": true, + "requires": { + "bluebird": "2.11.0", + "fs-extra": "0.26.7", + "glob": "6.0.4", + "is-glob": "3.1.0", + "loader-utils": "0.2.17", + "lodash": "4.17.4", + "minimatch": "3.0.4", + "node-dir": "0.1.17" + }, "dependencies": { "fs-extra": { "version": "0.26.7", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.26.7.tgz", "integrity": "sha1-muH92UiXeY7at20JGM9C0MMYT6k=", - "dev": true + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "2.4.0", + "klaw": "1.3.1", + "path-is-absolute": "1.0.1", + "rimraf": "2.6.1" + } }, "glob": { "version": "6.0.4", "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", - "dev": true + "dev": true, + "requires": { + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } }, "is-extglob": { "version": "2.1.1", @@ -1073,13 +1622,19 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } }, "jsonfile": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", - "dev": true + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } } } }, @@ -1100,6 +1655,15 @@ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-2.2.2.tgz", "integrity": "sha512-GiNXLwAFPYHy25XmTPpafYvn3CLAkJ8FLsscq78MQd1Kh0OU6Yzhn4eV2MVF4G9WEQZoWEGltatdR+ntGPMl5A==", "dev": true, + "requires": { + "is-directory": "0.3.1", + "js-yaml": "3.9.0", + "minimist": "1.2.0", + "object-assign": "4.1.1", + "os-homedir": "1.0.2", + "parse-json": "2.2.0", + "require-from-string": "1.2.1" + }, "dependencies": { "minimist": { "version": "1.2.0", @@ -1113,31 +1677,58 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz", "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=", - "dev": true + "dev": true, + "requires": { + "bn.js": "4.11.7", + "elliptic": "6.4.0" + } }, "create-hash": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz", "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=", - "dev": true + "dev": true, + "requires": { + "cipher-base": "1.0.4", + "inherits": "2.0.3", + "ripemd160": "2.0.1", + "sha.js": "2.4.8" + } }, "create-hmac": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz", "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=", - "dev": true + "dev": true, + "requires": { + "cipher-base": "1.0.4", + "create-hash": "1.1.3", + "inherits": "2.0.3", + "ripemd160": "2.0.1", + "safe-buffer": "5.1.1", + "sha.js": "2.4.8" + } }, "cross-env": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-3.2.4.tgz", "integrity": "sha1-ngWF8neGTtQhznVvgamA/w1piro=", - "dev": true + "dev": true, + "requires": { + "cross-spawn": "5.1.0", + "is-windows": "1.0.1" + } }, "cross-spawn": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "dev": true + "dev": true, + "requires": { + "lru-cache": "4.1.1", + "shebang-command": "1.2.0", + "which": "1.2.14" + } }, "crypt": { "version": "0.0.2", @@ -1149,25 +1740,49 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", - "dev": true + "dev": true, + "requires": { + "boom": "2.10.1" + } }, "crypto-browserify": { "version": "3.11.1", "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.11.1.tgz", "integrity": "sha512-Na7ZlwCOqoaW5RwUK1WpXws2kv8mNhWdTlzob0UXulk6G9BDbyiJaGTYBIX61Ozn9l1EPPJpICZb4DaOpT9NlQ==", - "dev": true + "dev": true, + "requires": { + "browserify-cipher": "1.0.0", + "browserify-sign": "4.0.4", + "create-ecdh": "4.0.0", + "create-hash": "1.1.3", + "create-hmac": "1.1.6", + "diffie-hellman": "5.0.2", + "inherits": "2.0.3", + "pbkdf2": "3.0.12", + "public-encrypt": "4.0.0", + "randombytes": "2.0.5" + } }, "css": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/css/-/css-2.2.1.tgz", "integrity": "sha1-c6TIHehdtmTU7mdPfUcIXjstVdw=", "dev": true, + "requires": { + "inherits": "2.0.3", + "source-map": "0.1.43", + "source-map-resolve": "0.3.1", + "urix": "0.1.0" + }, "dependencies": { "source-map": { "version": "0.1.43", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", - "dev": true + "dev": true, + "requires": { + "amdefine": "1.0.1" + } } } }, @@ -1176,24 +1791,40 @@ "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.14.5.tgz", "integrity": "sha1-1lY1tyrcSHrIGKLni1u5/spTUq0=", "dev": true, + "requires": { + "clean-css": "3.4.28", + "fastparse": "1.1.1", + "loader-utils": "0.2.17", + "source-list-map": "0.1.8" + }, "dependencies": { "clean-css": { "version": "3.4.28", "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-3.4.28.tgz", "integrity": "sha1-vxlF6C/ICPVWlebd6uwBQA79A/8=", - "dev": true + "dev": true, + "requires": { + "commander": "2.8.1", + "source-map": "0.4.4" + } }, "commander": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz", "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=", - "dev": true + "dev": true, + "requires": { + "graceful-readlink": "1.0.1" + } }, "source-map": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "dev": true + "dev": true, + "requires": { + "amdefine": "1.0.1" + } } } }, @@ -1201,13 +1832,19 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "dev": true + "dev": true, + "requires": { + "array-find-index": "1.0.2" + } }, "dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "dev": true, + "requires": { + "assert-plus": "1.0.0" + }, "dependencies": { "assert-plus": { "version": "1.0.0", @@ -1233,7 +1870,10 @@ "version": "2.6.8", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", - "dev": true + "dev": true, + "requires": { + "ms": "2.0.0" + } }, "decamelize": { "version": "1.2.0", @@ -1252,6 +1892,14 @@ "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz", "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", "dev": true, + "requires": { + "globby": "6.1.0", + "is-path-cwd": "1.0.0", + "is-path-in-cwd": "1.0.0", + "p-map": "1.1.1", + "pify": "3.0.0", + "rimraf": "2.6.1" + }, "dependencies": { "pify": { "version": "3.0.0", @@ -1283,7 +1931,11 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", - "dev": true + "dev": true, + "requires": { + "inherits": "2.0.3", + "minimalistic-assert": "1.0.0" + } }, "destroy": { "version": "1.0.4", @@ -1295,7 +1947,10 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", - "dev": true + "dev": true, + "requires": { + "repeating": "2.0.1" + } }, "detect-node": { "version": "2.0.3", @@ -1313,7 +1968,12 @@ "version": "5.0.2", "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz", "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=", - "dev": true + "dev": true, + "requires": { + "bn.js": "4.11.7", + "miller-rabin": "4.0.0", + "randombytes": "2.0.5" + } }, "dns-equal": { "version": "1.0.0", @@ -1325,13 +1985,20 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.1.1.tgz", "integrity": "sha1-I2nUUDivBF84mOb6VoYq7T9AKWw=", - "dev": true + "dev": true, + "requires": { + "ip": "1.1.5", + "safe-buffer": "5.1.1" + } }, "dns-txt": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", - "dev": true + "dev": true, + "requires": { + "buffer-indexof": "1.1.0" + } }, "domain-browser": { "version": "1.1.7", @@ -1344,6 +2011,9 @@ "resolved": "https://registry.npmjs.org/easy-extender/-/easy-extender-2.3.2.tgz", "integrity": "sha1-PTJI/r4rFZYHMW2PnPSRwWZIIh0=", "dev": true, + "requires": { + "lodash": "3.10.1" + }, "dependencies": { "lodash": { "version": "3.10.1", @@ -1357,20 +2027,32 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/eazy-logger/-/eazy-logger-3.0.2.tgz", "integrity": "sha1-oyWqXlPROiIliJsqxBE7K5Y29Pw=", - "dev": true + "dev": true, + "requires": { + "tfunk": "3.1.0" + } }, "ecc-jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", "dev": true, - "optional": true + "optional": true, + "requires": { + "jsbn": "0.1.1" + } }, "editorconfig": { "version": "0.13.2", "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-0.13.2.tgz", "integrity": "sha1-jleSbZ7mmrbLmZ8CfCFxRnrM6zU=", "dev": true, + "requires": { + "bluebird": "3.5.0", + "commander": "2.11.0", + "lru-cache": "3.2.0", + "sigmund": "1.0.1" + }, "dependencies": { "bluebird": { "version": "3.5.0", @@ -1382,7 +2064,10 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-3.2.0.tgz", "integrity": "sha1-cXibO39Tmb7IVl3aOKow0qCX7+4=", - "dev": true + "dev": true, + "requires": { + "pseudomap": "1.0.2" + } } } }, @@ -1402,7 +2087,16 @@ "version": "6.4.0", "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", - "dev": true + "dev": true, + "requires": { + "bn.js": "4.11.7", + "brorand": "1.1.0", + "hash.js": "1.1.3", + "hmac-drbg": "1.0.1", + "inherits": "2.0.3", + "minimalistic-assert": "1.0.0", + "minimalistic-crypto-utils": "1.0.1" + } }, "emitter-steward": { "version": "1.0.0", @@ -1427,12 +2121,23 @@ "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-1.8.0.tgz", "integrity": "sha1-PutfJky3XbvsG6rqJtYfWk6s4qo=", "dev": true, + "requires": { + "accepts": "1.3.3", + "base64id": "0.1.0", + "cookie": "0.3.1", + "debug": "2.3.3", + "engine.io-parser": "1.3.1", + "ws": "1.1.1" + }, "dependencies": { "debug": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", - "dev": true + "dev": true, + "requires": { + "ms": "0.7.2" + } }, "ms": { "version": "0.7.2", @@ -1447,6 +2152,20 @@ "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.8.0.tgz", "integrity": "sha1-e3MOQSdBQIdZbZvjyI0rxf22z1w=", "dev": true, + "requires": { + "component-emitter": "1.2.1", + "component-inherit": "0.0.3", + "debug": "2.3.3", + "engine.io-parser": "1.3.1", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "parsejson": "0.0.3", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "ws": "1.1.1", + "xmlhttprequest-ssl": "1.5.3", + "yeast": "0.1.2" + }, "dependencies": { "component-emitter": { "version": "1.2.1", @@ -1458,7 +2177,10 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", - "dev": true + "dev": true, + "requires": { + "ms": "0.7.2" + } }, "ms": { "version": "0.7.2", @@ -1473,12 +2195,23 @@ "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.3.1.tgz", "integrity": "sha1-lVTxrjMQfW+9FwylRm0vgz9qB88=", "dev": true, + "requires": { + "after": "0.8.1", + "arraybuffer.slice": "0.0.6", + "base64-arraybuffer": "0.1.5", + "blob": "0.0.4", + "has-binary": "0.1.6", + "wtf-8": "1.0.0" + }, "dependencies": { "has-binary": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/has-binary/-/has-binary-0.1.6.tgz", "integrity": "sha1-JTJvOc+k9hath4eJTjryz7x7bhA=", - "dev": true + "dev": true, + "requires": { + "isarray": "0.0.1" + } }, "isarray": { "version": "0.0.1", @@ -1492,31 +2225,50 @@ "version": "3.4.1", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz", "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=", - "dev": true + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "memory-fs": "0.4.1", + "object-assign": "4.1.1", + "tapable": "0.2.7" + } }, "errno": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz", "integrity": "sha1-uJbiOp5ei6M4cfyZar02NfyaHH0=", - "dev": true + "dev": true, + "requires": { + "prr": "0.0.0" + } }, "error-ex": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", - "dev": true + "dev": true, + "requires": { + "is-arrayish": "0.2.1" + } }, "error-stack-parser": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.1.tgz", "integrity": "sha1-oyArj7AxFKqbQKDjZp5IsrZaAQo=", - "dev": true + "dev": true, + "requires": { + "stackframe": "1.0.3" + } }, "es6-templates": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/es6-templates/-/es6-templates-0.2.3.tgz", "integrity": "sha1-XLmsn7He1usSOTQrgdeSu7QHjuQ=", - "dev": true + "dev": true, + "requires": { + "recast": "0.11.23", + "through": "2.3.8" + } }, "escape-html": { "version": "1.0.3", @@ -1564,37 +2316,60 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-0.1.6.tgz", "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=", - "dev": true + "dev": true, + "requires": { + "original": "1.0.0" + } }, "evp_bytestokey": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz", "integrity": "sha1-SXtmrZ/vZc18CKYYCCS6FHa2blM=", - "dev": true + "dev": true, + "requires": { + "create-hash": "1.1.3" + } }, "expand-brackets": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "dev": true + "dev": true, + "requires": { + "is-posix-bracket": "0.1.1" + } }, "expand-range": { "version": "1.8.2", "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", - "dev": true + "dev": true, + "requires": { + "fill-range": "2.2.3" + } }, "express": { "version": "2.5.11", "resolved": "https://registry.npmjs.org/express/-/express-2.5.11.tgz", "integrity": "sha1-TOjqHzY15p5J8Ou0l7aksKUc5vA=", "dev": true, + "requires": { + "connect": "1.9.2", + "mime": "1.2.4", + "mkdirp": "0.3.0", + "qs": "0.4.2" + }, "dependencies": { "connect": { "version": "1.9.2", "resolved": "https://registry.npmjs.org/connect/-/connect-1.9.2.tgz", "integrity": "sha1-QogKIulDiuWait105Df1iujlKAc=", - "dev": true + "dev": true, + "requires": { + "formidable": "1.0.17", + "mime": "1.2.4", + "qs": "0.4.2" + } }, "mkdirp": { "version": "0.3.0", @@ -1620,25 +2395,42 @@ "version": "0.3.2", "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "dev": true + "dev": true, + "requires": { + "is-extglob": "1.0.0" + } }, "extract-text-webpack-plugin": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/extract-text-webpack-plugin/-/extract-text-webpack-plugin-2.1.2.tgz", "integrity": "sha1-dW7076gVXDaBgz+8NNpTuUF0bWw=", "dev": true, + "requires": { + "async": "2.5.0", + "loader-utils": "1.1.0", + "schema-utils": "0.3.0", + "webpack-sources": "1.0.1" + }, "dependencies": { "async": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==", - "dev": true + "dev": true, + "requires": { + "lodash": "4.17.4" + } }, "loader-utils": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", - "dev": true + "dev": true, + "requires": { + "big.js": "3.1.3", + "emojis-list": "2.1.0", + "json5": "0.5.1" + } } } }, @@ -1664,13 +2456,19 @@ "version": "0.10.0", "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", - "dev": true + "dev": true, + "requires": { + "websocket-driver": "0.6.5" + } }, "file-loader": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-0.9.0.tgz", "integrity": "sha1-HS2t3UJM5tGwfP4/eXMb7TYXq0I=", - "dev": true + "dev": true, + "requires": { + "loader-utils": "0.2.17" + } }, "filename-regex": { "version": "2.0.1", @@ -1682,19 +2480,36 @@ "version": "2.2.3", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", - "dev": true + "dev": true, + "requires": { + "is-number": "2.1.0", + "isobject": "2.1.0", + "randomatic": "1.1.7", + "repeat-element": "1.1.2", + "repeat-string": "1.6.1" + } }, "finalhandler": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.5.0.tgz", "integrity": "sha1-6VCKvs6bbbqHGmlCodeRG5GRGsc=", "dev": true, + "requires": { + "debug": "2.2.0", + "escape-html": "1.0.3", + "on-finished": "2.3.0", + "statuses": "1.3.1", + "unpipe": "1.0.0" + }, "dependencies": { "debug": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", - "dev": true + "dev": true, + "requires": { + "ms": "0.7.1" + } }, "ms": { "version": "0.7.1", @@ -1708,13 +2523,22 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", - "dev": true + "dev": true, + "requires": { + "commondir": "1.0.1", + "mkdirp": "0.5.1", + "pkg-dir": "1.0.0" + } }, "find-up": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true + "dev": true, + "requires": { + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" + } }, "flatten": { "version": "1.0.2", @@ -1726,7 +2550,10 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.0.0.tgz", "integrity": "sha1-jjQpjL0uF28lTv/sdaHHjMhJ/Tc=", - "dev": true + "dev": true, + "requires": { + "debug": "2.6.8" + } }, "for-in": { "version": "1.0.2", @@ -1738,7 +2565,10 @@ "version": "0.1.5", "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", - "dev": true + "dev": true, + "requires": { + "for-in": "1.0.2" + } }, "forever-agent": { "version": "0.6.1", @@ -1750,7 +2580,12 @@ "version": "2.1.4", "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", - "dev": true + "dev": true, + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.16" + } }, "formidable": { "version": "1.0.17", @@ -1774,7 +2609,12 @@ "version": "1.6.1", "resolved": "https://registry.npmjs.org/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.6.1.tgz", "integrity": "sha1-4yeBxHIvVGoGqbXXp8+ihSA3XXA=", - "dev": true + "dev": true, + "requires": { + "chalk": "1.1.3", + "error-stack-parser": "2.0.1", + "string-length": "1.0.1" + } }, "fs": { "version": "0.0.1-security", @@ -1786,7 +2626,12 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz", "integrity": "sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=", - "dev": true + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "3.0.1", + "universalify": "0.1.1" + } }, "fs.realpath": { "version": "1.0.0", @@ -1800,6 +2645,10 @@ "integrity": "sha512-Sn44E5wQW4bTHXvQmvSHwqbuiXtduD6Rrjm2ZtUEGbyrig+nUH3t/QD4M4/ZXViY556TBpRgZkHLDx3JxPwxiw==", "dev": true, "optional": true, + "requires": { + "nan": "2.6.2", + "node-pre-gyp": "0.6.36" + }, "dependencies": { "abbrev": { "version": "1.1.0", @@ -1811,7 +2660,11 @@ "version": "4.11.8", "bundled": true, "dev": true, - "optional": true + "optional": true, + "requires": { + "co": "4.6.0", + "json-stable-stringify": "1.0.1" + } }, "ansi-regex": { "version": "2.1.1", @@ -1828,7 +2681,11 @@ "version": "1.1.4", "bundled": true, "dev": true, - "optional": true + "optional": true, + "requires": { + "delegates": "1.0.0", + "readable-stream": "2.2.9" + } }, "asn1": { "version": "0.2.3", @@ -1869,22 +2726,35 @@ "version": "1.0.1", "bundled": true, "dev": true, - "optional": true + "optional": true, + "requires": { + "tweetnacl": "0.14.5" + } }, "block-stream": { "version": "0.0.9", "bundled": true, - "dev": true + "dev": true, + "requires": { + "inherits": "2.0.3" + } }, "boom": { "version": "2.10.1", "bundled": true, - "dev": true + "dev": true, + "requires": { + "hoek": "2.16.3" + } }, "brace-expansion": { "version": "1.1.7", "bundled": true, - "dev": true + "dev": true, + "requires": { + "balanced-match": "0.4.2", + "concat-map": "0.0.1" + } }, "buffer-shims": { "version": "1.0.0", @@ -1911,7 +2781,10 @@ "combined-stream": { "version": "1.0.5", "bundled": true, - "dev": true + "dev": true, + "requires": { + "delayed-stream": "1.0.0" + } }, "concat-map": { "version": "0.0.1", @@ -1932,13 +2805,19 @@ "version": "2.0.5", "bundled": true, "dev": true, - "optional": true + "optional": true, + "requires": { + "boom": "2.10.1" + } }, "dashdash": { "version": "1.14.1", "bundled": true, "dev": true, "optional": true, + "requires": { + "assert-plus": "1.0.0" + }, "dependencies": { "assert-plus": { "version": "1.0.0", @@ -1952,7 +2831,10 @@ "version": "2.6.8", "bundled": true, "dev": true, - "optional": true + "optional": true, + "requires": { + "ms": "2.0.0" + } }, "deep-extend": { "version": "0.4.2", @@ -1975,7 +2857,10 @@ "version": "0.1.1", "bundled": true, "dev": true, - "optional": true + "optional": true, + "requires": { + "jsbn": "0.1.1" + } }, "extend": { "version": "3.0.1", @@ -1998,7 +2883,12 @@ "version": "2.1.4", "bundled": true, "dev": true, - "optional": true + "optional": true, + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.15" + } }, "fs.realpath": { "version": "1.0.0", @@ -2008,25 +2898,49 @@ "fstream": { "version": "1.0.11", "bundled": true, - "dev": true + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "inherits": "2.0.3", + "mkdirp": "0.5.1", + "rimraf": "2.6.1" + } }, "fstream-ignore": { "version": "1.0.5", "bundled": true, "dev": true, - "optional": true + "optional": true, + "requires": { + "fstream": "1.0.11", + "inherits": "2.0.3", + "minimatch": "3.0.4" + } }, "gauge": { "version": "2.7.4", "bundled": true, "dev": true, - "optional": true + "optional": true, + "requires": { + "aproba": "1.1.1", + "console-control-strings": "1.1.0", + "has-unicode": "2.0.1", + "object-assign": "4.1.1", + "signal-exit": "3.0.2", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wide-align": "1.1.2" + } }, "getpass": { "version": "0.1.7", "bundled": true, "dev": true, "optional": true, + "requires": { + "assert-plus": "1.0.0" + }, "dependencies": { "assert-plus": { "version": "1.0.0", @@ -2039,7 +2953,15 @@ "glob": { "version": "7.1.2", "bundled": true, - "dev": true + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } }, "graceful-fs": { "version": "4.1.11", @@ -2056,7 +2978,11 @@ "version": "4.2.1", "bundled": true, "dev": true, - "optional": true + "optional": true, + "requires": { + "ajv": "4.11.8", + "har-schema": "1.0.5" + } }, "has-unicode": { "version": "2.0.1", @@ -2068,7 +2994,13 @@ "version": "3.1.3", "bundled": true, "dev": true, - "optional": true + "optional": true, + "requires": { + "boom": "2.10.1", + "cryptiles": "2.0.5", + "hoek": "2.16.3", + "sntp": "1.0.9" + } }, "hoek": { "version": "2.16.3", @@ -2079,12 +3011,21 @@ "version": "1.1.1", "bundled": true, "dev": true, - "optional": true + "optional": true, + "requires": { + "assert-plus": "0.2.0", + "jsprim": "1.4.0", + "sshpk": "1.13.0" + } }, "inflight": { "version": "1.0.6", "bundled": true, - "dev": true + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } }, "inherits": { "version": "2.0.3", @@ -2100,7 +3041,10 @@ "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, - "dev": true + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } }, "is-typedarray": { "version": "1.0.0", @@ -2123,7 +3067,10 @@ "version": "1.0.2", "bundled": true, "dev": true, - "optional": true + "optional": true, + "requires": { + "jsbn": "0.1.1" + } }, "jsbn": { "version": "0.1.1", @@ -2141,7 +3088,10 @@ "version": "1.0.1", "bundled": true, "dev": true, - "optional": true + "optional": true, + "requires": { + "jsonify": "0.0.0" + } }, "json-stringify-safe": { "version": "5.0.1", @@ -2160,6 +3110,12 @@ "bundled": true, "dev": true, "optional": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.0.2", + "json-schema": "0.2.3", + "verror": "1.3.6" + }, "dependencies": { "assert-plus": { "version": "1.0.0", @@ -2177,12 +3133,18 @@ "mime-types": { "version": "2.1.15", "bundled": true, - "dev": true + "dev": true, + "requires": { + "mime-db": "1.27.0" + } }, "minimatch": { "version": "3.0.4", "bundled": true, - "dev": true + "dev": true, + "requires": { + "brace-expansion": "1.1.7" + } }, "minimist": { "version": "0.0.8", @@ -2192,7 +3154,10 @@ "mkdirp": { "version": "0.5.1", "bundled": true, - "dev": true + "dev": true, + "requires": { + "minimist": "0.0.8" + } }, "ms": { "version": "2.0.0", @@ -2204,19 +3169,40 @@ "version": "0.6.36", "bundled": true, "dev": true, - "optional": true + "optional": true, + "requires": { + "mkdirp": "0.5.1", + "nopt": "4.0.1", + "npmlog": "4.1.0", + "rc": "1.2.1", + "request": "2.81.0", + "rimraf": "2.6.1", + "semver": "5.3.0", + "tar": "2.2.1", + "tar-pack": "3.4.0" + } }, "nopt": { "version": "4.0.1", "bundled": true, "dev": true, - "optional": true + "optional": true, + "requires": { + "abbrev": "1.1.0", + "osenv": "0.1.4" + } }, "npmlog": { "version": "4.1.0", "bundled": true, "dev": true, - "optional": true + "optional": true, + "requires": { + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" + } }, "number-is-nan": { "version": "1.0.1", @@ -2238,7 +3224,10 @@ "once": { "version": "1.4.0", "bundled": true, - "dev": true + "dev": true, + "requires": { + "wrappy": "1.0.2" + } }, "os-homedir": { "version": "1.0.2", @@ -2256,7 +3245,11 @@ "version": "0.1.4", "bundled": true, "dev": true, - "optional": true + "optional": true, + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } }, "path-is-absolute": { "version": "1.0.1", @@ -2291,6 +3284,12 @@ "bundled": true, "dev": true, "optional": true, + "requires": { + "deep-extend": "0.4.2", + "ini": "1.3.4", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" + }, "dependencies": { "minimist": { "version": "1.2.0", @@ -2303,18 +3302,54 @@ "readable-stream": { "version": "2.2.9", "bundled": true, - "dev": true + "dev": true, + "requires": { + "buffer-shims": "1.0.0", + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "string_decoder": "1.0.1", + "util-deprecate": "1.0.2" + } }, "request": { "version": "2.81.0", "bundled": true, "dev": true, - "optional": true + "optional": true, + "requires": { + "aws-sign2": "0.6.0", + "aws4": "1.6.0", + "caseless": "0.12.0", + "combined-stream": "1.0.5", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.1.4", + "har-validator": "4.2.1", + "hawk": "3.1.3", + "http-signature": "1.1.1", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.15", + "oauth-sign": "0.8.2", + "performance-now": "0.2.0", + "qs": "6.4.0", + "safe-buffer": "5.0.1", + "stringstream": "0.0.5", + "tough-cookie": "2.3.2", + "tunnel-agent": "0.6.0", + "uuid": "3.0.1" + } }, "rimraf": { "version": "2.6.1", "bundled": true, - "dev": true + "dev": true, + "requires": { + "glob": "7.1.2" + } }, "safe-buffer": { "version": "5.0.1", @@ -2343,13 +3378,27 @@ "version": "1.0.9", "bundled": true, "dev": true, - "optional": true + "optional": true, + "requires": { + "hoek": "2.16.3" + } }, "sshpk": { "version": "1.13.0", "bundled": true, "dev": true, "optional": true, + "requires": { + "asn1": "0.2.3", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.1", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.1", + "getpass": "0.1.7", + "jodid25519": "1.0.2", + "jsbn": "0.1.1", + "tweetnacl": "0.14.5" + }, "dependencies": { "assert-plus": { "version": "1.0.0", @@ -2362,12 +3411,20 @@ "string-width": { "version": "1.0.2", "bundled": true, - "dev": true + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } }, "string_decoder": { "version": "1.0.1", "bundled": true, - "dev": true + "dev": true, + "requires": { + "safe-buffer": "5.0.1" + } }, "stringstream": { "version": "0.0.5", @@ -2378,7 +3435,10 @@ "strip-ansi": { "version": "3.0.1", "bundled": true, - "dev": true + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } }, "strip-json-comments": { "version": "2.0.1", @@ -2389,25 +3449,46 @@ "tar": { "version": "2.2.1", "bundled": true, - "dev": true + "dev": true, + "requires": { + "block-stream": "0.0.9", + "fstream": "1.0.11", + "inherits": "2.0.3" + } }, "tar-pack": { "version": "3.4.0", "bundled": true, "dev": true, - "optional": true + "optional": true, + "requires": { + "debug": "2.6.8", + "fstream": "1.0.11", + "fstream-ignore": "1.0.5", + "once": "1.4.0", + "readable-stream": "2.2.9", + "rimraf": "2.6.1", + "tar": "2.2.1", + "uid-number": "0.0.6" + } }, "tough-cookie": { "version": "2.3.2", "bundled": true, "dev": true, - "optional": true + "optional": true, + "requires": { + "punycode": "1.4.1" + } }, "tunnel-agent": { "version": "0.6.0", "bundled": true, "dev": true, - "optional": true + "optional": true, + "requires": { + "safe-buffer": "5.0.1" + } }, "tweetnacl": { "version": "0.14.5", @@ -2436,13 +3517,19 @@ "version": "1.3.6", "bundled": true, "dev": true, - "optional": true + "optional": true, + "requires": { + "extsprintf": "1.0.2" + } }, "wide-align": { "version": "1.1.2", "bundled": true, "dev": true, - "optional": true + "optional": true, + "requires": { + "string-width": "1.0.2" + } }, "wrappy": { "version": "1.0.2", @@ -2455,19 +3542,38 @@ "version": "1.0.11", "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", - "dev": true + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "inherits": "2.0.3", + "mkdirp": "0.5.1", + "rimraf": "2.6.1" + } }, "gauge": { "version": "2.7.4", "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "dev": true + "dev": true, + "requires": { + "aproba": "1.1.2", + "console-control-strings": "1.1.0", + "has-unicode": "2.0.1", + "object-assign": "4.1.1", + "signal-exit": "3.0.2", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wide-align": "1.1.2" + } }, "gaze": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.2.tgz", "integrity": "sha1-hHIkZ3rbiHDWeSV+0ziP22HkAQU=", - "dev": true + "dev": true, + "requires": { + "globule": "1.2.0" + } }, "get-caller-file": { "version": "1.0.2", @@ -2486,6 +3592,9 @@ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "dev": true, + "requires": { + "assert-plus": "1.0.0" + }, "dependencies": { "assert-plus": { "version": "1.0.0", @@ -2499,19 +3608,34 @@ "version": "7.1.2", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } }, "glob-base": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", - "dev": true + "dev": true, + "requires": { + "glob-parent": "2.0.0", + "is-glob": "2.0.1" + } }, "glob-parent": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", - "dev": true + "dev": true, + "requires": { + "is-glob": "2.0.1" + } }, "globals": { "version": "9.18.0", @@ -2523,19 +3647,34 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", - "dev": true + "dev": true, + "requires": { + "array-union": "1.0.2", + "glob": "7.1.2", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + } }, "globs": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/globs/-/globs-0.1.3.tgz", "integrity": "sha1-ZwA3ElKHy2VJqtlqRM+mhP18VQI=", - "dev": true + "dev": true, + "requires": { + "glob": "7.1.2" + } }, "globule": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.0.tgz", "integrity": "sha1-HcScaCLdnoovoAuiopUAboZkvQk=", - "dev": true + "dev": true, + "requires": { + "glob": "7.1.2", + "lodash": "4.17.4", + "minimatch": "3.0.4" + } }, "graceful-fs": { "version": "4.1.11", @@ -2571,19 +3710,29 @@ "version": "4.2.1", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", - "dev": true + "dev": true, + "requires": { + "ajv": "4.11.8", + "har-schema": "1.0.5" + } }, "has-ansi": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } }, "has-binary": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/has-binary/-/has-binary-0.1.7.tgz", "integrity": "sha1-aOYesWIQyVRaClzOBqhzkS/h5ow=", "dev": true, + "requires": { + "isarray": "0.0.1" + }, "dependencies": { "isarray": { "version": "0.0.1", @@ -2615,7 +3764,10 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz", "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=", - "dev": true + "dev": true, + "requires": { + "inherits": "2.0.3" + } }, "hash-sum": { "version": "1.0.2", @@ -2627,13 +3779,23 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", - "dev": true + "dev": true, + "requires": { + "inherits": "2.0.3", + "minimalistic-assert": "1.0.0" + } }, "hawk": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", - "dev": true + "dev": true, + "requires": { + "boom": "2.10.1", + "cryptiles": "2.0.5", + "hoek": "2.16.3", + "sntp": "1.0.9" + } }, "he": { "version": "1.1.1", @@ -2645,7 +3807,12 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true + "dev": true, + "requires": { + "hash.js": "1.1.3", + "minimalistic-assert": "1.0.0", + "minimalistic-crypto-utils": "1.0.1" + } }, "hoek": { "version": "2.16.3", @@ -2657,7 +3824,11 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", - "dev": true + "dev": true, + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } }, "hosted-git-info": { "version": "2.5.0", @@ -2669,7 +3840,13 @@ "version": "2.1.6", "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", - "dev": true + "dev": true, + "requires": { + "inherits": "2.0.3", + "obuf": "1.1.1", + "readable-stream": "2.3.3", + "wbuf": "1.7.2" + } }, "html-entities": { "version": "1.2.1", @@ -2682,12 +3859,24 @@ "resolved": "https://registry.npmjs.org/html-loader/-/html-loader-0.4.5.tgz", "integrity": "sha1-X7zYfNY6XEmn/OL+VvQl4Fcpxow=", "dev": true, + "requires": { + "es6-templates": "0.2.3", + "fastparse": "1.1.1", + "html-minifier": "3.5.3", + "loader-utils": "1.1.0", + "object-assign": "4.1.1" + }, "dependencies": { "loader-utils": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", - "dev": true + "dev": true, + "requires": { + "big.js": "3.1.3", + "emojis-list": "2.1.0", + "json5": "0.5.1" + } } } }, @@ -2696,12 +3885,26 @@ "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.3.tgz", "integrity": "sha512-iKRzQQDuTCsq0Ultbi/mfJJnR0D3AdZKTq966Gsp92xkmAPCV4Xi08qhJ0Dl3ZAWemSgJ7qZK+UsZc0gFqK6wg==", "dev": true, + "requires": { + "camel-case": "3.0.0", + "clean-css": "4.1.7", + "commander": "2.11.0", + "he": "1.1.1", + "ncname": "1.0.0", + "param-case": "2.1.1", + "relateurl": "0.2.7", + "uglify-js": "3.0.26" + }, "dependencies": { "uglify-js": { "version": "3.0.26", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.0.26.tgz", "integrity": "sha512-+D/BjzuvT1oRMSkH0fuF3M/BCvDxDywmZasd1UTPPHsdsHZqJEAZSvrojgFlS7lrM3ZZWq5h7Bb5i96X1TbOJw==", - "dev": true + "dev": true, + "requires": { + "commander": "2.11.0", + "source-map": "0.5.6" + } } } }, @@ -2715,25 +3918,44 @@ "version": "1.5.1", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.5.1.tgz", "integrity": "sha1-eIwNLB3iyBuebowBhDtrl+uSB1A=", - "dev": true + "dev": true, + "requires": { + "inherits": "2.0.3", + "setprototypeof": "1.0.2", + "statuses": "1.3.1" + } }, "http-proxy": { "version": "1.15.2", "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.15.2.tgz", "integrity": "sha1-ZC/cr/5S00SNK9o7AHnpQJBk2jE=", - "dev": true + "dev": true, + "requires": { + "eventemitter3": "1.2.0", + "requires-port": "1.0.0" + } }, "http-proxy-middleware": { "version": "0.17.4", "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz", "integrity": "sha1-ZC6ISIUdZvCdTxJJEoRtuutBuDM=", "dev": true, + "requires": { + "http-proxy": "1.16.2", + "is-glob": "3.1.0", + "lodash": "4.17.4", + "micromatch": "2.3.11" + }, "dependencies": { "http-proxy": { "version": "1.16.2", "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.16.2.tgz", "integrity": "sha1-Bt/ykpUr9k2+hHH6nfcwZtTzd0I=", - "dev": true + "dev": true, + "requires": { + "eventemitter3": "1.2.0", + "requires-port": "1.0.0" + } }, "is-extglob": { "version": "2.1.1", @@ -2745,7 +3967,10 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } } } }, @@ -2753,7 +3978,12 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", - "dev": true + "dev": true, + "requires": { + "assert-plus": "0.2.0", + "jsprim": "1.4.0", + "sshpk": "1.13.1" + } }, "https-browserify": { "version": "0.0.1", @@ -2790,7 +4020,10 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "dev": true + "dev": true, + "requires": { + "repeating": "2.0.1" + } }, "indexes-of": { "version": "1.0.1", @@ -2808,7 +4041,11 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } }, "inherits": { "version": "2.0.3", @@ -2826,7 +4063,10 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-1.2.0.tgz", "integrity": "sha1-rp+/k7mEh4eF1QqN4bNWlWBYz1w=", - "dev": true + "dev": true, + "requires": { + "meow": "3.7.0" + } }, "interpret": { "version": "1.0.3", @@ -2838,7 +4078,10 @@ "version": "2.2.2", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", - "dev": true + "dev": true, + "requires": { + "loose-envify": "1.3.1" + } }, "invert-kv": { "version": "1.0.0", @@ -2868,7 +4111,10 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true + "dev": true, + "requires": { + "binary-extensions": "1.9.0" + } }, "is-buffer": { "version": "1.1.5", @@ -2880,7 +4126,10 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", - "dev": true + "dev": true, + "requires": { + "builtin-modules": "1.1.1" + } }, "is-directory": { "version": "0.3.1", @@ -2898,7 +4147,10 @@ "version": "0.1.3", "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", - "dev": true + "dev": true, + "requires": { + "is-primitive": "2.0.0" + } }, "is-extendable": { "version": "0.1.1", @@ -2916,31 +4168,46 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", - "dev": true + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } }, "is-fullwidth-code-point": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } }, "is-glob": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true + "dev": true, + "requires": { + "is-extglob": "1.0.0" + } }, "is-number": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", - "dev": true + "dev": true, + "requires": { + "kind-of": "3.2.2" + } }, "is-number-like": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/is-number-like/-/is-number-like-1.0.8.tgz", "integrity": "sha512-6rZi3ezCyFcn5L71ywzz2bS5b2Igl1En3eTlZlvKjpz1n3IZLAYMbKYAIQgFmEu0GENg92ziU/faEOA/aixjbA==", - "dev": true + "dev": true, + "requires": { + "lodash.isfinite": "3.3.2" + } }, "is-path-cwd": { "version": "1.0.0", @@ -2952,13 +4219,19 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz", "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=", - "dev": true + "dev": true, + "requires": { + "is-path-inside": "1.0.0" + } }, "is-path-inside": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz", "integrity": "sha1-/AbloWg/vaE95mev9xe7wQpI838=", - "dev": true + "dev": true, + "requires": { + "path-is-inside": "1.0.2" + } }, "is-posix-bracket": { "version": "0.1.1", @@ -3006,7 +4279,10 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true + "dev": true, + "requires": { + "isarray": "1.0.0" + } }, "isstream": { "version": "0.1.2", @@ -3030,7 +4306,13 @@ "version": "1.6.14", "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.6.14.tgz", "integrity": "sha1-07j3Mi0CuSd9WL0jgmTDJ+WARM0=", - "dev": true + "dev": true, + "requires": { + "config-chain": "1.1.11", + "editorconfig": "0.13.2", + "mkdirp": "0.5.1", + "nopt": "3.0.6" + } }, "js-tokens": { "version": "3.0.2", @@ -3043,6 +4325,10 @@ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.9.0.tgz", "integrity": "sha512-0LoUNELX4S+iofCT8f4uEHIiRBR+c2AINyC8qRWfC6QNruLtxVZRJaPcu/xwMgFIgDxF25tGHaDjvxzJCNE9yw==", "dev": true, + "requires": { + "argparse": "1.0.9", + "esprima": "4.0.0" + }, "dependencies": { "esprima": { "version": "4.0.0", @@ -3087,7 +4373,10 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", - "dev": true + "dev": true, + "requires": { + "jsonify": "0.0.0" + } }, "json-stringify-safe": { "version": "5.0.1", @@ -3111,7 +4400,10 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=", - "dev": true + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } }, "jsonify": { "version": "0.0.0", @@ -3124,6 +4416,12 @@ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz", "integrity": "sha1-o7h+QCmNjDgFUtjMdiigu5WiKRg=", "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.0.2", + "json-schema": "0.2.3", + "verror": "1.3.6" + }, "dependencies": { "assert-plus": { "version": "1.0.0", @@ -3137,19 +4435,65 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true + "dev": true, + "requires": { + "is-buffer": "1.1.5" + } }, "klaw": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", - "dev": true + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } }, "laravel-mix": { "version": "0.8.9", "resolved": "https://registry.npmjs.org/laravel-mix/-/laravel-mix-0.8.9.tgz", "integrity": "sha1-1Pva7hfBYZNbMOdNzEVSA30OFow=", - "dev": true + "dev": true, + "requires": { + "autoprefixer": "6.7.7", + "babel-core": "6.25.0", + "babel-loader": "6.4.1", + "babel-preset-es2015": "6.24.1", + "browser-sync": "2.18.13", + "browser-sync-webpack-plugin": "1.2.0", + "chokidar": "1.7.0", + "clean-css": "4.1.7", + "concatenate": "0.0.2", + "copy-webpack-plugin": "4.0.1", + "cross-env": "3.2.4", + "css-loader": "0.14.5", + "extract-text-webpack-plugin": "2.1.2", + "file-loader": "0.9.0", + "friendly-errors-webpack-plugin": "1.6.1", + "fs": "0.0.1-security", + "html-loader": "0.4.5", + "less": "2.7.2", + "less-loader": "2.2.3", + "lodash": "4.17.4", + "mkdirp": "0.5.1", + "node-sass": "4.5.3", + "on-build-webpack": "0.1.0", + "path": "0.12.7", + "postcss-load-config": "1.2.0", + "postcss-loader": "1.3.3", + "raw-loader": "0.5.1", + "resolve-url-loader": "1.6.1", + "sass-loader": "5.0.1", + "style-loader": "0.13.2", + "uglify-js": "2.8.29", + "vue-loader": "10.3.0", + "vue-template-compiler": "2.4.2", + "webpack": "2.7.0", + "webpack-dev-server": "2.6.1", + "webpack-md5-hash": "0.0.5", + "webpack-notifier": "1.5.0", + "webpack-stats-plugin": "0.1.5" + } }, "lazy-cache": { "version": "1.0.4", @@ -3161,13 +4505,26 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "dev": true + "dev": true, + "requires": { + "invert-kv": "1.0.0" + } }, "less": { "version": "2.7.2", "resolved": "https://registry.npmjs.org/less/-/less-2.7.2.tgz", "integrity": "sha1-No1sxz4fsDmBGDKAkYdDxdz5s98=", "dev": true, + "requires": { + "errno": "0.1.4", + "graceful-fs": "4.1.11", + "image-size": "0.5.5", + "mime": "1.3.6", + "mkdirp": "0.5.1", + "promise": "7.3.1", + "request": "2.81.0", + "source-map": "0.5.6" + }, "dependencies": { "mime": { "version": "1.3.6", @@ -3182,7 +4539,10 @@ "version": "2.2.3", "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-2.2.3.tgz", "integrity": "sha1-ttj4E5yEk98J2ZKpOgBzSwj4RSg=", - "dev": true + "dev": true, + "requires": { + "loader-utils": "0.2.17" + } }, "limiter": { "version": "1.1.2", @@ -3194,7 +4554,14 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "strip-bom": "2.0.0" + } }, "loader-runner": { "version": "2.3.0", @@ -3206,19 +4573,39 @@ "version": "0.2.17", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", - "dev": true + "dev": true, + "requires": { + "big.js": "3.1.3", + "emojis-list": "2.1.0", + "json5": "0.5.1", + "object-assign": "4.1.1" + } }, "localtunnel": { "version": "1.8.3", "resolved": "https://registry.npmjs.org/localtunnel/-/localtunnel-1.8.3.tgz", "integrity": "sha1-3MWSL9hWUQN9S94k/ZMkjQsk6wU=", "dev": true, + "requires": { + "debug": "2.6.8", + "openurl": "1.1.1", + "request": "2.81.0", + "yargs": "3.29.0" + }, "dependencies": { "yargs": { "version": "3.29.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.29.0.tgz", "integrity": "sha1-GquWYOrnnYuPZ1vK7qtu40ws9pw=", - "dev": true + "dev": true, + "requires": { + "camelcase": "1.2.1", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "os-locale": "1.4.0", + "window-size": "0.1.4", + "y18n": "3.2.1" + } } } }, @@ -3244,13 +4631,25 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz", "integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=", - "dev": true + "dev": true, + "requires": { + "lodash._basecopy": "3.0.1", + "lodash.keys": "3.1.2" + } }, "lodash._baseclone": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/lodash._baseclone/-/lodash._baseclone-3.3.0.tgz", "integrity": "sha1-MDUZv2OT/n5C802LYw73eU41Qrc=", - "dev": true + "dev": true, + "requires": { + "lodash._arraycopy": "3.0.0", + "lodash._arrayeach": "3.0.0", + "lodash._baseassign": "3.2.0", + "lodash._basefor": "3.0.3", + "lodash.isarray": "3.0.4", + "lodash.keys": "3.1.2" + } }, "lodash._basecopy": { "version": "3.0.1", @@ -3274,7 +4673,12 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz", "integrity": "sha1-g4pbri/aymOsIt7o4Z+k5taXCxE=", - "dev": true + "dev": true, + "requires": { + "lodash._bindcallback": "3.0.1", + "lodash._isiterateecall": "3.0.9", + "lodash.restparam": "3.6.1" + } }, "lodash._getnative": { "version": "3.9.1", @@ -3305,12 +4709,21 @@ "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-3.1.2.tgz", "integrity": "sha1-xzCLGNv4vJNy1wGnNJPGEZK9Liw=", "dev": true, + "requires": { + "lodash.assign": "3.2.0", + "lodash.restparam": "3.6.1" + }, "dependencies": { "lodash.assign": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-3.2.0.tgz", "integrity": "sha1-POnwI0tLIiPilrj6CsH+6OvKZPo=", - "dev": true + "dev": true, + "requires": { + "lodash._baseassign": "3.2.0", + "lodash._createassigner": "3.1.1", + "lodash.keys": "3.1.2" + } } } }, @@ -3336,7 +4749,12 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", - "dev": true + "dev": true, + "requires": { + "lodash._getnative": "3.9.1", + "lodash.isarguments": "3.1.0", + "lodash.isarray": "3.0.4" + } }, "lodash.mergewith": { "version": "4.6.0", @@ -3378,13 +4796,20 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", - "dev": true + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } }, "loud-rejection": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "dev": true + "dev": true, + "requires": { + "currently-unhandled": "0.4.1", + "signal-exit": "3.0.2" + } }, "lower-case": { "version": "1.1.4", @@ -3396,7 +4821,11 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", - "dev": true + "dev": true, + "requires": { + "pseudomap": "1.0.2", + "yallist": "2.1.2" + } }, "map-obj": { "version": "1.0.1", @@ -3414,13 +4843,25 @@ "version": "1.7.0", "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-1.7.0.tgz", "integrity": "sha1-yMRgiBx3LHYEtkNnAH7l938SWQQ=", - "dev": true + "dev": true, + "requires": { + "cardinal": "1.0.0", + "chalk": "1.1.3", + "cli-table": "0.3.1", + "lodash.assign": "4.2.0", + "node-emoji": "1.8.1" + } }, "md5": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz", "integrity": "sha1-U6s41f48iJG6RlMp6iP6wFQBJvk=", - "dev": true + "dev": true, + "requires": { + "charenc": "0.0.2", + "crypt": "0.0.2", + "is-buffer": "1.1.5" + } }, "media-typer": { "version": "0.3.0", @@ -3432,13 +4873,29 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "dev": true + "dev": true, + "requires": { + "errno": "0.1.4", + "readable-stream": "2.3.3" + } }, "meow": { "version": "3.7.0", "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", "dev": true, + "requires": { + "camelcase-keys": "2.1.0", + "decamelize": "1.2.0", + "loud-rejection": "1.6.0", + "map-obj": "1.0.1", + "minimist": "1.2.0", + "normalize-package-data": "2.4.0", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "redent": "1.0.0", + "trim-newlines": "1.0.0" + }, "dependencies": { "minimist": { "version": "1.2.0", @@ -3464,13 +4921,32 @@ "version": "2.3.11", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "dev": true + "dev": true, + "requires": { + "arr-diff": "2.0.0", + "array-unique": "0.2.1", + "braces": "1.8.5", + "expand-brackets": "0.1.5", + "extglob": "0.3.2", + "filename-regex": "2.0.1", + "is-extglob": "1.0.0", + "is-glob": "2.0.1", + "kind-of": "3.2.2", + "normalize-path": "2.1.1", + "object.omit": "2.0.1", + "parse-glob": "3.0.4", + "regex-cache": "0.4.3" + } }, "miller-rabin": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.0.tgz", "integrity": "sha1-SmL7HUKTPAVYOYL0xxb2+55sbT0=", - "dev": true + "dev": true, + "requires": { + "bn.js": "4.11.7", + "brorand": "1.1.0" + } }, "mime": { "version": "1.2.4", @@ -3488,7 +4964,10 @@ "version": "2.1.16", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.16.tgz", "integrity": "sha1-K4WKUuXs1RbbiXrCvodIeDBpjiM=", - "dev": true + "dev": true, + "requires": { + "mime-db": "1.29.0" + } }, "minimalistic-assert": { "version": "1.0.0", @@ -3506,7 +4985,10 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true + "dev": true, + "requires": { + "brace-expansion": "1.1.8" + } }, "minimist": { "version": "0.0.8", @@ -3518,7 +5000,10 @@ "version": "0.5.1", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true + "dev": true, + "requires": { + "minimist": "0.0.8" + } }, "ms": { "version": "2.0.0", @@ -3530,7 +5015,11 @@ "version": "6.1.1", "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.1.1.tgz", "integrity": "sha1-bn3oalcIcqsXBYrepxYLvsqBTd4=", - "dev": true + "dev": true, + "requires": { + "dns-packet": "1.1.1", + "thunky": "0.1.0" + } }, "multicast-dns-service-types": { "version": "1.1.0", @@ -3548,7 +5037,10 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/ncname/-/ncname-1.0.0.tgz", "integrity": "sha1-W1etGLHKCShk72Kwse2BlPODtxw=", - "dev": true + "dev": true, + "requires": { + "xml-char-classes": "1.0.0" + } }, "negotiator": { "version": "0.6.1", @@ -3560,19 +5052,28 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.1.tgz", "integrity": "sha1-euuhxzpSGEJlVUt9wDuvcg34AIE=", - "dev": true + "dev": true, + "requires": { + "lower-case": "1.1.4" + } }, "node-dir": { "version": "0.1.17", "resolved": "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz", "integrity": "sha1-X1Zl2TNRM1yqvvjxxVRRbPXx5OU=", - "dev": true + "dev": true, + "requires": { + "minimatch": "3.0.4" + } }, "node-emoji": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.8.1.tgz", "integrity": "sha512-+ktMAh1Jwas+TnGodfCfjUbJKoANqPaJFN0z0iqh41eqD8dvguNzcitVSBSVK1pidz0AqGbLKcoVuVLRVZ/aVg==", - "dev": true + "dev": true, + "requires": { + "lodash.toarray": "4.4.0" + } }, "node-forge": { "version": "0.6.33", @@ -3585,6 +5086,21 @@ "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.6.2.tgz", "integrity": "sha1-m/vlRWIoYoSDjnUOrAUpWFP6HGA=", "dev": true, + "requires": { + "fstream": "1.0.11", + "glob": "7.1.2", + "graceful-fs": "4.1.11", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "nopt": "3.0.6", + "npmlog": "4.1.2", + "osenv": "0.1.4", + "request": "2.81.0", + "rimraf": "2.6.1", + "semver": "5.3.0", + "tar": "2.2.1", + "which": "1.2.14" + }, "dependencies": { "semver": { "version": "5.3.0", @@ -3599,6 +5115,31 @@ "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.0.0.tgz", "integrity": "sha1-o6WeyXAkmFtG6Vg3lkb5bEthZkY=", "dev": true, + "requires": { + "assert": "1.4.1", + "browserify-zlib": "0.1.4", + "buffer": "4.9.1", + "console-browserify": "1.1.0", + "constants-browserify": "1.0.0", + "crypto-browserify": "3.11.1", + "domain-browser": "1.1.7", + "events": "1.1.1", + "https-browserify": "0.0.1", + "os-browserify": "0.2.1", + "path-browserify": "0.0.0", + "process": "0.11.10", + "punycode": "1.4.1", + "querystring-es3": "0.2.1", + "readable-stream": "2.3.3", + "stream-browserify": "2.0.1", + "stream-http": "2.7.2", + "string_decoder": "0.10.31", + "timers-browserify": "2.0.2", + "tty-browserify": "0.0.0", + "url": "0.11.0", + "util": "0.10.3", + "vm-browserify": "0.0.4" + }, "dependencies": { "string_decoder": { "version": "0.10.31", @@ -3613,12 +5154,25 @@ "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-4.6.1.tgz", "integrity": "sha1-BW0UJE89zBzq3+aK+c/wxUc6M/M=", "dev": true, + "requires": { + "cli-usage": "0.1.4", + "growly": "1.3.0", + "lodash.clonedeep": "3.0.2", + "minimist": "1.2.0", + "semver": "5.4.1", + "shellwords": "0.1.0", + "which": "1.2.14" + }, "dependencies": { "lodash.clonedeep": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-3.0.2.tgz", "integrity": "sha1-oKHkDYKl6on/WxR7hETtY9koJ9s=", - "dev": true + "dev": true, + "requires": { + "lodash._baseclone": "3.3.0", + "lodash._bindcallback": "3.0.1" + } }, "minimist": { "version": "1.2.0", @@ -3633,12 +5187,36 @@ "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.5.3.tgz", "integrity": "sha1-0JydEXlkEjnRuX/8YjH9zsU+FWg=", "dev": true, + "requires": { + "async-foreach": "0.1.3", + "chalk": "1.1.3", + "cross-spawn": "3.0.1", + "gaze": "1.1.2", + "get-stdin": "4.0.1", + "glob": "7.1.2", + "in-publish": "2.0.0", + "lodash.assign": "4.2.0", + "lodash.clonedeep": "4.5.0", + "lodash.mergewith": "4.6.0", + "meow": "3.7.0", + "mkdirp": "0.5.1", + "nan": "2.6.2", + "node-gyp": "3.6.2", + "npmlog": "4.1.2", + "request": "2.81.0", + "sass-graph": "2.2.4", + "stdout-stream": "1.4.0" + }, "dependencies": { "cross-spawn": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", - "dev": true + "dev": true, + "requires": { + "lru-cache": "4.1.1", + "which": "1.2.14" + } } } }, @@ -3646,19 +5224,31 @@ "version": "3.0.6", "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "dev": true + "dev": true, + "requires": { + "abbrev": "1.1.0" + } }, "normalize-package-data": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", - "dev": true + "dev": true, + "requires": { + "hosted-git-info": "2.5.0", + "is-builtin-module": "1.0.0", + "semver": "5.4.1", + "validate-npm-package-license": "3.0.1" + } }, "normalize-path": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true + "dev": true, + "requires": { + "remove-trailing-separator": "1.0.2" + } }, "normalize-range": { "version": "0.1.2", @@ -3670,7 +5260,13 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "dev": true + "dev": true, + "requires": { + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" + } }, "num2fraction": { "version": "1.2.2", @@ -3712,7 +5308,11 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", - "dev": true + "dev": true, + "requires": { + "for-own": "0.1.5", + "is-extendable": "0.1.1" + } }, "obuf": { "version": "1.1.1", @@ -3730,7 +5330,10 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dev": true + "dev": true, + "requires": { + "ee-first": "1.1.1" + } }, "on-headers": { "version": "1.0.1", @@ -3742,7 +5345,10 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true + "dev": true, + "requires": { + "wrappy": "1.0.2" + } }, "openurl": { "version": "1.1.1", @@ -3754,7 +5360,11 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/opn/-/opn-4.0.2.tgz", "integrity": "sha1-erwi5kTf9jsKltWrfyeQwPAavJU=", - "dev": true + "dev": true, + "requires": { + "object-assign": "4.1.1", + "pinkie-promise": "2.0.1" + } }, "options": { "version": "0.0.6", @@ -3767,12 +5377,19 @@ "resolved": "https://registry.npmjs.org/original/-/original-1.0.0.tgz", "integrity": "sha1-kUf5P6FpbQS+YeAb1QuurKZWvTs=", "dev": true, + "requires": { + "url-parse": "1.0.5" + }, "dependencies": { "url-parse": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.0.5.tgz", "integrity": "sha1-CFSGBCKv3P7+tsllxmLUgAFpkns=", - "dev": true + "dev": true, + "requires": { + "querystringify": "0.0.4", + "requires-port": "1.0.0" + } } } }, @@ -3792,7 +5409,10 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", - "dev": true + "dev": true, + "requires": { + "lcid": "1.0.0" + } }, "os-tmpdir": { "version": "1.0.2", @@ -3804,7 +5424,11 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", - "dev": true + "dev": true, + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } }, "p-map": { "version": "1.1.1", @@ -3822,43 +5446,71 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", - "dev": true + "dev": true, + "requires": { + "no-case": "2.3.1" + } }, "parse-asn1": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz", "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=", - "dev": true + "dev": true, + "requires": { + "asn1.js": "4.9.1", + "browserify-aes": "1.0.6", + "create-hash": "1.1.3", + "evp_bytestokey": "1.0.0", + "pbkdf2": "3.0.12" + } }, "parse-glob": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", - "dev": true + "dev": true, + "requires": { + "glob-base": "0.3.0", + "is-dotfile": "1.0.3", + "is-extglob": "1.0.0", + "is-glob": "2.0.1" + } }, "parse-json": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true + "dev": true, + "requires": { + "error-ex": "1.3.1" + } }, "parsejson": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/parsejson/-/parsejson-0.0.3.tgz", "integrity": "sha1-q343WfIJ7OmUN5c/fQ8fZK4OZKs=", - "dev": true + "dev": true, + "requires": { + "better-assert": "1.0.2" + } }, "parseqs": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", - "dev": true + "dev": true, + "requires": { + "better-assert": "1.0.2" + } }, "parseuri": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", - "dev": true + "dev": true, + "requires": { + "better-assert": "1.0.2" + } }, "parseurl": { "version": "1.3.1", @@ -3870,7 +5522,11 @@ "version": "0.12.7", "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz", "integrity": "sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8=", - "dev": true + "dev": true, + "requires": { + "process": "0.11.10", + "util": "0.10.3" + } }, "path-browserify": { "version": "0.0.0", @@ -3882,7 +5538,10 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true + "dev": true, + "requires": { + "pinkie-promise": "2.0.1" + } }, "path-is-absolute": { "version": "1.0.1", @@ -3906,13 +5565,25 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + } }, "pbkdf2": { "version": "3.0.12", "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.12.tgz", "integrity": "sha1-vjZ4XFBn6kjYBv+SMojF91C2uKI=", - "dev": true + "dev": true, + "requires": { + "create-hash": "1.1.3", + "create-hmac": "1.1.6", + "ripemd160": "2.0.1", + "safe-buffer": "5.1.1", + "sha.js": "2.4.8" + } }, "performance-now": { "version": "0.2.0", @@ -3936,61 +5607,107 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true + "dev": true, + "requires": { + "pinkie": "2.0.4" + } }, "pkg-dir": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", - "dev": true + "dev": true, + "requires": { + "find-up": "1.1.2" + } }, "portfinder": { "version": "1.0.13", "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.13.tgz", "integrity": "sha1-uzLs2HwnEErm7kS1o8y/Drsa7ek=", - "dev": true + "dev": true, + "requires": { + "async": "1.5.2", + "debug": "2.6.8", + "mkdirp": "0.5.1" + } }, "portscanner": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/portscanner/-/portscanner-2.1.1.tgz", "integrity": "sha1-6rtAnk3iSVD1oqUW01rnaTQ/u5Y=", - "dev": true + "dev": true, + "requires": { + "async": "1.5.2", + "is-number-like": "1.0.8" + } }, "postcss": { "version": "5.2.17", "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=", - "dev": true + "dev": true, + "requires": { + "chalk": "1.1.3", + "js-base64": "2.1.9", + "source-map": "0.5.6", + "supports-color": "3.2.3" + } }, "postcss-load-config": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-1.2.0.tgz", "integrity": "sha1-U56a/J3chiASHr+djDZz4M5Q0oo=", - "dev": true + "dev": true, + "requires": { + "cosmiconfig": "2.2.2", + "object-assign": "4.1.1", + "postcss-load-options": "1.2.0", + "postcss-load-plugins": "2.3.0" + } }, "postcss-load-options": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/postcss-load-options/-/postcss-load-options-1.2.0.tgz", "integrity": "sha1-sJixVZ3awt8EvAuzdfmaXP4rbYw=", - "dev": true + "dev": true, + "requires": { + "cosmiconfig": "2.2.2", + "object-assign": "4.1.1" + } }, "postcss-load-plugins": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/postcss-load-plugins/-/postcss-load-plugins-2.3.0.tgz", "integrity": "sha1-dFdoEWWZrKLwCfrUJrABdQSdjZI=", - "dev": true + "dev": true, + "requires": { + "cosmiconfig": "2.2.2", + "object-assign": "4.1.1" + } }, "postcss-loader": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-1.3.3.tgz", "integrity": "sha1-piHqH6KQYqg5cqRvVEhncTAZFus=", "dev": true, + "requires": { + "loader-utils": "1.1.0", + "object-assign": "4.1.1", + "postcss": "5.2.17", + "postcss-load-config": "1.2.0" + }, "dependencies": { "loader-utils": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", - "dev": true + "dev": true, + "requires": { + "big.js": "3.1.3", + "emojis-list": "2.1.0", + "json5": "0.5.1" + } } } }, @@ -3998,7 +5715,12 @@ "version": "2.2.3", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz", "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=", - "dev": true + "dev": true, + "requires": { + "flatten": "1.0.2", + "indexes-of": "1.0.1", + "uniq": "1.0.1" + } }, "postcss-value-parser": { "version": "3.3.0", @@ -4035,7 +5757,10 @@ "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", "dev": true, - "optional": true + "optional": true, + "requires": { + "asap": "2.0.6" + } }, "proto-list": { "version": "1.2.4", @@ -4047,7 +5772,11 @@ "version": "1.1.5", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.1.5.tgz", "integrity": "sha1-ccDuOxAt4/IC87ZPYI0XP8uhqRg=", - "dev": true + "dev": true, + "requires": { + "forwarded": "0.1.0", + "ipaddr.js": "1.4.0" + } }, "prr": { "version": "0.0.0", @@ -4065,7 +5794,14 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz", "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=", - "dev": true + "dev": true, + "requires": { + "bn.js": "4.11.7", + "browserify-rsa": "4.0.1", + "create-hash": "1.1.3", + "parse-asn1": "5.1.0", + "randombytes": "2.0.5" + } }, "punycode": { "version": "1.4.1", @@ -4102,18 +5838,28 @@ "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", "dev": true, + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, "dependencies": { "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, + "requires": { + "kind-of": "3.2.2" + }, "dependencies": { "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true + "dev": true, + "requires": { + "is-buffer": "1.1.5" + } } } }, @@ -4121,7 +5867,10 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true + "dev": true, + "requires": { + "is-buffer": "1.1.5" + } } } }, @@ -4129,7 +5878,10 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.5.tgz", "integrity": "sha512-8T7Zn1AhMsQ/HI1SjcCfT/t4ii3eAqco3yOcSzS4mozsOz69lHLsoMXmF9nZgnFanYscnSlUSgs8uZyKzpE6kg==", - "dev": true + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } }, "range-parser": { "version": "1.2.0", @@ -4147,43 +5899,80 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true + "dev": true, + "requires": { + "load-json-file": "1.1.0", + "normalize-package-data": "2.4.0", + "path-type": "1.1.0" + } }, "read-pkg-up": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true + "dev": true, + "requires": { + "find-up": "1.1.2", + "read-pkg": "1.1.0" + } }, "readable-stream": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", - "dev": true + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "safe-buffer": "5.1.1", + "string_decoder": "1.0.3", + "util-deprecate": "1.0.2" + } }, "readdirp": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", - "dev": true + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "minimatch": "3.0.4", + "readable-stream": "2.3.3", + "set-immediate-shim": "1.0.1" + } }, "recast": { "version": "0.11.23", "resolved": "https://registry.npmjs.org/recast/-/recast-0.11.23.tgz", "integrity": "sha1-RR/TAEqx5N+bTktmN2sqIZEkYtM=", - "dev": true + "dev": true, + "requires": { + "ast-types": "0.9.6", + "esprima": "3.1.3", + "private": "0.1.7", + "source-map": "0.5.6" + } }, "redent": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", - "dev": true + "dev": true, + "requires": { + "indent-string": "2.1.0", + "strip-indent": "1.0.1" + } }, "redeyed": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-1.0.1.tgz", "integrity": "sha1-6WwZO0DAgWsArshCaY5hGF5VSYo=", "dev": true, + "requires": { + "esprima": "3.0.0" + }, "dependencies": { "esprima": { "version": "3.0.0", @@ -4209,19 +5998,33 @@ "version": "0.9.11", "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.9.11.tgz", "integrity": "sha1-On0GdSDLe3F2dp61/4aGkb7+EoM=", - "dev": true + "dev": true, + "requires": { + "babel-runtime": "6.25.0", + "babel-types": "6.25.0", + "private": "0.1.7" + } }, "regex-cache": { "version": "0.4.3", "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz", "integrity": "sha1-mxpsNdTQ3871cRrmUejp09cRQUU=", - "dev": true + "dev": true, + "requires": { + "is-equal-shallow": "0.1.3", + "is-primitive": "2.0.0" + } }, "regexpu-core": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", - "dev": true + "dev": true, + "requires": { + "regenerate": "1.3.2", + "regjsgen": "0.2.0", + "regjsparser": "0.1.5" + } }, "regjsgen": { "version": "0.2.0", @@ -4234,6 +6037,9 @@ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", "dev": true, + "requires": { + "jsesc": "0.5.0" + }, "dependencies": { "jsesc": { "version": "0.5.0", @@ -4271,13 +6077,40 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "dev": true + "dev": true, + "requires": { + "is-finite": "1.0.2" + } }, "request": { "version": "2.81.0", "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", "dev": true, + "requires": { + "aws-sign2": "0.6.0", + "aws4": "1.6.0", + "caseless": "0.12.0", + "combined-stream": "1.0.5", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.1.4", + "har-validator": "4.2.1", + "hawk": "3.1.3", + "http-signature": "1.1.1", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.16", + "oauth-sign": "0.8.2", + "performance-now": "0.2.0", + "qs": "6.4.0", + "safe-buffer": "5.1.1", + "stringstream": "0.0.5", + "tough-cookie": "2.3.2", + "tunnel-agent": "0.6.0", + "uuid": "3.1.0" + }, "dependencies": { "qs": { "version": "6.4.0", @@ -4322,12 +6155,25 @@ "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-1.6.1.tgz", "integrity": "sha1-Sm4Dx03TjV393w9AS0ddbpACVjU=", "dev": true, + "requires": { + "camelcase": "1.2.1", + "convert-source-map": "1.5.0", + "loader-utils": "0.2.17", + "lodash.defaults": "3.1.2", + "rework": "1.0.1", + "rework-visit": "1.0.0", + "source-map": "0.1.43", + "urix": "0.1.0" + }, "dependencies": { "source-map": { "version": "0.1.43", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", - "dev": true + "dev": true, + "requires": { + "amdefine": "1.0.1" + } } } }, @@ -4335,13 +6181,21 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/resp-modifier/-/resp-modifier-6.0.2.tgz", "integrity": "sha1-sSTeXE+6/LpUH0j/pzlw9KpFa08=", - "dev": true + "dev": true, + "requires": { + "debug": "2.6.8", + "minimatch": "3.0.4" + } }, "rework": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/rework/-/rework-1.0.1.tgz", "integrity": "sha1-MIBqhBNCtUUQqkEQhQzUhTQUSqc=", "dev": true, + "requires": { + "convert-source-map": "0.3.5", + "css": "2.2.1" + }, "dependencies": { "convert-source-map": { "version": "0.3.5", @@ -4361,19 +6215,29 @@ "version": "0.1.3", "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", - "dev": true + "dev": true, + "requires": { + "align-text": "0.1.4" + } }, "rimraf": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", - "dev": true + "dev": true, + "requires": { + "glob": "7.1.2" + } }, "ripemd160": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz", "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=", - "dev": true + "dev": true, + "requires": { + "hash-base": "2.0.2", + "inherits": "2.0.3" + } }, "rx": { "version": "4.1.0", @@ -4392,6 +6256,12 @@ "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", "dev": true, + "requires": { + "glob": "7.1.2", + "lodash": "4.17.4", + "scss-tokenizer": "0.2.3", + "yargs": "7.1.0" + }, "dependencies": { "camelcase": { "version": "3.0.0", @@ -4403,13 +6273,31 @@ "version": "7.1.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", - "dev": true + "dev": true, + "requires": { + "camelcase": "3.0.0", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "get-caller-file": "1.0.2", + "os-locale": "1.4.0", + "read-pkg-up": "1.0.1", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "1.0.2", + "which-module": "1.0.0", + "y18n": "3.2.1", + "yargs-parser": "5.0.0" + } }, "yargs-parser": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", - "dev": true + "dev": true, + "requires": { + "camelcase": "3.0.0" + } } } }, @@ -4418,12 +6306,21 @@ "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-5.0.1.tgz", "integrity": "sha1-SqgvRCQqvmLtj9zSjWMxo07yfC0=", "dev": true, + "requires": { + "async": "2.5.0", + "loader-utils": "0.2.17", + "lodash.tail": "4.1.1", + "pify": "2.3.0" + }, "dependencies": { "async": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==", - "dev": true + "dev": true, + "requires": { + "lodash": "4.17.4" + } } } }, @@ -4432,12 +6329,21 @@ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", "dev": true, + "requires": { + "ajv": "5.2.2" + }, "dependencies": { "ajv": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.2.2.tgz", "integrity": "sha1-R8aNaehvXZUxA7AHSpQw3GPaXjk=", - "dev": true + "dev": true, + "requires": { + "co": "4.6.0", + "fast-deep-equal": "1.0.0", + "json-schema-traverse": "0.3.1", + "json-stable-stringify": "1.0.1" + } } } }, @@ -4446,12 +6352,19 @@ "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", "dev": true, + "requires": { + "js-base64": "2.1.9", + "source-map": "0.4.4" + }, "dependencies": { "source-map": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "dev": true + "dev": true, + "requires": { + "amdefine": "1.0.1" + } } } }, @@ -4465,7 +6378,10 @@ "version": "1.9.1", "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.9.1.tgz", "integrity": "sha1-zdpEktcNSGVw+HxlVGAjVY4d+lo=", - "dev": true + "dev": true, + "requires": { + "node-forge": "0.6.33" + } }, "semver": { "version": "5.4.1", @@ -4478,12 +6394,30 @@ "resolved": "https://registry.npmjs.org/send/-/send-0.15.2.tgz", "integrity": "sha1-+R+rRAO8+H5xb3DOtdsvV4vcF9Y=", "dev": true, + "requires": { + "debug": "2.6.4", + "depd": "1.1.0", + "destroy": "1.0.4", + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "etag": "1.8.0", + "fresh": "0.5.0", + "http-errors": "1.6.1", + "mime": "1.3.4", + "ms": "1.0.0", + "on-finished": "2.3.0", + "range-parser": "1.2.0", + "statuses": "1.3.1" + }, "dependencies": { "debug": { "version": "2.6.4", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.4.tgz", "integrity": "sha1-dYaps8OXQcAoKuM0RcTorHRzT+A=", "dev": true, + "requires": { + "ms": "0.7.3" + }, "dependencies": { "ms": { "version": "0.7.3", @@ -4503,7 +6437,13 @@ "version": "1.6.1", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.1.tgz", "integrity": "sha1-X4uO2YrKVFZWv1cplzh/kEpyIlc=", - "dev": true + "dev": true, + "requires": { + "depd": "1.1.0", + "inherits": "2.0.3", + "setprototypeof": "1.0.3", + "statuses": "1.3.1" + } }, "mime": { "version": "1.3.4", @@ -4530,12 +6470,24 @@ "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.8.0.tgz", "integrity": "sha1-fF2WwT+xMRAfk8HFd0+FFqHnjTs=", "dev": true, + "requires": { + "accepts": "1.3.3", + "batch": "0.5.3", + "debug": "2.2.0", + "escape-html": "1.0.3", + "http-errors": "1.5.1", + "mime-types": "2.1.16", + "parseurl": "1.3.1" + }, "dependencies": { "debug": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", - "dev": true + "dev": true, + "requires": { + "ms": "0.7.1" + } }, "ms": { "version": "0.7.1", @@ -4549,7 +6501,13 @@ "version": "1.12.2", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.12.2.tgz", "integrity": "sha1-5UbicmCBuBtLzsjpCAjrzdMjr7o=", - "dev": true + "dev": true, + "requires": { + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "parseurl": "1.3.1", + "send": "0.15.2" + } }, "server-destroy": { "version": "1.0.1", @@ -4585,13 +6543,19 @@ "version": "2.4.8", "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.8.tgz", "integrity": "sha1-NwaMLEdra69ALRSknGf1l5IfY08=", - "dev": true + "dev": true, + "requires": { + "inherits": "2.0.3" + } }, "shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true + "dev": true, + "requires": { + "shebang-regex": "1.0.0" + } }, "shebang-regex": { "version": "1.0.0", @@ -4627,19 +6591,34 @@ "version": "1.0.9", "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", - "dev": true + "dev": true, + "requires": { + "hoek": "2.16.3" + } }, "socket.io": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-1.6.0.tgz", "integrity": "sha1-PkDZMmN+a9kjmBslyvfFPoO24uE=", "dev": true, + "requires": { + "debug": "2.3.3", + "engine.io": "1.8.0", + "has-binary": "0.1.7", + "object-assign": "4.1.0", + "socket.io-adapter": "0.5.0", + "socket.io-client": "1.6.0", + "socket.io-parser": "2.3.1" + }, "dependencies": { "debug": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", - "dev": true + "dev": true, + "requires": { + "ms": "0.7.2" + } }, "ms": { "version": "0.7.2", @@ -4660,12 +6639,19 @@ "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-0.5.0.tgz", "integrity": "sha1-y21LuL7IHhB4uZZ3+c7QBGBmu4s=", "dev": true, + "requires": { + "debug": "2.3.3", + "socket.io-parser": "2.3.1" + }, "dependencies": { "debug": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", - "dev": true + "dev": true, + "requires": { + "ms": "0.7.2" + } }, "ms": { "version": "0.7.2", @@ -4680,6 +6666,19 @@ "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.6.0.tgz", "integrity": "sha1-W2aPT3cTBN/u0XkGRwg4b6ZxeFM=", "dev": true, + "requires": { + "backo2": "1.0.2", + "component-bind": "1.0.0", + "component-emitter": "1.2.1", + "debug": "2.3.3", + "engine.io-client": "1.8.0", + "has-binary": "0.1.7", + "indexof": "0.0.1", + "object-component": "0.0.3", + "parseuri": "0.0.5", + "socket.io-parser": "2.3.1", + "to-array": "0.1.4" + }, "dependencies": { "component-emitter": { "version": "1.2.1", @@ -4691,7 +6690,10 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", - "dev": true + "dev": true, + "requires": { + "ms": "0.7.2" + } }, "ms": { "version": "0.7.2", @@ -4706,12 +6708,21 @@ "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.3.1.tgz", "integrity": "sha1-3VMgJRA85Clpcya+/WQAX8/ltKA=", "dev": true, + "requires": { + "component-emitter": "1.1.2", + "debug": "2.2.0", + "isarray": "0.0.1", + "json3": "3.3.2" + }, "dependencies": { "debug": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", - "dev": true + "dev": true, + "requires": { + "ms": "0.7.1" + } }, "isarray": { "version": "0.0.1", @@ -4732,6 +6743,10 @@ "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.18.tgz", "integrity": "sha1-2bKJMWyn33dZXvKZ4HXw+TfrQgc=", "dev": true, + "requires": { + "faye-websocket": "0.10.0", + "uuid": "2.0.3" + }, "dependencies": { "uuid": { "version": "2.0.3", @@ -4746,12 +6761,23 @@ "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.4.tgz", "integrity": "sha1-W6vjhrd15M8U51IJEUUmVAFsixI=", "dev": true, + "requires": { + "debug": "2.6.8", + "eventsource": "0.1.6", + "faye-websocket": "0.11.1", + "inherits": "2.0.3", + "json3": "3.3.2", + "url-parse": "1.1.9" + }, "dependencies": { "faye-websocket": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.1.tgz", "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=", - "dev": true + "dev": true, + "requires": { + "websocket-driver": "0.6.5" + } } } }, @@ -4771,13 +6797,22 @@ "version": "0.3.1", "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.3.1.tgz", "integrity": "sha1-YQ9hIqRFuN1RU1oqcbeD38Ekh2E=", - "dev": true + "dev": true, + "requires": { + "atob": "1.1.3", + "resolve-url": "0.2.1", + "source-map-url": "0.3.0", + "urix": "0.1.0" + } }, "source-map-support": { "version": "0.4.15", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.15.tgz", "integrity": "sha1-AyAt9lwG0r2MfsI2KhkwVv7407E=", - "dev": true + "dev": true, + "requires": { + "source-map": "0.5.6" + } }, "source-map-url": { "version": "0.3.0", @@ -4789,7 +6824,10 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", - "dev": true + "dev": true, + "requires": { + "spdx-license-ids": "1.2.2" + } }, "spdx-expression-parse": { "version": "1.0.4", @@ -4807,13 +6845,30 @@ "version": "3.4.7", "resolved": "https://registry.npmjs.org/spdy/-/spdy-3.4.7.tgz", "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=", - "dev": true + "dev": true, + "requires": { + "debug": "2.6.8", + "handle-thing": "1.2.5", + "http-deceiver": "1.2.7", + "safe-buffer": "5.1.1", + "select-hose": "2.0.0", + "spdy-transport": "2.0.20" + } }, "spdy-transport": { "version": "2.0.20", "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-2.0.20.tgz", "integrity": "sha1-c15yBUxIayNU/onnAiVgBKOazk0=", - "dev": true + "dev": true, + "requires": { + "debug": "2.6.8", + "detect-node": "2.0.3", + "hpack.js": "2.1.6", + "obuf": "1.1.1", + "readable-stream": "2.3.3", + "safe-buffer": "5.1.1", + "wbuf": "1.7.2" + } }, "sprintf-js": { "version": "1.0.3", @@ -4826,6 +6881,16 @@ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", "dev": true, + "requires": { + "asn1": "0.2.3", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.1", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.1", + "getpass": "0.1.7", + "jsbn": "0.1.1", + "tweetnacl": "0.14.5" + }, "dependencies": { "assert-plus": { "version": "1.0.0", @@ -4851,43 +6916,72 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.0.tgz", "integrity": "sha1-osfIWH5U2UJ+qe2zrD8s1SLfN4s=", - "dev": true + "dev": true, + "requires": { + "readable-stream": "2.3.3" + } }, "stream-browserify": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", - "dev": true + "dev": true, + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.3" + } }, "stream-http": { "version": "2.7.2", "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.7.2.tgz", "integrity": "sha512-c0yTD2rbQzXtSsFSVhtpvY/vS6u066PcXOX9kBB3mSO76RiUQzL340uJkGBWnlBg4/HZzqiUXtaVA7wcRcJgEw==", - "dev": true + "dev": true, + "requires": { + "builtin-status-codes": "3.0.0", + "inherits": "2.0.3", + "readable-stream": "2.3.3", + "to-arraybuffer": "1.0.1", + "xtend": "4.0.1" + } }, "stream-throttle": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/stream-throttle/-/stream-throttle-0.1.3.tgz", "integrity": "sha1-rdV8jXzHOoFjDTHNVdOWHPr7qcM=", - "dev": true + "dev": true, + "requires": { + "commander": "2.11.0", + "limiter": "1.1.2" + } }, "string-length": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/string-length/-/string-length-1.0.1.tgz", "integrity": "sha1-VpcPscOFWOnnC3KL894mmsRa36w=", - "dev": true + "dev": true, + "requires": { + "strip-ansi": "3.0.1" + } }, "string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } }, "string_decoder": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", - "dev": true + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } }, "stringstream": { "version": "0.0.5", @@ -4899,31 +6993,48 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } }, "strip-bom": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true + "dev": true, + "requires": { + "is-utf8": "0.2.1" + } }, "strip-indent": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", - "dev": true + "dev": true, + "requires": { + "get-stdin": "4.0.1" + } }, "style-loader": { "version": "0.13.2", "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.13.2.tgz", "integrity": "sha1-dFMzhM9pjHEEx5URULSXF63C87s=", "dev": true, + "requires": { + "loader-utils": "1.1.0" + }, "dependencies": { "loader-utils": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", - "dev": true + "dev": true, + "requires": { + "big.js": "3.1.3", + "emojis-list": "2.1.0", + "json5": "0.5.1" + } } } }, @@ -4931,7 +7042,10 @@ "version": "3.2.3", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true + "dev": true, + "requires": { + "has-flag": "1.0.0" + } }, "tapable": { "version": "0.2.7", @@ -4943,13 +7057,22 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", - "dev": true + "dev": true, + "requires": { + "block-stream": "0.0.9", + "fstream": "1.0.11", + "inherits": "2.0.3" + } }, "tfunk": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/tfunk/-/tfunk-3.1.0.tgz", "integrity": "sha1-OORBT8ZJd9h6/apy+sttKfgve1s=", - "dev": true + "dev": true, + "requires": { + "chalk": "1.1.3", + "object-path": "0.9.2" + } }, "through": { "version": "2.3.8", @@ -4967,7 +7090,10 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.2.tgz", "integrity": "sha1-q0iDz1l9zVCvIRNJoA+8pWrIa4Y=", - "dev": true + "dev": true, + "requires": { + "setimmediate": "1.0.5" + } }, "to-array": { "version": "0.1.4", @@ -4991,7 +7117,10 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", - "dev": true + "dev": true, + "requires": { + "punycode": "1.4.1" + } }, "trim-newlines": { "version": "1.0.0", @@ -5015,7 +7144,10 @@ "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } }, "tweetnacl": { "version": "0.14.5", @@ -5028,7 +7160,11 @@ "version": "1.6.15", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz", "integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=", - "dev": true + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "2.1.16" + } }, "ua-parser-js": { "version": "0.7.12", @@ -5041,12 +7177,22 @@ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", "dev": true, + "requires": { + "source-map": "0.5.6", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" + }, "dependencies": { "cliui": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", - "dev": true + "dev": true, + "requires": { + "center-align": "0.1.3", + "right-align": "0.1.3", + "wordwrap": "0.0.2" + } }, "window-size": { "version": "0.1.0", @@ -5058,7 +7204,13 @@ "version": "3.10.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", - "dev": true + "dev": true, + "requires": { + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", + "window-size": "0.1.0" + } } } }, @@ -5116,6 +7268,10 @@ "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", "dev": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, "dependencies": { "punycode": { "version": "1.3.2", @@ -5130,6 +7286,10 @@ "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.1.9.tgz", "integrity": "sha1-xn8dd11R8KGJEd17P/rSe7nlvRk=", "dev": true, + "requires": { + "querystringify": "1.0.0", + "requires-port": "1.0.0" + }, "dependencies": { "querystringify": { "version": "1.0.0", @@ -5144,6 +7304,9 @@ "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", "dev": true, + "requires": { + "inherits": "2.0.1" + }, "dependencies": { "inherits": { "version": "2.0.1", @@ -5175,7 +7338,11 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", - "dev": true + "dev": true, + "requires": { + "spdx-correct": "1.0.2", + "spdx-expression-parse": "1.0.4" + } }, "vary": { "version": "1.1.1", @@ -5187,13 +7354,19 @@ "version": "1.3.6", "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=", - "dev": true + "dev": true, + "requires": { + "extsprintf": "1.0.2" + } }, "vm-browserify": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", - "dev": true + "dev": true, + "requires": { + "indexof": "0.0.1" + } }, "vue": { "version": "2.4.2", @@ -5211,19 +7384,41 @@ "version": "10.3.0", "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-10.3.0.tgz", "integrity": "sha1-Q2Qhc26a0PHEgTMDJ8N2lj24ahk=", - "dev": true + "dev": true, + "requires": { + "consolidate": "0.14.5", + "hash-sum": "1.0.2", + "js-beautify": "1.6.14", + "loader-utils": "0.2.17", + "lru-cache": "4.1.1", + "postcss": "5.2.17", + "postcss-selector-parser": "2.2.3", + "source-map": "0.5.6", + "vue-hot-reload-api": "2.1.0", + "vue-style-loader": "2.0.5", + "vue-template-es2015-compiler": "1.5.3" + } }, "vue-style-loader": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-2.0.5.tgz", "integrity": "sha1-8O+smS/r4/EuST4zTtsTzSNaPSI=", "dev": true, + "requires": { + "hash-sum": "1.0.2", + "loader-utils": "1.1.0" + }, "dependencies": { "loader-utils": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", - "dev": true + "dev": true, + "requires": { + "big.js": "3.1.3", + "emojis-list": "2.1.0", + "json5": "0.5.1" + } } } }, @@ -5231,7 +7426,11 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.4.2.tgz", "integrity": "sha512-sKa2Bdvh+j6V9eQSyJRxsf8fak0FtQkCZ145aYFDVwZBhHOTt1vKrODLo4RelI1dUczKlDCp5aZ9MD7uJOZwvw==", - "dev": true + "dev": true, + "requires": { + "de-indent": "1.0.2", + "he": "1.1.1" + } }, "vue-template-es2015-compiler": { "version": "1.5.3", @@ -5244,12 +7443,20 @@ "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.4.0.tgz", "integrity": "sha1-ShRyvLuVK9Cpu0A2gB+VTfs5+qw=", "dev": true, + "requires": { + "async": "2.5.0", + "chokidar": "1.7.0", + "graceful-fs": "4.1.11" + }, "dependencies": { "async": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==", - "dev": true + "dev": true, + "requires": { + "lodash": "4.17.4" + } } } }, @@ -5257,19 +7464,48 @@ "version": "1.7.2", "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.2.tgz", "integrity": "sha1-1pe5nx9ZUS3ydRvkJ2nBWAtYAf4=", - "dev": true + "dev": true, + "requires": { + "minimalistic-assert": "1.0.0" + } }, "webpack": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/webpack/-/webpack-2.7.0.tgz", "integrity": "sha512-MjAA0ZqO1ba7ZQJRnoCdbM56mmFpipOPUv/vQpwwfSI42p5PVDdoiuK2AL2FwFUVgT859Jr43bFZXRg/LNsqvg==", "dev": true, + "requires": { + "acorn": "5.1.1", + "acorn-dynamic-import": "2.0.2", + "ajv": "4.11.8", + "ajv-keywords": "1.5.1", + "async": "2.5.0", + "enhanced-resolve": "3.4.1", + "interpret": "1.0.3", + "json-loader": "0.5.7", + "json5": "0.5.1", + "loader-runner": "2.3.0", + "loader-utils": "0.2.17", + "memory-fs": "0.4.1", + "mkdirp": "0.5.1", + "node-libs-browser": "2.0.0", + "source-map": "0.5.6", + "supports-color": "3.2.3", + "tapable": "0.2.7", + "uglify-js": "2.8.29", + "watchpack": "1.4.0", + "webpack-sources": "1.0.1", + "yargs": "6.4.0" + }, "dependencies": { "async": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==", - "dev": true + "dev": true, + "requires": { + "lodash": "4.17.4" + } } } }, @@ -5278,6 +7514,12 @@ "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-1.11.0.tgz", "integrity": "sha1-CWkdCXOjCtH4Ksc6EuIIfwpHVPk=", "dev": true, + "requires": { + "memory-fs": "0.4.1", + "mime": "1.3.6", + "path-is-absolute": "1.0.1", + "range-parser": "1.2.0" + }, "dependencies": { "mime": { "version": "1.3.6", @@ -5292,6 +7534,30 @@ "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-2.6.1.tgz", "integrity": "sha1-Cykqnaltr4CmWYj2n4e0Fm5d7+c=", "dev": true, + "requires": { + "ansi-html": "0.0.7", + "bonjour": "3.5.0", + "chokidar": "1.7.0", + "compression": "1.7.0", + "connect-history-api-fallback": "1.3.0", + "del": "3.0.0", + "express": "4.15.3", + "html-entities": "1.2.1", + "http-proxy-middleware": "0.17.4", + "internal-ip": "1.2.0", + "loglevel": "1.4.1", + "opn": "4.0.2", + "portfinder": "1.0.13", + "selfsigned": "1.9.1", + "serve-index": "1.8.0", + "sockjs": "0.3.18", + "sockjs-client": "1.1.4", + "spdy": "3.4.7", + "strip-ansi": "3.0.1", + "supports-color": "3.2.3", + "webpack-dev-middleware": "1.11.0", + "yargs": "6.4.0" + }, "dependencies": { "array-flatten": { "version": "1.1.1", @@ -5303,19 +7569,61 @@ "version": "2.6.7", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz", "integrity": "sha1-krrR9tBbu2u6Isyoi80OyJTChh4=", - "dev": true + "dev": true, + "requires": { + "ms": "2.0.0" + } }, "express": { "version": "4.15.3", "resolved": "https://registry.npmjs.org/express/-/express-4.15.3.tgz", "integrity": "sha1-urZdDwOqgMNYQIly/HAPkWlEtmI=", - "dev": true + "dev": true, + "requires": { + "accepts": "1.3.3", + "array-flatten": "1.1.1", + "content-disposition": "0.5.2", + "content-type": "1.0.2", + "cookie": "0.3.1", + "cookie-signature": "1.0.6", + "debug": "2.6.7", + "depd": "1.1.0", + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "etag": "1.8.0", + "finalhandler": "1.0.3", + "fresh": "0.5.0", + "merge-descriptors": "1.0.1", + "methods": "1.1.2", + "on-finished": "2.3.0", + "parseurl": "1.3.1", + "path-to-regexp": "0.1.7", + "proxy-addr": "1.1.5", + "qs": "6.4.0", + "range-parser": "1.2.0", + "send": "0.15.3", + "serve-static": "1.12.3", + "setprototypeof": "1.0.3", + "statuses": "1.3.1", + "type-is": "1.6.15", + "utils-merge": "1.0.0", + "vary": "1.1.1" + } }, "finalhandler": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.0.3.tgz", "integrity": "sha1-70fneVDpmXgOhgIqVg4yF+DQzIk=", - "dev": true + "dev": true, + "requires": { + "debug": "2.6.7", + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "on-finished": "2.3.0", + "parseurl": "1.3.1", + "statuses": "1.3.1", + "unpipe": "1.0.0" + } }, "fresh": { "version": "0.5.0", @@ -5327,7 +7635,13 @@ "version": "1.6.1", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.1.tgz", "integrity": "sha1-X4uO2YrKVFZWv1cplzh/kEpyIlc=", - "dev": true + "dev": true, + "requires": { + "depd": "1.1.0", + "inherits": "2.0.3", + "setprototypeof": "1.0.3", + "statuses": "1.3.1" + } }, "mime": { "version": "1.3.4", @@ -5345,13 +7659,34 @@ "version": "0.15.3", "resolved": "https://registry.npmjs.org/send/-/send-0.15.3.tgz", "integrity": "sha1-UBP5+ZAj31DRvZiSwZ4979HVMwk=", - "dev": true + "dev": true, + "requires": { + "debug": "2.6.7", + "depd": "1.1.0", + "destroy": "1.0.4", + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "etag": "1.8.0", + "fresh": "0.5.0", + "http-errors": "1.6.1", + "mime": "1.3.4", + "ms": "2.0.0", + "on-finished": "2.3.0", + "range-parser": "1.2.0", + "statuses": "1.3.1" + } }, "serve-static": { "version": "1.12.3", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.12.3.tgz", "integrity": "sha1-n0uhni8wMMVH+K+ZEHg47DjVseI=", - "dev": true + "dev": true, + "requires": { + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "parseurl": "1.3.1", + "send": "0.15.3" + } }, "setprototypeof": { "version": "1.0.3", @@ -5365,19 +7700,31 @@ "version": "0.0.5", "resolved": "https://registry.npmjs.org/webpack-md5-hash/-/webpack-md5-hash-0.0.5.tgz", "integrity": "sha1-2fGJnq1mRFndi2sMkmrHHPvXvHo=", - "dev": true + "dev": true, + "requires": { + "md5": "2.2.1" + } }, "webpack-notifier": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/webpack-notifier/-/webpack-notifier-1.5.0.tgz", "integrity": "sha1-wBAAfUSM68NN78mezyiPpejGuvY=", - "dev": true + "dev": true, + "requires": { + "node-notifier": "4.6.1", + "object-assign": "4.1.1", + "strip-ansi": "3.0.1" + } }, "webpack-sources": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.0.1.tgz", "integrity": "sha512-05tMxipUCwHqYaVS8xc7sYPTly8PzXayRCB4dTxLhWTqlKUiwH6ezmEe0OSreL1c30LAuA3Zqmc+uEBUGFJDjw==", "dev": true, + "requires": { + "source-list-map": "2.0.0", + "source-map": "0.5.6" + }, "dependencies": { "source-list-map": { "version": "2.0.0", @@ -5397,7 +7744,10 @@ "version": "0.6.5", "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz", "integrity": "sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY=", - "dev": true + "dev": true, + "requires": { + "websocket-extensions": "0.1.1" + } }, "websocket-extensions": { "version": "0.1.1", @@ -5409,13 +7759,21 @@ "version": "2.0.0-pre-I0Z7U9OV", "resolved": "https://registry.npmjs.org/weinre/-/weinre-2.0.0-pre-I0Z7U9OV.tgz", "integrity": "sha1-/viqIjkh97QLu71MPtQwL2/QqBM=", - "dev": true + "dev": true, + "requires": { + "express": "2.5.11", + "nopt": "3.0.6", + "underscore": "1.7.0" + } }, "which": { "version": "1.2.14", "resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz", "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=", - "dev": true + "dev": true, + "requires": { + "isexe": "2.0.0" + } }, "which-module": { "version": "1.0.0", @@ -5427,7 +7785,10 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", - "dev": true + "dev": true, + "requires": { + "string-width": "1.0.2" + } }, "window-size": { "version": "0.1.4", @@ -5445,7 +7806,11 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dev": true + "dev": true, + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1" + } }, "wrappy": { "version": "1.0.2", @@ -5457,7 +7822,11 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.1.tgz", "integrity": "sha1-CC3bbGQehdS7RR8D1S8G6r2x8Bg=", - "dev": true + "dev": true, + "requires": { + "options": "0.0.6", + "ultron": "1.0.2" + } }, "wtf-8": { "version": "1.0.0", @@ -5500,6 +7869,22 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.4.0.tgz", "integrity": "sha1-gW4ahm1VmMzzTlWW3c4i2S2kkNQ=", "dev": true, + "requires": { + "camelcase": "3.0.0", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "get-caller-file": "1.0.2", + "os-locale": "1.4.0", + "read-pkg-up": "1.0.1", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "1.0.2", + "which-module": "1.0.0", + "window-size": "0.2.0", + "y18n": "3.2.1", + "yargs-parser": "4.2.1" + }, "dependencies": { "camelcase": { "version": "3.0.0", @@ -5520,6 +7905,9 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz", "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=", "dev": true, + "requires": { + "camelcase": "3.0.0" + }, "dependencies": { "camelcase": { "version": "3.0.0", diff --git a/package.json b/package.json index 761e0239b..630a2442c 100644 --- a/package.json +++ b/package.json @@ -1,4 +1,3 @@ - { "private": true, "scripts": { diff --git a/resources/views/customer/billing-registration.foil.php b/resources/views/customer/billing-registration.foil.php new file mode 100644 index 000000000..1c53d721a --- /dev/null +++ b/resources/views/customer/billing-registration.foil.php @@ -0,0 +1,225 @@ +layout( 'layouts/ixpv4' ); +?> + +section( 'title' ) ?> + Customers +append() ?> + +section( 'page-header-postamble' ) ?> +
  • cust ? "Edit" : "Add" ?> Customer
  • +append() ?> + +section('content') ?> +method( 'POST' ) + ->action( route ('customer@storeBillingInfo' ) ) + ->customWidthClass( 'col-sm-6' ) + +?> + +
    +
    +

    Registration Details

    +
    + label( 'Registered Name' ) + ->blockHelp( '' ); + ?> + + label( 'Company Number' ) + ->blockHelp( '' ); + ?> + + label( 'Jurisdiction' ) + ->fromQuery( $t->juridictions, 'jurisdiction' ) + ->placeholder( 'Choose a juridiction' ) + ->addClass( 'chzn-select' ) + ->blockHelp( '' ); + ?> + + + id( 'address1' ) + ->label( 'Address' ) + ->blockHelp( '' ) + ?> + + id( 'address2' ) + ->label( ' ' ) + ->blockHelp( '' ); + ?> + + id( 'address3' ) + ->label( ' ' ) + ->blockHelp( '' ); + ?> + + id( 'townCity' ) + ->label( 'City' ) + ->blockHelp( '' ); + ?> + + id( 'postcode' ) + ->label( 'Postcode' ) + ->blockHelp( '' ); + ?> + + label( 'Country' ) + ->fromQuery( \Entities\CompanyBillingDetail::$BILLING_FREQUENCIES ) + ->placeholder( 'Choose a country' ) + ->addClass( 'chzn-select' ) + ->blockHelp( '' ); + ?> +
    + billingNotify ) || !$t->billingNotify ) || !$t->resellerMode || !$t->cust->isResoldCustomer() ): ?> +
    +

    Billing Details

    +
    + label( 'Contact' ) + ->blockHelp( '' ); + ?> + + label( 'Billing Frequency' ) + ->fromQuery( \Entities\CompanyBillingDetail::$BILLING_FREQUENCIES ) + ->placeholder( 'Choose a billing frequency' ) + ->addClass( 'chzn-select' ) + ->blockHelp( '' ); + ?> + + id( 'billingAddress1' ) + ->label( 'Address' ) + ->blockHelp( '' ) + ->append( '' ); + ?> + + id( 'billingAddress2' ) + ->label( ' ' ) + ->blockHelp( '' ); + ?> + + id( 'billingAddress3' ) + ->label( ' ' ) + ->blockHelp( '' ); + ?> + + id( 'billingTownCity' ) + ->label( 'City' ) + ->blockHelp( '' ); + ?> + + id( 'billingPostcode' ) + ->label( 'Postcode' ) + ->blockHelp( '' ); + ?> + + label( 'Country' ) + ->fromQuery( \Entities\CompanyBillingDetail::$BILLING_FREQUENCIES ) + ->placeholder( 'Choose a country' ) + ->addClass( 'chzn-select' ) + ->blockHelp( '' ); + ?> + + id( 'billingEmail' ) + ->label( 'Email' ) + ->placeholder( 'billing@example.com' ) + ->blockHelp( '' ); + ?> + + id( 'billingTelephone' ) + ->label( 'Telephone' ) + ->placeholder( '+353 1 234 5678' ) + ->blockHelp( '' ); + ?> + + label( ' ' ) + ->text( 'Purchase Order Required' ) + ->checked_value( 1 ) + ->unchecked_value( 0 ) + ->blockHelp('' ); + ?> + + label( 'Invoice Method' ) + ->fromQuery( \Entities\CompanyBillingDetail::$INVOICE_METHODS ) + ->placeholder( 'Choose an invoice Method' ) + ->addClass( 'chzn-select' ) + ->blockHelp( '' ); + ?> + + id( 'invoiceEmail' ) + ->label( 'Invoice E-Mail' ) + ->placeholder( 'invoicing@example.com8' ) + ->blockHelp( '' ); + ?> + + id( 'vatRate' ) + ->label( 'VAT Rate' ) + ->blockHelp( '' ); + ?> + id( 'vatNumber' ) + ->label( 'VAT Number' ) + ->blockHelp( '' ); + ?> +
    + +
    + + +href( url ( 'customer/overview/id/' )."/".$t->cust->getId() ), + Former::success_button( 'Help' )->id( 'help-btn' ) +);?> + + +value( $t->cust ? $t->cust->getId() : '' ) +?> + + + +append() ?> + +section( 'scripts' ) ?> + +append() ?> \ No newline at end of file diff --git a/resources/views/customer/cust-type.foil.php b/resources/views/customer/cust-type.foil.php index bd500dc2a..e8f2bcbf1 100644 --- a/resources/views/customer/cust-type.foil.php +++ b/resources/views/customer/cust-type.foil.php @@ -3,7 +3,7 @@ cust->getType() == \Entities\Customer::TYPE_PROBONO ): ?> PROBONO MEMBER cust->getType() == \Entities\Customer::TYPE_INTERNAL ): ?> - INTERNAL INFRASTRUCTURE + INTERNAL INFRASTRUCTURE cust->getType() == \Entities\Customer::TYPE_FULL ): ?> FULL MEMBER @@ -11,13 +11,13 @@ cust->hasLeft() ): ?> - ACCOUNT CLOSED + ACCOUNT CLOSED resellerMode ): ?> cust->getIsReseller() ): ?> - RESELLER + RESELLER cust->getReseller() ): ?> - RESOLD CUSTOMER + RESOLD CUSTOMER @@ -28,6 +28,6 @@ cust->statusIsSuspended() ): ?> SUSPENDED - UNKNOWN CUSTOMER STATUS + UNKNOWN CUSTOMER STATUS \ No newline at end of file diff --git a/resources/views/customer/detail.foil.php b/resources/views/customer/detail.foil.php new file mode 100644 index 000000000..fe55a6a37 --- /dev/null +++ b/resources/views/customer/detail.foil.php @@ -0,0 +1,367 @@ +layout( 'layouts/ixpv4' ); +?> + +section( 'title' ) ?> + isSuperUser() ): ?> + Customers + + Customer Detail + +append() ?> + +isSuperUser() ): ?> + section( 'page-header-postamble' ) ?> +
  • ee( $t->cust->getName() ) ?>
  • + append() ?> + + +section('content') ?> +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + Member Type: + + + ee( $t->cust->resolveType() ) ?> +
    + + AS Number: + + + asNumber( $t->cust->getAutsys() ) ?> +
    + + Peering Policy: + + + ee( $t->cust->getPeeringPolicy() ) ?> +
    + + Peering Email: + + + ee( $t->cust->getPeeringemail() ) ?> +
    + + NOC Phone: + + + cust->getNocphone() ?> +
    + + Dedicated NOC Web: + + + + ee( $t->cust->getNocwww() ) ?> + + +
    + + NOC Hours: + + + cust->getNochours() ?> +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + Member Status: + + + ee( $t->cust->resolveStatus() ) ?> +
    + + Peering Macro: + + + ee( $t->cust->getPeeringmacro() ) ?> +
    + + Corporate Web: + + + + ee( $t->cust->getCorpwww() ) ?> + +
    + + NOC Email + + + ee( $t->cust->getNocemail() ) ?> +
    + + NOC 24 Hour Phone + + + ee( $t->cust->getNoc24hphone() ) ?> +
    + + NOC Fax + + + cust->getNocfax() ?> +
    +
    +
    + + + cust->getVirtualInterfaces() as $vi ): ?> + +
    +
    +
    +

    + Connection + getVlanInterfaces() ?> + + + +         Infrastructure #getVlan()->getNumber() % 10 == 0 ? 1 : 2 ?> + getPhysicalInterfaces() ) > 1 ): ?> + +         LAG Port + + + + + +

    +
    + + + getPhysicalInterfaces() as $pi ): ?> +
    + +
    Port of getPhysicalInterfaces() ) ?> in LAG
    + +
    + + + + + + + + + + + + + + +
    + + Switch: + + + getSwitchPort()->getSwitcher()->getName() ?> +
    + + Speed: + + + resolveSpeed() ?> +
    + + Location: + + + getSwitchPort()->getSwitcher()->getCabinet()->getLocation()->getName() ?> +
    +
    +
    + + + + + + + + + + + + + +
    + Switch Port: + + getSwitchPort()->getName() ?> +
    + Duplex: + + getDuplex() ?> +
    + + Colo Cabinet ID: + + + getSwitchPort()->getSwitcher()->getCabinet()->getName() ?> +
    +
    +
    + + + + + getVlanInterfaces() as $vli ): ?> + getVlan()->getId() ?> + + getVlan()->getPrivate() ): ?> +
    + +

    getVlan()->getName() ?>:

    + +
    + + + + + + + + + + + + + +
    + + IPv6 Address: + + + getIpv6enabled() and $vli->getIpv6address() ): ?> + getIPv6Address()->getAddress() ?> / + + IPv6 not enabled. + +
    + + Multicast Enabled: + + + getMcastenabled() ? "Yes" : "No" ?> +
    + + Route Server Client: + + + getRsclient() ? "Yes" : "No" ?> +
    +
    +
    + + + + + + + + + + + as112UiActive ): ?> + + + + + +
    + IPv4 Address: + + getIpv4enabled() and $vli->getIpv4address() ): ?> + getIPv4Address()->getAddress() ?> / + + IPv4 not enabled. + +
    + + Max Prefixes: + + + global: cust->getMaxprefixes() ?>, per-interface: getMaxbgpprefix() ?> +
    + + AS112 Client: + + + getAs112client() ? "Yes" : "No" ?> +
    +
    +
    + + + + +
    + + + + +append() ?> + +section( 'scripts' ) ?> + +append() ?> diff --git a/resources/views/customer/details.foil.php b/resources/views/customer/details.foil.php new file mode 100644 index 000000000..1a037c82d --- /dev/null +++ b/resources/views/customer/details.foil.php @@ -0,0 +1,104 @@ +active */ + +$this->layout( 'layouts/ixpv4' ); +?> + +section( 'title' ) ?> + +append() ?> + +section( 'title' ) ?> + isSuperUser() ): ?> + Customers + + Member Details + +append() ?> + +isSuperUser() ): ?> + + section( 'page-header-postamble' ) ?> +
  • Details
  • + append() ?> + + + +section('content') ?> + +alerts() ?> + + + + + + + + + + + + + custs as $c ): + /** @var Entities\Customer $c */ + ?> + + + + + + + + + + +
    + Member + + Peering Email + + ASN + + NOC Phone + + NOC Hours + + Action +
    + getId() ?>"> + ee( $c->getName() ) ?> + + + + ee( $c->getPeeringemail() ) ?> + + getAutsys() ): ?> + + asNumber( $c->getAutsys() ) ?> + + + + + getNocphone() ?> + + getNochours() ?> + +
    + + + +
    +
    + +append() ?> + +section( 'scripts' ) ?> + +append() ?> diff --git a/resources/views/customer/edit.foil.php b/resources/views/customer/edit.foil.php new file mode 100644 index 000000000..b9e25b17e --- /dev/null +++ b/resources/views/customer/edit.foil.php @@ -0,0 +1,294 @@ +layout( 'layouts/ixpv4' ); +?> + +section( 'title' ) ?> + Customers +append() ?> + +section( 'page-header-postamble' ) ?> +
  • cust ? "Edit" : "Add" ?> Customer
  • +append() ?> + +section('content') ?> + method( 'POST' ) + ->action( route ('customer@store' ) ) + ->customWidthClass( 'col-sm-6' ) + + ?> + +
    +
    +

    Customer Details

    +
    + label( 'Name' ) + ->blockHelp( '' ); + ?> + + label( 'Type' ) + ->fromQuery( \Entities\Customer::$CUST_TYPES_TEXT ) + ->placeholder( 'Choose a type' ) + ->addClass( 'chzn-select' ) + ->blockHelp( '' ); + ?> + + label( 'Short Name' ) + ->blockHelp( '' ); + ?> + + label( 'Corporate Website' ) + ->blockHelp( '' ); + ?> + + label( 'Date Joined' ) + ->blockHelp( '' ); + ?> + + label( 'Date Left' ) + ->blockHelp( '' ); + ?> + + label( 'Status' ) + ->fromQuery( \Entities\Customer::$CUST_STATUS_TEXT ) + ->placeholder( 'Choose a status' ) + ->addClass( 'chzn-select' ) + ->blockHelp( '' ); + ?> + + label( 'MD5 Support' ) + ->fromQuery( \Entities\Customer::$MD5_SUPPORT ) + ->placeholder( 'Choose a MD5 Support' ) + ->addClass( 'chzn-select' ) + ->blockHelp( '' ); + ?> + + label( 'Abbreviated Name' ) + ->blockHelp( '' ); + ?> +
    + +
    +

    Peering Details

    +
    + label( 'AS Number' ) + ->blockHelp( '' ); + ?> + + label( 'Max Prefixes' ) + ->blockHelp( '' ); + ?> + + label( 'Email' ) + ->blockHelp( '' ); + ?> + + label( 'IPv4 Peering Macro' ) + ->blockHelp( '' ); + ?> + + label( 'IPv6 Peering Macro' ) + ->blockHelp( '' ); + ?> + + label( 'Peering Policy' ) + ->fromQuery( \Entities\Customer::$PEERING_POLICIES ) + ->placeholder( 'Choose a peering policy' ) + ->addClass( 'chzn-select' ) + ->blockHelp( '' ); + ?> + + label( 'IRRDB Source' ) + ->fromQuery( $t->irrdbs, 'source' ) + ->placeholder( 'Choose a IRRDB source' ) + ->addClass( 'chzn-select' ) + ->blockHelp( '' ); + ?> + + label( ' ' ) + ->text( 'Active Peering Matrix' ) + ->checked_value( 1 ) + ->unchecked_value( 0 ) + ->blockHelp('' ); + ?> + + Note that the IPv4 peering macro is used when there is no v6 macro set. To force no macro for IPv6, set it as AS-NULL. +
    +
    + +
    +
    +

    NOC Details

    +
    + label( 'Phone' ) + ->placeholder( '+353 1 123 4567' ) + ->blockHelp( '' ); + ?> + + label( '24h Phone' ) + ->placeholder( '+353 86 876 5432' ) + ->blockHelp( '' ); + ?> + + label( 'Fax' ) + ->placeholder( '+353 1 765 4321' ) + ->blockHelp( '' ); + ?> + + label( 'Email' ) + ->placeholder( 'noc@example.com' ) + ->blockHelp( '' ); + ?> + + label( 'Hours' ) + ->fromQuery( \Entities\Customer::$NOC_HOURS ) + ->placeholder( 'Choose an hours' ) + ->addClass( 'chzn-select' ) + ->blockHelp( '' ); + ?> + + label( 'Website' ) + ->placeholder( 'http://www.noc.example.com/' ) + ->blockHelp( '' ); + ?> + +
    + +
    + resellerMode ): ?> +

    Peering Details

    +
    + label( ' ' ) + ->text( 'Is a Reseller' ) + ->blockHelp('' ); + ?> + + label( ' ' ) + ->text( 'Resold Customer' ) + ->blockHelp('' ); + ?> + +
    + label( 'Reseller' ) + ->fromQuery( $t->resellers ) + ->placeholder( 'Choose an reseller' ) + ->addClass( 'chzn-select' ) + ->blockHelp( '' ); + ?> +
    + + + value( $t->ixp->getId() ) + ?> +
    +
    + + + href( route ( 'customer@list' ) ), + Former::success_button( 'Help' )->id( 'help-btn' ) + );?> + + + value( $t->cust ? $t->cust->getId() : '' ) + ?> + + + +append() ?> + +section( 'scripts' ) ?> + +append() ?> \ No newline at end of file diff --git a/resources/views/customer/emails/billing-details.blade.php b/resources/views/customer/emails/billing-details.blade.php new file mode 100644 index 000000000..502ca9a01 --- /dev/null +++ b/resources/views/customer/emails/billing-details.blade.php @@ -0,0 +1,89 @@ +Dear Accounts, +
    +
    +Billing details have been updated for {{ $cust->getName() }}. +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Old DetailsNew Details
    Name{{ $oldDetails->getBillingContactName() }}{{ $cust->getBillingDetails()->getBillingContactName() }}
    Address + {{$oldDetails->getBillingAddress1()}}
    + {{$oldDetails->getBillingAddress2()}}
    + {{$oldDetails->getBillingAddress3()}}
    + {{$oldDetails->getBillingTownCity()}}
    + {{$oldDetails->getBillingPostcode()}}
    + {{$oldDetails->getBillingCountry()}} +
    + {{$cust->getBillingDetails()->getBillingAddress1()}}
    + {{$cust->getBillingDetails()->getBillingAddress2()}}
    + {{$cust->getBillingDetails()->getBillingAddress3()}}
    + {{$cust->getBillingDetails()->getBillingTownCity()}}
    + {{$cust->getBillingDetails()->getBillingPostcode()}}
    + {{$cust->getBillingDetails()->getBillingCountry()}} +
    Email{{$oldDetails->getBillingEmail()}}{{$cust->getBillingDetails()->getBillingEmail()}}
    Phone{{$oldDetails->getBillingTelephone()}}{{$cust->getBillingDetails()->getBillingTelephone()}}
    VAT Number{{$oldDetails->getVatNumber()}}{{$cust->getBillingDetails()->getVatNumber()}}
    VAT Rate{{$oldDetails->getVatRate()}}{{$cust->getBillingDetails()->getVatRate()}}
    Required Purchase Order + @if( $oldDetails->getPurchaseOrderRequired() ) + Yes + @else + No + @endif + + @if($cust->getBillingDetails()->getPurchaseOrderRequired() ) + Yes + @else + No + @endif +
    Invoice Method{{$oldDetails->getInvoiceMethod()}}{{$cust->getBillingDetails()->getInvoiceMethod()}}
    Invoice Email{{$oldDetails->getInvoiceEmail()}}{{$cust->getBillingDetails()->getInvoiceEmail()}}
    Billing Frequency{{$oldDetails->getBillingFrequency()}}{{$cust->getBillingDetails()->getBillingFrequency()}}
    \ No newline at end of file diff --git a/resources/views/customer/list.foil.php b/resources/views/customer/list.foil.php new file mode 100644 index 000000000..c49c5c2a9 --- /dev/null +++ b/resources/views/customer/list.foil.php @@ -0,0 +1,176 @@ +active */ + +$this->layout( 'layouts/ixpv4' ); +?> + +section( 'title' ) ?> + Customers +append() ?> + +section( 'page-header-postamble' ) ?> +
  • List
  • +append() ?> + +section( 'page-header-preamble' ) ?> +
  • + +
  • +append() ?> + +section('content') ?> + + alerts() ?> + + + + + + + + + + + + + + + + custs as $c ): + /** @var Entities\Customer $c */ + ?> + + + + + + + + + + + + + +
    + Name + + AS + + ShortName + + Peering Policy + + Reseller + + Type + + Status + + Joined + + Action +
    + getId() ?>"> + ee( $c->getName() ) ?> + + + + getAutsys() ): ?> + + asNumber( $c->getAutsys() ) ?> + + + + + getId() ?>"> + ee( $c->getShortname() ) ?> + + + getPeeringpolicy() ?> + + getReseller() ? "Yes" : "No" ?> + + insert( 'customer/cust-type', [ 'cust' => $c , 'resellerMode' => $t->resellerMode ] ) ?> + + insert( 'customer/cust-status', [ 'cust' => $c ] ) ?> + + getDatejoin()->format( "Y-m-d" ) ?> + + +
    + +append() ?> + +section( 'scripts' ) ?> + +append() ?> \ No newline at end of file diff --git a/resources/views/layouts/menus/associate.foil.php b/resources/views/layouts/menus/associate.foil.php index 85f60eb41..b77a6b6f4 100644 --- a/resources/views/layouts/menus/associate.foil.php +++ b/resources/views/layouts/menus/associate.foil.php @@ -25,7 +25,7 @@ Switch Configuration
  • - Member Details + ">Member Details
  • diff --git a/resources/views/layouts/menus/custuser.foil.php b/resources/views/layouts/menus/custuser.foil.php index d7734a1ed..d13663954 100644 --- a/resources/views/layouts/menus/custuser.foil.php +++ b/resources/views/layouts/menus/custuser.foil.php @@ -25,7 +25,7 @@ Switch Configuration
  • - Member Details + Member Details
  • diff --git a/resources/views/layouts/menus/superuser.foil.php b/resources/views/layouts/menus/superuser.foil.php index 9bb281da0..d1b5e3546 100644 --- a/resources/views/layouts/menus/superuser.foil.php +++ b/resources/views/layouts/menus/superuser.foil.php @@ -22,7 +22,7 @@ Switch Configuration
  • - Member Details + Member Details
  • diff --git a/resources/views/menu.foil.php b/resources/views/menu.foil.php index faa41bf8e..a619866bb 100644 --- a/resources/views/menu.foil.php +++ b/resources/views/menu.foil.php @@ -21,7 +21,7 @@
  • - Customers + Customers
  • controller == 'VirtualInterfaceController' ): ?> class="active" > diff --git a/routes/web-auth-superuser.php b/routes/web-auth-superuser.php index 56a884b95..42c269ec2 100644 --- a/routes/web-auth-superuser.php +++ b/routes/web-auth-superuser.php @@ -122,6 +122,18 @@ }); }); +Route::group( [ 'namespace' => 'Customer' , 'prefix' => 'customer' ], function() { + Route::get( 'list', 'CustomerController@list' )->name( 'customer@list'); + Route::get( 'list/status/{status}', 'CustomerController@listByStatus' )->name( 'customer@listByStatus'); + Route::get( 'list/type/{type}', 'CustomerController@listByType' )->name( 'customer@listByType'); + Route::get( 'list/current-cust/{currentCust}', 'CustomerController@listByCurrentCust' )->name( 'customer@listByCurrentCust'); + Route::get( 'add', 'CustomerController@edit' )->name( 'customer@add'); + Route::get( 'edit/{id}', 'CustomerController@edit' )->name( 'customer@edit'); + Route::get( 'billing-registration/{id}', 'CustomerController@billingRegistration' )->name( 'customer@billingRegistration'); + Route::post( 'store', 'CustomerController@store' )->name( 'customer@store'); + Route::post( 'store-billing-info', 'CustomerController@storeBillingInformation' )->name( 'customer@storeBillingInfo'); +}); + Route::get( 'admin', 'AdminController@dashboard' )->name( 'admin@dashboard' ); Route::get( 'search', 'SearchController@do' )->name( 'search' ); diff --git a/routes/web.php b/routes/web.php index 1c2a89acb..0d7d7750f 100644 --- a/routes/web.php +++ b/routes/web.php @@ -58,6 +58,11 @@ Route::get( 'weather-map/{id}', 'WeatherMapController@index' )->name( 'weathermap'); +Route::group( [ 'prefix' => 'customer', 'namespace' => 'Customer'], function() { + Route::get( 'details', 'CustomerController@details' )->name( "customer@details" ); + Route::get( 'detail/{id}', 'CustomerController@detail' )->name( "customer@detail" ); +}); + ///////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////