From d0a6bb7e3b4bcad430819a551ac327a9797968d0 Mon Sep 17 00:00:00 2001 From: mctekk Date: Tue, 2 Jun 2020 23:36:13 -0400 Subject: [PATCH 01/26] Start Baka 0.5 Migration with PHP 7.4 --- src/Auth/App.php | 13 +++++++------ src/Auth/Auth.php | 15 ++++++++++----- src/Auth/Factory.php | 10 +++++----- src/Bootstrap/AbstractBootstrap.php | 2 +- src/Constants/Flags.php | 8 +++----- src/Constants/JWTClaims.php | 6 +++--- src/Traits/RequestJwtTrait.php | 18 ------------------ 7 files changed, 29 insertions(+), 43 deletions(-) diff --git a/src/Auth/App.php b/src/Auth/App.php index f5d98c7f..8e769039 100644 --- a/src/Auth/App.php +++ b/src/Auth/App.php @@ -4,11 +4,10 @@ namespace Canvas\Auth; +use Canvas\Hashing\Password; use Canvas\Models\Users; use Exception; use Phalcon\Di; -use RuntimeException; -use Canvas\Hashing\Password; class App extends Auth { @@ -17,9 +16,10 @@ class App extends Auth * * @param string $email * @param string $password - * @param integer $autologin - * @param integer $admin + * @param int $autologin + * @param int $admin * @param string $userIp + * * @return Users */ public static function login(string $email, string $password, int $autologin = 1, int $admin, string $userIp) : Users @@ -36,7 +36,7 @@ public static function login(string $email, string $password, int $autologin = 1 throw new Exception(_('Invalid Username or Password.')); } - self::loginAttempsValidation($user); + self::loginAttemptsValidation($user); //check if the user exist on this app $currentAppUserInfo = $user->getApp(); @@ -70,9 +70,10 @@ public static function login(string $email, string $password, int $autologin = 1 * * @param Users $user * @param string $password + * * @return bool */ - public static function updatePassword(Users $user, string $password): bool + public static function updatePassword(Users $user, string $password) : bool { $app = Di::getDefault()->getApp(); diff --git a/src/Auth/Auth.php b/src/Auth/Auth.php index dff146c8..0b0f27a7 100644 --- a/src/Auth/Auth.php +++ b/src/Auth/Auth.php @@ -4,6 +4,8 @@ namespace Canvas\Auth; +use Baka\Contracts\Auth\UserInterface; +use Baka\Exception\AuthException; use Canvas\Models\Users; use Exception; use stdClass; @@ -11,13 +13,15 @@ abstract class Auth { /** - * Check the user login attems to the app. + * Check the user login attempt to the app. * * @param Users $user + * * @throws Exception + * * @return void */ - protected static function loginAttempsValidation(Users $user): bool + protected static function loginAttemptsValidation(UserInterface $user) : bool { //load config $config = new stdClass(); @@ -37,7 +41,7 @@ protected static function loginAttempsValidation(Users $user): bool && $config->max_login_attempts && $user->user_last_login_try >= (time() - ($config->login_reset_time * 60)) && $user->user_login_tries >= $config->max_login_attempts) { - throw new Exception(sprintf(_('You have exhausted all login attempts.'), $config->max_login_attempts)); + throw new AuthException(sprintf(_('You have exhausted all login attempts.'), $config->max_login_attempts)); } return true; @@ -47,9 +51,10 @@ protected static function loginAttempsValidation(Users $user): bool * Reset login tries. * * @param Users $user + * * @return boolean */ - protected static function resetLoginTries(Users $user): bool + protected static function resetLoginTries(UserInterface $user) : bool { $user->lastvisit = date('Y-m-d H:i:s'); $user->user_login_tries = 0; @@ -62,7 +67,7 @@ protected static function resetLoginTries(Users $user): bool * * @return bool */ - protected static function updateLoginTries(Users $user): bool + protected static function updateLoginTries(UserInterface $user) : bool { if ($user->getId() != Users::ANONYMOUS) { $user->user_login_tries += 1; diff --git a/src/Auth/Factory.php b/src/Auth/Factory.php index 08e45a22..38ba0ca5 100644 --- a/src/Auth/Factory.php +++ b/src/Auth/Factory.php @@ -9,9 +9,10 @@ class Factory { /** - * Create the Auth factory + * Create the Auth factory. + * + * @param int $ecosystem_auth * - * @param integer $ecosystem_auth * @return Auth */ public static function create(bool $ecosystemAuth) @@ -21,7 +22,7 @@ public static function create(bool $ecosystemAuth) case false: $user = new App(); break; - + default: $user = new Users(); break; @@ -29,5 +30,4 @@ public static function create(bool $ecosystemAuth) return $user; } - -} \ No newline at end of file +} diff --git a/src/Bootstrap/AbstractBootstrap.php b/src/Bootstrap/AbstractBootstrap.php index 644946ae..e540025d 100644 --- a/src/Bootstrap/AbstractBootstrap.php +++ b/src/Bootstrap/AbstractBootstrap.php @@ -12,7 +12,7 @@ use Phalcon\Mvc\Micro; /** - * Absstract class that provides the boostrap structure for any Micro PhalconPHP App. + * Abstract class that provides the bootstrap structure for any Micro PhalconPHP App. */ abstract class AbstractBootstrap { diff --git a/src/Constants/Flags.php b/src/Constants/Flags.php index fe34d415..bb0245eb 100644 --- a/src/Constants/Flags.php +++ b/src/Constants/Flags.php @@ -4,10 +4,8 @@ namespace Canvas\Constants; -class Flags +use Baka\Constants\Flags as BakaFlags; + +class Flags extends BakaFlags { - const ACTIVE = 1; - const INACTIVE = 2; - const PRODUCTION = 'production'; - const DEVELOPMENT = 'development'; } diff --git a/src/Constants/JWTClaims.php b/src/Constants/JWTClaims.php index 5fae8485..14e871c9 100644 --- a/src/Constants/JWTClaims.php +++ b/src/Constants/JWTClaims.php @@ -4,8 +4,8 @@ namespace Canvas\Constants; -class JWTClaims +use Baka\Constants\JWTClaims as BakaJWTClaims; + +class JWTClaims extends BakaJWTClaims { - const CLAIM_ID = 'jti'; - const CLAIM_ISSUER = 'iss'; } diff --git a/src/Traits/RequestJwtTrait.php b/src/Traits/RequestJwtTrait.php index 3983fdcf..030df088 100644 --- a/src/Traits/RequestJwtTrait.php +++ b/src/Traits/RequestJwtTrait.php @@ -4,8 +4,6 @@ namespace Canvas\Traits; -use Baka\Http\Router\Collection; -use Phalcon\Mvc\Router\Route; /** * Trait TokenTrait. @@ -30,21 +28,5 @@ public function isEmptyBearerToken(): bool return empty($this->getBearerTokenFromHeader()); } - /** - * Did we specify we dont need to validate JWT Token on this section? - * - * @return bool - */ - public function ignoreJwt(Route $route) : bool - { - //did we find the router? - if (is_array(Collection::getJwtIgnoreRoutes()[$route->getHttpMethods()])) { - return isset(Collection::getJwtIgnoreRoutes()[$route->getHttpMethods()][md5($route->getPattern())]); - } - - //nop we dont have this route in ignore jwt - return false; - } - abstract public function getHeader($header); } From ee7b8eb55e4189ee2b25add20948f98b60c007fc Mon Sep 17 00:00:00 2001 From: mctekk Date: Sun, 14 Jun 2020 15:14:46 -0400 Subject: [PATCH 02/26] hotfix user registration of company --- src/Listener/Company.php | 21 +++++++++++++-------- src/Listener/User.php | 20 +++++++++++--------- src/Models/Apps.php | 2 +- src/Traits/PermissionsTrait.php | 4 ++-- 4 files changed, 27 insertions(+), 20 deletions(-) diff --git a/src/Listener/Company.php b/src/Listener/Company.php index 2f0161b6..e9df980e 100644 --- a/src/Listener/Company.php +++ b/src/Listener/Company.php @@ -4,15 +4,16 @@ namespace Canvas\Listener; -use Phalcon\Events\Event; -use Canvas\Models\Users; -use Canvas\Models\Companies; -use Canvas\Models\CompaniesBranches; use Baka\Auth\Models\UserCompanyApps; use Canvas\Models\AppsPlans; -use Canvas\Models\CompaniesGroups; +use Canvas\Models\Companies; use Canvas\Models\CompaniesAssociations; +use Canvas\Models\CompaniesBranches; +use Canvas\Models\CompaniesGroups; +use Canvas\Models\Roles; +use Canvas\Models\Users; use Phalcon\Di; +use Phalcon\Events\Event; class Company { @@ -21,10 +22,11 @@ class Company * * @param Event $event * @param Users $user - * @param boolean $isFirstSignup + * @param bool $isFirstSignup + * * @return void */ - public function afterSignup(Event $event, Companies $company): void + public function afterSignup(Event $event, Companies $company) : void { //setup the user notification setting $company->set('notifications', $company->user->email); @@ -65,7 +67,7 @@ public function afterSignup(Event $event, Companies $company): void } //if the app is subscription based, create a free trial for this company - if ($app->subscriptioBased()) { + if ($app->subscriptionBased()) { $company->set( Companies::PAYMENT_GATEWAY_CUSTOMER_KEY, $company->startFreeTrial() @@ -101,5 +103,8 @@ public function afterSignup(Event $event, Companies $company): void $companiesAssoc->companies_id = $company->id; $companiesAssoc->companies_groups_id = $companiesGroup->id; $companiesAssoc->saveOrFail(); + + //assign role + $company->user->assignRole(Roles::findFirstOrFail($company->user->role_id)->name); } } diff --git a/src/Listener/User.php b/src/Listener/User.php index 400fe5aa..4ebfd7a5 100644 --- a/src/Listener/User.php +++ b/src/Listener/User.php @@ -4,13 +4,13 @@ namespace Canvas\Listener; -use Phalcon\Events\Event; -use Canvas\Models\Users; -use Canvas\Models\Companies; use Canvas\Auth\App; use Canvas\Models\Apps; +use Canvas\Models\Companies; use Canvas\Models\Roles; +use Canvas\Models\Users; use Canvas\Models\UsersInvite; +use Phalcon\Events\Event; class User { @@ -19,15 +19,16 @@ class User * * @param Event $event * @param Users $user - * @param boolean $isFirstSignup + * @param bool $isFirstSignup + * * @return void */ - public function afterSignup(Event $event, Users $user, bool $isFirstSignup): void + public function afterSignup(Event $event, Users $user, bool $isFirstSignup) : void { /** - * User signing up for a new app / plan - * How do we know? well he doesn't have a default_company. - */ + * User signing up for a new app / plan + * How do we know? well he doesn't have a default_company. + */ if ($isFirstSignup) { /** * Let's create a new Companies. @@ -60,7 +61,7 @@ public function afterSignup(Event $event, Users $user, bool $isFirstSignup): voi //Insert record into user_roles if (!$role = $user->getDI()->getApp()->get(Apps::APP_DEFAULT_ROLE_SETTING)) { - $role = $user->getDI()->getApp()->name . '.' . Roles::getById((int)$user->roles_id)->name; + $role = $user->getDI()->getApp()->name . '.' . Roles::getById((int) $user->roles_id)->name; } $user->assignRole($role); @@ -71,6 +72,7 @@ public function afterSignup(Event $event, Users $user, bool $isFirstSignup): voi * * @param Event $event * @param Users $user + * * @return void */ public function afterInvite(Event $event, Users $user, UsersInvite $usersInvite) diff --git a/src/Models/Apps.php b/src/Models/Apps.php index 72999532..c5af8050 100644 --- a/src/Models/Apps.php +++ b/src/Models/Apps.php @@ -185,7 +185,7 @@ public function ecosystemAuth(): bool * * @return boolean */ - public function subscriptioBased(): bool + public function subscriptionBased(): bool { return (bool) $this->payments_active; } diff --git a/src/Traits/PermissionsTrait.php b/src/Traits/PermissionsTrait.php index ee684933..ae98d4f7 100644 --- a/src/Traits/PermissionsTrait.php +++ b/src/Traits/PermissionsTrait.php @@ -17,7 +17,7 @@ trait PermissionsTrait { /** - * Assigne a user this role + * Assigned a user this role * Example: App.Role. * * @param string $role @@ -26,7 +26,7 @@ trait PermissionsTrait public function assignRole(string $role): bool { /** - * check if we have a dot, that mes it legacy and sending the app name + * check if we have a dot, that means it legacy and sending the app name * not needed any more so we remove it. */ if (strpos($role, '.') !== false) { From a08d3817f6d4a0a5731addc1096084b5dc11b360 Mon Sep 17 00:00:00 2001 From: mctekk Date: Sun, 14 Jun 2020 17:06:16 -0400 Subject: [PATCH 03/26] fix typo --- src/Template.php | 2 +- src/Traits/PermissionsTrait.php | 16 ++++++++++------ 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/Template.php b/src/Template.php index 2814f14b..48e3264d 100644 --- a/src/Template.php +++ b/src/Template.php @@ -15,7 +15,7 @@ class Template { /** - * Given the email tempalte name and its params + * Given the email template name and its params * - create the files * - render it with the variables * - return the content string for use to use anywhere. diff --git a/src/Traits/PermissionsTrait.php b/src/Traits/PermissionsTrait.php index ae98d4f7..e517b98d 100644 --- a/src/Traits/PermissionsTrait.php +++ b/src/Traits/PermissionsTrait.php @@ -4,10 +4,10 @@ namespace Canvas\Traits; -use Canvas\Models\Roles; -use Canvas\Models\UserRoles; use Canvas\Http\Exception\InternalServerErrorException; use Canvas\Http\Exception\UnauthorizedException; +use Canvas\Models\Roles; +use Canvas\Models\UserRoles; /** * Trait FractalTrait. @@ -21,9 +21,10 @@ trait PermissionsTrait * Example: App.Role. * * @param string $role + * * @return boolean */ - public function assignRole(string $role): bool + public function assignRole(string $role) : bool { /** * check if we have a dot, that means it legacy and sending the app name @@ -65,9 +66,10 @@ public function assignRole(string $role): bool * Example: App.Role. * * @param string $role + * * @return boolean */ - public function removeRole(string $role): bool + public function removeRole(string $role) : bool { $role = Roles::getByAppName($role, $this->getDefaultCompany()); @@ -92,9 +94,10 @@ public function removeRole(string $role): bool * Check if the user has this role. * * @param string $role + * * @return boolean */ - public function hasRole(string $role): bool + public function hasRole(string $role) : bool { $role = Roles::getByAppName($role, $this->getDefaultCompany()); @@ -118,9 +121,10 @@ public function hasRole(string $role): bool * * @param string $action * @param bool $throwException + * * @return boolean */ - public function can(string $action, bool $throwException = false): bool + public function can(string $action, bool $throwException = false) : bool { //if we find the . then les if (strpos($action, '.') === false) { From bbe508325406ccdaf652c68460b91cc8d5b51746 Mon Sep 17 00:00:00 2001 From: mctekk Date: Sun, 14 Jun 2020 17:39:36 -0400 Subject: [PATCH 04/26] Update baka php --- routes/api.php | 2 +- src/Api/Controllers/AppsPlansController.php | 2 +- src/Api/Controllers/UserWebhooksController.php | 2 +- src/Bootstrap/Api.php | 6 ++++-- src/Bootstrap/Cli.php | 2 +- src/Bootstrap/IntegrationTests.php | 2 +- src/Bootstrap/Swoole.php | 2 +- src/Cli/tasks/ClearcacheTask.php | 2 +- src/Core/config.php | 4 ++-- src/Core/functions.php | 14 +++++++------- src/Http/Request.php | 5 +++-- src/Http/SwooleRequest.php | 4 ++-- src/Mapper/CustomFieldsMapper.php | 2 +- src/Mapper/CustomFieldsModulesMapper.php | 2 +- src/Middleware/NotFoundMiddleware.php | 6 +++--- src/Providers/AclProvider.php | 4 ++-- src/Providers/AppProvider.php | 4 ++-- src/Providers/CacheDataProvider.php | 6 +++--- src/Providers/CliDispatcherProvider.php | 4 ++-- src/Providers/ConfigProvider.php | 6 +++--- src/Providers/DatabaseProvider.php | 6 +++--- src/Providers/ElasticProvider.php | 4 ++-- src/Providers/ErrorHandlerProvider.php | 4 ++-- src/Providers/EventsManagerProvider.php | 4 ++-- src/Providers/FileSystemProvider.php | 4 ++-- src/Providers/LoggerProvider.php | 8 ++++---- src/Providers/MailProvider.php | 4 ++-- src/Providers/MapperProvider.php | 4 ++-- src/Providers/ModelsCacheProvider.php | 6 +++--- src/Providers/ModelsMetadataProvider.php | 6 +++--- src/Providers/PusherProvider.php | 4 ++-- src/Providers/QueueProvider.php | 6 +++--- src/Providers/RedisProvider.php | 6 +++--- src/Providers/RegistryProvider.php | 4 ++-- src/Providers/RequestProvider.php | 6 +++--- src/Providers/ResponseProvider.php | 6 +++--- src/Providers/RouterProvider.php | 2 +- src/Providers/SessionProvider.php | 6 +++--- src/Providers/SocialLoginProvider.php | 6 +++--- src/Providers/ThrottleProvider.php | 6 +++--- src/Providers/ViewProvider.php | 6 +++--- src/Traits/FractalTrait.php | 2 +- src/Traits/ResponseTrait.php | 2 +- src/Traits/TokenTrait.php | 2 +- src/Webhooks.php | 2 +- tests/_support/Helper/Integration.php | 2 +- tests/autoload.php | 2 +- tests/config.php | 4 ++-- tests/unit/cli/ClearCacheCest.php | 2 +- tests/unit/config/AutoloaderCest.php | 4 ++-- tests/unit/config/ConfigCest.php | 2 +- tests/unit/config/FunctionsCest.php | 10 +++++----- tests/unit/config/ProvidersCest.php | 2 +- tests/unit/library/ErrorHandlerCest.php | 2 +- 54 files changed, 115 insertions(+), 112 deletions(-) diff --git a/routes/api.php b/routes/api.php index 6f49917d..d8db2362 100644 --- a/routes/api.php +++ b/routes/api.php @@ -2,7 +2,7 @@ use Baka\Router\Route; use Baka\Router\RouteGroup; -use function Canvas\Core\envValue; +use function Baka\envValue; $publicRoutes = [ Route::get('/')->controller('IndexController'), diff --git a/src/Api/Controllers/AppsPlansController.php b/src/Api/Controllers/AppsPlansController.php index 76ec1e96..b505a28d 100644 --- a/src/Api/Controllers/AppsPlansController.php +++ b/src/Api/Controllers/AppsPlansController.php @@ -15,7 +15,7 @@ use Canvas\Models\Subscription as CanvasSubscription; use Phalcon\Cashier\Subscription; use Canvas\Models\UserCompanyApps; -use function Canvas\Core\paymentGatewayIsActive; +use function Baka\paymentGatewayIsActive; use Canvas\Validation as CanvasValidation; use Canvas\Models\PaymentMethodsCreds; diff --git a/src/Api/Controllers/UserWebhooksController.php b/src/Api/Controllers/UserWebhooksController.php index beff80bb..c441d45b 100644 --- a/src/Api/Controllers/UserWebhooksController.php +++ b/src/Api/Controllers/UserWebhooksController.php @@ -10,7 +10,7 @@ use Phalcon\Http\Response; use Canvas\Webhooks; use Phalcon\Validation\Validator\PresenceOf; -use function Canvas\Core\isJson; +use function Baka\isJson; /** * Class LanguagesController. diff --git a/src/Bootstrap/Api.php b/src/Bootstrap/Api.php index 65a6938c..4b67834e 100644 --- a/src/Bootstrap/Api.php +++ b/src/Bootstrap/Api.php @@ -4,7 +4,8 @@ namespace Canvas\Bootstrap; -use function Canvas\Core\appPath; +use function Baka\appPath; +use Baka\Http\Request\Phalcon as Request; use Phalcon\Di\FactoryDefault; use Phalcon\Mvc\Micro; use Canvas\Http\Response; @@ -27,7 +28,8 @@ class Api extends AbstractBootstrap public function run() { try { - return $this->application->handle(); + $request = new Request(); + return $this->application->handle($request->getServer('REQUEST_URI')); } catch (Throwable $e) { $response = new Response(); $response->handleException($e)->send(); diff --git a/src/Bootstrap/Cli.php b/src/Bootstrap/Cli.php index d841898e..9f63afb6 100644 --- a/src/Bootstrap/Cli.php +++ b/src/Bootstrap/Cli.php @@ -4,7 +4,7 @@ namespace Canvas\Bootstrap; -use function Canvas\Core\appPath; +use function Baka\appPath; use Phalcon\Cli\Console; use Phalcon\Di\FactoryDefault\Cli as PhCli; use Throwable; diff --git a/src/Bootstrap/IntegrationTests.php b/src/Bootstrap/IntegrationTests.php index b3220bf2..53871a76 100644 --- a/src/Bootstrap/IntegrationTests.php +++ b/src/Bootstrap/IntegrationTests.php @@ -2,7 +2,7 @@ namespace Canvas\Bootstrap; -use function Canvas\Core\appPath; +use function Baka\appPath; use Phalcon\Di\FactoryDefault; class IntegrationTests extends Api diff --git a/src/Bootstrap/Swoole.php b/src/Bootstrap/Swoole.php index 7f7df2d9..42ff5a07 100644 --- a/src/Bootstrap/Swoole.php +++ b/src/Bootstrap/Swoole.php @@ -4,7 +4,7 @@ namespace Canvas\Bootstrap; -use function Canvas\Core\appPath; +use function Baka\appPath; use Phalcon\Di\FactoryDefault; use Phalcon\Mvc\Micro; diff --git a/src/Cli/tasks/ClearcacheTask.php b/src/Cli/tasks/ClearcacheTask.php index 9a2b2a16..34a85444 100644 --- a/src/Cli/tasks/ClearcacheTask.php +++ b/src/Cli/tasks/ClearcacheTask.php @@ -2,7 +2,7 @@ namespace Canvas\Cli\Tasks; -use function Canvas\Core\appPath; +use function Baka\appPath; use Phalcon\Cache\Backend\Libmemcached; use Phalcon\Cli\Task as PhTask; use Phalcon\Queue\Beanstalk\Extended as BeanstalkExtended; diff --git a/src/Core/config.php b/src/Core/config.php index c80a5d83..84a18c0a 100644 --- a/src/Core/config.php +++ b/src/Core/config.php @@ -1,7 +1,7 @@ getShared('config'); $db = $container->getShared('db'); diff --git a/src/Providers/AppProvider.php b/src/Providers/AppProvider.php index 1e8c35ee..1a603897 100644 --- a/src/Providers/AppProvider.php +++ b/src/Providers/AppProvider.php @@ -3,7 +3,7 @@ namespace Canvas\Providers; use Phalcon\Di\ServiceProviderInterface; -use Phalcon\DiInterface; +use Phalcon\Di\DiInterface; use Canvas\Models\Apps; use Canvas\Http\Exception\InternalServerErrorException; use Phalcon\Http\Request; @@ -13,7 +13,7 @@ class AppProvider implements ServiceProviderInterface /** * @param DiInterface $container */ - public function register(DiInterface $container) + public function register(DiInterface $container) : void { $config = $container->getShared('config'); diff --git a/src/Providers/CacheDataProvider.php b/src/Providers/CacheDataProvider.php index d85673cb..5c186e64 100644 --- a/src/Providers/CacheDataProvider.php +++ b/src/Providers/CacheDataProvider.php @@ -2,11 +2,11 @@ namespace Canvas\Providers; -use function Canvas\Core\envValue; +use function Baka\envValue; use Phalcon\Cache\Backend\Libmemcached; use Phalcon\Cache\Frontend\Data; use Phalcon\Di\ServiceProviderInterface; -use Phalcon\DiInterface; +use Phalcon\Di\DiInterface; use Redis; class CacheDataProvider implements ServiceProviderInterface @@ -14,7 +14,7 @@ class CacheDataProvider implements ServiceProviderInterface /** * @param DiInterface $container */ - public function register(DiInterface $container) + public function register(DiInterface $container) : void { $container->setShared( 'cache', diff --git a/src/Providers/CliDispatcherProvider.php b/src/Providers/CliDispatcherProvider.php index 084257ef..f6dc44c5 100644 --- a/src/Providers/CliDispatcherProvider.php +++ b/src/Providers/CliDispatcherProvider.php @@ -6,14 +6,14 @@ use Phalcon\Cli\Dispatcher; use Phalcon\Di\ServiceProviderInterface; -use Phalcon\DiInterface; +use Phalcon\Di\DiInterface; class CliDispatcherProvider implements ServiceProviderInterface { /** * @param DiInterface $container */ - public function register(DiInterface $container) + public function register(DiInterface $container) : void { $config = $container->getShared('config'); diff --git a/src/Providers/ConfigProvider.php b/src/Providers/ConfigProvider.php index 3fe16988..48f696ea 100644 --- a/src/Providers/ConfigProvider.php +++ b/src/Providers/ConfigProvider.php @@ -4,8 +4,8 @@ namespace Canvas\Providers; -use function Canvas\Core\appPath; -use Phalcon\DiInterface; +use function Baka\appPath; +use Phalcon\Di\DiInterface; use Phalcon\Di\ServiceProviderInterface; use Phalcon\Config; @@ -14,7 +14,7 @@ class ConfigProvider implements ServiceProviderInterface /** * @param DiInterface $container */ - public function register(DiInterface $container) + public function register(DiInterface $container) : void { $container->setShared( 'config', diff --git a/src/Providers/DatabaseProvider.php b/src/Providers/DatabaseProvider.php index 55478c0e..55e4009b 100644 --- a/src/Providers/DatabaseProvider.php +++ b/src/Providers/DatabaseProvider.php @@ -4,10 +4,10 @@ namespace Canvas\Providers; -use function Canvas\Core\envValue; +use function Baka\envValue; use Phalcon\Db\Adapter\Pdo\Mysql; use Phalcon\Di\ServiceProviderInterface; -use Phalcon\DiInterface; +use Phalcon\Di\DiInterface; use PDOException; use Canvas\Exception\ServerErrorHttpException; use PDO; @@ -17,7 +17,7 @@ class DatabaseProvider implements ServiceProviderInterface /** * @param DiInterface $container */ - public function register(DiInterface $container) + public function register(DiInterface $container) : void { $container->setShared( 'db', diff --git a/src/Providers/ElasticProvider.php b/src/Providers/ElasticProvider.php index e2caf2d8..d62b552b 100644 --- a/src/Providers/ElasticProvider.php +++ b/src/Providers/ElasticProvider.php @@ -3,7 +3,7 @@ namespace Canvas\Providers; use Phalcon\Di\ServiceProviderInterface; -use Phalcon\DiInterface; +use Phalcon\Di\DiInterface; use Elasticsearch\ClientBuilder; class ElasticProvider implements ServiceProviderInterface @@ -11,7 +11,7 @@ class ElasticProvider implements ServiceProviderInterface /** * @param DiInterface $container */ - public function register(DiInterface $container) + public function register(DiInterface $container) : void { $config = $container->getShared('config'); diff --git a/src/Providers/ErrorHandlerProvider.php b/src/Providers/ErrorHandlerProvider.php index c56b7fc7..c8d6c311 100644 --- a/src/Providers/ErrorHandlerProvider.php +++ b/src/Providers/ErrorHandlerProvider.php @@ -8,7 +8,7 @@ use Canvas\ErrorHandler; use Phalcon\Config; use Phalcon\Di\ServiceProviderInterface; -use Phalcon\DiInterface; +use Phalcon\Di\DiInterface; use Canvas\Constants\Flags; class ErrorHandlerProvider implements ServiceProviderInterface @@ -18,7 +18,7 @@ class ErrorHandlerProvider implements ServiceProviderInterface * * @param DiInterface $container */ - public function register(DiInterface $container) + public function register(DiInterface $container) : void { /** @var Logger $logger */ $logger = $container->getShared('log'); diff --git a/src/Providers/EventsManagerProvider.php b/src/Providers/EventsManagerProvider.php index 95604c08..b5b2f68a 100644 --- a/src/Providers/EventsManagerProvider.php +++ b/src/Providers/EventsManagerProvider.php @@ -3,7 +3,7 @@ namespace Canvas\Providers; use Phalcon\Di\ServiceProviderInterface; -use Phalcon\DiInterface; +use Phalcon\Di\DiInterface; use Canvas\Listener\Subscription; use Canvas\EventsManager; use Canvas\Listener\User; @@ -34,7 +34,7 @@ class EventsManagerProvider implements ServiceProviderInterface /** * @param DiInterface $container */ - public function register(DiInterface $container) + public function register(DiInterface $container) : void { $container->setShared( 'events', diff --git a/src/Providers/FileSystemProvider.php b/src/Providers/FileSystemProvider.php index ecddf522..99d9c527 100644 --- a/src/Providers/FileSystemProvider.php +++ b/src/Providers/FileSystemProvider.php @@ -3,7 +3,7 @@ namespace Canvas\Providers; use Phalcon\Di\ServiceProviderInterface; -use Phalcon\DiInterface; +use Phalcon\Di\DiInterface; use League\Flysystem\Adapter\Local; use League\Flysystem\AwsS3v3\AwsS3Adapter; use League\Flysystem\Filesystem; @@ -14,7 +14,7 @@ class FileSystemProvider implements ServiceProviderInterface /** * @param DiInterface $container */ - public function register(DiInterface $container) + public function register(DiInterface $container) : void { $config = $container->getShared('config'); diff --git a/src/Providers/LoggerProvider.php b/src/Providers/LoggerProvider.php index 023d67ff..5c6faafe 100644 --- a/src/Providers/LoggerProvider.php +++ b/src/Providers/LoggerProvider.php @@ -4,13 +4,13 @@ namespace Canvas\Providers; -use function Canvas\Core\appPath; -use function Canvas\Core\envValue; +use function Baka\appPath; +use function Baka\envValue; use Monolog\Formatter\LineFormatter; use Monolog\Handler\StreamHandler; use Monolog\Logger; use Phalcon\Di\ServiceProviderInterface; -use Phalcon\DiInterface; +use Phalcon\Di\DiInterface; use Raven_Client; use Monolog\Handler\RavenHandler; @@ -21,7 +21,7 @@ class LoggerProvider implements ServiceProviderInterface * * @param DiInterface $container */ - public function register(DiInterface $container) + public function register(DiInterface $container) : void { $config = $container->getShared('config'); diff --git a/src/Providers/MailProvider.php b/src/Providers/MailProvider.php index bdb2b8f6..25b91dac 100644 --- a/src/Providers/MailProvider.php +++ b/src/Providers/MailProvider.php @@ -3,7 +3,7 @@ namespace Canvas\Providers; use Phalcon\Di\ServiceProviderInterface; -use Phalcon\DiInterface; +use Phalcon\Di\DiInterface; use Baka\Mail\Manager as BakaMail; class MailProvider implements ServiceProviderInterface @@ -11,7 +11,7 @@ class MailProvider implements ServiceProviderInterface /** * @param DiInterface $container */ - public function register(DiInterface $container) + public function register(DiInterface $container) : void { $config = $container->getShared('config'); diff --git a/src/Providers/MapperProvider.php b/src/Providers/MapperProvider.php index babc70fa..9b4c73de 100644 --- a/src/Providers/MapperProvider.php +++ b/src/Providers/MapperProvider.php @@ -4,7 +4,7 @@ namespace Canvas\Providers; -use Phalcon\DiInterface; +use Phalcon\Di\DiInterface; use Phalcon\Di\ServiceProviderInterface; use AutoMapperPlus\AutoMapper; use AutoMapperPlus\Configuration\AutoMapperConfig; @@ -14,7 +14,7 @@ class MapperProvider implements ServiceProviderInterface /** * @param DiInterface $container */ - public function register(DiInterface $container) + public function register(DiInterface $container) : void { //configure the dto config $container->setShared( diff --git a/src/Providers/ModelsCacheProvider.php b/src/Providers/ModelsCacheProvider.php index a4046803..89fc9402 100644 --- a/src/Providers/ModelsCacheProvider.php +++ b/src/Providers/ModelsCacheProvider.php @@ -4,14 +4,14 @@ namespace Canvas\Providers; -use function Canvas\Core\envValue; +use function Baka\envValue; use Canvas\Constants\Flags; use Phalcon\Cache\Backend\Memory; use Phalcon\Cache\Backend\Redis; use Phalcon\Cache\Frontend\Data; use Phalcon\Cache\Frontend\None; -use Phalcon\DiInterface; +use Phalcon\Di\DiInterface; use Phalcon\Di\ServiceProviderInterface; class ModelsCacheProvider implements ServiceProviderInterface @@ -19,7 +19,7 @@ class ModelsCacheProvider implements ServiceProviderInterface /** * @param DiInterface $container */ - public function register(DiInterface $container) + public function register(DiInterface $container) : void { $config = $container->get('config'); diff --git a/src/Providers/ModelsMetadataProvider.php b/src/Providers/ModelsMetadataProvider.php index 18e6ab5b..82cbf618 100644 --- a/src/Providers/ModelsMetadataProvider.php +++ b/src/Providers/ModelsMetadataProvider.php @@ -4,9 +4,9 @@ namespace Canvas\Providers; -use function Canvas\Core\envValue; +use function Baka\envValue; use Phalcon\Di\ServiceProviderInterface; -use Phalcon\DiInterface; +use Phalcon\Di\DiInterface; use Phalcon\Mvc\Model\Metadata\Memory as MemoryMetaDataAdapter; use Phalcon\Mvc\Model\MetaData\Redis; use Canvas\Constants\Flags; @@ -16,7 +16,7 @@ class ModelsMetadataProvider implements ServiceProviderInterface /** * @param DiInterface $container */ - public function register(DiInterface $container) + public function register(DiInterface $container) : void { $config = $container->getShared('config'); $app = envValue('GEWAER_APP_ID', 1); diff --git a/src/Providers/PusherProvider.php b/src/Providers/PusherProvider.php index 11f6ce13..f86fbf3c 100644 --- a/src/Providers/PusherProvider.php +++ b/src/Providers/PusherProvider.php @@ -3,7 +3,7 @@ namespace Canvas\Providers; use Phalcon\Di\ServiceProviderInterface; -use Phalcon\DiInterface; +use Phalcon\Di\DiInterface; use Pusher\Pusher; class PusherProvider implements ServiceProviderInterface @@ -11,7 +11,7 @@ class PusherProvider implements ServiceProviderInterface /** * @param DiInterface $container */ - public function register(DiInterface $container) + public function register(DiInterface $container) : void { $config = $container->getShared('config'); diff --git a/src/Providers/QueueProvider.php b/src/Providers/QueueProvider.php index 3ff6d2b8..a4ff8c5d 100644 --- a/src/Providers/QueueProvider.php +++ b/src/Providers/QueueProvider.php @@ -3,16 +3,16 @@ namespace Canvas\Providers; use Phalcon\Di\ServiceProviderInterface; -use Phalcon\DiInterface; +use Phalcon\Di\DiInterface; use PhpAmqpLib\Connection\AMQPStreamConnection; -use function Canvas\Core\envValue; +use function Baka\envValue; class QueueProvider implements ServiceProviderInterface { /** * @param DiInterface $container */ - public function register(DiInterface $container) + public function register(DiInterface $container) : void { $container->setShared( 'queue', diff --git a/src/Providers/RedisProvider.php b/src/Providers/RedisProvider.php index ff061b9b..47872f27 100644 --- a/src/Providers/RedisProvider.php +++ b/src/Providers/RedisProvider.php @@ -2,9 +2,9 @@ namespace Canvas\Providers; -use function Canvas\Core\envValue; +use function Baka\envValue; use Phalcon\Di\ServiceProviderInterface; -use Phalcon\DiInterface; +use Phalcon\Di\DiInterface; use Redis; class RedisProvider implements ServiceProviderInterface @@ -12,7 +12,7 @@ class RedisProvider implements ServiceProviderInterface /** * @param DiInterface $container */ - public function register(DiInterface $container) + public function register(DiInterface $container) : void { $app = envValue('GEWAER_APP_ID', 1); diff --git a/src/Providers/RegistryProvider.php b/src/Providers/RegistryProvider.php index 4d228a59..a34a2805 100644 --- a/src/Providers/RegistryProvider.php +++ b/src/Providers/RegistryProvider.php @@ -3,7 +3,7 @@ namespace Canvas\Providers; use Phalcon\Di\ServiceProviderInterface; -use Phalcon\DiInterface; +use Phalcon\Di\DiInterface; use Phalcon\Registry; class RegistryProvider implements ServiceProviderInterface @@ -11,7 +11,7 @@ class RegistryProvider implements ServiceProviderInterface /** * @param DiInterface $container */ - public function register(DiInterface $container) + public function register(DiInterface $container) : void { $container->setShared( 'registry', diff --git a/src/Providers/RequestProvider.php b/src/Providers/RequestProvider.php index 51b2f4ba..af470bd4 100644 --- a/src/Providers/RequestProvider.php +++ b/src/Providers/RequestProvider.php @@ -7,15 +7,15 @@ use Canvas\Http\Request; use Canvas\Http\SwooleRequest; use Phalcon\Di\ServiceProviderInterface; -use Phalcon\DiInterface; -use function Canvas\Core\isSwooleServer; +use Phalcon\Di\DiInterface; +use function Baka\isSwooleServer; class RequestProvider implements ServiceProviderInterface { /** * @param DiInterface $container */ - public function register(DiInterface $container) + public function register(DiInterface $container) : void { if (isSwooleServer()) { $container->setShared('request', new SwooleRequest()); diff --git a/src/Providers/ResponseProvider.php b/src/Providers/ResponseProvider.php index 190e63d0..ad54e251 100644 --- a/src/Providers/ResponseProvider.php +++ b/src/Providers/ResponseProvider.php @@ -7,15 +7,15 @@ use Canvas\Http\Response; use Canvas\Http\SwooleResponse; use Phalcon\Di\ServiceProviderInterface; -use Phalcon\DiInterface; -use function Canvas\Core\isSwooleServer; +use Phalcon\Di\DiInterface; +use function Baka\isSwooleServer; class ResponseProvider implements ServiceProviderInterface { /** * @param DiInterface $container */ - public function register(DiInterface $container) + public function register(DiInterface $container) : void { if (isSwooleServer()) { $container->setShared('response', new SwooleResponse()); diff --git a/src/Providers/RouterProvider.php b/src/Providers/RouterProvider.php index d616d7b1..ec09d8a9 100644 --- a/src/Providers/RouterProvider.php +++ b/src/Providers/RouterProvider.php @@ -4,7 +4,7 @@ namespace Canvas\Providers; -use function Canvas\Core\appPath; +use function Baka\appPath; use Baka\Router\Providers\RouterProvider as BakaRouterProvider; class RouterProvider extends BakaRouterProvider diff --git a/src/Providers/SessionProvider.php b/src/Providers/SessionProvider.php index 76456e01..d77db5f8 100644 --- a/src/Providers/SessionProvider.php +++ b/src/Providers/SessionProvider.php @@ -2,9 +2,9 @@ namespace Canvas\Providers; -use function Canvas\Core\envValue; +use function Baka\envValue; use Phalcon\Di\ServiceProviderInterface; -use Phalcon\DiInterface; +use Phalcon\Di\DiInterface; use Phalcon\Session\Adapter\Redis; class SessionProvider implements ServiceProviderInterface @@ -12,7 +12,7 @@ class SessionProvider implements ServiceProviderInterface /** * @param DiInterface $container */ - public function register(DiInterface $container) + public function register(DiInterface $container) : void { $app = envValue('GEWAER_APP_ID', 1); diff --git a/src/Providers/SocialLoginProvider.php b/src/Providers/SocialLoginProvider.php index ad0bdbe7..b9c738eb 100644 --- a/src/Providers/SocialLoginProvider.php +++ b/src/Providers/SocialLoginProvider.php @@ -3,8 +3,8 @@ namespace Canvas\Providers; use Phalcon\Di\ServiceProviderInterface; -use Phalcon\DiInterface; -use function Canvas\Core\envValue; +use Phalcon\Di\DiInterface; +use function Baka\envValue; use Hybridauth\Hybridauth; class SocialLoginProvider implements ServiceProviderInterface @@ -12,7 +12,7 @@ class SocialLoginProvider implements ServiceProviderInterface /** * @param DiInterface $container */ - public function register(DiInterface $container) + public function register(DiInterface $container) : void { $config = $container->getShared('config'); diff --git a/src/Providers/ThrottleProvider.php b/src/Providers/ThrottleProvider.php index bca0a83e..606cd22b 100644 --- a/src/Providers/ThrottleProvider.php +++ b/src/Providers/ThrottleProvider.php @@ -7,8 +7,8 @@ use Canvas\Http\Request; use Canvas\Http\SwooleRequest; use Phalcon\Di\ServiceProviderInterface; -use Phalcon\DiInterface; -use function Canvas\Core\isSwooleServer; +use Phalcon\Di\DiInterface; +use function Baka\isSwooleServer; use OakLabs\PhalconThrottler\RedisThrottler; class ThrottleProvider implements ServiceProviderInterface @@ -16,7 +16,7 @@ class ThrottleProvider implements ServiceProviderInterface /** * @param DiInterface $container */ - public function register(DiInterface $container) + public function register(DiInterface $container) : void { $config = $container->getShared('config'); diff --git a/src/Providers/ViewProvider.php b/src/Providers/ViewProvider.php index a7cd1f70..a35fc4a2 100644 --- a/src/Providers/ViewProvider.php +++ b/src/Providers/ViewProvider.php @@ -4,12 +4,12 @@ namespace Canvas\Providers; -use function Canvas\Core\appPath; +use function Baka\appPath; use Phalcon\Cache\Backend\File as BackendFileCache; use Phalcon\Cache\Frontend\None as NoneCache; use Phalcon\Cache\Frontend\Output as FrontenCacheOutput; use Phalcon\Di\ServiceProviderInterface; -use Phalcon\DiInterface; +use Phalcon\Di\DiInterface; use Phalcon\Mvc\View\Engine\Volt as VoltEngine; use Phalcon\Mvc\View\Simple as SimpleView; @@ -18,7 +18,7 @@ class ViewProvider implements ServiceProviderInterface /** * @param DiInterface $container */ - public function register(DiInterface $container) + public function register(DiInterface $container) : void { $config = $container->get('config'); diff --git a/src/Traits/FractalTrait.php b/src/Traits/FractalTrait.php index 2a847867..ed4cdfd7 100644 --- a/src/Traits/FractalTrait.php +++ b/src/Traits/FractalTrait.php @@ -6,7 +6,7 @@ use League\Fractal\Manager; use League\Fractal\Serializer\JsonApiSerializer; -use function Canvas\Core\envValue; +use function Baka\envValue; use function sprintf; use function ucfirst; diff --git a/src/Traits/ResponseTrait.php b/src/Traits/ResponseTrait.php index 6a16269d..9040282b 100644 --- a/src/Traits/ResponseTrait.php +++ b/src/Traits/ResponseTrait.php @@ -6,7 +6,7 @@ use Canvas\Http\Response; use Phalcon\Mvc\Micro; -use function Canvas\Core\isSwooleServer; +use function Baka\isSwooleServer; /** * Trait ResponseTrait diff --git a/src/Traits/TokenTrait.php b/src/Traits/TokenTrait.php index 277100f7..46504b5e 100644 --- a/src/Traits/TokenTrait.php +++ b/src/Traits/TokenTrait.php @@ -6,7 +6,7 @@ use Lcobucci\JWT\Parser; use Lcobucci\JWT\Token; -use function Canvas\Core\envValue; +use function Baka\envValue; use function time; /** diff --git a/src/Webhooks.php b/src/Webhooks.php index 4499c410..3bf57e43 100644 --- a/src/Webhooks.php +++ b/src/Webhooks.php @@ -4,7 +4,7 @@ namespace Canvas; -use function Canvas\Core\isJson; +use function Baka\isJson; use Canvas\Models\SystemModules; use Canvas\Models\UserWebhooks; use GuzzleHttp\Client; diff --git a/tests/_support/Helper/Integration.php b/tests/_support/Helper/Integration.php index 77f46cbc..fcf5f48f 100644 --- a/tests/_support/Helper/Integration.php +++ b/tests/_support/Helper/Integration.php @@ -20,7 +20,7 @@ use Canvas\Bootstrap\IntegrationTests; use Canvas\Models\FileSystem; use Canvas\Models\FileSystemEntities; -use function Canvas\Core\appPath; +use function Baka\appPath; // here you can define custom actions // all public methods declared in helper class will be available in $I diff --git a/tests/autoload.php b/tests/autoload.php index 977e3129..4c59210d 100644 --- a/tests/autoload.php +++ b/tests/autoload.php @@ -2,7 +2,7 @@ use Dotenv\Dotenv; use Phalcon\Loader; -use function Canvas\Core\appPath; +use function Baka\appPath; // Register the auto loader require __DIR__ . '/../src/Core/functions.php'; diff --git a/tests/config.php b/tests/config.php index 53812da8..7e03f7d8 100644 --- a/tests/config.php +++ b/tests/config.php @@ -1,7 +1,7 @@ [ //@todo migration to app diff --git a/tests/unit/cli/ClearCacheCest.php b/tests/unit/cli/ClearCacheCest.php index 3eb0358b..b82260a3 100644 --- a/tests/unit/cli/ClearCacheCest.php +++ b/tests/unit/cli/ClearCacheCest.php @@ -10,7 +10,7 @@ use UnitTester; use function fclose; use function iterator_count; -use function Canvas\Core\appPath; +use function Baka\appPath; use function ob_end_clean; use function ob_get_contents; use function ob_start; diff --git a/tests/unit/config/AutoloaderCest.php b/tests/unit/config/AutoloaderCest.php index 878b81c5..efa612bf 100644 --- a/tests/unit/config/AutoloaderCest.php +++ b/tests/unit/config/AutoloaderCest.php @@ -5,7 +5,7 @@ use Canvas\Http\Response; use UnitTester; use function function_exists; -use function Canvas\Core\appPath; +use function Baka\appPath; class AutoloaderCest { @@ -42,6 +42,6 @@ public function checkAutoloader(UnitTester $I) $class = new Response(); $I->assertTrue($class instanceof Response); - $I->assertTrue(function_exists('Canvas\Core\envValue')); + $I->assertTrue(function_exists('Baka\envValue')); } } diff --git a/tests/unit/config/ConfigCest.php b/tests/unit/config/ConfigCest.php index 64a01651..d6635b39 100644 --- a/tests/unit/config/ConfigCest.php +++ b/tests/unit/config/ConfigCest.php @@ -4,7 +4,7 @@ use UnitTester; use function is_array; -use function Canvas\Core\appPath; +use function Baka\appPath; class ConfigCest { diff --git a/tests/unit/config/FunctionsCest.php b/tests/unit/config/FunctionsCest.php index d4c0a7a0..62db9fa6 100644 --- a/tests/unit/config/FunctionsCest.php +++ b/tests/unit/config/FunctionsCest.php @@ -4,11 +4,11 @@ use UnitTester; use Codeception\PHPUnit\TestCase; -use function Canvas\Core\appPath; -use function Canvas\Core\envValue; -use function Canvas\Core\isJson; -use function Canvas\Core\appUrl; -use function Canvas\Core\paymentGatewayIsActive; +use function Baka\appPath; +use function Baka\envValue; +use function Baka\isJson; +use function Baka\appUrl; +use function Baka\paymentGatewayIsActive; class FunctionsCest { diff --git a/tests/unit/config/ProvidersCest.php b/tests/unit/config/ProvidersCest.php index fc420eae..43ffba45 100644 --- a/tests/unit/config/ProvidersCest.php +++ b/tests/unit/config/ProvidersCest.php @@ -11,7 +11,7 @@ use Canvas\Providers\RequestProvider; use Canvas\Providers\RouterProvider; use UnitTester; -use function Canvas\Core\appPath; +use function Baka\appPath; class ProvidersCest { diff --git a/tests/unit/library/ErrorHandlerCest.php b/tests/unit/library/ErrorHandlerCest.php index fb75765d..a1b02ce4 100644 --- a/tests/unit/library/ErrorHandlerCest.php +++ b/tests/unit/library/ErrorHandlerCest.php @@ -9,7 +9,7 @@ use Phalcon\Config; use Phalcon\Di\FactoryDefault; use UnitTester; -use function Canvas\Core\appPath; +use function Baka\appPath; class ErrorHandlerCest { From af9375ba77b5ffeb5e4e850da7487e2d34337d77 Mon Sep 17 00:00:00 2001 From: mctekk Date: Sun, 14 Jun 2020 19:42:09 -0400 Subject: [PATCH 05/26] Update model with phalcon v4 --- src/Acl/Manager.php | 18 +-- src/Api/Controllers/AppsPlansController.php | 2 +- src/Api/Controllers/AuthController.php | 4 +- .../Controllers/RolesAccesListController.php | 2 +- .../UserLinkedSourcesController.php | 2 +- .../Controllers/UserWebhooksController.php | 2 +- src/Api/Controllers/UsersController.php | 2 +- src/Api/Controllers/UsersInviteController.php | 2 +- src/Auth/App.php | 1 + src/Auth/Auth.php | 80 ---------- .../AbstractCustomFieldsModel.php | 2 +- src/Models/AccessList.php | 10 -- src/Models/Apps.php | 89 ++---------- src/Models/AppsKeys.php | 10 -- src/Models/AppsPlans.php | 9 -- src/Models/AppsPlansSettings.php | 10 -- src/Models/AppsRoles.php | 9 -- src/Models/AppsSettings.php | 9 -- src/Models/Companies.php | 137 ++---------------- src/Models/CompaniesAssociations.php | 9 -- src/Models/CompaniesBranches.php | 10 -- src/Models/CompaniesCustomFields.php | 10 -- src/Models/CompaniesGroups.php | 10 -- src/Models/CompaniesSettings.php | 9 -- src/Models/Countries.php | 9 -- src/Models/Currencies.php | 9 -- src/Models/CustomFieldsModules.php | 10 -- src/Models/CustomFieldsSettings.php | 9 -- src/Models/CustomFieldsTypes.php | 10 -- src/Models/CustomFieldsTypesSettings.php | 9 -- src/Models/CustomFieldsValues.php | 9 -- src/Models/EmailTemplates.php | 10 -- src/Models/EmailTemplatesVariables.php | 10 -- src/Models/FileSystem.php | 12 +- src/Models/FileSystemEntities.php | 10 -- src/Models/FileSystemSettings.php | 9 -- src/Models/Languages.php | 9 -- src/Models/Locales.php | 10 -- src/Models/NotificationType.php | 10 -- src/Models/Notifications.php | 10 -- src/Models/PaymentFrequencies.php | 10 -- src/Models/PaymentMethods.php | 10 -- src/Models/PaymentMethodsCreds.php | 10 -- src/Models/Resources.php | 10 -- src/Models/ResourcesAccesses.php | 10 -- src/Models/Roles.php | 10 -- src/Models/RolesInherits.php | 9 -- src/Models/Sources.php | 9 -- src/Models/SystemModules.php | 90 +----------- src/Models/UserCompanyApps.php | 10 -- src/Models/UserCompanyAppsActivities.php | 10 -- src/Models/UserConfig.php | 39 ----- src/Models/UserLinkedSources.php | 48 +----- src/Models/UserRoles.php | 10 -- src/Models/UserWebhooks.php | 10 -- src/Models/Users.php | 101 ++----------- src/Models/UsersAssociatedApps.php | 9 -- src/Models/UsersAssociatedCompanies.php | 10 -- src/Models/UsersInvite.php | 10 -- src/Models/Webhooks.php | 9 -- src/Validations/PasswordValidation.php | 4 +- 61 files changed, 63 insertions(+), 978 deletions(-) delete mode 100644 src/Auth/Auth.php diff --git a/src/Acl/Manager.php b/src/Acl/Manager.php index 2af62b3b..ddb218ea 100644 --- a/src/Acl/Manager.php +++ b/src/Acl/Manager.php @@ -7,7 +7,7 @@ use Phalcon\Db; use Phalcon\Db\AdapterInterface as DbAdapter; use Phalcon\Acl\Exception; -use Phalcon\Acl\Resource; +use Phalcon\Acl\Component; use Phalcon\Acl; use Phalcon\Acl\Role; use Phalcon\Acl\RoleInterface; @@ -294,15 +294,15 @@ protected function setAppByRole(string $role) : string * Example: * * //Add a resource to the the list allowing access to an action - * $acl->addResource(new Phalcon\Acl\Resource('customers'), 'search'); + * $acl->addResource(new Phalcon\Acl\Component('customers'), 'search'); * $acl->addResource('customers', 'search'); * //Add a resource with an access list - * $acl->addResource(new Phalcon\Acl\Resource('customers'), ['create', 'search']); + * $acl->addResource(new Phalcon\Acl\Component('customers'), ['create', 'search']); * $acl->addResource('customers', ['create', 'search']); * $acl->addResource('App.customers', ['create', 'search']); * . * - * @param \Phalcon\Acl\Resource|string $resource + * @param \Phalcon\Acl\Component|string $resource * @param array|string $accessList * @return boolean */ @@ -312,7 +312,7 @@ public function addResource($resource, $accessList = null) : bool //echeck if we have a dot , taht means we are sending the specific app to use $resource = $this->setAppByResource($resource); - $resource = new Resource($resource); + $resource = new Component($resource); } if (!ResourcesDB::isResource($resource->getName())) { @@ -367,14 +367,14 @@ public function addResourceAccess($resourceName, $accessList) : bool /** * {@inheritdoc} * - * @return \Phalcon\Acl\Resource[] + * @return \Phalcon\Acl\Component[] */ - public function getResources() : \Phalcon\Acl\ResourceInterface + public function getResources() : \Phalcon\Acl\ComponentInterface { $resources = []; foreach (ResourcesDB::find() as $row) { - $resources[] = new Resource($row->name, $row->description); + $resources[] = new Component($row->name, $row->description); } return $resources; } @@ -475,7 +475,7 @@ public function deny($roleName, $resourceName, $access, $func = null) public function isAllowed($role, $resource, $access, array $parameters = null) : bool { $role = $this->setAppByRole($role); - //resoure always overwrites the role app? + //resource always overwrites the role app? $resource = $this->setAppByResource($resource); $roleObj = RolesDB::getByName($role); diff --git a/src/Api/Controllers/AppsPlansController.php b/src/Api/Controllers/AppsPlansController.php index b505a28d..8de240de 100644 --- a/src/Api/Controllers/AppsPlansController.php +++ b/src/Api/Controllers/AppsPlansController.php @@ -16,7 +16,7 @@ use Phalcon\Cashier\Subscription; use Canvas\Models\UserCompanyApps; use function Baka\paymentGatewayIsActive; -use Canvas\Validation as CanvasValidation; +use Baka\Validation as CanvasValidation; use Canvas\Models\PaymentMethodsCreds; /** diff --git a/src/Api/Controllers/AuthController.php b/src/Api/Controllers/AuthController.php index 07b26959..300dbcb4 100644 --- a/src/Api/Controllers/AuthController.php +++ b/src/Api/Controllers/AuthController.php @@ -21,12 +21,12 @@ use Baka\Auth\Models\Sessions; use Canvas\Auth\Factory; use Canvas\Http\Exception\InternalServerErrorException; -use Canvas\Validation as CanvasValidation; +use Baka\Validation as CanvasValidation; use Canvas\Notifications\ResetPassword; use Canvas\Notifications\PasswordUpdate; use Canvas\Notifications\Signup; use Canvas\Notifications\UpdateEmail; -use Canvas\Validations\PasswordValidation; +use Baka\Validations\PasswordValidation; use Canvas\Traits\TokenTrait; /** diff --git a/src/Api/Controllers/RolesAccesListController.php b/src/Api/Controllers/RolesAccesListController.php index d77676ae..8c75c50d 100644 --- a/src/Api/Controllers/RolesAccesListController.php +++ b/src/Api/Controllers/RolesAccesListController.php @@ -15,7 +15,7 @@ use Canvas\Models\Roles; use Baka\Http\QueryParser; use Canvas\Http\Exception\NotFoundException; -use Canvas\Validation as CanvasValidation; +use Baka\Validation as CanvasValidation; /** * Class RolesController. diff --git a/src/Api/Controllers/UserLinkedSourcesController.php b/src/Api/Controllers/UserLinkedSourcesController.php index b70292d7..246d7f1c 100644 --- a/src/Api/Controllers/UserLinkedSourcesController.php +++ b/src/Api/Controllers/UserLinkedSourcesController.php @@ -8,7 +8,7 @@ use Baka\Auth\Models\Sources; use Phalcon\Http\Response; use Phalcon\Validation\Validator\PresenceOf; -use Canvas\Validation as CanvasValidation; +use Baka\Validation as CanvasValidation; use Baka\ASDecoder; use Canvas\Http\Exception\InternalServerErrorException; diff --git a/src/Api/Controllers/UserWebhooksController.php b/src/Api/Controllers/UserWebhooksController.php index c441d45b..eddad0e9 100644 --- a/src/Api/Controllers/UserWebhooksController.php +++ b/src/Api/Controllers/UserWebhooksController.php @@ -6,7 +6,7 @@ use Canvas\Http\Exception\UnprocessableEntityException; use Canvas\Models\UserWebhooks; -use Canvas\Validation; +use Baka\Validation; use Phalcon\Http\Response; use Canvas\Webhooks; use Phalcon\Validation\Validator\PresenceOf; diff --git a/src/Api/Controllers/UsersController.php b/src/Api/Controllers/UsersController.php index ca224f2e..a4e96510 100644 --- a/src/Api/Controllers/UsersController.php +++ b/src/Api/Controllers/UsersController.php @@ -11,7 +11,7 @@ use Canvas\Mapper\UserMapper; use Canvas\Models\Users; use Canvas\Models\UsersAssociatedApps; -use Canvas\Validation as CanvasValidation; +use Baka\Validation as CanvasValidation; use Phalcon\Http\Response; use Phalcon\Validation\Validator\PresenceOf; diff --git a/src/Api/Controllers/UsersInviteController.php b/src/Api/Controllers/UsersInviteController.php index 4b803527..8fa192fc 100644 --- a/src/Api/Controllers/UsersInviteController.php +++ b/src/Api/Controllers/UsersInviteController.php @@ -16,7 +16,7 @@ use Canvas\Http\Exception\UnprocessableEntityException; use Canvas\Traits\AuthTrait; use Canvas\Notifications\Invitation; -use Canvas\Validation as CanvasValidation; +use Baka\Validation as CanvasValidation; /** * Class LanguagesController. diff --git a/src/Auth/App.php b/src/Auth/App.php index 8e769039..c104a712 100644 --- a/src/Auth/App.php +++ b/src/Auth/App.php @@ -4,6 +4,7 @@ namespace Canvas\Auth; +use Baka\Auth\Auth; use Canvas\Hashing\Password; use Canvas\Models\Users; use Exception; diff --git a/src/Auth/Auth.php b/src/Auth/Auth.php deleted file mode 100644 index 0b0f27a7..00000000 --- a/src/Auth/Auth.php +++ /dev/null @@ -1,80 +0,0 @@ -login_reset_time = getenv('AUTH_MAX_AUTOLOGIN_TIME'); - $config->max_login_attempts = getenv('AUTH_MAX_AUTOLOGIN_ATTEMPS'); - - // If the last login is more than x minutes ago, then reset the login tries/time - if ($user->user_last_login_try && $config->login_reset_time && $user->user_last_login_try < (time() - ($config->login_reset_time * 60))) { - $user->user_login_tries = 0; //turn back to 0 attems, succes - $user->user_last_login_try = 0; - $user->updateOrFail(); - } - - // Check to see if user is allowed to login again... if his tries are exceeded - if ($user->user_last_login_try - && $config->login_reset_time - && $config->max_login_attempts - && $user->user_last_login_try >= (time() - ($config->login_reset_time * 60)) - && $user->user_login_tries >= $config->max_login_attempts) { - throw new AuthException(sprintf(_('You have exhausted all login attempts.'), $config->max_login_attempts)); - } - - return true; - } - - /** - * Reset login tries. - * - * @param Users $user - * - * @return boolean - */ - protected static function resetLoginTries(UserInterface $user) : bool - { - $user->lastvisit = date('Y-m-d H:i:s'); - $user->user_login_tries = 0; - $user->user_last_login_try = 0; - return $user->updateOrFail(); - } - - /** - * Update login tries for the given user. - * - * @return bool - */ - protected static function updateLoginTries(UserInterface $user) : bool - { - if ($user->getId() != Users::ANONYMOUS) { - $user->user_login_tries += 1; - $user->user_last_login_try = time(); - return $user->updateOrFail(); - } - - return false; - } -} diff --git a/src/CustomFields/AbstractCustomFieldsModel.php b/src/CustomFields/AbstractCustomFieldsModel.php index db835b17..3fabedfb 100644 --- a/src/CustomFields/AbstractCustomFieldsModel.php +++ b/src/CustomFields/AbstractCustomFieldsModel.php @@ -5,7 +5,7 @@ use Canvas\Models\CustomFieldsModules; use Canvas\Models\AbstractModel; -use Baka\Database\Contracts\CustomFields\CustomFieldsTrait; +use Baka\Contracts\CustomFields\CustomFieldsTrait; use PDO; /** diff --git a/src/Models/AccessList.php b/src/Models/AccessList.php index fadea799..a31ae040 100644 --- a/src/Models/AccessList.php +++ b/src/Models/AccessList.php @@ -78,16 +78,6 @@ public function initialize() ); } - /** - * Returns table name mapped in the model. - * - * @return string - */ - public function getSource(): string - { - return 'access_list'; - } - /** * Given the resource and access check if exist. * diff --git a/src/Models/Apps.php b/src/Models/Apps.php index c5af8050..063d8254 100644 --- a/src/Models/Apps.php +++ b/src/Models/Apps.php @@ -4,79 +4,18 @@ namespace Canvas\Models; use Canvas\Traits\UsersAssociatedTrait; -use Baka\Database\Contracts\HashTableTrait; - -class Apps extends \Baka\Database\Apps +use Baka\Contracts\Database\HashTableTrait; +use Baka\Database\Apps as BakaApps; +class Apps extends BakaApps { - /** - * - * @var integer - */ - public $id; - - /** - * - * @var string - */ - public $key; - - /** - * - * @var string - */ - public $name; - - /** - * - * @var string - */ - public $description; - - /** - * - * @var string - */ - public $url; - - /** - * - * @var integer - */ - public $default_apps_plan_id; - /** - * - * @var integer - */ - public $is_actived; - - /** - * @var integer - */ - public $ecosystem_auth; - - /** - * @var integer - */ - public $payments_active; - - /** - * - * @var string - */ - public $created_at; + public string $key; + public ?string $url; + public int $default_apps_plan_id; + public int $is_actived; + public int $ecosystem_auth; + public int $payments_active; - /** - * - * @var string - */ - public $updated_at; - - /** - * - * @var integer - */ - public $is_deleted; /** * Ecosystem default app. @@ -159,16 +98,6 @@ public function isActive(): bool return (bool) $this->is_actived; } - /** - * Returns table name mapped in the model. - * - * @return string - */ - public function getSource() : string - { - return 'apps'; - } - /** * Those this app use ecosystem login or * the its own local login? diff --git a/src/Models/AppsKeys.php b/src/Models/AppsKeys.php index 566305af..3814b29f 100644 --- a/src/Models/AppsKeys.php +++ b/src/Models/AppsKeys.php @@ -83,16 +83,6 @@ public function initialize() ); } - /** - * Returns table name mapped in the model. - * - * @return string - */ - public function getSource() : string - { - return 'apps_keys'; - } - /** * Validate Apps Keys by client id, client secret id and apps key. * diff --git a/src/Models/AppsPlans.php b/src/Models/AppsPlans.php index 484219cb..901c53d8 100644 --- a/src/Models/AppsPlans.php +++ b/src/Models/AppsPlans.php @@ -132,15 +132,6 @@ public function initialize() ); } - /** - * Returns table name mapped in the model. - * - * @return string - */ - public function getSource() : string - { - return 'apps_plans'; - } /** * Just a preatty function that returns the same object for. diff --git a/src/Models/AppsPlansSettings.php b/src/Models/AppsPlansSettings.php index ccf33d8b..35ac7814 100644 --- a/src/Models/AppsPlansSettings.php +++ b/src/Models/AppsPlansSettings.php @@ -61,14 +61,4 @@ public function initialize() ['alias' => 'app'] ); } - - /** - * Returns table name mapped in the model. - * - * @return string - */ - public function getSource() : string - { - return 'apps_plans_settings'; - } } diff --git a/src/Models/AppsRoles.php b/src/Models/AppsRoles.php index 79ca894c..a9cb6b1b 100644 --- a/src/Models/AppsRoles.php +++ b/src/Models/AppsRoles.php @@ -34,13 +34,4 @@ public function initialize() ); } - /** - * Returns table name mapped in the model. - * - * @return string - */ - public function getSource() : string - { - return 'apps_roles'; - } } diff --git a/src/Models/AppsSettings.php b/src/Models/AppsSettings.php index f5c56ae0..d95da3e0 100644 --- a/src/Models/AppsSettings.php +++ b/src/Models/AppsSettings.php @@ -67,13 +67,4 @@ public function initialize() ); } - /** - * Returns table name mapped in the model. - * - * @return string - */ - public function getSource() : string - { - return 'apps_settings'; - } } diff --git a/src/Models/Companies.php b/src/Models/Companies.php index 5c39d328..dd4988b1 100644 --- a/src/Models/Companies.php +++ b/src/Models/Companies.php @@ -8,31 +8,15 @@ use Canvas\Exception\ServerErrorHttpException; use Exception; use Carbon\Carbon; -use Baka\Database\Contracts\HashTableTrait; +use Baka\Contracts\Database\HashTableTrait; use Baka\Blameable\BlameableTrait; use Canvas\Traits\UsersAssociatedTrait; use Canvas\Traits\FileSystemModelTrait; use Baka\Blameable\Blameable; +use Baka\Contracts\EventsManager\EventManagerAwareTrait; use Canvas\Http\Exception\InternalServerErrorException; -use Canvas\Traits\EventManagerAwareTrait; use Phalcon\Di; -/** - * Class Companies. - * - * @package Canvas\Models - * - * @property Users $user - * @property Users $userData - * @property DefaultCompany $default_company - * @property CompaniesBranches $branch - * @property CompaniesBranches $branches - * @property Subscription $subscription - * @property Config $config - * @property UserCompanyApps $app - * @property \Phalcon\Di $di - * @property Roles $roles_id - */ class Companies extends \Canvas\CustomFields\AbstractCustomFieldsModel { use HashTableTrait; @@ -41,107 +25,20 @@ class Companies extends \Canvas\CustomFields\AbstractCustomFieldsModel use BlameableTrait; use EventManagerAwareTrait; + public int $users_id; + public ?int $has_activities; + public ?int $appPlanId = null; + public ?int $currency_id; + public string $language; + public string $timezone; + public string $currency; + public int $system_modules_id = 1; + public ?string $phone; + const DEFAULT_COMPANY = 'DefaulCompany'; const DEFAULT_COMPANY_APP = 'DefaulCompanyApp_'; const PAYMENT_GATEWAY_CUSTOMER_KEY = 'payment_gateway_customer_id'; - /** - * - * @var integer - */ - public $id; - - /** - * - * @var string - */ - public $name; - - /** - * - * @var string - */ - public $profile_image; - - /** - * - * @var string - */ - public $website; - - /** - * - * @var integer - */ - public $users_id; - - /** - * - * @var integer - */ - public $has_activities; - - /** - * - * @var string - */ - public $created_at; - - /** - * - * @var string - */ - public $updated_at; - - /** - * - * @var integer - */ - public $is_deleted; - - /** - * Provide the app plan id. - * - * @var integer - */ - public $appPlanId = null; - - /** - * - * @var integer - */ - public $currency_id; - - /** - * - * @var string - */ - public $language; - - /** - * - * @var string - */ - public $timezone; - - /** - * - * @var string - */ - public $currency; - - /** - * - * @var integer - */ - public $system_modules_id = 1; - - /** - * - * @var string - */ - public $phone; - /** * Initialize method for model. */ @@ -361,16 +258,6 @@ public static function register(Users $user, string $name): Companies return $company; } - /** - * Returns table name mapped in the model. - * - * @return string - */ - public function getSource() : string - { - return 'companies'; - } - /** * Confirm if a user belongs to this current company. * diff --git a/src/Models/CompaniesAssociations.php b/src/Models/CompaniesAssociations.php index e6faf63c..9cadbfb4 100644 --- a/src/Models/CompaniesAssociations.php +++ b/src/Models/CompaniesAssociations.php @@ -66,13 +66,4 @@ public function initialize() ); } - /** - * Returns table name mapped in the model. - * - * @return string - */ - public function getSource() : string - { - return 'companies_associations'; - } } diff --git a/src/Models/CompaniesBranches.php b/src/Models/CompaniesBranches.php index 4b5016ba..d7a754f9 100644 --- a/src/Models/CompaniesBranches.php +++ b/src/Models/CompaniesBranches.php @@ -127,14 +127,4 @@ public function validation() return $this->validate($validator); } - - /** - * Returns table name mapped in the model. - * - * @return string - */ - public function getSource() : string - { - return 'companies_branches'; - } } diff --git a/src/Models/CompaniesCustomFields.php b/src/Models/CompaniesCustomFields.php index fb3c3dc5..51147ce6 100644 --- a/src/Models/CompaniesCustomFields.php +++ b/src/Models/CompaniesCustomFields.php @@ -71,16 +71,6 @@ public function initialize() ); } - /** - * Returns table name mapped in the model. - * - * @return string - */ - public function getSource(): string - { - return 'companies_custom_fields'; - } - /** * Set the custom primary field id * diff --git a/src/Models/CompaniesGroups.php b/src/Models/CompaniesGroups.php index 905ff126..f4ce94fb 100644 --- a/src/Models/CompaniesGroups.php +++ b/src/Models/CompaniesGroups.php @@ -80,14 +80,4 @@ public function initialize() ['alias' => 'companies'] ); } - - /** - * Returns table name mapped in the model. - * - * @return string - */ - public function getSource() : string - { - return 'companies_groups'; - } } diff --git a/src/Models/CompaniesSettings.php b/src/Models/CompaniesSettings.php index b64fd89a..cf5f3bfd 100644 --- a/src/Models/CompaniesSettings.php +++ b/src/Models/CompaniesSettings.php @@ -58,13 +58,4 @@ public function initialize() $this->setSource('companies_settings'); } - /** - * Returns table name mapped in the model. - * - * @return string - */ - public function getSource(): string - { - return 'companies_settings'; - } } diff --git a/src/Models/Countries.php b/src/Models/Countries.php index 57462a4a..68d281c3 100644 --- a/src/Models/Countries.php +++ b/src/Models/Countries.php @@ -32,13 +32,4 @@ public function initialize() $this->setSource('countries'); } - /** - * Returns table name mapped in the model. - * - * @return string - */ - public function getSource() : string - { - return 'countries'; - } } diff --git a/src/Models/Currencies.php b/src/Models/Currencies.php index c558b238..f6c46017 100644 --- a/src/Models/Currencies.php +++ b/src/Models/Currencies.php @@ -61,13 +61,4 @@ public function initialize() $this->setSource('currencies'); } - /** - * Returns table name mapped in the model. - * - * @return string - */ - public function getSource() : string - { - return 'currencies'; - } } diff --git a/src/Models/CustomFieldsModules.php b/src/Models/CustomFieldsModules.php index f1db4ba4..67cca8ab 100644 --- a/src/Models/CustomFieldsModules.php +++ b/src/Models/CustomFieldsModules.php @@ -69,14 +69,4 @@ public function initialize() // ['alias' => 'app'] // ); } - - /** - * Returns table name mapped in the model. - * - * @return string - */ - public function getSource(): string - { - return 'custom_fields_modules'; - } } diff --git a/src/Models/CustomFieldsSettings.php b/src/Models/CustomFieldsSettings.php index a2223155..fb511f73 100644 --- a/src/Models/CustomFieldsSettings.php +++ b/src/Models/CustomFieldsSettings.php @@ -62,13 +62,4 @@ public function initialize() ); } - /** - * Returns table name mapped in the model. - * - * @return string - */ - public function getSource(): string - { - return 'custom_fields_settings'; - } } diff --git a/src/Models/CustomFieldsTypes.php b/src/Models/CustomFieldsTypes.php index 4c735ecd..c93ec036 100644 --- a/src/Models/CustomFieldsTypes.php +++ b/src/Models/CustomFieldsTypes.php @@ -61,14 +61,4 @@ public function initialize() ['alias' => 'typesSetting'] ); } - - /** - * Returns table name mapped in the model. - * - * @return string - */ - public function getSource(): string - { - return 'custom_fields_types'; - } } diff --git a/src/Models/CustomFieldsTypesSettings.php b/src/Models/CustomFieldsTypesSettings.php index 00b35554..4c255f1b 100644 --- a/src/Models/CustomFieldsTypesSettings.php +++ b/src/Models/CustomFieldsTypesSettings.php @@ -56,13 +56,4 @@ public function initialize() ); } - /** - * Returns table name mapped in the model. - * - * @return string - */ - public function getSource(): string - { - return 'custom_fields_types_settings'; - } } diff --git a/src/Models/CustomFieldsValues.php b/src/Models/CustomFieldsValues.php index ed3fb43f..cd4885a0 100644 --- a/src/Models/CustomFieldsValues.php +++ b/src/Models/CustomFieldsValues.php @@ -68,13 +68,4 @@ public function initialize() ); } - /** - * Returns table name mapped in the model. - * - * @return string - */ - public function getSource(): string - { - return 'custom_fields_values'; - } } diff --git a/src/Models/EmailTemplates.php b/src/Models/EmailTemplates.php index dfca116c..66a04a76 100644 --- a/src/Models/EmailTemplates.php +++ b/src/Models/EmailTemplates.php @@ -100,16 +100,6 @@ public function initialize() $this->setSource('email_templates'); } - /** - * Returns table name mapped in the model. - * - * @return string - */ - public function getSource(): string - { - return 'email_templates'; - } - /** * Retrieve email template by name. * @param $name diff --git a/src/Models/EmailTemplatesVariables.php b/src/Models/EmailTemplatesVariables.php index 04853c0a..1e14485f 100644 --- a/src/Models/EmailTemplatesVariables.php +++ b/src/Models/EmailTemplatesVariables.php @@ -109,14 +109,4 @@ public function initialize() $this->setSource('email_templates_variables'); } - - /** - * Returns table name mapped in the model. - * - * @return string - */ - public function getSource(): string - { - return 'email_templates_variables'; - } } diff --git a/src/Models/FileSystem.php b/src/Models/FileSystem.php index 10a395e9..c9936e49 100644 --- a/src/Models/FileSystem.php +++ b/src/Models/FileSystem.php @@ -162,17 +162,7 @@ public function initialize() ['alias' => 'entities'] ); } - - /** - * Returns table name mapped in the model. - * - * @return string - */ - public function getSource() : string - { - return 'filesystem'; - } - + /** * Get the element by its entity id. * diff --git a/src/Models/FileSystemEntities.php b/src/Models/FileSystemEntities.php index 41034a99..525efa7e 100644 --- a/src/Models/FileSystemEntities.php +++ b/src/Models/FileSystemEntities.php @@ -97,16 +97,6 @@ public function validation() return $this->validate($validator); } - /** - * Returns table name mapped in the model. - * - * @return string - */ - public function getSource() : string - { - return 'filesystem_entities'; - } - /** * Get a filesystem entities from this system modules. * diff --git a/src/Models/FileSystemSettings.php b/src/Models/FileSystemSettings.php index 98fdf913..134b55f0 100644 --- a/src/Models/FileSystemSettings.php +++ b/src/Models/FileSystemSettings.php @@ -56,13 +56,4 @@ public function initialize() ); } - /** - * Returns table name mapped in the model. - * - * @return string - */ - public function getSource() : string - { - return 'filesystem_settings'; - } } diff --git a/src/Models/Languages.php b/src/Models/Languages.php index df174927..a6edca9e 100644 --- a/src/Models/Languages.php +++ b/src/Models/Languages.php @@ -56,13 +56,4 @@ public function initialize() $this->setSource('languages'); } - /** - * Returns table name mapped in the model. - * - * @return string - */ - public function getSource(): string - { - return 'languages'; - } } diff --git a/src/Models/Locales.php b/src/Models/Locales.php index 31104c40..8cccecbd 100644 --- a/src/Models/Locales.php +++ b/src/Models/Locales.php @@ -42,14 +42,4 @@ public function initialize() { $this->setSource('locales'); } - - /** - * Returns table name mapped in the model. - * - * @return string - */ - public function getSource(): string - { - return 'locales'; - } } diff --git a/src/Models/NotificationType.php b/src/Models/NotificationType.php index 8a7284d2..3cd74b1a 100644 --- a/src/Models/NotificationType.php +++ b/src/Models/NotificationType.php @@ -88,16 +88,6 @@ public function initialize() $this->setSource('notification_types'); } - /** - * Returns table name mapped in the model. - * - * @return string - */ - public function getSource(): string - { - return 'notification_types'; - } - /** * Get the notification by its key * by defautl in any kanvas app the key will be its classname diff --git a/src/Models/Notifications.php b/src/Models/Notifications.php index d5d7d68e..4960f146 100644 --- a/src/Models/Notifications.php +++ b/src/Models/Notifications.php @@ -114,16 +114,6 @@ public function initialize() ); } - /** - * Returns table name mapped in the model. - * - * @return string - */ - public function getSource(): string - { - return 'notifications'; - } - /** * Mark as Read all the notification from a user. * diff --git a/src/Models/PaymentFrequencies.php b/src/Models/PaymentFrequencies.php index afd4c9cd..3146d6e1 100644 --- a/src/Models/PaymentFrequencies.php +++ b/src/Models/PaymentFrequencies.php @@ -49,14 +49,4 @@ public function initialize() ['alias' => 'plans'] ); } - - /** - * Returns table name mapped in the model. - * - * @return string - */ - public function getSource(): string - { - return 'payment_frequencies'; - } } diff --git a/src/Models/PaymentMethods.php b/src/Models/PaymentMethods.php index 859e1b03..3823c53b 100644 --- a/src/Models/PaymentMethods.php +++ b/src/Models/PaymentMethods.php @@ -49,16 +49,6 @@ public function initialize() $this->setSource('payment_methods'); } - /** - * Returns table name mapped in the model. - * - * @return string - */ - public function getSource(): string - { - return 'payment_methods'; - } - /** * Returns table name mapped in the model. * diff --git a/src/Models/PaymentMethodsCreds.php b/src/Models/PaymentMethodsCreds.php index 5024769e..ffde1554 100644 --- a/src/Models/PaymentMethodsCreds.php +++ b/src/Models/PaymentMethodsCreds.php @@ -83,16 +83,6 @@ public function initialize() $this->setSource('payment_methods_creds'); } - /** - * Returns table name mapped in the model. - * - * @return string - */ - public function getSource(): string - { - return 'payment_methods_creds'; - } - /** * Returns the current payment method credentials. * diff --git a/src/Models/Resources.php b/src/Models/Resources.php index 2460dc0c..a4c38f19 100644 --- a/src/Models/Resources.php +++ b/src/Models/Resources.php @@ -122,14 +122,4 @@ public static function getByName(string $resourceName) : Resources return $resource; } - - /** - * Returns table name mapped in the model. - * - * @return string - */ - public function getSource(): string - { - return 'resources'; - } } diff --git a/src/Models/ResourcesAccesses.php b/src/Models/ResourcesAccesses.php index 6ecae0d4..195f59bf 100644 --- a/src/Models/ResourcesAccesses.php +++ b/src/Models/ResourcesAccesses.php @@ -66,16 +66,6 @@ public function initialize() ); } - /** - * Returns table name mapped in the model. - * - * @return string - */ - public function getSource(): string - { - return 'resources_accesses'; - } - /** * Check if it exist * diff --git a/src/Models/Roles.php b/src/Models/Roles.php index 30b07121..31581bc2 100644 --- a/src/Models/Roles.php +++ b/src/Models/Roles.php @@ -143,16 +143,6 @@ public function validation() return $this->validate($validator); } - /** - * Returns table name mapped in the model. - * - * @return string - */ - public function getSource(): string - { - return 'roles'; - } - /** * Check if the role existe in the db. * diff --git a/src/Models/RolesInherits.php b/src/Models/RolesInherits.php index fe8ab203..0d31c75a 100644 --- a/src/Models/RolesInherits.php +++ b/src/Models/RolesInherits.php @@ -32,13 +32,4 @@ public function initialize() ); } - /** - * Returns table name mapped in the model. - * - * @return string - */ - public function getSource(): string - { - return 'roles_inherits'; - } } diff --git a/src/Models/Sources.php b/src/Models/Sources.php index 3761fa7c..d99e990c 100644 --- a/src/Models/Sources.php +++ b/src/Models/Sources.php @@ -69,15 +69,6 @@ public function initialize() $this->setSource('sources'); } - /** - * Returns table name mapped in the model. - * - * @return string - */ - public function getSource(): string - { - return 'sources'; - } /** * Verify if source is Apple diff --git a/src/Models/SystemModules.php b/src/Models/SystemModules.php index 15451fa9..8c8e257b 100644 --- a/src/Models/SystemModules.php +++ b/src/Models/SystemModules.php @@ -6,86 +6,10 @@ use Phalcon\Di; use Canvas\Http\Exception\InternalServerErrorException; use Phalcon\Mvc\ModelInterface; +use Baka\Database\SystemModules as BakaSystemModules; -class SystemModules extends AbstractModel +class SystemModules extends BakaSystemModules { - /** - * - * @var integer - */ - public $id; - - /** - * - * @var integer - */ - public $name; - - /** - * - * @var integer - */ - public $slug; - - /** - * - * @var string - */ - public $model_name; - - /** - * - * @var integer - */ - public $apps_id; - - /** - * - * @var integer - */ - public $parents_id; - - /** - * - * @var integer - */ - public $menu_order; - - /** - * - * @var integer - */ - public $use_elastic; - - /** - * - * @var string - */ - public $browse_fields; - - /** - * - * @var integer - */ - public $show; - - /** - * - * @var string - */ - public $created_at; - - /** - * - * @var string - */ - public $updated_at; - - /** - * - * @var integer - */ - public $is_deleted; /** * Initialize method for model. @@ -128,16 +52,6 @@ public function initialize() ); } - /** - * Returns table name mapped in the model. - * - * @return string - */ - public function getSource(): string - { - return 'system_modules'; - } - /** * Get System Module by its model_name. * diff --git a/src/Models/UserCompanyApps.php b/src/Models/UserCompanyApps.php index 4391b8ac..c78daa3d 100644 --- a/src/Models/UserCompanyApps.php +++ b/src/Models/UserCompanyApps.php @@ -73,16 +73,6 @@ public function initialize() $this->setSource('user_company_apps'); } - /** - * Returns table name mapped in the model. - * - * @return string - */ - public function getSource() : string - { - return 'user_company_apps'; - } - /** * Get the current company app * diff --git a/src/Models/UserCompanyAppsActivities.php b/src/Models/UserCompanyAppsActivities.php index a778e712..daaca1a4 100644 --- a/src/Models/UserCompanyAppsActivities.php +++ b/src/Models/UserCompanyAppsActivities.php @@ -94,16 +94,6 @@ public function initialize() $this->setSource('user_company_apps_activities'); } - /** - * Returns table name mapped in the model. - * - * @return string - */ - public function getSource() : string - { - return 'user_company_apps_activities'; - } - /** * Get the value of the settins by it key. * diff --git a/src/Models/UserConfig.php b/src/Models/UserConfig.php index 4a53682f..530efeaf 100644 --- a/src/Models/UserConfig.php +++ b/src/Models/UserConfig.php @@ -5,35 +5,6 @@ class UserConfig extends \Baka\Auth\Models\UserConfig { - /** - * - * @var integer - */ - public $users_id; - - /** - * - * @var string - */ - public $name; - - /** - * - * @var string - */ - public $value; - - /** - * - * @var string - */ - public $created_at; - - /** - * - * @var string - */ - public $updated_at; /** * Initialize method for model. @@ -44,14 +15,4 @@ public function initialize() $this->setSource('user_config'); } - - /** - * Returns table name mapped in the model. - * - * @return string - */ - public function getSource(): string - { - return 'user_config'; - } } diff --git a/src/Models/UserLinkedSources.php b/src/Models/UserLinkedSources.php index a1488071..e76ecf50 100644 --- a/src/Models/UserLinkedSources.php +++ b/src/Models/UserLinkedSources.php @@ -2,44 +2,10 @@ declare(strict_types=1); namespace Canvas\Models; +use Baka\Auth\Models\UserLinkedSources as BakaUserLinkedSources; -class UserLinkedSources extends \Baka\Auth\Models\UserLinkedSources +class UserLinkedSources extends BakaUserLinkedSources { - /** - * - * @var integer - */ - public $source_id; - - /** - * - * @var integer - */ - public $users_id; - - /** - * - * @var string - */ - public $source_users_id; - - /** - * - * @var string - */ - public $source_users_id_text; - - /** - * - * @var string - */ - public $source_username; - - /** - * - * @var integer - */ - public $is_deleted; /** * Initialize method for model. @@ -52,16 +18,6 @@ public function initialize() $this->belongsTo('users_id', 'Canvas\Models\Users', 'id', ['alias' => 'user']); } - /** - * Returns table name mapped in the model. - * - * @return string - */ - public function getSource(): string - { - return 'user_linked_sources'; - } - /** * Get all user linked sources by user's id * @param int $usersId diff --git a/src/Models/UserRoles.php b/src/Models/UserRoles.php index 56d0dcd9..3f7603eb 100644 --- a/src/Models/UserRoles.php +++ b/src/Models/UserRoles.php @@ -86,16 +86,6 @@ public function initialize() ); } - /** - * Returns table name mapped in the model. - * - * @return string - */ - public function getSource(): string - { - return 'user_roles'; - } - /** * Validations and business logic. */ diff --git a/src/Models/UserWebhooks.php b/src/Models/UserWebhooks.php index 02fd4370..8f32b4c0 100644 --- a/src/Models/UserWebhooks.php +++ b/src/Models/UserWebhooks.php @@ -111,16 +111,6 @@ public function initialize() ); } - /** - * Returns table name mapped in the model. - * - * @return string - */ - public function getSource(): string - { - return 'user_webhooks'; - } - /** * Validate input data. * diff --git a/src/Models/Users.php b/src/Models/Users.php index 50d17cf1..72aa8b29 100644 --- a/src/Models/Users.php +++ b/src/Models/Users.php @@ -4,19 +4,19 @@ namespace Canvas\Models; use Baka\Auth\Models\Users as BakUser; -use Baka\Database\Contracts\HashTableTrait; +use Baka\Contracts\Database\HashTableTrait; use Canvas\Auth\App as AppAuth; use Canvas\Contracts\Auth\UserInterface; use Canvas\Contracts\Notifications\NotifiableTrait; use Canvas\Hashing\Password; -use Canvas\Traits\EventManagerAwareTrait; use Canvas\Traits\FileSystemModelTrait; use Canvas\Traits\PermissionsTrait; use Canvas\Traits\SubscriptionPlanLimitTrait; -use Canvas\Validations\PasswordValidation; +use Baka\Validations\PasswordValidation; use Carbon\Carbon; use Exception; -use Phalcon\Cashier\Billable; +use Baka\Cashier\Billable; +use Baka\Contracts\EventsManager\EventManagerAwareTrait; use Phalcon\Di; use Phalcon\Security\Random; use Phalcon\Validation; @@ -24,17 +24,6 @@ use Phalcon\Validation\Validator\PresenceOf; use Phalcon\Validation\Validator\Uniqueness; -/** - * Class Users. - * - * @package Canvas\Models - * - * @property Users $user - * @property Config $config - * @property Apps $app - * @property Companies $defaultCompany - * @property \Phalcon\Di $di - */ class Users extends BakUser implements UserInterface { use PermissionsTrait; @@ -45,54 +34,13 @@ class Users extends BakUser implements UserInterface use NotifiableTrait; use EventManagerAwareTrait; - /** - * Description. - * - * @var integer - */ - public $description; - - /** - * Default Company Branch. - * - * @var integer - */ - public $default_company_branch; - - /** - * Roles id. - * - * @var integer - */ - public $roles_id; - - /** - * Stripe id. - * - * @var string - */ - public $stripe_id; - - /** - * Card last four numbers. - * - * @var integer - */ - public $card_last_four; - - /** - * Card Brand. - * - * @var integer - */ - public $card_brand; - - /** - * Trial end date. - * - * @var string - */ - public $trial_ends_at; + public ?string $description; + public int $default_company_branch; + public int $roles_id; + public ?string $stripe_id; + public ?string $card_last_four; + public ?string $card_brand; + public ?string $trial_ends_at; /** * Provide the app plan id @@ -100,28 +48,21 @@ class Users extends BakUser implements UserInterface * * @var integer */ - public $appPlanId = null; + public ?int $appPlanId = null; /** * Active subscription id.Not an actual table field, used temporarily. * * @var string */ - public $active_subscription_id; + public ?int $active_subscription_id; /** * System Module Id. * * @var integer */ - public $system_modules_id = 2; - - /** - * User email activation code. - * - * @var string - */ - public $user_activation_email; + public int $system_modules_id = 2; /** * Initialize method for model. @@ -225,7 +166,7 @@ public function initialize() } /** - * Initialize relationshit after fetch + * Initialize relationship after fetch * since we need company id info. * * @return void @@ -311,22 +252,12 @@ public function validation() return $this->validate($validator); } - /** - * Returns table name mapped in the model. - * - * @return string - */ - public function getSource() : string - { - return 'users'; - } - /** * Set hashtable settings table, userConfig ;). * * @return void */ - private function createSettingsModel() : void + protected function createSettingsModel() : void { $this->settingsModel = new UserConfig(); } diff --git a/src/Models/UsersAssociatedApps.php b/src/Models/UsersAssociatedApps.php index 169bf068..0b7ca863 100644 --- a/src/Models/UsersAssociatedApps.php +++ b/src/Models/UsersAssociatedApps.php @@ -76,13 +76,4 @@ public function initialize() $this->setSource('users_associated_apps'); } - /** - * Returns table name mapped in the model. - * - * @return string - */ - public function getSource(): string - { - return 'users_associated_apps'; - } } diff --git a/src/Models/UsersAssociatedCompanies.php b/src/Models/UsersAssociatedCompanies.php index 85af75c4..0b8faad8 100644 --- a/src/Models/UsersAssociatedCompanies.php +++ b/src/Models/UsersAssociatedCompanies.php @@ -51,14 +51,4 @@ public function initialize() $this->setSource('users_associated_company'); } - - /** - * Returns table name mapped in the model. - * - * @return string - */ - public function getSource(): string - { - return 'users_associated_company'; - } } diff --git a/src/Models/UsersInvite.php b/src/Models/UsersInvite.php index 4f365021..878456b4 100644 --- a/src/Models/UsersInvite.php +++ b/src/Models/UsersInvite.php @@ -98,16 +98,6 @@ public function initialize() ); } - /** - * Returns table name mapped in the model. - * - * @return string - */ - public function getSource(): string - { - return 'users_invite'; - } - /** * What to do after the creation of a new users * - Assign default role. diff --git a/src/Models/Webhooks.php b/src/Models/Webhooks.php index e22f8ecf..e923dec7 100644 --- a/src/Models/Webhooks.php +++ b/src/Models/Webhooks.php @@ -94,13 +94,4 @@ public function initialize() ); } - /** - * Returns table name mapped in the model. - * - * @return string - */ - public function getSource(): string - { - return 'webhooks'; - } } diff --git a/src/Validations/PasswordValidation.php b/src/Validations/PasswordValidation.php index acc61c8e..23009015 100644 --- a/src/Validations/PasswordValidation.php +++ b/src/Validations/PasswordValidation.php @@ -1,14 +1,14 @@ Date: Mon, 15 Jun 2020 00:17:42 -0400 Subject: [PATCH 06/26] Continue fixing auth process for phalcon4 --- src/Auth/Auth.php | 11 +++ src/Auth/Factory.php | 2 +- src/Models/Roles.php | 97 ++++++------------------ src/Models/UserRoles.php | 45 +---------- src/Providers/CacheDataProvider.php | 36 ++++++--- src/Providers/ModelsMetadataProvider.php | 25 +++--- src/Providers/UserProvider.php | 23 ++++++ 7 files changed, 101 insertions(+), 138 deletions(-) create mode 100644 src/Auth/Auth.php create mode 100644 src/Providers/UserProvider.php diff --git a/src/Auth/Auth.php b/src/Auth/Auth.php new file mode 100644 index 00000000..55315a05 --- /dev/null +++ b/src/Auth/Auth.php @@ -0,0 +1,11 @@ +getAcl()->getCompany()->getId(); @@ -169,6 +114,7 @@ public static function exist(AclRole $role): int * with your current app, this also check with de defautl company ap. * * @param string $roleName + * * @return boolean */ public static function isRole(string $roleName) : bool @@ -190,9 +136,10 @@ public static function isRole(string $roleName) : bool * Get the entity by its name. * * @param string $name + * * @return Roles */ - public static function getByName(string $name): Roles + public static function getByName(string $name) : Roles { $companyId = Di::getDefault()->getAcl()->getCompany()->getId(); @@ -220,9 +167,10 @@ public static function getByName(string $name): Roles * Get the entity by its name. * * @param string $name + * * @return Roles */ - public static function getById(int $id): Roles + public static function getById(int $id) : Roles { $companyId = Di::getDefault()->getAcl()->getCompany()->getId(); @@ -243,9 +191,10 @@ public static function getById(int $id): Roles * Get the Role by it app name. * * @param string $role + * * @return Roles */ - public static function getByAppName(string $role, Companies $company): Roles + public static function getByAppName(string $role, Companies $company) : Roles { //echeck if we have a dot , taht means we are sending the specific app to use if (strpos($role, '.') === false) { @@ -279,7 +228,7 @@ public static function getByAppName(string $role, Companies $company): Roles * * @return Roles */ - public function copy(): Roles + public function copy() : Roles { $accesList = $this->accesList; @@ -310,6 +259,7 @@ public function copy(): Roles * * @param string $roleName * @param string $roleToInherit + * * @return boolean */ public static function addInherit(string $roleName, string $roleToInherit) @@ -359,10 +309,12 @@ public function afterUpdate() /** * Check if role exists by its id. - * @param integer $role_id + * + * @param int $role_id + * * @return Roles */ - public static function existsById(int $id): Roles + public static function existsById(int $id) : Roles { $role = self::getById($id); @@ -377,9 +329,10 @@ public static function existsById(int $id): Roles * Assign the default app role to a given user. * * @param Users $user + * * @return bool */ - public static function assignDefault(Users $user): bool + public static function assignDefault(Users $user) : bool { $apps = Di::getDefault()->getApp(); $userRoles = UserRoles::findFirst([ diff --git a/src/Models/UserRoles.php b/src/Models/UserRoles.php index 3f7603eb..2247a78a 100644 --- a/src/Models/UserRoles.php +++ b/src/Models/UserRoles.php @@ -8,47 +8,10 @@ class UserRoles extends AbstractModel { - /** - * - * @var integer - */ - public $users_id; - - /** - * - * @var integer - */ - public $apps_id; - - /** - * - * @var integer - */ - public $roles_id; - - /** - * - * @var integer - */ - public $companies_id; - - /** - * - * @var string - */ - public $created_at; - - /** - * - * @var string - */ - public $updated_at; - - /** - * - * @var integer - */ - public $is_deleted; + public int $users_id; + public int $apps_id; + public int $roles_id; + public int $companies_id; /** * Initialize method for model. diff --git a/src/Providers/CacheDataProvider.php b/src/Providers/CacheDataProvider.php index 5c186e64..44383121 100644 --- a/src/Providers/CacheDataProvider.php +++ b/src/Providers/CacheDataProvider.php @@ -2,12 +2,14 @@ namespace Canvas\Providers; -use function Baka\envValue; -use Phalcon\Cache\Backend\Libmemcached; -use Phalcon\Cache\Frontend\Data; -use Phalcon\Di\ServiceProviderInterface; +use Phalcon\Cache; +use Phalcon\Cache\AdapterFactory; +use Phalcon\Config; use Phalcon\Di\DiInterface; -use Redis; +use Phalcon\Di\ServiceProviderInterface; +use Phalcon\Storage\SerializerFactory; +use Phalcon\Cache\Adapter\Redis; +use function Baka\envValue; class CacheDataProvider implements ServiceProviderInterface { @@ -16,15 +18,25 @@ class CacheDataProvider implements ServiceProviderInterface */ public function register(DiInterface $container) : void { + $config = $container->getShared('config'); + $app = envValue('GEWAER_APP_ID', 1); + $container->setShared( 'cache', - function () { + function () use ($config, $app) { //Connect to redis - $redis = new Redis(); - $redis->connect(envValue('REDIS_HOST', '127.0.0.1'), (int) envValue('REDIS_PORT', 6379)); - $redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_PHP); - return $redis; - } - ); + $cache = $config->get('cache')->toArray(); + $adapter = $cache['adapter']; + $options = $cache['options'][$adapter] ?? []; + + $options['prefix'] = $app . '-app-cache'; + + + $serializerFactory = new SerializerFactory(); + $adapterFactory = new AdapterFactory($serializerFactory); + $adapter = $adapterFactory->newInstance($adapter, $options); + + return new Cache($adapter); + }); } } diff --git a/src/Providers/ModelsMetadataProvider.php b/src/Providers/ModelsMetadataProvider.php index 82cbf618..12564fe6 100644 --- a/src/Providers/ModelsMetadataProvider.php +++ b/src/Providers/ModelsMetadataProvider.php @@ -4,12 +4,14 @@ namespace Canvas\Providers; +use Baka\Constants\Flags; use function Baka\envValue; -use Phalcon\Di\ServiceProviderInterface; +use Phalcon\Cache\AdapterFactory; use Phalcon\Di\DiInterface; +use Phalcon\Di\ServiceProviderInterface; use Phalcon\Mvc\Model\Metadata\Memory as MemoryMetaDataAdapter; use Phalcon\Mvc\Model\MetaData\Redis; -use Canvas\Constants\Flags; +use Phalcon\Storage\SerializerFactory; class ModelsMetadataProvider implements ServiceProviderInterface { @@ -28,16 +30,15 @@ function () use ($config, $app) { return new MemoryMetaDataAdapter(); } - return new Redis( - [ - 'host' => envValue('REDIS_HOST', '127.0.0.1'), - 'port' => (int) envValue('REDIS_PORT', 6379), - 'prefix' => $app, - 'persistent' => 0, - "statsKey" => "_PHCM_MM", - 'lifetime' => 172800, - ] - ); + //Connect to redis + $cache = $config->get('cache')->toArray(); + $options = $cache['metadata']['prod']['options']; + $options['prefix'] = $app; + + $serializerFactory = new SerializerFactory(); + $adapterFactory = new AdapterFactory($serializerFactory); + + return new Redis($adapterFactory, $options); } ); } diff --git a/src/Providers/UserProvider.php b/src/Providers/UserProvider.php new file mode 100644 index 00000000..fa18ee49 --- /dev/null +++ b/src/Providers/UserProvider.php @@ -0,0 +1,23 @@ +setShared( + 'userProvider', + function () { + return new Users(); + } + ); + } +} From 00d036b6b4c2a28c431767c69e4cd6a4260c8b2b Mon Sep 17 00:00:00 2001 From: mctekk Date: Mon, 15 Jun 2020 01:14:47 -0400 Subject: [PATCH 07/26] fix issues with signup --- src/Api/Controllers/AuthController.php | 3 ++- src/Models/Users.php | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Api/Controllers/AuthController.php b/src/Api/Controllers/AuthController.php index 300dbcb4..bcdd4d3a 100644 --- a/src/Api/Controllers/AuthController.php +++ b/src/Api/Controllers/AuthController.php @@ -27,6 +27,7 @@ use Canvas\Notifications\Signup; use Canvas\Notifications\UpdateEmail; use Baka\Validations\PasswordValidation; +use Canvas\Auth\Auth; use Canvas\Traits\TokenTrait; /** @@ -167,7 +168,7 @@ public function signup() : Response try { $this->db->begin(); - $user->signUp(); + Auth::signUp($validation->getValues()); $this->db->commit(); } catch (Exception $e) { diff --git a/src/Models/Users.php b/src/Models/Users.php index 72aa8b29..2b6d6bec 100644 --- a/src/Models/Users.php +++ b/src/Models/Users.php @@ -274,7 +274,7 @@ public function getKey() : int /** * A company owner is the first person that register this company - * This only ocurres when signing up the first time, after that all users invites + * This only ocurred when signing up the first time, after that all users invites * come with a default_company id attached. * * @return boolean From 0ae3fa324fabe2513867901cc109a5becb880b19 Mon Sep 17 00:00:00 2001 From: mctekk Date: Tue, 16 Jun 2020 00:10:45 -0400 Subject: [PATCH 08/26] Continue migration to php 7.4 --- src/Acl/Manager.php | 113 +++++++++++++----------- src/Middleware/AclMiddleware.php | 13 +-- src/Models/AppsPlans.php | 103 ++++----------------- src/Models/AppsSettings.php | 42 +-------- src/Models/Companies.php | 71 ++++++++------- src/Models/CompaniesBranches.php | 83 +++-------------- src/Models/CompaniesSettings.php | 39 +------- src/Models/Currencies.php | 52 +---------- src/Models/CustomFieldsModules.php | 37 +------- src/Models/FileSystem.php | 106 ++++------------------ src/Models/FileSystemEntities.php | 77 ++++------------ src/Models/Users.php | 19 ++-- src/Models/UsersAssociatedCompanies.php | 30 ------- src/Providers/AclProvider.php | 8 +- src/Traits/AuthTrait.php | 18 ++-- src/Traits/UsersAssociatedTrait.php | 16 ++-- 16 files changed, 216 insertions(+), 611 deletions(-) diff --git a/src/Acl/Manager.php b/src/Acl/Manager.php index ddb218ea..0fdad0cb 100644 --- a/src/Acl/Manager.php +++ b/src/Acl/Manager.php @@ -4,35 +4,24 @@ namespace Canvas\Acl; -use Phalcon\Db; -use Phalcon\Db\AdapterInterface as DbAdapter; -use Phalcon\Acl\Exception; -use Phalcon\Acl\Component; -use Phalcon\Acl; -use Phalcon\Acl\Role; -use Phalcon\Acl\RoleInterface; -use Canvas\Models\Companies; -use Canvas\Models\Apps; -use Canvas\Models\Roles as RolesDB; +use BadMethodCallException; use Canvas\Models\AccessList as AccessListDB; +use Canvas\Models\Apps; +use Canvas\Models\Companies; use Canvas\Models\Resources as ResourcesDB; -use Phalcon\Acl\Adapter; -use BadMethodCallException; -use Canvas\Exception\ModelException; use Canvas\Models\ResourcesAccesses; +use Canvas\Models\Roles as RolesDB; +use Phalcon\Acl\Adapter\AbstractAdapter; +use Phalcon\Acl\Component; +use Phalcon\Acl\Enum as AclEnum; +use Phalcon\Acl\Exception; +use Phalcon\Acl\Role; +use Phalcon\Acl\RoleInterface; +use Phalcon\Db\AdapterInterface as DbAdapter; +use Phalcon\Db\Enum; use Phalcon\Di; -/** - * Class Manager. - * - * Manages Geweaer Multi tenant ACL lists in database - * - * @package Canvas\Acl - * - * @property Users $userData - * @property Request $request - */ -class Manager extends Adapter +class Manager extends AbstractAdapter { /** * @var DbAdapter @@ -41,39 +30,45 @@ class Manager extends Adapter /** * Roles table. + * * @var string */ protected $roles; /** * Resources table. + * * @var string */ protected $resources; /** * Resources Accesses table. + * * @var string */ protected $resourcesAccesses; /** * Access List table. + * * @var string */ protected $accessList; /** * Roles Inherits table. + * * @var string */ protected $rolesInherits; /** * Default action for no arguments is allow. + * * @var int */ - protected $noArgumentsDefaultAction = Acl::ALLOW; + protected $noArgumentsDefaultAction = AclEnum::ALLOW; /** * Company Object. @@ -93,6 +88,7 @@ class Manager extends Adapter * Class constructor. * * @param array $options Adapter config + * * @throws Exception */ public function __construct(array $options) @@ -104,6 +100,7 @@ public function __construct(array $options) * Set current user Company. * * @param Companies $company + * * @return void */ public function setCompany(Companies $company) : void @@ -115,6 +112,7 @@ public function setCompany(Companies $company) : void * Set current user app. * * @param Apps $app + * * @return void */ public function setApp(Apps $app) : void @@ -168,7 +166,9 @@ public function getCompany() : Companies * @param \Phalcon\Acl\Role|string $role * @param int $scope * @param string $accessInherits + * * @return boolean + * * @throws \Phalcon\Acl\Exception */ public function addRole($role, $scope = 0, $accessInherits = null) : bool @@ -213,6 +213,7 @@ public function addRole($role, $scope = 0, $accessInherits = null) : bool * {@inheritdoc} * * @param string $roleName + * * @return boolean */ public function isRole($roleName) : bool @@ -224,9 +225,10 @@ public function isRole($roleName) : bool * {@inheritdoc} * * @param string $resourceName + * * @return boolean */ - public function isResource($resourceName) : bool + public function isComponent($resourceName) : bool { return ResourcesDB::isResource($resourceName); } @@ -236,6 +238,7 @@ public function isResource($resourceName) : bool * * @param string $roleName * @param string $roleToInherit + * * @throws \Phalcon\Acl\Exception */ public function addInherit($roleName, $roleToInherit) : bool @@ -247,11 +250,12 @@ public function addInherit($roleName, $roleToInherit) : bool * Given a resource with a dot CRM.Leads , it will set the app. * * @param string $resource + * * @return void */ protected function setAppByResource(string $resource) : string { - //echeck if we have a dot , taht means we are sending the specific app to use + //check if we have a dot , taht means we are sending the specific app to use if (strpos($resource, '.') !== false) { $appResource = explode('.', $resource); $resource = $appResource[1]; @@ -270,11 +274,12 @@ protected function setAppByResource(string $resource) : string * Given a resource with a dot CRM.Leads , it will set the app. * * @param string $resource + * * @return void */ protected function setAppByRole(string $role) : string { - //echeck if we have a dot , taht means we are sending the specific app to use + //check if we have a dot , that means we are sending the specific app to use if (strpos($role, '.') !== false) { $appRole = explode('.', $role); $role = $appRole[1]; @@ -304,12 +309,13 @@ protected function setAppByRole(string $role) : string * * @param \Phalcon\Acl\Component|string $resource * @param array|string $accessList + * * @return boolean */ - public function addResource($resource, $accessList = null) : bool + public function addComponent($resource, $accessList = null) : bool { if (!is_object($resource)) { - //echeck if we have a dot , taht means we are sending the specific app to use + //check if we have a dot , that means we are sending the specific app to use $resource = $this->setAppByResource($resource); $resource = new Component($resource); @@ -324,7 +330,7 @@ public function addResource($resource, $accessList = null) : bool } if ($accessList) { - return $this->addResourceAccess($resource->getName(), $accessList); + return $this->addComponentAccess($resource->getName(), $accessList); } return true; @@ -335,10 +341,12 @@ public function addResource($resource, $accessList = null) : bool * * @param string $resourceName * @param array|string $accessList + * * @return boolean + * * @throws \Phalcon\Acl\Exception */ - public function addResourceAccess($resourceName, $accessList) : bool + public function addComponentAccess($resourceName, $accessList) : bool { if (!ResourcesDB::isResource($resourceName)) { throw new Exception("Resource '{$resourceName}' does not exist in ACL"); @@ -367,9 +375,9 @@ public function addResourceAccess($resourceName, $accessList) : bool /** * {@inheritdoc} * - * @return \Phalcon\Acl\Component[] + * @return array */ - public function getResources() : \Phalcon\Acl\ComponentInterface + public function getComponents() : array { $resources = []; @@ -382,9 +390,9 @@ public function getResources() : \Phalcon\Acl\ComponentInterface /** * {@inheritdoc} * - * @return RoleInterface[] + * @return array */ - public function getRoles() : \Phalcon\Acl\RoleInterface + public function getRoles() : array { $roles = []; @@ -400,7 +408,7 @@ public function getRoles() : \Phalcon\Acl\RoleInterface * @param string $resourceName * @param array|string $accessList */ - public function dropResourceAccess($resourceName, $accessList) + public function dropComponentAccess($resourceName, $accessList) : void { throw new BadMethodCallException('Not implemented yet.'); } @@ -425,9 +433,9 @@ public function dropResourceAccess($resourceName, $accessList) * @param array|string $access * @param mixed $func */ - public function allow($roleName, $resourceName, $access, $func = null) + public function allow($roleName, $resourceName, $access, $func = null) : void { - return $this->allowOrDeny($roleName, $resourceName, $access, Acl::ALLOW); + $this->allowOrDeny($roleName, $resourceName, $access, AclEnum::ALLOW); } /** @@ -449,11 +457,12 @@ public function allow($roleName, $resourceName, $access, $func = null) * @param string $resourceName * @param array|string $access * @param mixed $func + * * @return boolean */ - public function deny($roleName, $resourceName, $access, $func = null) + public function deny($roleName, $resourceName, $access, $func = null) : void { - return $this->allowOrDeny($roleName, $resourceName, $access, Acl::DENY); + $this->allowOrDeny($roleName, $resourceName, $access, AclEnum::DENY); } /** @@ -470,6 +479,7 @@ public function deny($roleName, $resourceName, $access, $func = null) * @param string $resource * @param string $access * @param array $parameters + * * @return bool */ public function isAllowed($role, $resource, $access, array $parameters = null) : bool @@ -493,18 +503,18 @@ public function isAllowed($role, $resource, $access, array $parameters = null) : // resources_name should be given one or 'any' "AND resources_name IN (?, '*')", // access_name should be given one or 'any' - //"AND access_name IN (?, '*')", you need to specify * , we are forcing to check always for permisions + //"AND access_name IN (?, '*')", you need to specify * , we are forcing to check always for permissions 'AND access_name IN (?)', 'AND apps_id = ? ', 'AND roles_id = ? ', - // order be the sum of bools for 'literals' before 'any' + // order be the sum of bool for 'literals' before 'any' 'ORDER BY ' . $this->connection->escapeIdentifier('allowed') . ' DESC', // get only one... 'LIMIT 1' ]); // fetch one entry... - $allowed = $this->connection->fetchOne($sql, Db::FETCH_NUM, [$roleObj->getId(), $resource, $access, $this->getApp()->getId(), $roleObj->getId()]); + $allowed = $this->connection->fetchOne($sql, Enum::FETCH_NUM, [$roleObj->getId(), $resource, $access, $this->getApp()->getId(), $roleObj->getId()]); if (is_array($allowed)) { return (bool) $allowed[0]; @@ -531,9 +541,9 @@ public function getNoArgumentsDefaultAction() : int * Sets the default access level for no arguments provided * in isAllowed action if there exists func for accessKey. * - * @param int $defaultAccess Phalcon\Acl::ALLOW or Phalcon\Acl::DENY + * @param int $defaultAccess Phalcon\AclEnum::ALLOW or Phalcon\AclEnum::DENY */ - public function setNoArgumentsDefaultAction($defaultAccess) + public function setNoArgumentsDefaultAction($defaultAccess) : void { $this->noArgumentsDefaultAction = intval($defaultAccess); } @@ -544,8 +554,10 @@ public function setNoArgumentsDefaultAction($defaultAccess) * @param string $roleName * @param string $resourceName * @param string $accessName - * @param integer $action + * @param int $action + * * @return boolean + * * @throws \Phalcon\Acl\Exception */ protected function insertOrUpdateAccess($roleName, $resourceName, $accessName, $action) @@ -609,10 +621,11 @@ protected function insertOrUpdateAccess($roleName, $resourceName, $accessName, $ * @param string $roleName * @param string $resourceName * @param array|string $access - * @param integer $action + * @param int $action + * * @throws \Phalcon\Acl\Exception */ - protected function allowOrDeny($roleName, $resourceName, $access, $action) + protected function allowOrDeny($roleName, $resourceName, $access, $action) : void { if (!RolesDB::isRole($roleName)) { throw new Exception("Role '{$roleName}' does not exist in the list"); @@ -623,7 +636,5 @@ protected function allowOrDeny($roleName, $resourceName, $access, $action) foreach ($access as $accessName) { $this->insertOrUpdateAccess($roleName, $resourceName, $accessName, $action); } - - return true; } } diff --git a/src/Middleware/AclMiddleware.php b/src/Middleware/AclMiddleware.php index e6f366a4..5d21c99a 100644 --- a/src/Middleware/AclMiddleware.php +++ b/src/Middleware/AclMiddleware.php @@ -4,10 +4,9 @@ namespace Canvas\Middleware; -use Phalcon\Mvc\Micro; use Canvas\Http\Exception\InternalServerErrorException; use Canvas\Http\Exception\UnauthorizedException; -use Canvas\Models\Subscription; +use Phalcon\Mvc\Micro; /** * Class AclMiddleware. @@ -20,7 +19,9 @@ class AclMiddleware extends TokenBase * Call me. * * @param Micro $api + * * @todo need to check section for auth here + * * @return bool */ public function call(Micro $api) @@ -28,10 +29,10 @@ public function call(Micro $api) $router = $api->getService('router'); $request = $api->getService('request'); - // explode() by / , postiion #1 is always the controller , so its the resource ^.^ + // explode() by / , position #1 is always the controller , so its the resource ^.^ $matchRouter = explode('/', $router->getMatchedRoute()->getCompiledPattern()); - $resource = ucfirst(isset($matchRouter[2]) ? $matchRouter[2] : $matchRouter[1]); //2 is alwasy the controller of the router + $resource = ucfirst(isset($matchRouter[2]) ? $matchRouter[2] : $matchRouter[1]); //2 is always the controller of the router $userData = $api->getService('userData'); $action = null; @@ -63,9 +64,9 @@ public function call(Micro $api) break; } - //do you have permision + //do you have permission if (!$userData->can($resource . '.' . $action)) { - throw new UnauthorizedException('You dont have permission to run this action ' . $action . ' at ' . $resource); + throw new UnauthorizedException('You don\'t have permission to run this action ' . $action . ' at ' . $resource); } return true; diff --git a/src/Models/AppsPlans.php b/src/Models/AppsPlans.php index 901c53d8..02879a4a 100644 --- a/src/Models/AppsPlans.php +++ b/src/Models/AppsPlans.php @@ -3,7 +3,6 @@ namespace Canvas\Models; -use Canvas\Exception\ModelException; use Phalcon\Di; /** @@ -19,89 +18,16 @@ */ class AppsPlans extends AbstractModel { - /** - * - * @var integer - */ - public $id; - - /** - * - * @var integer - */ - public $apps_id; - - /** - * - * @var string - */ - public $name; - - /** - * - * @var string - */ - public $description; - - /** - * - * @var string - */ - public $stripe_id; - - /** - * - * @var string - */ - public $stripe_plan; - - /** - * - * @var double - */ - public $pricing; - - /** - * - * @var integer - */ - public $currency_id; - - /** - * - * @var integer - */ - public $free_trial_dates; - - /** - * - * @var integer - */ - public $is_default; - - /** - * - * @var integer - */ - public $payment_frequencies_id; - - /** - * - * @var string - */ - public $created_at; - - /** - * - * @var string - */ - public $updated_at; - - /** - * - * @var integer - */ - public $is_deleted; + public int $apps_id; + public string $name; + public string $description; + public string $stripe_id; + public string $stripe_plan; + public float $pricing; + public int $currency_id; + public int $free_trial_dates; + public int $is_default; + public int $payment_frequencies_id; /** * Initialize method for model. @@ -117,6 +43,14 @@ public function initialize() ['alias' => 'app'] ); + $this->belongsTo( + 'payment_frequencies_id', + 'Canvas\Models\PaymentFrequencies', + 'id', + ['alias' => 'paymentFrequencies'] + ); + + //remove $this->belongsTo( 'payment_frequencies_id', 'Canvas\Models\PaymentFrequencies', @@ -132,7 +66,6 @@ public function initialize() ); } - /** * Just a preatty function that returns the same object for. * diff --git a/src/Models/AppsSettings.php b/src/Models/AppsSettings.php index d95da3e0..56fd3f8b 100644 --- a/src/Models/AppsSettings.php +++ b/src/Models/AppsSettings.php @@ -3,49 +3,16 @@ namespace Canvas\Models; -use Canvas\Models\Apps; - class AppsSettings extends AbstractModel { + public int $apps_id; + public string $name; + public string $value; + /** * Default number of settings for an app. */ const APP_DEFAULT_SETTINGS_NUMBER = 16; - /** - * - * @var integer - */ - public $apps_id; - - /** - * - * @var string - */ - public $name; - - /** - * - * @var string - */ - public $value; - - /** - * - * @var string - */ - public $created_at; - - /** - * - * @var string - */ - public $updated_at; - - /** - * - * @var integer - */ - public $is_deleted; /** * Sub based app key word. @@ -66,5 +33,4 @@ public function initialize() ['alias' => 'app'] ); } - } diff --git a/src/Models/Companies.php b/src/Models/Companies.php index dd4988b1..fecf9c79 100644 --- a/src/Models/Companies.php +++ b/src/Models/Companies.php @@ -3,19 +3,18 @@ namespace Canvas\Models; -use Phalcon\Validation; -use Phalcon\Validation\Validator\PresenceOf; -use Canvas\Exception\ServerErrorHttpException; -use Exception; -use Carbon\Carbon; -use Baka\Contracts\Database\HashTableTrait; -use Baka\Blameable\BlameableTrait; -use Canvas\Traits\UsersAssociatedTrait; -use Canvas\Traits\FileSystemModelTrait; use Baka\Blameable\Blameable; +use Baka\Blameable\BlameableTrait; +use Baka\Contracts\Database\HashTableTrait; use Baka\Contracts\EventsManager\EventManagerAwareTrait; use Canvas\Http\Exception\InternalServerErrorException; +use Canvas\Traits\FileSystemModelTrait; +use Canvas\Traits\UsersAssociatedTrait; +use Carbon\Carbon; +use Exception; use Phalcon\Di; +use Phalcon\Validation; +use Phalcon\Validation\Validator\PresenceOf; class Companies extends \Canvas\CustomFields\AbstractCustomFieldsModel { @@ -26,14 +25,14 @@ class Companies extends \Canvas\CustomFields\AbstractCustomFieldsModel use EventManagerAwareTrait; public int $users_id; - public ?int $has_activities; + public ?int $has_activities = 0; public ?int $appPlanId = null; - public ?int $currency_id; + public ?int $currency_id = 0; public string $language; public string $timezone; public string $currency; public int $system_modules_id = 1; - public ?string $phone; + public ?string $phone = null; const DEFAULT_COMPANY = 'DefaulCompany'; const DEFAULT_COMPANY_APP = 'DefaulCompanyApp_'; @@ -242,13 +241,14 @@ public function validation() } /** - * Register a company given a user and name. - * - * @param Users $user - * @param string $name - * @return Companies - */ - public static function register(Users $user, string $name): Companies + * Register a company given a user and name. + * + * @param Users $user + * @param string $name + * + * @return Companies + */ + public static function register(Users $user, string $name) : Companies { $company = new self(); $company->name = $name; @@ -262,9 +262,10 @@ public static function register(Users $user, string $name): Companies * Confirm if a user belongs to this current company. * * @param Users $user + * * @return boolean */ - public function userAssociatedToCompany(Users $user): bool + public function userAssociatedToCompany(Users $user) : bool { return $this->countUsersAssociatedCompanies('users_id =' . $user->getId()) > 0; } @@ -274,7 +275,7 @@ public function userAssociatedToCompany(Users $user): bool * * @return ?string */ - public function getPaymentGatewayCustomerId(): ?string + public function getPaymentGatewayCustomerId() : ?string { return $this->get(self::PAYMENT_GATEWAY_CUSTOMER_KEY); } @@ -309,9 +310,10 @@ public function afterCreate() * Get the default company the users has selected. * * @param Users $user + * * @return Companies */ - public static function getDefaultByUser(Users $user): Companies + public static function getDefaultByUser(Users $user) : Companies { //verify the user has a default company $defaultCompany = $user->get(self::cacheKey()); @@ -368,6 +370,7 @@ public function startFreeTrial() : ?string * Upload Files. * * @todo move this to the baka class + * * @return void */ public function afterSave() @@ -377,11 +380,11 @@ public function afterSave() } /** - * Get an array of the associates users_id for this company. - * - * @return array - */ - public function getAssociatedUsersByApp(): array + * Get an array of the associates users_id for this company. + * + * @return array + */ + public function getAssociatedUsersByApp() : array { /** * @todo move to use the users relationship @@ -411,17 +414,18 @@ public function getLogo() * * @return string */ - public static function cacheKey(): string + public static function cacheKey() : string { return self::DEFAULT_COMPANY_APP . Di::getDefault()->getApp()->getId(); } /** - * Given a user remove it from this app company. - * - * @param Users $user - * @return void - */ + * Given a user remove it from this app company. + * + * @param Users $user + * + * @return void + */ public function deactiveUser(Users $user) { //deactive the user from a company app, not delete @@ -431,6 +435,7 @@ public function deactiveUser(Users $user) * Given the user reactive it for this app company. * * @param Users $user + * * @return void */ public function reactiveUser(Users $user) diff --git a/src/Models/CompaniesBranches.php b/src/Models/CompaniesBranches.php index d7a754f9..0be7b38f 100644 --- a/src/Models/CompaniesBranches.php +++ b/src/Models/CompaniesBranches.php @@ -7,84 +7,21 @@ use Phalcon\Validation\Validator\PresenceOf; /** - * Class CompanyBranches + * Class CompanyBranches. * * @package Canvas\Models * */ class CompaniesBranches extends AbstractModel { - /** - * - * @var integer - */ - public $id; - - /** - * - * @var string - */ - public $name; - - /** - * - * @var string - */ - public $address; - - /** - * - * @var string - */ - public $email; - - /** - * - * @var string - */ - public $zipcode; - - /** - * - * @var string - */ - public $phone; - - /** - * - * @var integer - */ - public $companies_id; - - /** - * - * @var integer - */ - public $users_id; - - /** - * - * @var integer - */ - public $is_default; - - /** - * - * @var string - */ - public $created_at; - - /** - * - * @var string - */ - public $updated_at; - - /** - * - * @var integer - */ - public $is_deleted; + public string $name; + public ?string $address = null; + public ?string $email = null; + public ?string $zipcode = null; + public ?string $phone = null; + public int $companies_id; + public int $users_id; + public int $is_default; /** * Initialize method for model. @@ -109,7 +46,7 @@ public function initialize() } /** - * Model validation + * Model validation. * * @return void */ diff --git a/src/Models/CompaniesSettings.php b/src/Models/CompaniesSettings.php index cf5f3bfd..3261ea7b 100644 --- a/src/Models/CompaniesSettings.php +++ b/src/Models/CompaniesSettings.php @@ -5,41 +5,9 @@ class CompaniesSettings extends \Baka\Auth\Models\CompanySettings { - /** - * - * @var integer - */ - public $companies_id; - - /** - * - * @var string - */ - public $name; - - /** - * - * @var string - */ - public $value; - - /** - * - * @var string - */ - public $created_at; - - /** - * - * @var string - */ - public $updated_at; - - /** - * - * @var integer - */ - public $is_deleted; + public int $companies_id; + public string $name; + public string $value; /** * Initialize method for model. @@ -57,5 +25,4 @@ public function initialize() $this->setSource('companies_settings'); } - } diff --git a/src/Models/Currencies.php b/src/Models/Currencies.php index f6c46017..601c36f8 100644 --- a/src/Models/Currencies.php +++ b/src/Models/Currencies.php @@ -5,53 +5,10 @@ class Currencies extends AbstractModel { - /** - * - * @var integer - */ - public $id; - - /** - * - * @var string - */ - public $country; - - /** - * - * @var string - */ - public $currency; - - /** - * - * @var string - */ - public $code; - - /** - * - * @var string - */ - public $symbol; - - /** - * - * @var string - */ - public $created_at; - - /** - * - * @var string - */ - public $updated_at; - - /** - * - * @var integer - */ - public $is_deleted; + public string $country; + public string $currency; + public string $code; + public string $symbol; /** * Initialize method for model. @@ -60,5 +17,4 @@ public function initialize() { $this->setSource('currencies'); } - } diff --git a/src/Models/CustomFieldsModules.php b/src/Models/CustomFieldsModules.php index 67cca8ab..a5ad1dcd 100644 --- a/src/Models/CustomFieldsModules.php +++ b/src/Models/CustomFieldsModules.php @@ -5,41 +5,8 @@ class CustomFieldsModules extends AbstractModel { - /** - * - * @var integer - */ - public $id; - - /** - * - * @var integer - */ - public $apps_id; - - /** - * - * @var string - */ - public $name; - - /** - * - * @var integer - */ - public $is_deleted; - - /** - * - * @var string - */ - public $created_at; - - /** - * - * @var string - */ - public $updated_at; + public int $apps_id; + public string $name; /** * Initialize method for model. diff --git a/src/Models/FileSystem.php b/src/Models/FileSystem.php index c9936e49..f13788a3 100644 --- a/src/Models/FileSystem.php +++ b/src/Models/FileSystem.php @@ -4,13 +4,14 @@ namespace Canvas\Models; -use Baka\Database\Contracts\HashTableTrait; +use Baka\Contracts\Database\HashTableTrait; use Canvas\Http\Exception\NotFoundException; -use Phalcon\Di; use Exception; +use Phalcon\Di; /** * Classs for FileSystem. + * * @property Users $userData * @property Request $request * @property Config $config @@ -22,89 +23,16 @@ class FileSystem extends AbstractModel { use HashTableTrait; - /** - * - * @var integer - */ - public $id; - - /** - * - * @var integer - */ - public $companies_id; - - /** - * - * @var integer - */ - public $apps_id; - - /** - * - * @var integer - */ - public $users_id; - - /** - * - * @var integer - */ - public $system_modules_id = 0; - - /** - * - * @var integer - */ - public $entity_id; - - /** - * - * @var string - */ - public $name; - - /** - * - * @var string - */ - public $path; - - /** - * - * @var string - */ - public $url; - - /** - * - * @var string - */ - public $size; - - /** - * - * @var string - */ - public $file_type; - - /** - * - * @var string - */ - public $created_at; - - /** - * - * @var string - */ - public $updated_at; - - /** - * - * @var int - */ - public $is_deleted; + public int $companies_id; + public int $apps_id; + public int $users_id; + public int $system_modules_id = 0; + public int $entity_id; + public string $name; + public string $path; + public string $url; + public string $size; + public string $file_type; /** * Initialize method for model. @@ -162,11 +90,12 @@ public function initialize() ['alias' => 'entities'] ); } - + /** * Get the element by its entity id. * * @param string $id + * * @return FileSystem * @throw Exception */ @@ -193,10 +122,11 @@ public static function getAllByEntityId($id, SystemModules $systeModule) * Get the element by its entity id. * * @param string $id + * * @return FileSystem * @throw Exception */ - public static function getById($id): FileSystem + public static function getById($id) : FileSystem { $file = self::findFirst([ 'conditions' => 'id = ?0 AND companies_id = ?1 AND apps_id = ?2 AND is_deleted = 0', @@ -219,7 +149,7 @@ public static function getById($id): FileSystem * * @return bool */ - public function move(string $location): bool + public function move(string $location) : bool { $appSettingFileConfig = $this->di->get('app')->get('filesystem'); $fileSystemConfig = $this->di->get('config')->filesystem->{$appSettingFileConfig}; diff --git a/src/Models/FileSystemEntities.php b/src/Models/FileSystemEntities.php index 525efa7e..1a916f47 100644 --- a/src/Models/FileSystemEntities.php +++ b/src/Models/FileSystemEntities.php @@ -9,59 +9,11 @@ class FileSystemEntities extends AbstractModel { - /** - * - * @var integer - */ - public $id; - - /** - * - * @var integer - */ - public $filesystem_id; - - /** - * - * @var integer - */ - public $entity_id; - - /** - * - * @var integer - */ - public $system_modules_id; - - /** - * - * @var integer - */ - public $companies_id; - - /** - * - * @var string - */ - public $field_name; - - /** - * - * @var string - */ - public $created_at; - - /** - * - * @var string - */ - public $updated_at; - - /** - * - * @var integer - */ - public $is_deleted; + public int $filesystem_id; + public int $entity_id; + public int $system_modules_id; + public int $companies_id; + public string $field_name; /** * Initialize method for model. @@ -100,9 +52,10 @@ public function validation() /** * Get a filesystem entities from this system modules. * - * @param integer $id + * @param int $id * @param SystemModules $systemModules - * @param bool $isDeleted deprecated + * @param bool $isDeleted deprecated + * * @return FileSystemEntities */ public static function getByIdWithSystemModule(int $id, SystemModules $systemModules, bool $isDeleted = false) @@ -121,7 +74,6 @@ public static function getByIdWithSystemModule(int $id, SystemModules $systemMod $addCompanySql = 'AND companies_id = :companies_id:'; $bind['companies_id'] = $companyId; } - return self::findFirst([ 'conditions' => 'id = :id: AND system_modules_id = :system_modules_id: ' . $addCompanySql . ' AND @@ -133,11 +85,12 @@ public static function getByIdWithSystemModule(int $id, SystemModules $systemMod /** * Get a filesystem entities from this system modules. * - * @param integer $id + * @param int $id * @param SystemModules $systemModules + * * @return FileSystemEntities */ - public static function getById(int $id): FileSystemEntities + public static function getById(int $id) : FileSystemEntities { $app = Di::getDefault()->getApp(); @@ -164,11 +117,12 @@ public static function getById(int $id): FileSystemEntities /** * Get a filesystem entities from this system modules. * - * @param integer $id + * @param int $id * @param SystemModules $systemModules + * * @return FileSystemEntities */ - public static function getByEntityId(int $id): FileSystemEntities + public static function getByEntityId(int $id) : FileSystemEntities { $app = Di::getDefault()->getApp(); @@ -195,7 +149,8 @@ public static function getByEntityId(int $id): FileSystemEntities /** * Given a entity id get all its asociated files. * - * @param integer $id + * @param int $id + * * @return FileSystemEntities[] */ public static function getAllByEntityId(int $id) diff --git a/src/Models/Users.php b/src/Models/Users.php index 2b6d6bec..943689da 100644 --- a/src/Models/Users.php +++ b/src/Models/Users.php @@ -4,7 +4,10 @@ namespace Canvas\Models; use Baka\Auth\Models\Users as BakUser; +use Baka\Cashier\Billable; use Baka\Contracts\Database\HashTableTrait; +use Baka\Contracts\EventsManager\EventManagerAwareTrait; +use Baka\Validations\PasswordValidation; use Canvas\Auth\App as AppAuth; use Canvas\Contracts\Auth\UserInterface; use Canvas\Contracts\Notifications\NotifiableTrait; @@ -12,11 +15,8 @@ use Canvas\Traits\FileSystemModelTrait; use Canvas\Traits\PermissionsTrait; use Canvas\Traits\SubscriptionPlanLimitTrait; -use Baka\Validations\PasswordValidation; use Carbon\Carbon; use Exception; -use Baka\Cashier\Billable; -use Baka\Contracts\EventsManager\EventManagerAwareTrait; use Phalcon\Di; use Phalcon\Security\Random; use Phalcon\Validation; @@ -34,13 +34,12 @@ class Users extends BakUser implements UserInterface use NotifiableTrait; use EventManagerAwareTrait; - public ?string $description; - public int $default_company_branch; + public int $default_company_branch = 0; public int $roles_id; - public ?string $stripe_id; - public ?string $card_last_four; - public ?string $card_brand; - public ?string $trial_ends_at; + public ?string $stripe_id = null; + public ?string $card_last_four = null; + public ?string $card_brand = null; + public ?string $trial_ends_at = null; /** * Provide the app plan id @@ -55,7 +54,7 @@ class Users extends BakUser implements UserInterface * * @var string */ - public ?int $active_subscription_id; + public ?int $active_subscription_id = 0; /** * System Module Id. diff --git a/src/Models/UsersAssociatedCompanies.php b/src/Models/UsersAssociatedCompanies.php index 0b8faad8..dfe4fcf3 100644 --- a/src/Models/UsersAssociatedCompanies.php +++ b/src/Models/UsersAssociatedCompanies.php @@ -5,36 +5,6 @@ class UsersAssociatedCompanies extends \Baka\Auth\Models\UsersAssociatedCompany { - /** - * - * @var integer - */ - public $users_id; - - /** - * - * @var integer - */ - public $companies_id; - - /** - * - * @var string - */ - public $identify_id; - - /** - * - * @var integer - */ - public $user_active; - - /** - * - * @var string - */ - public $user_role; - /** * Initialize method for model. */ diff --git a/src/Providers/AclProvider.php b/src/Providers/AclProvider.php index e1751492..779bd5a0 100644 --- a/src/Providers/AclProvider.php +++ b/src/Providers/AclProvider.php @@ -2,10 +2,10 @@ namespace Canvas\Providers; -use Phalcon\Di\ServiceProviderInterface; -use Phalcon\Di\DiInterface; use Canvas\Acl\Manager as AclManager; -use Phalcon\Acl; +use Phalcon\Acl\Enum; +use Phalcon\Di\DiInterface; +use Phalcon\Di\ServiceProviderInterface; class AclProvider implements ServiceProviderInterface { @@ -32,7 +32,7 @@ function () use ($db) { ); //default behavior - $acl->setDefaultAction(Acl::ALLOW); + $acl->setDefaultAction(Enum::ALLOW); return $acl; } diff --git a/src/Traits/AuthTrait.php b/src/Traits/AuthTrait.php index 2ad5dca6..b11fcd4a 100644 --- a/src/Traits/AuthTrait.php +++ b/src/Traits/AuthTrait.php @@ -4,9 +4,9 @@ namespace Canvas\Traits; -use Canvas\Models\Users; use Baka\Auth\Models\Sessions; -use Canvas\Exception\NotFoundException; +use Canvas\Auth\Auth; +use Canvas\Models\Users; /** * Trait ResponseTrait. @@ -24,14 +24,16 @@ trait AuthTrait { /** * Login user. + * * @param string + * * @return array */ - private function loginUsers(string $email, string $password): array + private function loginUsers(string $email, string $password) : array { $userIp = !defined('API_TESTS') ? $this->request->getClientAddress() : '127.0.0.1'; - $userData = Users::login($email, $password, 1, 0, $userIp); + $userData = Auth::login($email, $password, 1, 0, $userIp); $token = $userData->getToken(); //start session @@ -48,10 +50,12 @@ private function loginUsers(string $email, string $password): array /** * User Login Social. + * * @param string + * * @return array */ - private function loginSocial(Users $user): array + private function loginSocial(Users $user) : array { $userIp = !defined('API_TESTS') ? $this->request->getClientAddress() : '127.0.0.1'; @@ -76,10 +80,12 @@ private function loginSocial(Users $user): array /** * Set user into Di by id. + * * @param int $usersId + * * @return void */ - private function setUserDataById(int $usersId): void + private function setUserDataById(int $usersId) : void { $hostUser = Users::findFirstOrFail([ 'conditions' => 'id = ?0 and status = 1 and is_deleted = 0', diff --git a/src/Traits/UsersAssociatedTrait.php b/src/Traits/UsersAssociatedTrait.php index b83431fd..a9a832d0 100644 --- a/src/Traits/UsersAssociatedTrait.php +++ b/src/Traits/UsersAssociatedTrait.php @@ -4,10 +4,9 @@ namespace Canvas\Traits; -use Canvas\Models\Users; -use Canvas\Models\Roles; use Canvas\Models\Companies; -use Exception; +use Canvas\Models\Roles; +use Canvas\Models\Users; /** * Trait ResponseTrait. @@ -25,22 +24,25 @@ trait UsersAssociatedTrait { /** - * create new related User Associated instance dynamicly. + * create new related User Associated instance dynamically. + * * @param Users $user * @param Companies $company + * * @return array + * * @todo Find a better way to handle namespaces for models */ - public function associate(Users $user, Companies $company): array + public function associate(Users $user, Companies $company) : array { $class = str_replace('UsersAssociated\\', 'UsersAssociated', substr_replace(get_class($this), '\UsersAssociated', strrpos(get_class($this), '\\'), 0)); $usersAssociatedModel = new $class(); $usersAssociatedModel->users_id = $user->getId(); $usersAssociatedModel->companies_id = $company->getId(); $usersAssociatedModel->apps_id = $this->di->getApp()->getId(); - $usersAssociatedModel->identify_id = $user->getId(); + $usersAssociatedModel->identify_id = (string) $user->getId(); $usersAssociatedModel->user_active = 1; - $usersAssociatedModel->user_role = $user->roles_id; + $usersAssociatedModel->user_role = (string) $user->roles_id; $usersAssociatedModel->created_at = date('Y-m-d H:i:s'); $usersAssociatedModel->saveOrFail(); From 365125432c38d203bc742a84c8c68567834c0f3a Mon Sep 17 00:00:00 2001 From: mctekk Date: Wed, 17 Jun 2020 01:16:26 -0400 Subject: [PATCH 09/26] Update all model with php 7.4 --- src/Api/Controllers/AuthController.php | 75 +++++----- src/Listener/Company.php | 4 +- src/Models/AbstractModel.php | 4 +- src/Models/AccessList.php | 65 ++------- src/Models/Apps.php | 1 - src/Models/AppsKeys.php | 58 +------- src/Models/AppsPlans.php | 13 +- src/Models/AppsPlansSettings.php | 45 +----- src/Models/AppsRoles.php | 14 +- src/Models/CompaniesAssociations.php | 41 +----- src/Models/CompaniesBranches.php | 6 - src/Models/CompaniesCustomFields.php | 48 +------ src/Models/CompaniesGroups.php | 47 +----- src/Models/Countries.php | 21 +-- src/Models/CustomFieldsSettings.php | 45 +----- src/Models/CustomFieldsTypes.php | 42 +----- src/Models/CustomFieldsTypesSettings.php | 38 +---- src/Models/CustomFieldsValues.php | 52 +------ src/Models/EmailTemplates.php | 71 ++------- src/Models/EmailTemplatesVariables.php | 74 +--------- src/Models/FileSystem.php | 11 +- src/Models/FileSystemSettings.php | 39 +---- src/Models/Languages.php | 46 +----- src/Models/Locales.php | 30 +--- src/Models/NotificationType.php | 91 +++--------- src/Models/Notifications.php | 91 ++---------- src/Models/PaymentFrequencies.php | 30 +--- src/Models/PaymentMethods.php | 41 +----- src/Models/PaymentMethodsCreds.php | 69 +-------- src/Models/Resources.php | 54 +------ src/Models/ResourcesAccesses.php | 57 ++------ src/Models/RolesInherits.php | 12 +- src/Models/Sources.php | 44 +----- src/Models/Subscription.php | 176 +++++------------------ src/Models/SystemModules.php | 23 +-- src/Models/UserCompanyApps.php | 49 +------ src/Models/UserCompanyAppsActivities.php | 61 +------- src/Models/UserConfig.php | 1 - src/Models/UserLinkedSources.php | 9 +- src/Models/UserRoles.php | 4 +- src/Models/UserWebhooks.php | 84 ++--------- src/Models/Users.php | 6 +- src/Models/UsersAssociatedApps.php | 49 +------ src/Models/UsersInvite.php | 77 ++-------- src/Models/Webhooks.php | 66 +-------- src/Providers/ViewProvider.php | 34 +---- 46 files changed, 292 insertions(+), 1726 deletions(-) diff --git a/src/Api/Controllers/AuthController.php b/src/Api/Controllers/AuthController.php index bcdd4d3a..c294af36 100644 --- a/src/Api/Controllers/AuthController.php +++ b/src/Api/Controllers/AuthController.php @@ -4,31 +4,31 @@ namespace Canvas\Api\Controllers; -use Canvas\Models\Users; +use Baka\Auth\Models\Sessions; +use Baka\Auth\Models\Users as BakaUsers; +use Baka\Validation as CanvasValidation; +use Baka\Validations\PasswordValidation; +use Canvas\Auth\Auth; +use Canvas\Auth\Factory; +use Canvas\Exception\ModelException; +use Canvas\Http\Exception\InternalServerErrorException; +use Canvas\Http\Exception\NotFoundException; use Canvas\Models\Sources; use Canvas\Models\UserLinkedSources; -use Canvas\Exception\ModelException; -use Baka\Auth\Models\Users as BakaUsers; +use Canvas\Models\Users; +use Canvas\Notifications\PasswordUpdate; +use Canvas\Notifications\ResetPassword; +use Canvas\Notifications\Signup; +use Canvas\Notifications\UpdateEmail; use Canvas\Traits\AuthTrait; use Canvas\Traits\SocialLoginTrait; -use Canvas\Http\Exception\NotFoundException; +use Canvas\Traits\TokenTrait; use Exception; use Phalcon\Http\Response; use Phalcon\Validation\Validator\Confirmation; use Phalcon\Validation\Validator\Email as EmailValidator; use Phalcon\Validation\Validator\PresenceOf; use Phalcon\Validation\Validator\StringLength; -use Baka\Auth\Models\Sessions; -use Canvas\Auth\Factory; -use Canvas\Http\Exception\InternalServerErrorException; -use Baka\Validation as CanvasValidation; -use Canvas\Notifications\ResetPassword; -use Canvas\Notifications\PasswordUpdate; -use Canvas\Notifications\Signup; -use Canvas\Notifications\UpdateEmail; -use Baka\Validations\PasswordValidation; -use Canvas\Auth\Auth; -use Canvas\Traits\TokenTrait; /** * Class AuthController. @@ -67,6 +67,7 @@ public function onConstruct() /** * User Login. + * * @method POST * @url /v1/auth * @@ -168,7 +169,7 @@ public function signup() : Response try { $this->db->begin(); - Auth::signUp($validation->getValues()); + $user = Auth::signUp($validation->getValues()); $this->db->commit(); } catch (Exception $e) { @@ -190,7 +191,7 @@ public function signup() : Response 'id' => $user->getId(), ]; - $user->password = null; + $user->password = ''; $user->notify(new Signup($user)); return $this->response([ @@ -203,9 +204,10 @@ public function signup() : Response * Refresh user auth. * * @return Response - * @todo Validate acces_token and refresh token, session's user email and relogin + * + * @todo Validate access_token and refresh token, session's user email and re-login */ - public function refresh(): Response + public function refresh() : Response { $request = $this->request->getPostData(); $accessToken = $this->getToken($request['access_token']); @@ -237,10 +239,12 @@ public function refresh(): Response /** * Send email to change current email for user. + * * @param int $id + * * @return Response */ - public function sendEmailChange(int $id): Response + public function sendEmailChange(int $id) : Response { //Search for user $user = Users::getById($id); @@ -256,10 +260,12 @@ public function sendEmailChange(int $id): Response /** * Change user's email. + * * @param string $hash + * * @return Response */ - public function changeUserEmail(string $hash): Response + public function changeUserEmail(string $hash) : Response { $request = $this->request->getPostData(); @@ -310,9 +316,10 @@ public function changeUserEmail(string $hash): Response /** * Login user using Access Token. + * * @return Response */ - public function loginBySocial(): Response + public function loginBySocial() : Response { $request = $this->request->getPostData(); @@ -336,7 +343,7 @@ public function loginBySocial(): Response * * @return Response */ - public function recover(): Response + public function recover() : Response { $request = $this->request->getPostData(); @@ -357,6 +364,7 @@ public function recover(): Response /** * Reset the user password. + * * @method PUT * @url /v1/reset * @@ -393,15 +401,18 @@ public function reset(string $key) : Response } /** - * Set the email config array we are going to be sending. - * - * @todo deprecated move to notifications - * @param String $emailAction - * @param Users $user - * @deprecated version 1 - * @return void - */ - protected function sendEmail(BakaUsers $user, string $type): void + * Set the email config array we are going to be sending. + * + * @todo deprecated move to notifications + * + * @param string $emailAction + * @param Users $user + * + * @deprecated version 1 + * + * @return void + */ + protected function sendEmail(BakaUsers $user, string $type) : void { return ; } diff --git a/src/Listener/Company.php b/src/Listener/Company.php index e9df980e..ccc7c44a 100644 --- a/src/Listener/Company.php +++ b/src/Listener/Company.php @@ -100,8 +100,8 @@ public function afterSignup(Event $event, Companies $company) : void * Let's associate companies and companies_groups. */ $companiesAssoc = new CompaniesAssociations(); - $companiesAssoc->companies_id = $company->id; - $companiesAssoc->companies_groups_id = $companiesGroup->id; + $companiesAssoc->companies_id = $company->getId(); + $companiesAssoc->companies_groups_id = $companiesGroup->getId(); $companiesAssoc->saveOrFail(); //assign role diff --git a/src/Models/AbstractModel.php b/src/Models/AbstractModel.php index b54243cd..5e4fe931 100644 --- a/src/Models/AbstractModel.php +++ b/src/Models/AbstractModel.php @@ -3,7 +3,9 @@ namespace Canvas\Models; -abstract class AbstractModel extends \Baka\Database\Model +use Baka\Database\Model as BakaModel; + +abstract class AbstractModel extends BakaModel { /** * Define if need the key for the mode activity plan diff --git a/src/Models/AccessList.php b/src/Models/AccessList.php index a31ae040..76e21a9b 100644 --- a/src/Models/AccessList.php +++ b/src/Models/AccessList.php @@ -4,64 +4,17 @@ namespace Canvas\Models; -use Phalcon\Di; use Canvas\Http\Exception\NotFoundException; +use Phalcon\Di; class AccessList extends AbstractModel { - /** - * - * @var string - */ - public $roles_name; - - /** - * - * @var string - */ - public $resources_name; - - /** - * - * @var string - */ - public $access_name; - - /** - * - * @var boolean - */ - public $allowed; - - /** - * - * @var integer - */ - public $apps_id; - - /** - * - * @var integer - */ - public $roles_id; - - /** - * - * @var string - */ - public $created_at; - - /** - * - * @var string - */ - public $updated_at; - - /** - * - * @var integer - */ - public $is_deleted; + public string $roles_name; + public string $resources_name; + public string $access_name; + public int $allowed; + public int $apps_id; + public int $roles_id; /** * Initialize method for model. @@ -84,9 +37,10 @@ public function initialize() * @param Roles $role * @param string $resourceName * @param string $accessName + * * @return integer */ - public static function exist(Roles $role, string $resourceName, string $accessName): int + public static function exist(Roles $role, string $resourceName, string $accessName) : int { return self::count([ 'conditions' => 'roles_id = ?0 and resources_name = ?1 AND access_name = ?2 AND apps_id = ?3', @@ -100,6 +54,7 @@ public static function exist(Roles $role, string $resourceName, string $accessNa * @param Roles $role * @param string $resourceName * @param string $accessName + * * @return integer */ public static function getBy(Roles $role, string $resourceName, string $accessName) : AccessList diff --git a/src/Models/Apps.php b/src/Models/Apps.php index 063d8254..8f05ea17 100644 --- a/src/Models/Apps.php +++ b/src/Models/Apps.php @@ -8,7 +8,6 @@ use Baka\Database\Apps as BakaApps; class Apps extends BakaApps { - public string $key; public ?string $url; public int $default_apps_plan_id; diff --git a/src/Models/AppsKeys.php b/src/Models/AppsKeys.php index 3814b29f..3e728a48 100644 --- a/src/Models/AppsKeys.php +++ b/src/Models/AppsKeys.php @@ -5,61 +5,13 @@ use Canvas\Http\Exception\UnauthorizedException; -/** - * Class CompanyBranches. - * - * @package Canvas\Models - * - */ class AppsKeys extends AbstractModel { - /** - * - * @var integer - */ - public $client_id; - - /** - * - * @var integer - */ - public $client_secret_id; - - /** - * - * @var integer - */ - public $apps_id; - - /** - * - * @var integer - */ - public $users_id; - - /** - * - * @var string - */ - public $last_used_date; - - /** - * - * @var string - */ - public $created_at; - - /** - * - * @var string - */ - public $updated_at; - - /** - * - * @var integer - */ - public $is_deleted; + public string $client_id; + public string $client_secret_id; + public int $apps_id; + public int $users_id; + public ?string $last_used_date = null; /** * Initialize method for model. diff --git a/src/Models/AppsPlans.php b/src/Models/AppsPlans.php index 02879a4a..ca5eedb3 100644 --- a/src/Models/AppsPlans.php +++ b/src/Models/AppsPlans.php @@ -5,17 +5,6 @@ use Phalcon\Di; -/** - * Class AppsPlans. - * - * @package Canvas\Models - * - * @property Users $user - * @property Config $config - * @property Apps $app - * @property Companies $defaultCompany - * @property \Phalcon\Di $di - */ class AppsPlans extends AbstractModel { public int $apps_id; @@ -67,7 +56,7 @@ public function initialize() } /** - * Just a preatty function that returns the same object for. + * Just a pretty function that returns the same object for. * * $app->settings()->set(key, value); * $app->settings()->get(key); diff --git a/src/Models/AppsPlansSettings.php b/src/Models/AppsPlansSettings.php index 35ac7814..c60a0752 100644 --- a/src/Models/AppsPlansSettings.php +++ b/src/Models/AppsPlansSettings.php @@ -5,47 +5,10 @@ class AppsPlansSettings extends AbstractModel { - /** - * - * @var integer - */ - public $apps_plans_id; - - /** - * - * @var integer - */ - public $apps_id; - - /** - * - * @var string - */ - public $key; - - /** - * - * @var string - */ - public $value; - - /** - * - * @var string - */ - public $created_at; - - /** - * - * @var string - */ - public $updated_at; - - /** - * - * @var integer - */ - public $is_deleted; + public int $apps_plans_id; + public int $apps_id; + public string $key; + public ?string $value = null; /** * Initialize method for model. diff --git a/src/Models/AppsRoles.php b/src/Models/AppsRoles.php index a9cb6b1b..b04ef35c 100644 --- a/src/Models/AppsRoles.php +++ b/src/Models/AppsRoles.php @@ -5,17 +5,8 @@ class AppsRoles extends \Baka\Auth\Models\AppsRoles { - /** - * - * @var integer - */ - public $apps_id; - - /** - * - * @var string - */ - public $roles_name; + public int $apps_id; + public string $roles_name; /** * Initialize method for model. @@ -33,5 +24,4 @@ public function initialize() ['alias' => 'app'] ); } - } diff --git a/src/Models/CompaniesAssociations.php b/src/Models/CompaniesAssociations.php index 9cadbfb4..7d63d8a4 100644 --- a/src/Models/CompaniesAssociations.php +++ b/src/Models/CompaniesAssociations.php @@ -3,46 +3,10 @@ namespace Canvas\Models; -use Phalcon\Validation; -use Phalcon\Validation\Validator\PresenceOf; - -/** - * Class CompanyBranches. - * - * @package Canvas\Models - * - */ class CompaniesAssociations extends AbstractModel { - /** - * - * @var integer - */ - public $companies_groups_id; - - /** - * - * @var integer - */ - public $companies_id; - - /** - * - * @var string - */ - public $created_at; - - /** - * - * @var string - */ - public $updated_at; - - /** - * - * @var integer - */ - public $is_deleted; + public int $companies_groups_id; + public int $companies_id; /** * Initialize method for model. @@ -65,5 +29,4 @@ public function initialize() ['alias' => 'companiesGroups'] ); } - } diff --git a/src/Models/CompaniesBranches.php b/src/Models/CompaniesBranches.php index 0be7b38f..08932ac2 100644 --- a/src/Models/CompaniesBranches.php +++ b/src/Models/CompaniesBranches.php @@ -6,12 +6,6 @@ use Phalcon\Validation; use Phalcon\Validation\Validator\PresenceOf; -/** - * Class CompanyBranches. - * - * @package Canvas\Models - * - */ class CompaniesBranches extends AbstractModel { public string $name; diff --git a/src/Models/CompaniesCustomFields.php b/src/Models/CompaniesCustomFields.php index 51147ce6..d159bafe 100644 --- a/src/Models/CompaniesCustomFields.php +++ b/src/Models/CompaniesCustomFields.php @@ -3,51 +3,11 @@ namespace Canvas\Models; -use Canvas\Models\AbstractModel; - class CompaniesCustomFields extends AbstractModel { - /** - * - * @var integer - */ - public $id; - - /** - * - * @var integer - */ - public $companies_id; - - /** - * - * @var integer - */ - public $custom_fields_id; - - /** - * - * @var string - */ - public $value; - - /** - * - * @var integer - */ - public $is_deleted; - - /** - * - * @var string - */ - public $created_at; - - /** - * - * @var string - */ - public $updated_at; + public int $companies_id; + public int $custom_fields_id; + public ?string $value = null; /** * Initialize method for model. @@ -72,7 +32,7 @@ public function initialize() } /** - * Set the custom primary field id + * Set the custom primary field id. * * @param int $id */ diff --git a/src/Models/CompaniesGroups.php b/src/Models/CompaniesGroups.php index f4ce94fb..e0d84f8e 100644 --- a/src/Models/CompaniesGroups.php +++ b/src/Models/CompaniesGroups.php @@ -3,9 +3,6 @@ namespace Canvas\Models; -use Phalcon\Validation; -use Phalcon\Validation\Validator\PresenceOf; - /** * Class CompanyBranches. * @@ -14,47 +11,9 @@ */ class CompaniesGroups extends AbstractModel { - /** - * - * @var integer - */ - public $id; - - /** - * - * @var string - */ - public $name; - - /** - * - * @var integer - */ - public $apps_id; - - /** - * - * @var integer - */ - public $users_id; - - /** - * - * @var string - */ - public $created_at; - - /** - * - * @var string - */ - public $updated_at; - - /** - * - * @var integer - */ - public $is_deleted; + public string $name; + public int $apps_id; + public int $users_id; /** * Initialize method for model. diff --git a/src/Models/Countries.php b/src/Models/Countries.php index 68d281c3..c3a79ca0 100644 --- a/src/Models/Countries.php +++ b/src/Models/Countries.php @@ -5,24 +5,8 @@ class Countries extends AbstractModel { - /** - * - * @var integer - */ - public $id; - - /** - * - * @var string - */ - public $name; - - /** - * - * @var string - */ - public $flag; - + public string $name; + public ?string $flag = null; /** * Initialize method for model. @@ -31,5 +15,4 @@ public function initialize() { $this->setSource('countries'); } - } diff --git a/src/Models/CustomFieldsSettings.php b/src/Models/CustomFieldsSettings.php index fb511f73..d41de282 100644 --- a/src/Models/CustomFieldsSettings.php +++ b/src/Models/CustomFieldsSettings.php @@ -5,47 +5,9 @@ class CustomFieldsSettings extends AbstractModel { - /** - * - * @var integer - */ - public $id; - - /** - * - * @var integer - */ - public $custom_fields_id; - - /** - * - * @var string - */ - public $name; - - /** - * - * @var string - */ - public $value; - - /** - * - * @var integer - */ - public $is_deleted; - - /** - * - * @var string - */ - public $created_at; - - /** - * - * @var string - */ - public $updated_at; + public int $custom_fields_id; + public string $name; + public ?string $value = null; /** * Initialize method for model. @@ -61,5 +23,4 @@ public function initialize() ['alias' => 'fields'] ); } - } diff --git a/src/Models/CustomFieldsTypes.php b/src/Models/CustomFieldsTypes.php index c93ec036..828fa2c1 100644 --- a/src/Models/CustomFieldsTypes.php +++ b/src/Models/CustomFieldsTypes.php @@ -5,47 +5,9 @@ class CustomFieldsTypes extends AbstractModel { - /** - * - * @var integer - */ - public $id; - - /** - * - * @var string - */ - public $name; - - /** - * - * @var string - */ + public string $name; public $description; - - /** - * - * @var string - */ - public $icon; - - /** - * - * @var integer - */ - public $is_deleted; - - /** - * - * @var string - */ - public $created_at; - - /** - * - * @var string - */ - public $updated_at; + public ?string $icon = null; /** * Initialize method for model. diff --git a/src/Models/CustomFieldsTypesSettings.php b/src/Models/CustomFieldsTypesSettings.php index 4c255f1b..172752ed 100644 --- a/src/Models/CustomFieldsTypesSettings.php +++ b/src/Models/CustomFieldsTypesSettings.php @@ -5,41 +5,8 @@ class CustomFieldsTypesSettings extends AbstractModel { - /** - * - * @var integer - */ - public $id; - - /** - * - * @var integer - */ - public $custom_fields_types_id; - - /** - * - * @var string - */ - public $name; - - /** - * - * @var integer - */ - public $is_deleted; - - /** - * - * @var string - */ - public $created_at; - - /** - * - * @var string - */ - public $updated_at; + public int $custom_fields_types_id; + public string $name; /** * Initialize method for model. @@ -55,5 +22,4 @@ public function initialize() ['alias' => 'fieldsType'] ); } - } diff --git a/src/Models/CustomFieldsValues.php b/src/Models/CustomFieldsValues.php index cd4885a0..b66a9661 100644 --- a/src/Models/CustomFieldsValues.php +++ b/src/Models/CustomFieldsValues.php @@ -5,53 +5,10 @@ class CustomFieldsValues extends AbstractModel { - /** - * - * @var integer - */ - public $id; - - /** - * - * @var integer - */ - public $custom_fields_id; - - /** - * - * @var string - */ - public $label; - - /** - * - * @var string - */ - public $value; - - /** - * - * @var integer - */ - public $is_default; - - /** - * - * @var integer - */ - public $is_deleted; - - /** - * - * @var string - */ - public $created_at; - - /** - * - * @var string - */ - public $updated_at; + public int $custom_fields_id; + public string $label; + public ?string $value = null; + public int $is_default; /** * Initialize method for model. @@ -67,5 +24,4 @@ public function initialize() ['alias' => 'field'] ); } - } diff --git a/src/Models/EmailTemplates.php b/src/Models/EmailTemplates.php index 66a04a76..aa128205 100644 --- a/src/Models/EmailTemplates.php +++ b/src/Models/EmailTemplates.php @@ -6,70 +6,13 @@ use Canvas\Http\Exception\UnprocessableEntityException; use Phalcon\Di; -/** - * Classs for Email Templates. - * @property Users $userData - * @property Request $request - * @property Config $config - * @property Apps $app - * @property \Phalcon\DI $di - * - */ class EmailTemplates extends AbstractModel { - /** - * - * @var integer - */ - public $id; - - /** - * - * @var string - */ - public $companies_id; - - /** - * - * @var integer - */ - public $app_id; - - /** - * - * @var integer - */ - public $name; - - /** - * - * @var integer - */ - public $template; - - /** - * - * @var string - */ - public $users_id; - - /** - * - * @var integer - */ - public $is_deleted; - - /** - * - * @var string - */ - public $created_at; - - /** - * - * @var string - */ - public $updated_at; + public int $companies_id; + public int $app_id; + public string $name; + public string $template; + public int $users_id; /** * Initialize method for model. @@ -102,10 +45,12 @@ public function initialize() /** * Retrieve email template by name. + * * @param $name + * * @return EmailTemplates */ - public static function getByName(string $name): EmailTemplates + public static function getByName(string $name) : EmailTemplates { $di = Di::getDefault(); $appId = $di->getApp()->getId(); diff --git a/src/Models/EmailTemplatesVariables.php b/src/Models/EmailTemplatesVariables.php index 1e14485f..abb6ef7f 100644 --- a/src/Models/EmailTemplatesVariables.php +++ b/src/Models/EmailTemplatesVariables.php @@ -3,76 +3,14 @@ namespace Canvas\Models; -/** - * Classs for Email Templates - * @property Users $userData - * @property Request $request - * @property Config $config - * @property Apps $app - * @property \Phalcon\DI $di - * - */ class EmailTemplatesVariables extends AbstractModel { - /** - * - * @var integer - */ - public $id; - - /** - * - * @var string - */ - public $companies_id; - - /** - * - * @var integer - */ - public $apps_id; - - /** - * - * @var integer - */ - public $system_modules_id; - - /** - * - * @var string - */ - public $users_id; - - /** - * - * @var string - */ - public $name; - - /** - * - * @var integer - */ - public $value; - - /** - * - * @var integer - */ - public $is_deleted; - - /** - * - * @var string - */ - public $created_at; - - /** - * - * @var string - */ - public $updated_at; + public int $companies_id; + public int $apps_id; + public int $system_modules_id; + public int $users_id; + public string $name; + public string $value; /** * Initialize method for model. diff --git a/src/Models/FileSystem.php b/src/Models/FileSystem.php index f13788a3..5122043d 100644 --- a/src/Models/FileSystem.php +++ b/src/Models/FileSystem.php @@ -9,16 +9,7 @@ use Exception; use Phalcon\Di; -/** - * Classs for FileSystem. - * - * @property Users $userData - * @property Request $request - * @property Config $config - * @property Apps $app - * @property \Phalcon\DI $di - * - */ + class FileSystem extends AbstractModel { use HashTableTrait; diff --git a/src/Models/FileSystemSettings.php b/src/Models/FileSystemSettings.php index 134b55f0..1088a91d 100644 --- a/src/Models/FileSystemSettings.php +++ b/src/Models/FileSystemSettings.php @@ -5,41 +5,9 @@ class FileSystemSettings extends AbstractModel { - /** - * - * @var integer - */ - public $filesystem_id; - - /** - * - * @var string - */ - public $name; - - /** - * - * @var string - */ - public $value; - - /** - * - * @var string - */ - public $created_at; - - /** - * - * @var string - */ - public $updated_at; - - /** - * - * @var integer - */ - public $is_deleted; + public int $filesystem_id; + public string $name; + public ?string $value = null; /** * Initialize method for model. @@ -55,5 +23,4 @@ public function initialize() ['alias' => 'file'] ); } - } diff --git a/src/Models/Languages.php b/src/Models/Languages.php index a6edca9e..468185c4 100644 --- a/src/Models/Languages.php +++ b/src/Models/Languages.php @@ -5,55 +5,15 @@ class Languages extends AbstractModel { - /** - * - * @var integer - */ - public $id; - - /** - * - * @var string - */ - public $name; - - /** - * - * @var string - */ - public $title; - - /** - * - * @var string - */ - public $order; - - /** - * - * @var string - */ - public $created_at; - - /** - * - * @var string - */ - public $updated_at; - - /** - * - * @var integer - */ - public $is_deleted; + public string $name; + public string $title; + public int $order; /** * Initialize method for model. */ public function initialize() { - $this->setSource('languages'); } - } diff --git a/src/Models/Locales.php b/src/Models/Locales.php index 8cccecbd..ee123025 100644 --- a/src/Models/Locales.php +++ b/src/Models/Locales.php @@ -5,35 +5,7 @@ class Locales extends AbstractModel { - /** - * - * @var integer - */ - public $id; - - /** - * - * @var string - */ - public $name; - - /** - * - * @var integer - */ - public $is_deleted; - - /** - * - * @var string - */ - public $created_at; - - /** - * - * @var string - */ - public $updated_at; + public string $name; /** * Initialize method for model. diff --git a/src/Models/NotificationType.php b/src/Models/NotificationType.php index 3cd74b1a..4ef0bbc6 100644 --- a/src/Models/NotificationType.php +++ b/src/Models/NotificationType.php @@ -7,78 +7,14 @@ class NotificationType extends AbstractModel { - - /** - * - * @var integer - */ - public $id; - - /** - * - * @var integer - */ - public $apps_id; - - /** - * - * @var integer - */ - public $system_modules_id; - - /** - * - * @var string - */ - public $name; - - /** - * - * @var string - */ - public $key; - - /** - * - * @var string - */ - public $description; - - /** - * - * @var string - */ - public $template; - - /** - * - * @var string - */ - public $icon_url; - - /** - * - * @var int - */ - public $with_realtime; - - /** - * - * @var integer - */ - public $is_deleted; - - /** - * - * @var string - */ - public $created_at; - - /** - * - * @var string - */ - public $updated_at; + public int $apps_id; + public int $system_modules_id; + public string $name; + public string $key; + public ?string $description = null; + public ?string $template = null; + public string $icon_url; + public int $with_realtime; /** * Initialize method for model. @@ -90,18 +26,23 @@ public function initialize() /** * Get the notification by its key - * by defautl in any kanvas app the key will be its classname + * by default in any kanvas app the key will be its classnames. * * @param string $key + * * @return void */ - public static function getByKey(string $key): NotificationType + public static function getByKey(string $key) : NotificationType { $app = Di::getDefault()->getApp(); return self::findFirstOrFail([ 'conditions' => 'apps_id in (?0, ?1) AND key = ?2', - 'bind' => [$app->getId(), Apps::CANVAS_DEFAULT_APP_ID, $key] + 'bind' => [ + $app->getId(), + Apps::CANVAS_DEFAULT_APP_ID, + $key + ] ]); } } diff --git a/src/Models/Notifications.php b/src/Models/Notifications.php index 4960f146..a6017ac6 100644 --- a/src/Models/Notifications.php +++ b/src/Models/Notifications.php @@ -7,83 +7,15 @@ class Notifications extends AbstractModel { - /** - * - * @var integer - */ - public $id; - - /** - * - * @var integer - */ - public $from_users_id; - - /** - * - * @var integer - */ - public $users_id; - - /** - * - * @var integer - */ - public $companies_id; - - /** - * - * @var integer - */ - public $apps_id; - - /** - * - * @var integer - */ - public $system_modules_id; - - /** - * - * @var integer - */ - public $notification_type_id; - - /** - * - * @var integer - */ - public $entity_id; - - /** - * - * @var string - */ - public $content; - - /** - * - * @var integer - */ - public $read; - - /** - * - * @var integer - */ - public $is_deleted; - - /** - * - * @var string - */ - public $created_at; - - /** - * - * @var string - */ - public $updated_at; + public int $from_users_id; + public int $users_id; + public int $companies_id; + public int $apps_id; + public int $system_modules_id; + public int $notification_type_id; + public int $entity_id; + public string $content; + public int $read; /** * Initialize method for model. @@ -118,9 +50,10 @@ public function initialize() * Mark as Read all the notification from a user. * * @param Users $user + * * @return void */ - public static function markAsRead(Users $user): bool + public static function markAsRead(Users $user) : bool { $result = Di::getDefault()->getDb()->prepare( 'UPDATE notifications set `read` = 1 WHERE users_id = ? AND companies_id = ? AND apps_id = ?' @@ -140,7 +73,7 @@ public static function markAsRead(Users $user): bool * * @return int */ - public static function totalUnRead(Users $user): int + public static function totalUnRead(Users $user) : int { return self::count([ 'conditions' => 'is_deleted = 0 AND read = 0 AND users_id = ?0 AND companies_id = ?1 AND apps_id = ?2', diff --git a/src/Models/PaymentFrequencies.php b/src/Models/PaymentFrequencies.php index 3146d6e1..cee5fff4 100644 --- a/src/Models/PaymentFrequencies.php +++ b/src/Models/PaymentFrequencies.php @@ -5,35 +5,7 @@ class PaymentFrequencies extends AbstractModel { - /** - * - * @var integer - */ - public $id; - - /** - * - * @var string - */ - public $name; - - /** - * - * @var integer - */ - public $is_deleted; - - /** - * - * @var string - */ - public $created_at; - - /** - * - * @var string - */ - public $updated_at; + public string $name; /** * Initialize method for model. diff --git a/src/Models/PaymentMethods.php b/src/Models/PaymentMethods.php index 3823c53b..b9910561 100644 --- a/src/Models/PaymentMethods.php +++ b/src/Models/PaymentMethods.php @@ -5,41 +5,8 @@ class PaymentMethods extends AbstractModel { - /** - * - * @var integer - */ - public $id; - - /** - * - * @var string - */ - public $name; - - /** - * - * @var integer - */ - public $is_default; - - /** - * - * @var string - */ - public $created_at; - - /** - * - * @var string - */ - public $updated_at; - - /** - * - * @var integer - */ - public $is_deleted; + public string $name; + public int $is_default; /** * Initialize method for model. @@ -54,7 +21,7 @@ public function initialize() * * @return string */ - public static function getDefault(): self + public static function getDefault() : self { return self::findFirst(['conditions' => 'is_default = 1 and is_deleted = 0']); } @@ -64,7 +31,7 @@ public static function getDefault(): self * * @return int */ - public function getId(): int + public function getId() { return (int) $this->id; } diff --git a/src/Models/PaymentMethodsCreds.php b/src/Models/PaymentMethodsCreds.php index ffde1554..7aceb4ee 100644 --- a/src/Models/PaymentMethodsCreds.php +++ b/src/Models/PaymentMethodsCreds.php @@ -9,71 +9,16 @@ class PaymentMethodsCreds extends AbstractModel { - /** - * - * @var integer - */ - public $id; - - /** - * - * @var integer - */ - public $users_id; - - /** - * - * @var integer - */ - public $companies_id; - - /** - * - * @var integer - */ - public $apps_id; - - /** - * - * @var integer - */ - public $payment_methods_id; - - /** - * - * @var string - */ - public $payment_ending_numbers; - - /** - * - * @var string - */ - public $expiration_date; - - /** - * - * @var string - */ - public $zip_code; - /** - * - * @var string - */ - public $created_at; + public int $users_id; + public int $companies_id; + public int $apps_id; + public int $payment_methods_id; + public string $payment_ending_numbers; + public string $expiration_date; + public ?string $zip_code = null; - /** - * - * @var string - */ - public $updated_at; - /** - * - * @var integer - */ - public $is_deleted; /** * Initialize method for model. diff --git a/src/Models/Resources.php b/src/Models/Resources.php index a4c38f19..2a37b6a9 100644 --- a/src/Models/Resources.php +++ b/src/Models/Resources.php @@ -6,58 +6,12 @@ use Baka\Database\Exception\ModelNotFoundException; use Phalcon\Di; -use Canvas\Exception\ModelException; -/** - * Class Resources. - * - * @package Canvas\Models - * - * @property \Phalcon\Di $di - */ class Resources extends AbstractModel { - /** - * - * @var integer - */ - public $id; - - /** - * - * @var string - */ - public $name; - - /** - * - * @var string - */ - public $description; - - /** - * - * @var integer - */ - public $apps_id; - - /** - * - * @var string - */ - public $created_at; - - /** - * - * @var string - */ - public $updated_at; - - /** - * - * @var integer - */ - public $is_deleted; + public string $name; + public ?string $description = null; + public int $apps_id; /** * Initialize method for model. @@ -83,6 +37,7 @@ public function initialize() * is this name a resource? * * @param string $resourceName + * * @return boolean */ public static function isResource(string $resourceName) : bool @@ -101,6 +56,7 @@ public static function isResource(string $resourceName) : bool * Get a resource by it name. * * @param string $resourceName + * * @return Resources */ public static function getByName(string $resourceName) : Resources diff --git a/src/Models/ResourcesAccesses.php b/src/Models/ResourcesAccesses.php index 195f59bf..f08878c9 100644 --- a/src/Models/ResourcesAccesses.php +++ b/src/Models/ResourcesAccesses.php @@ -5,51 +5,13 @@ namespace Canvas\Models; use Phalcon\Di; -use Canvas\Exception\ModelException; class ResourcesAccesses extends AbstractModel { - /** - * - * @var integer - */ - public $resources_id; - - /** - * - * @var string - */ - public $resources_name; - - /** - * - * @var string - */ - public $access_name; - - /** - * - * @var integer - */ - public $apps_id; - - /** - * - * @var string - */ - public $created_at; - - /** - * - * @var string - */ - public $updated_at; - - /** - * - * @var integer - */ - public $is_deleted; + public int $resources_id; + public string $resources_name; + public string $access_name; + public int $apps_id; /** * Initialize method for model. @@ -67,17 +29,22 @@ public function initialize() } /** - * Check if it exist + * Check if it exist. * - * @param Resources $resouce + * @param Resources $resource * @param string $accessName + * * @return integer */ public static function exist(Resources $resource, string $accessName) : int { return self::count([ 'conditions' => 'resources_id = ?0 AND access_name = ?1 AND apps_id = ?2', - 'bind' => [$resource->getId(), $accessName, Di::getDefault()->getAcl()->getApp()->getId()] + 'bind' => [ + $resource->getId(), + $accessName, + Di::getDefault()->getAcl()->getApp()->getId() + ] ]); } } diff --git a/src/Models/RolesInherits.php b/src/Models/RolesInherits.php index 0d31c75a..f7cc2ac9 100644 --- a/src/Models/RolesInherits.php +++ b/src/Models/RolesInherits.php @@ -5,17 +5,9 @@ class RolesInherits extends AbstractModel { - /** - * - * @var integer - */ - public $roles_id; - /** - * - * @var integer - */ - public $roles_inherit; + public int $roles_id; + public int $roles_inherit; /** * Initialize method for model. diff --git a/src/Models/Sources.php b/src/Models/Sources.php index d99e990c..285a3019 100644 --- a/src/Models/Sources.php +++ b/src/Models/Sources.php @@ -19,47 +19,9 @@ */ class Sources extends AbstractModel { - /** - * - * @var integer - */ - public $id; - - /** - * - * @var string - */ - public $title; - - /** - * - * @var string - */ - public $url; - - /** - * - * @var integer - */ - public $language_id; - - /** - * - * @var string - */ - public $created_at; - - /** - * - * @var string - */ - public $updated_at; - - /** - * - * @var integer - */ - public $is_deleted; + public string $title; + public string $url; + public int $language_id; /** * Initialize method for model. diff --git a/src/Models/Subscription.php b/src/Models/Subscription.php index 3363dad1..160bbe55 100644 --- a/src/Models/Subscription.php +++ b/src/Models/Subscription.php @@ -2,11 +2,11 @@ namespace Canvas\Models; -use Phalcon\Cashier\Subscription as PhalconSubscription; +use Baka\Cashier\Subscription as BakaSubscription; use Canvas\Http\Exception\InternalServerErrorException; -use Phalcon\Di; use Carbon\Carbon; use Phalcon\Db\RawValue; +use Phalcon\Di; /** * Trait Subscription. @@ -21,140 +21,29 @@ * @property \Phalcon\Di $di * */ -class Subscription extends PhalconSubscription +class Subscription extends BakaSubscription { const DEFAULT_GRACE_PERIOD_DAYS = 5; - /** - * - * @var integer - */ - public $apps_plans_id = 0; - - /** - * - * @var integer - */ - public $user_id; - - /** - * - * @var integer - */ - public $companies_id; - - /** - * - * @var integer - */ - public $apps_id; - - /** - * - * @var string - */ - public $name; - - /** - * - * @var string - */ - public $stripe_id; - - /** - * - * @var string - */ - public $stripe_plan; - - /** - * - * @var integer - */ - public $quantity; - - /** - * - * @var integer - */ - public $payment_frequency_id; - - /** - * - * @var string - */ - public $trial_ends_at; - - /** - * - * @var integer - */ - public $trial_ends_days; - - /** - * - * @var integer - */ - public $is_freetrial; - - /** - * - * @var integer - */ - public $is_active; - - /** - * - * @var integer - */ - public $paid; - - /** - * - * @var string - */ - public $charge_date; - - /** - * - * @var string - */ - public $ends_at; - - /** - * - * @var date - */ - public $grace_period_ends; - /** - * - * @var datetime - */ - public $next_due_payment; - - /** - * - * @var integer - */ - public $is_cancelled; - - /** - * - * @var string - */ - public $created_at; - - /** - * - * @var string - */ - public $updated_at; - - /** - * - * @var integer - */ - public $is_deleted; + public ?int $apps_plans_id = null; + public int $user_id; + public int $companies_id; + public int $apps_id; + public string $name; + public string $stripe_id; + public string $stripe_plan; + public int $quantity; + public ?int $payment_frequency_id = null; + public ?string $trial_ends_at = null; + public ?int $trial_ends_days = null; + public int $is_freetrial= 0; + public int $is_active= 0; + public int $paid= 0; + public ?string $charge_date = null; + public ?string $ends_at = null; + public ?string $grace_period_ends = null; + public ?String $next_due_payment = null; + public int $is_cancelled = 0; /** * Initialize. @@ -163,6 +52,8 @@ class Subscription extends PhalconSubscription */ public function initialize() { + $this->setSource('subscriptions'); + $this->belongsTo('user_id', 'Canvas\Models\Users', 'id', ['alias' => 'user']); $this->belongsTo( @@ -192,17 +83,19 @@ public function initialize() * * @return Subscription */ - public static function getActiveForThisApp(): Subscription + public static function getActiveForThisApp() : Subscription { return self::getByDefaultCompany(Di::getDefault()->getUserData()); } /** * Get subscription by user's default company;. + * * @param Users $user + * * @return Subscription */ - public static function getByDefaultCompany(Users $user): Subscription + public static function getByDefaultCompany(Users $user) : Subscription { $subscription = self::findFirst([ 'conditions' => 'companies_id = ?0 and apps_id = ?1 and is_deleted = 0', @@ -220,9 +113,10 @@ public static function getByDefaultCompany(Users $user): Subscription * Search current company's app setting with key paid to verify payment status for current company. * * @param Users $user + * * @return bool */ - public static function getPaymentStatus(Users $user): bool + public static function getPaymentStatus(Users $user) : bool { //if its not subscription based return true to ignore any payment status if (!Di::getDefault()->getApp()->subscriptioBased()) { @@ -241,7 +135,7 @@ public static function getPaymentStatus(Users $user): bool * * @return bool */ - public function active(): bool + public function active() : bool { if (!Di::getDefault()->getApp()->subscriptioBased()) { return true; @@ -255,7 +149,7 @@ public function active(): bool * * @return boolean */ - public function paid(): bool + public function paid() : bool { if (!Di::getDefault()->getApp()->subscriptioBased()) { return true; @@ -269,7 +163,7 @@ public function paid(): bool * * @return void */ - public function activate(): bool + public function activate() : bool { $this->is_active = 1; $this->paid = 1; @@ -293,7 +187,7 @@ public function onTrial() /** * Get actual subscription. */ - public static function getActiveSubscription(): self + public static function getActiveSubscription() : self { $userSubscription = PhalconSubscription::findFirstOrFail([ 'conditions' => 'companies_id = ?0 and apps_id = ?1 and is_deleted = 0', @@ -308,7 +202,7 @@ public static function getActiveSubscription(): self * * @return void */ - public function validateByGracePeriod(): void + public function validateByGracePeriod() : void { if (!is_null($this->grace_period_ends)) { if (($this->charge_date == $this->grace_period_ends) && !$this->paid) { diff --git a/src/Models/SystemModules.php b/src/Models/SystemModules.php index 8c8e257b..299e0b60 100644 --- a/src/Models/SystemModules.php +++ b/src/Models/SystemModules.php @@ -3,14 +3,13 @@ namespace Canvas\Models; -use Phalcon\Di; +use Baka\Database\SystemModules as BakaSystemModules; use Canvas\Http\Exception\InternalServerErrorException; +use Phalcon\Di; use Phalcon\Mvc\ModelInterface; -use Baka\Database\SystemModules as BakaSystemModules; class SystemModules extends BakaSystemModules { - /** * Initialize method for model. */ @@ -56,10 +55,12 @@ public function initialize() * Get System Module by its model_name. * * @deprecated v2 + * * @param string $model_name + * * @return ModelInterface */ - public static function getSystemModuleByModelName(string $modelName): ModelInterface + public static function getSystemModuleByModelName(string $modelName) : ModelInterface { $module = SystemModules::findFirst([ 'conditions' => 'model_name = ?0 and apps_id = ?1', @@ -80,9 +81,10 @@ public static function getSystemModuleByModelName(string $modelName): ModelInter * Get System Module by its model_name. * * @param string $model_name + * * @return ModelInterface */ - public static function getByModelName(string $modelName): ModelInterface + public static function getByModelName(string $modelName) : ModelInterface { return self::getSystemModuleByModelName($modelName); } @@ -91,9 +93,10 @@ public static function getByModelName(string $modelName): ModelInterface * Get System Module by Name. * * @param string $name + * * @return ModelInterface */ - public static function getByName(string $name): ModelInterface + public static function getByName(string $name) : ModelInterface { return self::findFirstOrFail([ 'conditions' => 'name = ?0 and apps_id = ?1', @@ -108,9 +111,10 @@ public static function getByName(string $name): ModelInterface * Get System Module by id. * * @param int $id + * * @return ModelInterface */ - public static function getById($id): ModelInterface + public static function getById($id) : ModelInterface { $module = SystemModules::findFirstOrFail([ 'conditions' => 'id = ?0 and apps_id = ?1', @@ -127,9 +131,10 @@ public static function getById($id): ModelInterface * Get System Module by id. * * @param int $id + * * @return ModelInterface */ - public static function getBySlug(string $slug): ModelInterface + public static function getBySlug(string $slug) : ModelInterface { $module = SystemModules::findFirstOrFail([ 'conditions' => 'slug = ?0 and apps_id = ?1', @@ -147,7 +152,7 @@ public static function getBySlug(string $slug): ModelInterface * * @return bool */ - public function useElastic(): bool + public function useElastic() : bool { return (bool) $this->use_elastic; } diff --git a/src/Models/UserCompanyApps.php b/src/Models/UserCompanyApps.php index c78daa3d..ea53081d 100644 --- a/src/Models/UserCompanyApps.php +++ b/src/Models/UserCompanyApps.php @@ -7,47 +7,10 @@ class UserCompanyApps extends \Baka\Auth\Models\UserCompanyApps { - /** - * - * @var integer - */ - public $companies_id; - - /** - * - * @var integer - */ - public $apps_id; - - /** - * - * @var string - */ - public $stripe_id; - - /** - * - * @var integer - */ - public $subscriptions_id; - - /** - * - * @var string - */ - public $created_at; - - /** - * - * @var string - */ - public $updated_at; - - /** - * - * @var integer - */ - public $is_deleted; + public int $companies_id; + public int $apps_id; + public string $stripe_id; + public int $subscriptions_id; /** * Initialize method for model. @@ -74,11 +37,11 @@ public function initialize() } /** - * Get the current company app + * Get the current company app. * * @return void */ - public static function getCurrentApp(): UserCompanyApps + public static function getCurrentApp() : UserCompanyApps { return self::findFirst([ 'conditions' => 'companies_id = ?0 and apps_id = ?1', diff --git a/src/Models/UserCompanyAppsActivities.php b/src/Models/UserCompanyAppsActivities.php index daaca1a4..e503fb60 100644 --- a/src/Models/UserCompanyAppsActivities.php +++ b/src/Models/UserCompanyAppsActivities.php @@ -6,64 +6,13 @@ use Canvas\Http\Exception\InternalServerErrorException; use Phalcon\Di; -/** - * Classs for UserCompanyAppsActivities. - * @property Users $userData - * @property Request $request - * @property Config $config - * @property Apps $app - * @property \Phalcon\DI $di - * - */ class UserCompanyAppsActivities extends AbstractModel { - /** - * - * @var integer - */ - public $companies_id; - - /** - * - * @var integer - */ - public $company_branches_id; - - /** - * - * @var integer - */ - public $apps_id; - - /** - * - * @var string - */ - public $key; - - /** - * - * @var string - */ - public $value; - - /** - * - * @var string - */ - public $created_at; - - /** - * - * @var string - */ - public $updated_at; - - /** - * - * @var integer - */ - public $is_deleted; + public int $companies_id; + public int $company_branches_id; + public int $apps_id; + public string $key; + public ?string $value = null; /** * Initialize method for model. diff --git a/src/Models/UserConfig.php b/src/Models/UserConfig.php index 530efeaf..457494ad 100644 --- a/src/Models/UserConfig.php +++ b/src/Models/UserConfig.php @@ -5,7 +5,6 @@ class UserConfig extends \Baka\Auth\Models\UserConfig { - /** * Initialize method for model. */ diff --git a/src/Models/UserLinkedSources.php b/src/Models/UserLinkedSources.php index e76ecf50..2201cd71 100644 --- a/src/Models/UserLinkedSources.php +++ b/src/Models/UserLinkedSources.php @@ -2,11 +2,11 @@ declare(strict_types=1); namespace Canvas\Models; + use Baka\Auth\Models\UserLinkedSources as BakaUserLinkedSources; class UserLinkedSources extends BakaUserLinkedSources { - /** * Initialize method for model. */ @@ -19,11 +19,13 @@ public function initialize() } /** - * Get all user linked sources by user's id + * Get all user linked sources by user's id. + * * @param int $usersId + * * @return array */ - public static function getMobileUserLinkedSources(int $usersId): array + public static function getMobileUserLinkedSources(int $usersId) : array { $userDevicesArray = [ 2 => [], @@ -46,6 +48,5 @@ public static function getMobileUserLinkedSources(int $usersId): array } return $userDevicesArray; - } } diff --git a/src/Models/UserRoles.php b/src/Models/UserRoles.php index 2247a78a..9bc506dd 100644 --- a/src/Models/UserRoles.php +++ b/src/Models/UserRoles.php @@ -50,8 +50,8 @@ public function initialize() } /** - * Validations and business logic. - */ + * Validations and business logic. + */ public function validation() { $validator = new Validation(); diff --git a/src/Models/UserWebhooks.php b/src/Models/UserWebhooks.php index 8f32b4c0..b351ac21 100644 --- a/src/Models/UserWebhooks.php +++ b/src/Models/UserWebhooks.php @@ -4,76 +4,18 @@ namespace Canvas\Models; use Phalcon\Di; -use Phalcon\Validation\Validator\Url; use Phalcon\Validation; +use Phalcon\Validation\Validator\Url; class UserWebhooks extends AbstractModel { - /** - * - * @var integer - */ - public $id; - - /** - * - * @var integer - */ - public $webhooks_id; - - /** - * - * @var integer - */ - public $apps_id; - - /** - * - * @var integer - */ - public $users_id; - - /** - * - * @var integer - */ - public $companies_id; - - /** - * - * @var string - */ - public $url; - - /** - * - * @var string - */ - public $method; - - /** - * - * @var string - */ - public $format; - - /** - * - * @var integer - */ - public $is_deleted; - - /** - * - * @var string - */ - public $created_at; - - /** - * - * @var string - */ - public $updated_at; + public int $webhooks_id; + public int $apps_id; + public int $users_id; + public int $companies_id; + public string $url; + public string $method; + public string $format; /** * Initialize method for model. @@ -133,11 +75,11 @@ public function validation() } /** - * Get element by Id. - * - * @return Webhooks - */ - public static function getById($id): self + * Get element by Id. + * + * @return Webhooks + */ + public static function getById($id) : self { return self::findFirstOrFail([ 'conditions' => 'id = ?0 AND apps_id = ?1 AND companies_id = ?2 and is_deleted = 0', diff --git a/src/Models/Users.php b/src/Models/Users.php index 943689da..7c4478f4 100644 --- a/src/Models/Users.php +++ b/src/Models/Users.php @@ -54,7 +54,7 @@ class Users extends BakUser implements UserInterface * * @var string */ - public ?int $active_subscription_id = 0; + public ?string $active_subscription_id = null; /** * System Module Id. @@ -584,7 +584,7 @@ public function updatePassword(string $currentPassword, string $newPassword, str } /** - * Reset the user passwrod. + * Reset the user password. * * @param string $newPassword * @@ -614,6 +614,8 @@ public function resetPassword(string $newPassword) : bool * yes? * it meas he was invites so get the fuck out? * + * @deprecated v1 + * * @return Users */ public function signUp() : BakUser diff --git a/src/Models/UsersAssociatedApps.php b/src/Models/UsersAssociatedApps.php index 0b7ca863..b81f948c 100644 --- a/src/Models/UsersAssociatedApps.php +++ b/src/Models/UsersAssociatedApps.php @@ -5,47 +5,13 @@ class UsersAssociatedApps extends AbstractModel { - /** - * - * @var integer - */ - public $users_id; - - /** - * - * @var integer - */ - public $apps_id; - - /** - * - * @var integer - */ - public $companies_id; - - /** - * - * @var string - */ - public $identify_id; - - /** - * - * @var integer - */ - public $user_active; - - /** - * - * @var string - */ - public $user_role; - - /** - * - * @var string - */ - public $password; + public int $users_id; + public int $apps_id; + public int $companies_id; + public string $identify_id; + public int $user_active; + public string $user_role; + public ?string $password = null; /** * Initialize method for model. @@ -75,5 +41,4 @@ public function initialize() $this->setSource('users_associated_apps'); } - } diff --git a/src/Models/UsersInvite.php b/src/Models/UsersInvite.php index 878456b4..d25345ef 100644 --- a/src/Models/UsersInvite.php +++ b/src/Models/UsersInvite.php @@ -11,65 +11,12 @@ class UsersInvite extends AbstractModel { use SubscriptionPlanLimitTrait; - /** - * - * @var integer - */ - public $id; - - /** - * - * @var string - */ - public $invite_hash; - - /** - * - * @var integer - */ - public $users_id; - - /** - * - * @var integer - */ - public $companies_id; - - /** - * - * @var integer - */ - public $role_id; - - /** - * - * @var integer - */ - public $app_id; - - /** - * - * @var string - */ - public $email; - - /** - * - * @var integer - */ - public $is_deleted; - - /** - * - * @var string - */ - public $created_at; - - /** - * - * @var string - */ - public $updated_at; + public string $invite_hash; + public int $users_id; + public int $companies_id; + public int $role_id; + public int $app_id; + public string $email; /** * Subscription plan key. @@ -110,12 +57,13 @@ public function afterCreate() } /** - * Get the invite by hash + * Get the invite by hash. * * @param string $hash + * * @return UsersInvite */ - public static function getByHash(string $hash): UsersInvite + public static function getByHash(string $hash) : UsersInvite { return self::findFirstOrFail([ 'conditions' => 'invite_hash = ?0 and is_deleted = 0', @@ -127,10 +75,12 @@ public static function getByHash(string $hash): UsersInvite * Validate if the current email is valid to invite. * * @throws Exception + * * @param string $email + * * @return bool */ - public static function isValid(string $email, int $roleId = 1): bool + public static function isValid(string $email, int $roleId = 1) : bool { $userData = Di::getDefault()->getUserData(); //check inviste @@ -162,9 +112,10 @@ public static function isValid(string $email, int $roleId = 1): bool * Given the form request return a new user invite. * * @param array $requets + * * @return Users */ - public function newUser(array $request): Users + public function newUser(array $request) : Users { $user = new Users(); $user->firstname = $request['firstname']; diff --git a/src/Models/Webhooks.php b/src/Models/Webhooks.php index e923dec7..cf3148b7 100644 --- a/src/Models/Webhooks.php +++ b/src/Models/Webhooks.php @@ -5,65 +5,12 @@ class Webhooks extends AbstractModel { - /** - * - * @var integer - */ - public $id; - - /** - * - * @var integer - */ - public $system_modules_id; - - /** - * - * @var integer - */ - public $apps_id; - - /** - * - * @var string - */ - public $name; - - /** - * - * @var string - */ - public $description; - - /** - * - * @var string - */ - public $action; - - /** - * - * @var string - */ - public $format; - - /** - * - * @var integer - */ - public $is_deleted; - - /** - * - * @var string - */ - public $created_at; - - /** - * - * @var string - */ - public $updated_at; + public int $system_modules_id; + public int $apps_id; + public string $name; + public string $description; + public string $action; + public string $format; /** * Initialize method for model. @@ -93,5 +40,4 @@ public function initialize() ['alias' => 'app'] ); } - } diff --git a/src/Providers/ViewProvider.php b/src/Providers/ViewProvider.php index a35fc4a2..ab146275 100644 --- a/src/Providers/ViewProvider.php +++ b/src/Providers/ViewProvider.php @@ -5,11 +5,8 @@ namespace Canvas\Providers; use function Baka\appPath; -use Phalcon\Cache\Backend\File as BackendFileCache; -use Phalcon\Cache\Frontend\None as NoneCache; -use Phalcon\Cache\Frontend\Output as FrontenCacheOutput; -use Phalcon\Di\ServiceProviderInterface; use Phalcon\Di\DiInterface; +use Phalcon\Di\ServiceProviderInterface; use Phalcon\Mvc\View\Engine\Volt as VoltEngine; use Phalcon\Mvc\View\Simple as SimpleView; @@ -29,13 +26,13 @@ public function register(DiInterface $container) : void $view = new SimpleView(); $view->setViewsDir($config->filesystem->local->path . '/view/'); $view->registerEngines([ - '.volt' => function ($view, $container) use ($config) { + '.volt' => function ($view) use ($config, $container) { $volt = new VoltEngine($view, $container); $volt->setOptions([ //CACHE save DISABLED IN DEV ENVIRONMENT - 'compiledPath' => appPath('storage/cache/volt/'), - 'compiledSeparator' => '_', - 'compileAlways' => !$config->app->production, + 'path ' => appPath('storage/cache/volt/'), + 'separator ' => '_', + 'always ' => !$config->app->production, ]); $volt->getCompiler()->addExtension(new class { @@ -56,26 +53,5 @@ public function compileFunction($name, $arguments) return $view; }); - - /** - * View cache. - */ - $container->set( - 'viewCache', - function () use ($config) { - if (!$config->app->production) { - $frontCache = new NoneCache(); - } else { - //Cache data for one day by default - $frontCache = new FrontenCacheOutput([ - 'lifetime' => 172800, - ]); - } - return new BackendFileCache($frontCache, [ - 'cacheDir' => appPath('storage/cache/volt/'), - 'prefix' => $config->app->id . '-', - ]); - } - ); } } From 5ec438c3832ba647330a88153a6307567310f9bd Mon Sep 17 00:00:00 2001 From: mctekk Date: Wed, 17 Jun 2020 01:20:56 -0400 Subject: [PATCH 10/26] update payment controller trait --- src/Api/Controllers/PaymentsController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Api/Controllers/PaymentsController.php b/src/Api/Controllers/PaymentsController.php index 63a312f4..fdff3870 100644 --- a/src/Api/Controllers/PaymentsController.php +++ b/src/Api/Controllers/PaymentsController.php @@ -5,7 +5,7 @@ namespace Canvas\Api\Controllers; use Canvas\Http\Exception\NotFoundException; -use Phalcon\Cashier\Traits\StripeWebhookHandlersTrait; +use Baka\Contracts\Cashier\StripeWebhookHandlersTrait; use Phalcon\Http\Response; use Canvas\Models\Users; use Canvas\Models\Subscription; From cd34fb5f7f68462ae9e4c706783c5a9b483cbfdf Mon Sep 17 00:00:00 2001 From: mctekk Date: Thu, 18 Jun 2020 17:04:22 -0400 Subject: [PATCH 11/26] Hotfix ACL issues --- src/Acl/Manager.php | 14 ++- src/Api/Controllers/PaymentsController.php | 4 +- src/Api/Controllers/UsersController.php | 16 +--- .../Controllers/ProcessOutputMapperTrait.php | 87 +------------------ 4 files changed, 18 insertions(+), 103 deletions(-) diff --git a/src/Acl/Manager.php b/src/Acl/Manager.php index 0fdad0cb..ed06e797 100644 --- a/src/Acl/Manager.php +++ b/src/Acl/Manager.php @@ -504,7 +504,7 @@ public function isAllowed($role, $resource, $access, array $parameters = null) : "AND resources_name IN (?, '*')", // access_name should be given one or 'any' //"AND access_name IN (?, '*')", you need to specify * , we are forcing to check always for permissions - 'AND access_name IN (?)', + "AND access_name IN (?, '*')", 'AND apps_id = ? ', 'AND roles_id = ? ', // order be the sum of bool for 'literals' before 'any' @@ -514,7 +514,17 @@ public function isAllowed($role, $resource, $access, array $parameters = null) : ]); // fetch one entry... - $allowed = $this->connection->fetchOne($sql, Enum::FETCH_NUM, [$roleObj->getId(), $resource, $access, $this->getApp()->getId(), $roleObj->getId()]); + $allowed = $this->connection->fetchOne( + $sql, + Enum::FETCH_NUM, + [ + $roleObj->getId(), + $resource, + $access, + $this->getApp()->getId(), + $roleObj->getId() + ] + ); if (is_array($allowed)) { return (bool) $allowed[0]; diff --git a/src/Api/Controllers/PaymentsController.php b/src/Api/Controllers/PaymentsController.php index fdff3870..22d631a6 100644 --- a/src/Api/Controllers/PaymentsController.php +++ b/src/Api/Controllers/PaymentsController.php @@ -31,13 +31,13 @@ class PaymentsController extends BaseController use StripeWebhookHandlersTrait; /** - * Handle stripe webhoook calls. + * Handle stripe webhook calls. * * @return Response */ public function handleWebhook(): Response { - //we cant processs if we dont find the stripe header + //we cant process's if we don't find the stripe header if (!$this->request->hasHeader('Stripe-Signature')) { throw new NotFoundException('Route not found for this call'); } diff --git a/src/Api/Controllers/UsersController.php b/src/Api/Controllers/UsersController.php index a4e96510..79399721 100644 --- a/src/Api/Controllers/UsersController.php +++ b/src/Api/Controllers/UsersController.php @@ -5,26 +5,16 @@ namespace Canvas\Api\Controllers; use Baka\Auth\UsersController as BakaUsersController; +use Baka\Validation as CanvasValidation; use Canvas\Contracts\Controllers\ProcessOutputMapperTrait; use Canvas\Dto\User as UserDto; use Canvas\Http\Exception\InternalServerErrorException; use Canvas\Mapper\UserMapper; use Canvas\Models\Users; use Canvas\Models\UsersAssociatedApps; -use Baka\Validation as CanvasValidation; use Phalcon\Http\Response; use Phalcon\Validation\Validator\PresenceOf; -/** - * Class UsersController. - * - * @package Canvas\Api\Controllers - * - * @property Users $userData - * @property Request $request - * @property Config $config - * @property Apps $app - */ class UsersController extends BakaUsersController { use ProcessOutputMapperTrait; @@ -130,9 +120,6 @@ public function getById($id) : Response 'bind' => [$id], ]); - //get the results and append its relationships - $user = $this->appendRelationshipsToResult($this->request, $user); - return $this->response($this->processOutput($user)); } @@ -187,6 +174,7 @@ public function edit($id) : Response } //update + $user->updateOrFail($request, $this->updateFields); return $this->response($this->processOutput($user)); } diff --git a/src/Contracts/Controllers/ProcessOutputMapperTrait.php b/src/Contracts/Controllers/ProcessOutputMapperTrait.php index 8d4429fe..ed7b8ad5 100644 --- a/src/Contracts/Controllers/ProcessOutputMapperTrait.php +++ b/src/Contracts/Controllers/ProcessOutputMapperTrait.php @@ -4,92 +4,9 @@ namespace Canvas\Contracts\Controllers; -use AutoMapperPlus\DataType; -use Canvas\Exception\ServerErrorHttpException; -use StdClass; +use Baka\Contracts\Controllers\ProcessOutputMapperTrait as BakaProcessOutputMapperTrait; trait ProcessOutputMapperTrait { - protected $dto = null; - protected $dtoMapper = null; - - /** - * Format Controller Result base on a Mapper. - * - * @param mixed $results - * - * @return void - */ - protected function processOutput($results) - { - $this->canUseMapper(); - - //if we have relationships we use StdClass to allow use to overwrite the array as we see fit in the Dto - if ($this->request->hasQuery('relationships')) { - $mapperModel = DataType::ARRAY; - $this->dto = StdClass::class; - } else { - $mapperModel = get_class($this->model); - } - - $this->dtoConfig->registerMapping($mapperModel, $this->dto) - ->useCustomMapper($this->dtoMapper); - - if (is_array($results) && isset($results['data'])) { - $results['data'] = $this->mapper->mapMultiple( - $results['data'], - $this->dto, - $this->getMapperOptions() - ); - return $results; - } - - /** - * If position 0 is array or object it means is a result set from normal query - * or with relationships therefore we use multimap. - */ - if (is_iterable($results) && (is_array(current($results)) || is_object(current($results)))) { - return $this->mapper->mapMultiple( - $results, - $this->dto, - $this->getMapperOptions() - ); - } else { - return $this->mapper->map( - $results, - $this->dto, - $this->getMapperOptions() - ); - } - } - - /** - * Can we use the mapper on this request? - * - * @return boolean - */ - protected function canUseMapper() : bool - { - if (!is_object($this->model) || empty($this->dto)) { - throw new ServerErrorHttpException('No Mapper configured on this controller ' . get_class($this)); - } - - return true; - } - - /** - * If we have relationships send them as addicontal context to the mapper. - * - * @return array - */ - protected function getMapperOptions() : array - { - if ($this->request->hasQuery('relationships')) { - return [ - 'relationships' => explode(',', $this->request->getQuery('relationships')) - ]; - } - - return []; - } + use BakaProcessOutputMapperTrait; } From e9305c959f6a3a42f8a1325b4667070858e6d2be Mon Sep 17 00:00:00 2001 From: mctekk Date: Fri, 19 Jun 2020 01:01:26 -0400 Subject: [PATCH 12/26] fix typo --- src/Traits/PermissionsTrait.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Traits/PermissionsTrait.php b/src/Traits/PermissionsTrait.php index e517b98d..10faa2f9 100644 --- a/src/Traits/PermissionsTrait.php +++ b/src/Traits/PermissionsTrait.php @@ -138,7 +138,7 @@ public function can(string $action, bool $throwException = false) : bool //get your user account role for this app or the canvas ecosystem if (!$role = $this->getPermission()) { throw new InternalServerErrorException( - 'ACL - User doesnt have any set roles in this current app ' . $this->di->getApp()->name + 'ACL - User doesn\'t have any set roles in this current app ' . $this->di->getApp()->name ); } From 6c6e596689c6aaf09a9ecb267569d5a3afe3566f Mon Sep 17 00:00:00 2001 From: mctekk Date: Sun, 21 Jun 2020 13:50:17 -0400 Subject: [PATCH 13/26] continue upgrade fixes --- src/Acl/Manager.php | 10 ++--- src/Api/Controllers/AuthController.php | 4 +- .../Controllers/CustomFieldsController.php | 11 +----- src/Api/Controllers/IndexController.php | 6 +-- src/Api/Controllers/UsersInviteController.php | 37 +++++++++++-------- src/Filesystem/Helper.php | 2 +- src/Models/Apps.php | 16 ++++---- src/Models/AppsPlansSettings.php | 2 +- src/Models/Currencies.php | 6 +-- src/Models/Sources.php | 16 ++++---- src/Models/Subscription.php | 14 +++---- src/Models/UserCompanyAppsActivities.php | 2 +- src/Providers/RedisProvider.php | 26 +++++++++++-- src/Traits/SocialLoginTrait.php | 31 ++++++++-------- src/Traits/SubscriptionPlanLimitTrait.php | 12 +++--- 15 files changed, 110 insertions(+), 85 deletions(-) diff --git a/src/Acl/Manager.php b/src/Acl/Manager.php index ed06e797..d4e641f5 100644 --- a/src/Acl/Manager.php +++ b/src/Acl/Manager.php @@ -159,8 +159,8 @@ public function getCompany() : Companies * * Example: * - * $acl->addRole(new Phalcon\Acl\Role('administrator'), 'consultor'); - * $acl->addRole('administrator', 'consultor'); + * $acl->addRole(new Phalcon\Acl\Role('administrator'), 'consulter'); + * $acl->addRole('administrator', 'consulter'); * * * @param \Phalcon\Acl\Role|string $role @@ -197,7 +197,7 @@ public function addRole($role, $scope = 0, $accessInherits = null) : bool $accessListDB->roles_id = $rolesDB->getId(); $accessListDB->resources_name = '*'; $accessListDB->access_name = '*'; - $accessListDB->allowed = $this->_defaultAccess; + $accessListDB->allowed = $this->noArgumentsDefaultAction; $accessListDB->apps_id = $this->getApp()->getId(); $accessListDB->saveOrFail(); } @@ -533,7 +533,7 @@ public function isAllowed($role, $resource, $access, array $parameters = null) : /** * Return the default access action. */ - return (bool) $this->_defaultAccess; + return (bool) $this->noArgumentsDefaultAction; } /** @@ -617,7 +617,7 @@ protected function insertOrUpdateAccess($roleName, $resourceName, $accessName, $ $accessListDB->roles_name = $roleName; $accessListDB->resources_name = $resourceName; $accessListDB->access_name = '*'; - $accessListDB->allowed = $this->_defaultAccess; + $accessListDB->allowed = $this->noArgumentsDefaultAction; $accessListDB->apps_id = $this->getApp()->getId(); $accessListDB->saveOrFail(); } diff --git a/src/Api/Controllers/AuthController.php b/src/Api/Controllers/AuthController.php index c294af36..efced2f6 100644 --- a/src/Api/Controllers/AuthController.php +++ b/src/Api/Controllers/AuthController.php @@ -334,7 +334,9 @@ public function loginBySocial() : Response $request['email'] = $appleUserInfo->email; } - return $this->response($this->providerLogin($source, $request['social_id'], $request)); + return $this->response( + $this->providerLogin($source, $request['social_id'], $request) + ); } /** diff --git a/src/Api/Controllers/CustomFieldsController.php b/src/Api/Controllers/CustomFieldsController.php index fc3fc76a..f0ba4cfd 100644 --- a/src/Api/Controllers/CustomFieldsController.php +++ b/src/Api/Controllers/CustomFieldsController.php @@ -11,14 +11,7 @@ use Canvas\Mapper\CustomFieldsMapper; use Canvas\Contracts\Controllers\ProcessOutputMapperTrait; -/** - * Class LanguagesController. - * - * @package Canvas\Api\Controllers - * @property Users $userData - * @property Apps $app - * - */ + class CustomFieldsController extends BaseController { use ProcessOutputMapperTrait; @@ -86,7 +79,7 @@ protected function processInput(array $request): array } /** - * Process the create request and trecurd the boject. + * Process the create request and record the object. * * @return ModelInterface * @throws Exception diff --git a/src/Api/Controllers/IndexController.php b/src/Api/Controllers/IndexController.php index 38a517dc..3ab8ffe7 100644 --- a/src/Api/Controllers/IndexController.php +++ b/src/Api/Controllers/IndexController.php @@ -4,12 +4,12 @@ namespace Canvas\Api\Controllers; +use Canvas\Http\Exception\InternalServerErrorException; use Exception; use PDOException; use Phalcon\Http\Response; -use Canvas\Http\Exception\InternalServerErrorException; +use PhpAmqpLib\Exception\AMQPIOException; use RedisException; -use PhpAmqpLib\Exception\AMQPIOException ; /** * Class IndexController. @@ -37,7 +37,7 @@ public function index($id = null) : Response } /** - * Show the status of the diferent services. + * Show the status of the different services. * * @method GET * @url /status diff --git a/src/Api/Controllers/UsersInviteController.php b/src/Api/Controllers/UsersInviteController.php index 8fa192fc..ca08e46b 100644 --- a/src/Api/Controllers/UsersInviteController.php +++ b/src/Api/Controllers/UsersInviteController.php @@ -4,22 +4,24 @@ namespace Canvas\Api\Controllers; -use Canvas\Models\UsersInvite; -use Canvas\Models\Users; +use Baka\Http\Exception\NotFoundException; +use Baka\Validation as CanvasValidation; +use Canvas\Auth\Auth; +use Canvas\Http\Exception\UnprocessableEntityException; use Canvas\Models\Roles; +use Canvas\Models\Users; +use Canvas\Models\UsersInvite; +use Canvas\Notifications\Invitation; +use Canvas\Traits\AuthTrait; +use Exception; +use Phalcon\Http\Response; use Phalcon\Security\Random; use Phalcon\Validation\Validator\PresenceOf; use Phalcon\Validation\Validator\StringLength; -use Canvas\Exception\NotFoundHttpException; -use Phalcon\Http\Response; -use Exception; -use Canvas\Http\Exception\UnprocessableEntityException; -use Canvas\Traits\AuthTrait; -use Canvas\Notifications\Invitation; -use Baka\Validation as CanvasValidation; /** * Class LanguagesController. + * * @property Users $userData * @property Request $request * @property Config $config @@ -29,6 +31,7 @@ * @property Payload $payload * @property Exp $exp * @property JWT $jwt + * * @package Canvas\Api\Controllers * */ @@ -83,10 +86,12 @@ public function onConstruct() /** * Get users invite by hash. + * * @param string $hash + * * @return Response */ - public function getByHash(string $hash):Response + public function getByHash(string $hash) : Response { $userInvite = $this->model::findFirst([ 'conditions' => 'invite_hash = ?0 and is_deleted = 0', @@ -94,7 +99,7 @@ public function getByHash(string $hash):Response ]); if (!is_object($userInvite)) { - throw new NotFoundHttpException('Users Invite not found'); + throw new NotFoundException('Users Invite not found'); } return $this->response($userInvite); @@ -102,9 +107,10 @@ public function getByHash(string $hash):Response /** * Sets up invitation information for a would be user. + * * @return Response */ - public function insertInvite(): Response + public function insertInvite() : Response { $request = $this->request->getPostData(); $random = new Random(); @@ -124,7 +130,7 @@ public function insertInvite(): Response $userInvite->companies_id = $this->userData->getDefaultCompany()->getId(); $userInvite->users_id = $this->userData->getId(); $userInvite->app_id = $this->app->getId(); - $userInvite->role_id = Roles::existsById((int)$request['role_id'])->id; + $userInvite->role_id = (int) Roles::existsById((int)$request['role_id'])->id; $userInvite->email = $request['email']; $userInvite->invite_hash = $random->base58(); $userInvite->created_at = date('Y-m-d H:m:s'); @@ -144,9 +150,10 @@ public function insertInvite(): Response /** * Add invited user to our system. + * * @return Response */ - public function processUserInvite(string $hash): Response + public function processUserInvite(string $hash) : Response { $request = $this->request->getPostData(); $request['password'] = ltrim(trim($request['password'])); @@ -184,7 +191,7 @@ public function processUserInvite(string $hash): Response $this->db->begin(); //signup - $newUser->signup(); + $newUser = Auth::signUp($newUser->toArray()); $this->db->commit(); } catch (Exception $e) { diff --git a/src/Filesystem/Helper.php b/src/Filesystem/Helper.php index 1e21f17c..e71540ee 100644 --- a/src/Filesystem/Helper.php +++ b/src/Filesystem/Helper.php @@ -103,7 +103,7 @@ public static function upload(File $file) : FileSystem $fileSystem->saveOrFail(); //set the unique name we generate - $fileSystem->set('unique_name', $fileName); + $fileSystem->set('unique_name', $uploadFileNameWithPath); return $fileSystem; } diff --git a/src/Models/Apps.php b/src/Models/Apps.php index 8f05ea17..8c3b776a 100644 --- a/src/Models/Apps.php +++ b/src/Models/Apps.php @@ -3,21 +3,22 @@ namespace Canvas\Models; -use Canvas\Traits\UsersAssociatedTrait; use Baka\Contracts\Database\HashTableTrait; use Baka\Database\Apps as BakaApps; +use Canvas\Traits\UsersAssociatedTrait; + class Apps extends BakaApps { public string $key; - public ?string $url; + public ?string $url = null; public int $default_apps_plan_id; public int $is_actived; public int $ecosystem_auth; public int $payments_active; - /** * Ecosystem default app. + * * @var string */ const CANVAS_DEFAULT_APP_ID = 1; @@ -74,9 +75,10 @@ public function initialize() * You can only get 2 variations or default in DB or the api app. * * @param string $name + * * @return Apps */ - public static function getACLApp(string $name): Apps + public static function getACLApp(string $name) : Apps { if (trim($name) == self::CANVAS_DEFAULT_APP_NAME) { $app = self::findFirst(1); @@ -92,7 +94,7 @@ public static function getACLApp(string $name): Apps * * @return boolean */ - public function isActive(): bool + public function isActive() : bool { return (bool) $this->is_actived; } @@ -103,7 +105,7 @@ public function isActive(): bool * * @return boolean */ - public function ecosystemAuth(): bool + public function ecosystemAuth() : bool { return (bool) $this->ecosystem_auth; } @@ -113,7 +115,7 @@ public function ecosystemAuth(): bool * * @return boolean */ - public function subscriptionBased(): bool + public function subscriptionBased() : bool { return (bool) $this->payments_active; } diff --git a/src/Models/AppsPlansSettings.php b/src/Models/AppsPlansSettings.php index c60a0752..4c9885ae 100644 --- a/src/Models/AppsPlansSettings.php +++ b/src/Models/AppsPlansSettings.php @@ -8,7 +8,7 @@ class AppsPlansSettings extends AbstractModel public int $apps_plans_id; public int $apps_id; public string $key; - public ?string $value = null; + public $value; /** * Initialize method for model. diff --git a/src/Models/Currencies.php b/src/Models/Currencies.php index 601c36f8..981078fb 100644 --- a/src/Models/Currencies.php +++ b/src/Models/Currencies.php @@ -6,9 +6,9 @@ class Currencies extends AbstractModel { public string $country; - public string $currency; - public string $code; - public string $symbol; + public ?string $currency = null; + public ?string $code = null; + public ?string $symbol = null; /** * Initialize method for model. diff --git a/src/Models/Sources.php b/src/Models/Sources.php index 285a3019..f6aec309 100644 --- a/src/Models/Sources.php +++ b/src/Models/Sources.php @@ -4,14 +4,11 @@ namespace Canvas\Models; -use Phalcon\Di; -use Canvas\Exception\ModelException; use Baka\ASDecoder; use Canvas\Http\Exception\InternalServerErrorException; - /** - * Class Resources + * Class Resources. * * @package Canvas\Models * @@ -21,7 +18,7 @@ class Sources extends AbstractModel { public string $title; public string $url; - public int $language_id; + public ?int $language_id = null; /** * Initialize method for model. @@ -31,21 +28,22 @@ public function initialize() $this->setSource('sources'); } - /** - * Verify if source is Apple + * Verify if source is Apple. */ - public function isApple(): bool + public function isApple() : bool { return $this->title == 'apple'; } /** * Validate Apple User. + * * @param string $identityToken + * * @return object */ - public function validateAppleUser(string $identityToken): object + public function validateAppleUser(string $identityToken) : object { $appleUserInfo = ASDecoder::getAppleSignInPayload($identityToken); diff --git a/src/Models/Subscription.php b/src/Models/Subscription.php index 160bbe55..e9651ce5 100644 --- a/src/Models/Subscription.php +++ b/src/Models/Subscription.php @@ -36,9 +36,9 @@ class Subscription extends BakaSubscription public ?int $payment_frequency_id = null; public ?string $trial_ends_at = null; public ?int $trial_ends_days = null; - public int $is_freetrial= 0; - public int $is_active= 0; - public int $paid= 0; + public int $is_freetrial = 0; + public int $is_active = 0; + public int $paid = 0; public ?string $charge_date = null; public ?string $ends_at = null; public ?string $grace_period_ends = null; @@ -119,7 +119,7 @@ public static function getByDefaultCompany(Users $user) : Subscription public static function getPaymentStatus(Users $user) : bool { //if its not subscription based return true to ignore any payment status - if (!Di::getDefault()->getApp()->subscriptioBased()) { + if (!Di::getDefault()->getApp()->subscriptionBased()) { return true; } @@ -137,7 +137,7 @@ public static function getPaymentStatus(Users $user) : bool */ public function active() : bool { - if (!Di::getDefault()->getApp()->subscriptioBased()) { + if (!Di::getDefault()->getApp()->subscriptionBased()) { return true; } @@ -151,7 +151,7 @@ public function active() : bool */ public function paid() : bool { - if (!Di::getDefault()->getApp()->subscriptioBased()) { + if (!Di::getDefault()->getApp()->subscriptionBased()) { return true; } @@ -189,7 +189,7 @@ public function onTrial() */ public static function getActiveSubscription() : self { - $userSubscription = PhalconSubscription::findFirstOrFail([ + $userSubscription = self::findFirstOrFail([ 'conditions' => 'companies_id = ?0 and apps_id = ?1 and is_deleted = 0', 'bind' => [Di::getDefault()->getUserData()->currentCompanyId(), Di::getDefault()->getApp()->getId()] ]); diff --git a/src/Models/UserCompanyAppsActivities.php b/src/Models/UserCompanyAppsActivities.php index e503fb60..fe88e942 100644 --- a/src/Models/UserCompanyAppsActivities.php +++ b/src/Models/UserCompanyAppsActivities.php @@ -12,7 +12,7 @@ class UserCompanyAppsActivities extends AbstractModel public int $company_branches_id; public int $apps_id; public string $key; - public ?string $value = null; + public $value; /** * Initialize method for model. diff --git a/src/Providers/RedisProvider.php b/src/Providers/RedisProvider.php index 47872f27..37b66367 100644 --- a/src/Providers/RedisProvider.php +++ b/src/Providers/RedisProvider.php @@ -3,8 +3,8 @@ namespace Canvas\Providers; use function Baka\envValue; -use Phalcon\Di\ServiceProviderInterface; use Phalcon\Di\DiInterface; +use Phalcon\Di\ServiceProviderInterface; use Redis; class RedisProvider implements ServiceProviderInterface @@ -19,13 +19,33 @@ public function register(DiInterface $container) : void $container->setShared( 'redis', function (bool $prefix = true) use ($app) { - //Connect to redis + + $redis = new Redis(); + $redis->connect(envValue('REDIS_HOST', '127.0.0.1'), (int) envValue('REDIS_PORT', 6379)); + if ($prefix) { + $redis->setOption(Redis::OPT_PREFIX, $app . ':'); // use custom prefix on all keys + } + + //igbinary serialization is faster than PHP internal + $serializeEngine = !extension_loaded('igbinary') ? Redis::SERIALIZER_PHP : Redis::SERIALIZER_IGBINARY; + $redis->setOption(Redis::OPT_SERIALIZER, $serializeEngine); + return $redis; + } + ); + + /** + * Redis with no serialize + * need for sort function. + */ + $container->setShared( + 'redisUnSerialize', + function (bool $prefix = true) use ($app) { + $redis = new Redis(); $redis->connect(envValue('REDIS_HOST', '127.0.0.1'), (int) envValue('REDIS_PORT', 6379)); if ($prefix) { $redis->setOption(Redis::OPT_PREFIX, $app . ':'); // use custom prefix on all keys } - $redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_PHP); return $redis; } ); diff --git a/src/Traits/SocialLoginTrait.php b/src/Traits/SocialLoginTrait.php index 50814800..18bc900e 100644 --- a/src/Traits/SocialLoginTrait.php +++ b/src/Traits/SocialLoginTrait.php @@ -4,6 +4,7 @@ namespace Canvas\Traits; +use Baka\Auth\Auth; use Canvas\Http\Exception\UnprocessableEntityException; use Canvas\Models\Sources; use Canvas\Models\UserLinkedSources; @@ -110,32 +111,32 @@ protected function providerLogin(Sources $source, string $identifier, array $use protected function createUser(Sources $source, string $identifier, array $userInfo, string $password) : Users { $random = new Random(); - + $userObj = new Users(); //Create a new User - $newUser = new Users(); - $newUser->firstname = $userInfo['firstname']; - $newUser->lastname = $userInfo['lastname']; - $newUser->displayname = $newUser->generateDefaultDisplayname(); - $newUser->password = $password; - $newUser->email = $userInfo['email']; - $newUser->user_active = 1; - $newUser->roles_id = 1; - $newUser->created_at = date('Y-m-d H:m:s'); - $newUser->defaultCompanyName = $newUser->displayname . ' Company'; + + $newUser['firstname'] = $userInfo['firstname']; + $newUser['lastname'] = $userInfo['lastname']; + $newUser['displayname'] = $userObj->generateDefaultDisplayname(); + $newUser['password'] = $password; + $newUser['email'] = $userInfo['email']; + $newUser['user_active'] = 1; + $newUser['roles_id'] = 1; + $newUser['created_at'] = date('Y-m-d H:m:s'); + $newUser['defaultCompanyName'] = $newUser['displayname'] . ' Company'; try { $this->db->begin(); //signup - $newUser->signup(); + $user = Auth::signUp($newUser); $newLinkedSource = new UserLinkedSources(); - $newLinkedSource->users_id = $newUser->id; + $newLinkedSource->users_id = $user->getId(); $newLinkedSource->source_id = $source->getId(); $newLinkedSource->source_users_id = $identifier; $newLinkedSource->source_users_id_text = $identifier; $newLinkedSource->source_username = ucfirst($source->title) . 'Login-' . $random->base58(); - $newLinkedSource->save(); + $newLinkedSource->saveOrFail(); $this->db->commit(); } catch (Exception $e) { @@ -144,6 +145,6 @@ protected function createUser(Sources $source, string $identifier, array $userIn throw new UnprocessableEntityException($e->getMessage()); } - return $newUser; + return $user; } } diff --git a/src/Traits/SubscriptionPlanLimitTrait.php b/src/Traits/SubscriptionPlanLimitTrait.php index be5e87ba..6a87d0a0 100644 --- a/src/Traits/SubscriptionPlanLimitTrait.php +++ b/src/Traits/SubscriptionPlanLimitTrait.php @@ -4,12 +4,12 @@ namespace Canvas\Traits; -use Canvas\Models\Subscription; -use Canvas\Models\UserCompanyAppsActivities; use Canvas\Exception\SubscriptionPlanLimitException; use Canvas\Http\Exception\InternalServerErrorException; -use ReflectionClass; +use Canvas\Models\Subscription; +use Canvas\Models\UserCompanyAppsActivities; use Phalcon\Di; +use ReflectionClass; /** * Trait ResponseTrait. @@ -41,6 +41,7 @@ private function getSubcriptionPlanLimitModelKey() : string * Validate if the current module for this app is at the limit of the paid plan. * * @throws SubscriptionPlanLimitException + * * @return boolean */ public function isAtLimit() : bool @@ -50,7 +51,7 @@ public function isAtLimit() : bool } //if its not a subscription based app top this - if (!Di::getDefault()->get('app')->subscriptioBased()) { + if (!Di::getDefault()->get('app')->subscriptionBased()) { return false; } @@ -80,6 +81,7 @@ public function isAtLimit() : bool * Call at the afterCreate of all modules which are part of a plan activity. * * @throws InternalServerErrorException + * * @return boolean */ public function updateAppActivityLimit() : bool @@ -89,7 +91,7 @@ public function updateAppActivityLimit() : bool } //if its not a subscription based app top this - if (!Di::getDefault()->get('app')->subscriptioBased()) { + if (!Di::getDefault()->get('app')->subscriptionBased()) { return false; } From 04223faf196448e26de67083db5494f27ec12135 Mon Sep 17 00:00:00 2001 From: mctekk Date: Sun, 21 Jun 2020 14:00:34 -0400 Subject: [PATCH 14/26] Fix data type for date --- src/Api/Controllers/PaymentsController.php | 2 +- src/Models/Companies.php | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Api/Controllers/PaymentsController.php b/src/Api/Controllers/PaymentsController.php index 22d631a6..2ce5bf9b 100644 --- a/src/Api/Controllers/PaymentsController.php +++ b/src/Api/Controllers/PaymentsController.php @@ -222,7 +222,7 @@ protected function sendWebhookResponseEmail(Users $user, array $payload, string */ public function updateSubscriptionPaymentStatus(Users $user, array $payload): void { - $chargeDate = date('Y-m-d H:i:s', $payload['data']['object']['created']); + $chargeDate = date('Y-m-d H:i:s', (int) $payload['data']['object']['created']); //Fetch current user subscription $subscription = Subscription::getByDefaultCompany($user); diff --git a/src/Models/Companies.php b/src/Models/Companies.php index fecf9c79..e747c04c 100644 --- a/src/Models/Companies.php +++ b/src/Models/Companies.php @@ -28,9 +28,9 @@ class Companies extends \Canvas\CustomFields\AbstractCustomFieldsModel public ?int $has_activities = 0; public ?int $appPlanId = null; public ?int $currency_id = 0; - public string $language; - public string $timezone; - public string $currency; + public ?string $language = null; + public ?string $timezone = null; + public ?string $currency = null; public int $system_modules_id = 1; public ?string $phone = null; From bab723cb405e18126d668c8e229bf36dab3da51f Mon Sep 17 00:00:00 2001 From: mctekk Date: Wed, 24 Jun 2020 01:55:38 -0400 Subject: [PATCH 15/26] Update acl and file upload --- src/Acl/Manager.php | 1 + src/Api/Controllers/CompaniesController.php | 22 +++-- .../Controllers/EmailTemplatesController.php | 42 ++++----- src/Api/Controllers/FilesystemController.php | 11 --- src/Cli/tasks/ClearcacheTask.php | 11 +-- src/Cli/tasks/EmailtemplatesTask.php | 10 +- src/Cli/tasks/FileSystemTask.php | 18 ++-- src/Cli/tasks/QueueTask.php | 29 ++---- src/Cli/tasks/SetupTask.php | 2 - src/Cli/tasks/TrialTask.php | 7 +- src/Filesystem/Helper.php | 14 ++- src/Traits/FileManagementTrait.php | 91 +------------------ 12 files changed, 68 insertions(+), 190 deletions(-) diff --git a/src/Acl/Manager.php b/src/Acl/Manager.php index d4e641f5..ebd552e8 100644 --- a/src/Acl/Manager.php +++ b/src/Acl/Manager.php @@ -507,6 +507,7 @@ public function isAllowed($role, $resource, $access, array $parameters = null) : "AND access_name IN (?, '*')", 'AND apps_id = ? ', 'AND roles_id = ? ', + 'AND is_deleted = 0 ', // order be the sum of bool for 'literals' before 'any' 'ORDER BY ' . $this->connection->escapeIdentifier('allowed') . ' DESC', // get only one... diff --git a/src/Api/Controllers/CompaniesController.php b/src/Api/Controllers/CompaniesController.php index 029ac0db..63a0d880 100644 --- a/src/Api/Controllers/CompaniesController.php +++ b/src/Api/Controllers/CompaniesController.php @@ -4,10 +4,10 @@ namespace Canvas\Api\Controllers; -use Canvas\Models\Companies; -use Phalcon\Http\Response; use Baka\Http\Contracts\Api\CrudCustomFieldsBehaviorTrait; use Canvas\Http\Exception\UnauthorizedException; +use Canvas\Models\Companies; +use Phalcon\Http\Response; /** * Class CompaniesController. @@ -82,9 +82,10 @@ public function onConstruct() * url /v1/controller * * @param mixed $id + * * @return \Phalcon\Http\Response */ - public function index(): Response + public function index() : Response { $results = $this->processIndex(); return $this->response($this->processOutput($results)); @@ -99,14 +100,15 @@ public function index(): Response * @param mixed $id * * @return \Phalcon\Http\Response + * * @throws \Exception */ - public function edit($id): Response + public function edit($id) : Response { $company = $this->model->findFirstOrFail($id); if (!$company->userAssociatedToCompany($this->userData) && !$this->userData->hasRole('Default.Admins')) { - throw new UnauthorizedException(_('You dont have permission to update this company info')); + throw new UnauthorizedException(_('You don\'t have permission to update this company info')); } //process the input @@ -124,13 +126,14 @@ public function edit($id): Response * @param mixed $id * * @return \Phalcon\Http\Response + * * @throws \Exception */ - public function delete($id): Response + public function delete($id) : Response { $company = $this->model->findFirstOrFail($id); if (!$company->userAssociatedToCompany($this->userData) && !$this->userData->hasRole('Default.Admins')) { - throw new UnauthorizedException(_('You dont have permission to delete this company')); + throw new UnauthorizedException(_('You don\'t have permission to delete this company')); } $company->is_deleted = 1; @@ -143,6 +146,7 @@ public function delete($id): Response * Format output. * * @param mixed $results + * * @return mixed */ protected function processOutput($results) @@ -152,8 +156,8 @@ protected function processOutput($results) */ if (array_key_exists('branch', $results)) { /** - * Format branches as an array of branches even if there is only one branch per company. - */ + * Format branches as an array of branches even if there is only one branch per company. + */ foreach ($results as $key => $value) { /* if (is_object($value['branch'])) { $results[$key]['branch'] = [$value['branch']]; diff --git a/src/Api/Controllers/EmailTemplatesController.php b/src/Api/Controllers/EmailTemplatesController.php index 2503b8fd..afdfddd6 100644 --- a/src/Api/Controllers/EmailTemplatesController.php +++ b/src/Api/Controllers/EmailTemplatesController.php @@ -4,26 +4,12 @@ namespace Canvas\Api\Controllers; +use Canvas\Http\Exception\NotFoundException; use Canvas\Models\EmailTemplates; use Canvas\Models\Users; -use Canvas\Http\Exception\NotFoundException; -use Phalcon\Security\Random; use Phalcon\Http\Response; +use Phalcon\Security\Random; - - -/** - * Class LanguagesController. - * - * @package Canvas\Api\Controllers - * - * @property Users $userData - * @property Request $request - * @property Config $config - * @property \Baka\Mail\Message $mail - * @property Apps $app - * - */ class EmailTemplatesController extends BaseController { /* @@ -71,43 +57,47 @@ public function onConstruct() * * @method POST * @url /v1/data - * @param integer $id + * + * @param int $id + * * @return \Phalcon\Http\Response */ - public function copy(int $id): Response + public function copy(int $id) : Response { $request = $this->request->getPostData(); //Find email template based on the basic parameters - $existingEmailTemplate = $this->model::findFirst([ + $existingEmailTemplate = $this->model::findFirstOrFail([ 'conditions' => 'id = ?0 and companies_id in (?1,?2) and apps_id in (?3,?4) and is_deleted = 0', 'bind' => [$id, $this->userData->currentCompanyId(), 0, $this->app->getId(), 0] ]); - if (!is_object($existingEmailTemplate)) { - throw new NotFoundException('Email Template not found'); - } - $random = new Random(); $randomInstance = $random->base58(); $request['users_id'] = $existingEmailTemplate->users_id; $request['companies_id'] = $this->userData->currentCompanyId(); $request['apps_id'] = $this->app->getId(); - $request['name'] = $existingEmailTemplate->name . '-' . $randomInstance; + if (empty($request['name'])) { + $request['name'] = $existingEmailTemplate->name . '-' . $randomInstance; + } $request['template'] = $existingEmailTemplate->template; $this->model->saveOrFail($request, $this->createFields); - return $this->response($this->model->toArray()); + return $this->response( + $this->processOutput($this->model) + ); } /** * Send test email to specific recipient. + * * @param string $email + * * @return Response */ - public function sendTestEmail(): Response + public function sendTestEmail() : Response { $request = $this->request->getPost(); diff --git a/src/Api/Controllers/FilesystemController.php b/src/Api/Controllers/FilesystemController.php index af1fdcf8..0f08b6fe 100644 --- a/src/Api/Controllers/FilesystemController.php +++ b/src/Api/Controllers/FilesystemController.php @@ -7,17 +7,6 @@ use Canvas\Models\FileSystem; use Canvas\Traits\FileManagementTrait; -/** - * Class BaseController. - * - * @package Canvas\Api\Controllers - * - * @property Users $userData - * @property Request $request - * @property Config $config - * @property \Baka\Mail\Message $mail - * @property Apps $app - */ class FilesystemController extends BaseController { use FileManagementTrait; diff --git a/src/Cli/tasks/ClearcacheTask.php b/src/Cli/tasks/ClearcacheTask.php index 34a85444..58a3a918 100644 --- a/src/Cli/tasks/ClearcacheTask.php +++ b/src/Cli/tasks/ClearcacheTask.php @@ -3,21 +3,12 @@ namespace Canvas\Cli\Tasks; use function Baka\appPath; -use Phalcon\Cache\Backend\Libmemcached; use Phalcon\Cli\Task as PhTask; use Phalcon\Queue\Beanstalk\Extended as BeanstalkExtended; use Phalcon\Queue\Beanstalk\Job; use RecursiveDirectoryIterator; use RecursiveIteratorIterator; -/** - * Class ClearcacheTask. - * - * @package Canvas\Cli\Tasks - * - * @property Libmemcached $cache - * @property Config $config - */ class ClearcacheTask extends PhTask { /** @@ -98,7 +89,7 @@ public function sessionsAction() : void // Here we should collect the meta information, make the screenshots, convert the video to the FLV etc. $sessionId = $job->getBody(); - echo "\nProccessing: {$sessionId}\n"; + echo "\nProcessing: {$sessionId}\n"; $session = new \Baka\Auth\Models\Sessions(); $session->clean($sessionId, true); diff --git a/src/Cli/tasks/EmailtemplatesTask.php b/src/Cli/tasks/EmailtemplatesTask.php index 9cf3a1fe..a5e0ac56 100644 --- a/src/Cli/tasks/EmailtemplatesTask.php +++ b/src/Cli/tasks/EmailtemplatesTask.php @@ -2,16 +2,9 @@ namespace Canvas\Cli\Tasks; -use Phalcon\Cli\Task as PhTask; use Canvas\Models\EmailTemplates; +use Phalcon\Cli\Task as PhTask; -/** - * Class AclTask. - * - * @package Canvas\Cli\Tasks; - * - * @property \Canvas\Acl\Manager $acl - */ class EmailtemplatesTask extends PhTask { /** @@ -26,6 +19,7 @@ public function mainAction() /** * Insert default email template. + * * @return void */ public function insertUserNotificationTemplate() diff --git a/src/Cli/tasks/FileSystemTask.php b/src/Cli/tasks/FileSystemTask.php index a4b40d9b..06e6c811 100644 --- a/src/Cli/tasks/FileSystemTask.php +++ b/src/Cli/tasks/FileSystemTask.php @@ -2,11 +2,11 @@ namespace Canvas\Cli\Tasks; -use Phalcon\Cli\Task as PhTask; use Canvas\Models\FileSystem; +use Phalcon\Cli\Task as PhTask; /** - * Class AclTask + * Class AclTask. * * @package Canvas\Cli\Tasks; * @@ -16,7 +16,7 @@ class FileSystemTask extends PhTask { /** - * Create the default roles of the system + * Create the default roles of the system. * * @return void */ @@ -26,17 +26,17 @@ public function mainAction() } /** - * Default roles for the crm system + * Default roles for the crm system. * * @return void */ - public function purgeImagesAction(array $params):void + public function purgeImagesAction(int $fullDelete = 0, string $fileSystem) : void { - //Option to fully delete or softdelete an image - $fullDelete = $params[0]; + //Option to fully delete or soft delete an image + //$fullDelete = $params[0]; - // Specify the filisystem from which to erase - $fileSystem = $params[1]; + // Specify the filesystem from which to erase + //$fileSystem = $params[1]; $detachedImages = FileSystem::find([ 'conditions' => 'users_id = 0 and is_deleted = 0' diff --git a/src/Cli/tasks/QueueTask.php b/src/Cli/tasks/QueueTask.php index f144cd96..5290de58 100644 --- a/src/Cli/tasks/QueueTask.php +++ b/src/Cli/tasks/QueueTask.php @@ -3,31 +3,20 @@ namespace Canvas\Cli\Tasks; use Canvas\Contracts\Queue\QueueableJobInterface; -use Phalcon\Cli\Task as PhTask; use Canvas\Models\Users; use Canvas\Queue\Queue; +use Phalcon\Cli\Task as PhTask; use Phalcon\Mvc\Model; use Throwable; -/** - * CLI To send push notification and pusher msg. - * - * @package Canvas\Cli\Tasks - * - * @property Config $config - * @property \Pusher\Pusher $pusher - * @property \Monolog\Logger $log - * @property Channel $channel - * @property Queue $queue - * - */ class QueueTask extends PhTask { /** * Queue action for mobile notifications. + * * @return void */ - public function mainAction(array $params): void + public function mainAction() : void { echo 'Canvas Ecosystem Queue Jobs: events | notifications | jobs' . PHP_EOL; } @@ -120,7 +109,7 @@ public function notificationsAction() //disable the queue so we process it now $notification->disableQueue(); - //run notify for the specifiy user + //run notify for the specify user $user->notify($notification); $this->log->info( @@ -136,9 +125,9 @@ public function notificationsAction() * * @return void */ - public function jobsAction(array $params) + public function jobsAction(?string $queueName = null) { - $queue = !isset($params[0]) ? QUEUE::JOBS : $params[0]; + $queue = is_null($queueName) ? QUEUE::JOBS : $queueName; $callback = function ($msg) { //check the db before running anything @@ -167,8 +156,8 @@ public function jobsAction(array $params) } if (!$job['job'] instanceof QueueableJobInterface) { - echo 'This Job is not queable ' . $msg->delivery_info['consumer_tag'] ; - $this->log->error('This Job is not queable ' . $msg->delivery_info['consumer_tag']); + echo 'This Job is not queueable ' . $msg->delivery_info['consumer_tag'] ; + $this->log->error('This Job is not queueable ' . $msg->delivery_info['consumer_tag']); return; } @@ -194,7 +183,7 @@ public function jobsAction(array $params) * * @return boolean */ - protected function isDbConnected(string $dbProvider): bool + protected function isDbConnected(string $dbProvider) : bool { try { $this->di->get($dbProvider)->fetchAll('SELECT 1'); diff --git a/src/Cli/tasks/SetupTask.php b/src/Cli/tasks/SetupTask.php index ac55a98b..d43bc10d 100644 --- a/src/Cli/tasks/SetupTask.php +++ b/src/Cli/tasks/SetupTask.php @@ -3,8 +3,6 @@ namespace Canvas\Cli\Tasks; use Phalcon\Cli\Task as PhTask; -use Canvas\Cli\Tasks\AclTask; -use Canvas\Cli\Tasks\EmailtemplatesTask; /** * Class AclTask. diff --git a/src/Cli/tasks/TrialTask.php b/src/Cli/tasks/TrialTask.php index 903f74a4..29df0e88 100644 --- a/src/Cli/tasks/TrialTask.php +++ b/src/Cli/tasks/TrialTask.php @@ -2,18 +2,19 @@ namespace Canvas\Cli\Tasks; -use Phalcon\Cli\Task as PhTask; use Canvas\Models\Subscription; use Carbon\Carbon; -use \Datetime; +use Datetime; +use Phalcon\Cli\Task as PhTask; class TrialTask extends PhTask { /** * Unset subscription trial_ends_at if trial has ended. + * * @return void */ - public function unsetTrialEndsAtAction(): void + public function unsetTrialEndsAtAction() : void { $subscriptions = Subscription::find([ 'conditions' => 'is_deleted = 0 and is_active = 1' diff --git a/src/Filesystem/Helper.php b/src/Filesystem/Helper.php index e71540ee..9ecd13f9 100644 --- a/src/Filesystem/Helper.php +++ b/src/Filesystem/Helper.php @@ -4,10 +4,12 @@ namespace Canvas\Filesystem; +use Baka\Validations\File as FileValidation; use Canvas\Models\FileSystem; use Exception; use Phalcon\Di; use Phalcon\Http\Request\File; +use Phalcon\Http\Request\FileInterface; use Phalcon\Image\Adapter\Gd; use Phalcon\Text; @@ -21,7 +23,7 @@ class Helper * * @return string */ - public static function generateUniqueName(File $file, string $dir, $withPath = false) : string + public static function generateUniqueName(FileInterface $file, string $dir, $withPath = false) : string { // the provided path has to be a dir if (!is_dir($dir)) { @@ -66,8 +68,10 @@ public static function pathToFile(string $path) : File * * @return bool */ - public static function upload(File $file) : FileSystem + public static function upload(FileInterface $file) : FileSystem { + FileValidation::validate($file); + $di = Di::getDefault(); $config = $di->get('config'); @@ -103,7 +107,7 @@ public static function upload(File $file) : FileSystem $fileSystem->saveOrFail(); //set the unique name we generate - $fileSystem->set('unique_name', $uploadFileNameWithPath); + $fileSystem->set('unique_name', Text::reduceSlashes($uploadFileNameWithPath)); return $fileSystem; } @@ -115,7 +119,7 @@ public static function upload(File $file) : FileSystem * * @return boolean */ - public static function isImage(File $file) : bool + public static function isImage(FileInterface $file) : bool { return strpos(mime_content_type($file->getTempName()), 'image/') === 0; } @@ -128,7 +132,7 @@ public static function isImage(File $file) : bool * * @return void */ - public static function setImageDimensions(File $file, FileSystem $fileSystem) : void + public static function setImageDimensions(FileInterface $file, FileSystem $fileSystem) : void { if (Helper::isImage($file)) { $image = new Gd($file->getTempName()); diff --git a/src/Traits/FileManagementTrait.php b/src/Traits/FileManagementTrait.php index 7c4c6745..cc8c1d4b 100644 --- a/src/Traits/FileManagementTrait.php +++ b/src/Traits/FileManagementTrait.php @@ -4,28 +4,13 @@ namespace Canvas\Traits; +use Baka\Http\Exception\UnprocessableEntityException; use Canvas\Filesystem\Helper; -use Canvas\Http\Exception\UnprocessableEntityException; use Canvas\Models\FileSystem; use Canvas\Models\FileSystemEntities; use Canvas\Models\FileSystemSettings; use Phalcon\Http\Response; -use Phalcon\Validation; -use Phalcon\Validation\Validator\File as FileValidator; - -/** - * Trait ResponseTrait. - * - * @package Canvas\Traits - * - * @property Users $user - * @property AppsPlans $appPlan - * @property CompanyBranches $branches - * @property Companies $company - * @property UserCompanyApps $app - * @property \Phalcon\Di $di - * - */ + trait FileManagementTrait { /** @@ -41,9 +26,7 @@ trait FileManagementTrait public function create() : Response { if (!$this->request->hasFiles()) { - /** - * @todo handle file hash to avoid uploading same files again - */ + throw new UnprocessableEntityException('No files to upload'); } return $this->response($this->processFiles()); @@ -104,7 +87,7 @@ public function editEntity(int $id) : Response } /** - * Delete a file atribute. + * Delete a file attribute. * * @param $id * @param string $name @@ -126,48 +109,6 @@ public function deleteAttributes($id, string $name) : Response return $this->response(['Delete Successfully']); } - /** - * Set the validation for the files. - * - * @return Validation - */ - protected function validation() : Validation - { - $validator = new Validation(); - - /** - * @todo add validation for other file types, but we need to - * look for a scalable way - */ - $uploadConfig = [ - 'maxSize' => '100M', - 'messageSize' => ':field exceeds the max filesize (:max)', - 'allowedTypes' => [ - 'image/jpeg', - 'image/png', - 'image/webp', - 'audio/mpeg', - 'audio/mp3', - 'audio/mpeg', - 'application/pdf', - 'audio/mpeg3', - 'audio/x-mpeg-3', - 'application/x-zip-compressed', - 'application/octet-stream', - 'application/msword', - 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', - ], - 'messageType' => 'Allowed file types are :types', - ]; - - $validator->add( - 'file', - new FileValidator($uploadConfig) - ); - - return $validator; - } - /** * Upload the document and save them to the filesystem. * @@ -179,32 +120,8 @@ protected function processFiles() : array { $allFields = $this->request->getPostData(); - $validator = $this->validation(); - $files = []; foreach ($this->request->getUploadedFiles() as $file) { - //validate this current file - $errors = $validator->validate([ - 'file' => [ - 'name' => $file->getName(), - 'type' => $file->getType(), - 'tmp_name' => $file->getTempName(), - 'error' => $file->getError(), - 'size' => $file->getSize(), - ] - ]); - - /** - * @todo figure out why this failes - */ - if (!defined('API_TESTS')) { - if (count($errors)) { - foreach ($errors as $error) { - throw new UnprocessableEntityException((string) $error); - } - } - } - $fileSystem = Helper::upload($file); //add settings From 2671e3cd83543848202793bd07d9501a58f34311 Mon Sep 17 00:00:00 2001 From: mctekk Date: Thu, 25 Jun 2020 00:51:39 -0400 Subject: [PATCH 16/26] Update test and fix roles --- routes/api.php | 8 +- ...ller.php => RolesAccessListController.php} | 80 +++++++++---------- src/Api/Controllers/RolesController.php | 11 +-- .../Controllers/UserWebhooksController.php | 19 ++--- src/Api/Controllers/UsersInviteController.php | 25 ++---- src/Http/Response.php | 23 +++--- src/Models/AppsPlans.php | 9 ++- src/Models/Roles.php | 7 ++ src/Providers/DatabaseProvider.php | 12 +-- src/Traits/SubscriptionPlanLimitTrait.php | 48 +++++------ src/Webhooks.php | 3 +- 11 files changed, 112 insertions(+), 133 deletions(-) rename src/Api/Controllers/{RolesAccesListController.php => RolesAccessListController.php} (74%) diff --git a/routes/api.php b/routes/api.php index d8db2362..ee110dd4 100644 --- a/routes/api.php +++ b/routes/api.php @@ -1,8 +1,8 @@ controller('IndexController'), @@ -34,7 +34,8 @@ Route::crud('/companies-branches')->controller('CompaniesBranchesController'), Route::crud('/apps-plans')->controller('AppsPlansController'), Route::post('/apps-plans/{id}/reactivate')->controller('AppsPlansController')->action('reactivateSubscription'), - Route::crud('/roles-acceslist')->controller('RolesAccesListController'), + Route::crud('/roles-acceslist')->controller('RolesAccessListController'), + Route::crud('/roles-accesslist')->controller('RolesAccessListController'), Route::crud('/permissions-resources')->controller('PermissionsResourcesController'), Route::crud('/permissions-resources-access')->controller('PermissionsResourcesAccessController'), Route::crud('/users-invite')->controller('UsersInviteController'), @@ -54,7 +55,8 @@ Route::crud('/filesystem-entity')->controller('FilesystemEntitiesController'), Route::put('/auth/logout')->controller('AuthController')->action('logout'), Route::post('/users/invite')->controller('UsersInviteController')->action('insertInvite'), - Route::post('/roles-acceslist/{id}/copy')->controller('RolesAccesListController')->action('copy'), + Route::post('/roles-acceslist/{id}/copy')->controller('RolesAccessListController')->action('copy'), + Route::post('/roles-accesslist/{id}/copy')->controller('RolesAccessListController')->action('copy'), Route::get('/custom-fields-modules/{id}/fields')->controller('CustomFieldsModulesController')->action('customFieldsByModulesId'), Route::put('/apps-plans/{id}/method')->controller('AppsPlansController')->action('updatePaymentMethod'), Route::get('/apps-plans/{id}/method')->controller('PaymentMethodsCredsController')->action('getCurrentPaymentMethodsCreds'), diff --git a/src/Api/Controllers/RolesAccesListController.php b/src/Api/Controllers/RolesAccessListController.php similarity index 74% rename from src/Api/Controllers/RolesAccesListController.php rename to src/Api/Controllers/RolesAccessListController.php index 8c75c50d..9bfff1c1 100644 --- a/src/Api/Controllers/RolesAccesListController.php +++ b/src/Api/Controllers/RolesAccessListController.php @@ -4,33 +4,17 @@ namespace Canvas\Api\Controllers; +use Baka\Database\Exception\ModelNotFoundException; +use function Baka\getShortClassName; +use Baka\Validation as CanvasValidation; +use Canvas\Http\Exception\NotFoundException; use Canvas\Models\AccessList; -use Phalcon\Http\Response; +use Canvas\Models\Roles; use Phalcon\Acl\Role; -use Phalcon\Validation; +use Phalcon\Http\Response; use Phalcon\Validation\Validator\PresenceOf; -use Canvas\Models\Apps; -use Canvas\Exception\NotFoundHttpException; -use Canvas\Exception\ServerErrorHttpException; -use Canvas\Models\Roles; -use Baka\Http\QueryParser; -use Canvas\Http\Exception\NotFoundException; -use Baka\Validation as CanvasValidation; -/** - * Class RolesController. - * - * @package Canvas\Api\Controllers - * - * @property Users $userData - * @property Request $request - * @property Config $config - * @property \Canvas\Acl\Manager $acl - * @property \Baka\Mail\Message $mail - * @property Apps $app - * - */ -class RolesAccesListController extends BaseController +class RolesAccessListController extends BaseController { /* * fields we accept to create @@ -55,18 +39,22 @@ public function onConstruct() { $this->model = new AccessList(); - //get the list of roes for the systema + my company + //get the list of roes for the systems + my company $this->additionalSearchFields = [ ['is_deleted', ':', '0'], ['apps_id', ':', '0|' . $this->app->getId()], ]; + + $this->customConditions = " + AND access_list.roles_id in (SELECT id from roles WHERE companies_id = {$this->userData->currentCompanyId()} AND apps_id in (0, {$this->app->getId()})) + "; } /** * Add a new item. * * @method POST - * @url /v1/roles-acceslist + * @url /v1/roles-accesslist * * @return Response */ @@ -91,7 +79,7 @@ public function create() : Response $this->acl->addRole(new Role($request['roles']['name'], $request['roles']['description']), $scope); /** - * we always deny permision, by default the canvas set allow to all + * we always deny permission, by default the canvas set allow to all * so we only have to take away permissions. */ foreach ($request['access'] as $access) { @@ -102,34 +90,39 @@ public function create() : Response } /** - * get item. + * Get the element by Id + * with the current search params user specified in the constructed. * * @param mixed $id * - * @method GET - * @url /v1/roles-acceslist/{id} - * - * @return Response + * @return ModelInterface|array $results */ - public function getById($id): Response + protected function getRecordById($id) { - //find the info - $record = $this->model->findFirst([ - 'roles_id = ?0 AND is_deleted = 0 AND apps_id in (?1, ?2)', - 'bind' => [$id, $this->app->getId(), Apps::CANVAS_DEFAULT_APP_ID], - ]); + $this->additionalSearchFields[] = [ + 'roles_id', ':', $id + ]; + + $processedRequest = $this->processRequest($this->request); + $records = $this->getRecords($processedRequest); //get the results and append its relationships - $result = $this->appendRelationshipsToResult($this->request, $record); + $results = $records['results']; + + if (empty($results) || !isset($results[0])) { + throw new ModelNotFoundException( + getShortClassName($this->model) . ' Record not found' + ); + } - return $this->response($this->processOutput($result)); + return $results[0]; } /** * Update a new Entry. * * @method PUT - * @url /v1/roles-acceslist/{id} + * @url /v1/roles-accesslist/{id} * * @return Response */ @@ -156,10 +149,10 @@ public function edit($id) : Response $role->updateOrFail(); //clean previous records - $role->accesList->delete(); + $role->accessList->delete(); /** - * we always deny permision, by default the canvas set allow to all + * we always deny permission, by default the canvas set allow to all * so we only have to take away permissions. */ foreach ($request['access'] as $access) { @@ -173,6 +166,7 @@ public function edit($id) : Response * Copy a existen. * * @param int $id + * * @return Response */ public function copy($id) : Response @@ -188,7 +182,7 @@ public function copy($id) : Response * delete a new Entry. * * @method DELETE - * @url /v1/roles-acceslist/{id} + * @url /v1/roles-accesslist/{id} * * @return Response */ diff --git a/src/Api/Controllers/RolesController.php b/src/Api/Controllers/RolesController.php index cbac2fa2..25255cc2 100644 --- a/src/Api/Controllers/RolesController.php +++ b/src/Api/Controllers/RolesController.php @@ -6,13 +6,6 @@ use Canvas\Models\Roles; -/** - * Class RolesController - * - * @package Canvas\Api\Controllers - * - * @property Users $userData - */ class RolesController extends BaseController { /* @@ -30,7 +23,7 @@ class RolesController extends BaseController protected $updateFields = []; /** - * set objects + * set objects. * * @return void */ @@ -38,7 +31,7 @@ public function onConstruct() { $this->model = new Roles(); - //get the list of roes for the systema + my company + //get the list of roes for the systems + my company $this->additionalSearchFields = [ ['is_deleted', ':', '0'], ['companies_id', ':', '1|' . $this->userData->currentCompanyId()], diff --git a/src/Api/Controllers/UserWebhooksController.php b/src/Api/Controllers/UserWebhooksController.php index eddad0e9..b695174f 100644 --- a/src/Api/Controllers/UserWebhooksController.php +++ b/src/Api/Controllers/UserWebhooksController.php @@ -4,13 +4,13 @@ namespace Canvas\Api\Controllers; +use function Baka\isJson; +use Baka\Validation; use Canvas\Http\Exception\UnprocessableEntityException; use Canvas\Models\UserWebhooks; -use Baka\Validation; -use Phalcon\Http\Response; use Canvas\Webhooks; +use Phalcon\Http\Response; use Phalcon\Validation\Validator\PresenceOf; -use function Baka\isJson; /** * Class LanguagesController. @@ -68,12 +68,13 @@ public function onConstruct() } /** - * Given the weebhook id, we run a test for it. - * - * @param integer $id - * @return Response - */ - public function execute(string $name): Response + * Given the webhook id, we run a test for it. + * + * @param int $id + * + * @return Response + */ + public function execute(string $name) : Response { $request = $this->request->getPostData(); $validation = new Validation(); diff --git a/src/Api/Controllers/UsersInviteController.php b/src/Api/Controllers/UsersInviteController.php index ca08e46b..8640ec11 100644 --- a/src/Api/Controllers/UsersInviteController.php +++ b/src/Api/Controllers/UsersInviteController.php @@ -19,22 +19,7 @@ use Phalcon\Validation\Validator\PresenceOf; use Phalcon\Validation\Validator\StringLength; -/** - * Class LanguagesController. - * - * @property Users $userData - * @property Request $request - * @property Config $config - * @property Apps $app - * @property Mail $mail - * @property Auth $auth - * @property Payload $payload - * @property Exp $exp - * @property JWT $jwt - * - * @package Canvas\Api\Controllers - * - */ + class UsersInviteController extends BaseController { use AuthTrait; @@ -73,15 +58,15 @@ class UsersInviteController extends BaseController public function onConstruct() { $this->model = new UsersInvite(); - $additionaFields = [ + $additionalFields = [ ['is_deleted', ':', '0'], ]; if ($this->di->has('userData')) { - $additionaFields[] = ['companies_id', ':', $this->userData->currentCompanyId()]; + $additionalFields[] = ['companies_id', ':', $this->userData->currentCompanyId()]; } - $this->additionalSearchFields = $additionaFields; + $this->additionalSearchFields = $additionalFields; } /** @@ -207,6 +192,8 @@ public function processUserInvite(string $hash) : Response //Lets login the new user $authInfo = $this->loginUsers($usersInvite->email, $request['password']); + //move to DTO + $newUser->password = null; if (!defined('API_TESTS')) { $usersInvite->softDelete(); diff --git a/src/Http/Response.php b/src/Http/Response.php index f2366c21..6f63ab22 100644 --- a/src/Http/Response.php +++ b/src/Http/Response.php @@ -4,14 +4,14 @@ namespace Canvas\Http; -use Phalcon\Http\Response as PhResponse; -use Phalcon\Mvc\Model\MessageInterface as ModelMessage; -use Phalcon\Validation\Message\Group as ValidationMessage; -use Canvas\Exception\ServerErrorHttpException; use Canvas\Constants\Flags; +use Canvas\Exception\ServerErrorHttpException; use Canvas\Http\Exception\InternalServerErrorException; use Error; use Phalcon\Di; +use Phalcon\Http\Response as PhResponse; +use Phalcon\Mvc\Model\MessageInterface as ModelMessage; +use Phalcon\Validation\Message\Group as ValidationMessage; use Throwable; class Response extends PhResponse @@ -51,6 +51,7 @@ class Response extends PhResponse /** * Returns the http code description or if not found the code itself. + * * @param int $code * * @return int|string @@ -69,7 +70,7 @@ public function getHttpCodeDescription(int $code) * * @return PhResponse */ - public function send(): PhResponse + public function send() : PhResponse { $content = $this->getContent(); $data = $content; @@ -77,6 +78,7 @@ public function send(): PhResponse /** * At the moment we are only using this format for error msg. + * * @todo change in the future to implemente other formats */ if ($this->getStatusCode() != 200) { @@ -117,7 +119,7 @@ public function send(): PhResponse * * @return Response */ - public function setPayloadError(string $detail = ''): Response + public function setPayloadError(string $detail = '') : Response { $this->setJsonContent([ 'errors' => [ @@ -136,7 +138,7 @@ public function setPayloadError(string $detail = ''): Response * * @return Response */ - public function setPayloadErrors($errors): Response + public function setPayloadErrors($errors) : Response { $data = []; foreach ($errors as $error) { @@ -155,7 +157,7 @@ public function setPayloadErrors($errors): Response * * @return Response */ - public function setPayloadSuccess($content = []): Response + public function setPayloadSuccess($content = []) : Response { $data = (true === is_array($content)) ? $content : ['data' => $content]; $data = (true === isset($data['data'])) ? $data : ['data' => $data]; @@ -169,9 +171,10 @@ public function setPayloadSuccess($content = []): Response * Handle the exception we throw from our api. * * @param Throwable $e + * * @return Response */ - public function handleException(Throwable $e): Response + public function handleException(Throwable $e) : Response { $request = new Request(); $identifier = $request->getServerAddress(); @@ -189,7 +192,7 @@ public function handleException(Throwable $e): Response 'type' => $httpMessage, 'identifier' => $identifier, 'message' => $e->getMessage(), - 'trace' => strtolower($config->app->env) != Flags::PRODUCTION ? $e->getTraceAsString() : null, + 'trace' => $config->app->production ? $e->getTraceAsString() : null, 'data' => $data, ], ]); diff --git a/src/Models/AppsPlans.php b/src/Models/AppsPlans.php index ca5eedb3..b77c9616 100644 --- a/src/Models/AppsPlans.php +++ b/src/Models/AppsPlans.php @@ -3,10 +3,13 @@ namespace Canvas\Models; +use Baka\Contracts\Database\HashTableTrait; use Phalcon\Di; class AppsPlans extends AbstractModel { + use HashTableTrait; + public int $apps_id; public string $name; public string $description; @@ -124,9 +127,7 @@ public function set(string $key, $value) : bool $setting->value = $value; - $setting->saveOrFail(); - - return true; + return $setting->saveOrFail(); } /** @@ -136,7 +137,7 @@ public function set(string $key, $value) : bool */ public function afterSave() { - //if we udpate the is_default for this plan we need to remove all others and update the main app + //if we update the is_default for this plan we need to remove all others and update the main app if ($this->is_default) { $this->app->default_apps_plan_id = $this->getId(); $this->app->update(); diff --git a/src/Models/Roles.php b/src/Models/Roles.php index 5c52997e..c53e4d66 100644 --- a/src/Models/Roles.php +++ b/src/Models/Roles.php @@ -42,6 +42,13 @@ public function initialize() 'roles_id', ['alias' => 'accesList'] ); + + $this->hasMany( + 'id', + 'Canvas\Models\AccessList', + 'roles_id', + ['alias' => 'accessList'] + ); } /** diff --git a/src/Providers/DatabaseProvider.php b/src/Providers/DatabaseProvider.php index 55e4009b..ebaa779d 100644 --- a/src/Providers/DatabaseProvider.php +++ b/src/Providers/DatabaseProvider.php @@ -5,12 +5,12 @@ namespace Canvas\Providers; use function Baka\envValue; +use Baka\Http\Exception\InternalServerErrorException; +use PDO; +use PDOException; use Phalcon\Db\Adapter\Pdo\Mysql; -use Phalcon\Di\ServiceProviderInterface; use Phalcon\Di\DiInterface; -use PDOException; -use Canvas\Exception\ServerErrorHttpException; -use PDO; +use Phalcon\Di\ServiceProviderInterface; class DatabaseProvider implements ServiceProviderInterface { @@ -28,7 +28,7 @@ function () { 'password' => envValue('DATA_API_MYSQL_PASS', ''), 'dbname' => envValue('DATA_API_MYSQL_NAME', 'gonano'), 'charset' => 'utf8', - "options" => [ PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING ] + 'options' => [PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING] ]; try { @@ -37,7 +37,7 @@ function () { // Set everything to UTF8 $connection->execute('SET NAMES utf8mb4', []); } catch (PDOException $e) { - throw new ServerErrorHttpException($e->getMessage()); + throw new InternalServerErrorException($e->getMessage()); } return $connection; diff --git a/src/Traits/SubscriptionPlanLimitTrait.php b/src/Traits/SubscriptionPlanLimitTrait.php index 6a87d0a0..84b539fc 100644 --- a/src/Traits/SubscriptionPlanLimitTrait.php +++ b/src/Traits/SubscriptionPlanLimitTrait.php @@ -4,36 +4,24 @@ namespace Canvas\Traits; +use function Baka\getShortClassName; use Canvas\Exception\SubscriptionPlanLimitException; use Canvas\Http\Exception\InternalServerErrorException; use Canvas\Models\Subscription; use Canvas\Models\UserCompanyAppsActivities; use Phalcon\Di; -use ReflectionClass; - -/** - * Trait ResponseTrait. - * - * @package Canvas\Traits - * - * @property Users $user - * @property AppsPlans $appPlan - * @property CompanyBranches $branches - * @property Companies $company - * @property UserCompanyApps $app - * @property \Phalcon\Di $di - * - */ + + trait SubscriptionPlanLimitTrait { /** - * Get the key for the subscriptoin plan limit. + * Get the key for the subscription plan limit. * * @return string */ - private function getSubcriptionPlanLimitModelKey() : string + private function getSubscriptionPlanLimitModelKey() : string { - $key = $this->subscriptionPlanLimitKey ?? (new ReflectionClass($this))->getShortName(); + $key = $this->subscriptionPlanLimitKey ?? getShortClassName($this); return strtolower($key) . '_total'; } @@ -55,20 +43,20 @@ public function isAtLimit() : bool return false; } - $subcription = Subscription::getActiveForThisApp(); - $appPlan = $subcription->appPlan; + $subscription = Subscription::getActiveForThisApp(); + $appPlan = $subscription->appPlan; if (is_object($appPlan)) { //get the current module limit for this plan - $appPlanLimit = $appPlan->get($this->getSubcriptionPlanLimitModelKey()); + $appPlanLimit = $appPlan->get($this->getSubscriptionPlanLimitModelKey()); if (!is_null($appPlanLimit)) { //get tht total activity of the company current plan - $currentCompanyAppActivityTotal = UserCompanyAppsActivities::get($this->getSubcriptionPlanLimitModelKey()); + $currentCompanyAppActivityTotal = UserCompanyAppsActivities::get($this->getSubscriptionPlanLimitModelKey()); if ($currentCompanyAppActivityTotal >= $appPlanLimit) { throw new SubscriptionPlanLimitException(_( - 'This action cannot be performed ' . $subcription->company->name . ' has reach the limit of it current plan ' . $appPlan->name . ' please upgrade or contact support' + 'This action cannot be performed ' . $subscription->company->name . ' has reach the limit of it current plan ' . $appPlan->name . ' please upgrade or contact support' )); } } @@ -97,18 +85,20 @@ public function updateAppActivityLimit() : bool $companyAppActivityLimit = UserCompanyAppsActivities::findFirst([ 'conditions' => 'companies_id = ?0 and apps_id = ?1 and key = ?2', - 'bind' => [Di::getDefault()->getUserData()->currentCompanyId(), Di::getDefault()->getApp()->getId(), $this->getSubcriptionPlanLimitModelKey()] + 'bind' => [ + Di::getDefault()->get('userData')->currentCompanyId(), + Di::getDefault()->get('app')->getId(), + $this->getSubscriptionPlanLimitModelKey() + ] ]); if (is_object($companyAppActivityLimit)) { //its a varchar so lets make sure we convert it to int $companyAppActivityLimit->value = (int)$companyAppActivityLimit->value + 1; - if (!$companyAppActivityLimit->save()) { - throw new InternalServerErrorException((string) current($companyAppActivityLimit->getMessages())); - } + $companyAppActivityLimit->saveOrFail(); } else { - $userCopmanyAppsActivites = new UserCompanyAppsActivities(); - $userCopmanyAppsActivites->set($this->getSubcriptionPlanLimitModelKey(), 1); + $userCompanyAppsActivities = new UserCompanyAppsActivities(); + $userCompanyAppsActivities->set($this->getSubscriptionPlanLimitModelKey(), 1); } return true; diff --git a/src/Webhooks.php b/src/Webhooks.php index 3bf57e43..59278153 100644 --- a/src/Webhooks.php +++ b/src/Webhooks.php @@ -88,12 +88,13 @@ public static function process(string $module, array $data, string $action, arra $systemModule = SystemModules::getByName($module); $webhooks = UserWebhooks::find([ - 'conditions' => 'apps_id = ?0 AND companies_id = ?1 + 'conditions' => 'apps_id = ?0 AND companies_id = ?1 AND is_deleted = 0 AND webhooks_id in (SELECT Canvas\Models\Webhooks.id FROM Canvas\Models\Webhooks WHERE Canvas\Models\Webhooks.apps_id = ?0 AND Canvas\Models\Webhooks.system_modules_id = ?2 AND Canvas\Models\Webhooks.action = ?3 + AND Canvas\Models\Webhooks.is_deleted = 0 )', 'bind' => [ $appId, From c94b2dfdee0d68ebcd36c31902194e4e6d55fec9 Mon Sep 17 00:00:00 2001 From: mctekk Date: Thu, 25 Jun 2020 01:02:51 -0400 Subject: [PATCH 17/26] fix test --- src/Api/Controllers/UsersInviteController.php | 1 - src/Traits/SubscriptionPlanLimitTrait.php | 1 - tests/integration/library/Traits/SubscriptionLimitCest.php | 2 +- 3 files changed, 1 insertion(+), 3 deletions(-) diff --git a/src/Api/Controllers/UsersInviteController.php b/src/Api/Controllers/UsersInviteController.php index 8640ec11..9a171bf5 100644 --- a/src/Api/Controllers/UsersInviteController.php +++ b/src/Api/Controllers/UsersInviteController.php @@ -19,7 +19,6 @@ use Phalcon\Validation\Validator\PresenceOf; use Phalcon\Validation\Validator\StringLength; - class UsersInviteController extends BaseController { use AuthTrait; diff --git a/src/Traits/SubscriptionPlanLimitTrait.php b/src/Traits/SubscriptionPlanLimitTrait.php index 84b539fc..99e873a7 100644 --- a/src/Traits/SubscriptionPlanLimitTrait.php +++ b/src/Traits/SubscriptionPlanLimitTrait.php @@ -11,7 +11,6 @@ use Canvas\Models\UserCompanyAppsActivities; use Phalcon\Di; - trait SubscriptionPlanLimitTrait { /** diff --git a/tests/integration/library/Traits/SubscriptionLimitCest.php b/tests/integration/library/Traits/SubscriptionLimitCest.php index e1acf162..2012609e 100644 --- a/tests/integration/library/Traits/SubscriptionLimitCest.php +++ b/tests/integration/library/Traits/SubscriptionLimitCest.php @@ -21,7 +21,7 @@ class SubscriptionLimitCest public function getModelKey(IntegrationTester $I) { - $classKey = $this->getSubcriptionPlanLimitModelKey(); + $classKey = $this->getSubscriptionPlanLimitModelKey(); $I->assertTrue($classKey == 'subscriptionlimitcest_total'); } From a6ad432339f7b4b5896c81c8c1b2e6ac43a858c0 Mon Sep 17 00:00:00 2001 From: mctekk Date: Thu, 25 Jun 2020 23:43:12 -0400 Subject: [PATCH 18/26] Get test to run on php 7.4 --- codeception.yml | 3 +- composer.json | 51 ++++++--- src/Cli/tasks/QueueTask.php | 19 +++- src/Http/SwooleRequest.php | 106 ++++++++++-------- src/Models/PaymentMethods.php | 10 -- src/Models/Users.php | 3 +- .../20181029002222_gewear_canvas_init.php | 4 +- ...81226050247_acl_update_structure_again.php | 4 +- tests/autoload.php | 7 +- tests/integration/library/Acl/AclCest.php | 2 +- 10 files changed, 120 insertions(+), 89 deletions(-) diff --git a/codeception.yml b/codeception.yml index 7dfbfb02..cfc1e9bb 100644 --- a/codeception.yml +++ b/codeception.yml @@ -11,10 +11,11 @@ paths: support: tests/_support envs: tests/_envs +bootstrap: _bootstrap.php + settings: # The name of bootstrap that will be used. # Each bootstrap file should be inside a suite directory. - bootstrap: _bootstrap.php colors: true # Tests (especially functional) can take a lot of memory # We set a high limit for them by default. diff --git a/composer.json b/composer.json index ec65e19d..5f72225c 100644 --- a/composer.json +++ b/composer.json @@ -7,13 +7,12 @@ "email": "max@mctekk.com" }], "require": { - "php": ">=7.2", - "ext-phalcon": ">=3.4", - "baka/baka": "^0.5", + "php": ">=7.4", + "ext-phalcon": ">=4", "dariuszp/cli-progress-bar": "^1.0", - "dmkit/phalcon-jwt-auth": "dev-master", - "duncan3dc/fork-helper": "^2.2.0", + "elasticsearch/elasticsearch": "^7.5", "firebase/php-jwt": "^5.0", + "fzaninotto/faker": "^1.9@dev", "hybridauth/hybridauth": "dev-master", "lcobucci/jwt": "^3.2", "league/flysystem": "^1.0", @@ -23,24 +22,44 @@ "monolog/monolog": "^1.23", "namshi/notificator": " 1.0.*", "nesbot/carbon": "~1.18", - "norkunas/onesignal-php-api": "^1.12", - "phalcon/incubator": "~3.4", + "odan/phinx-migrations-generator": "^5", + "phalcon/ide-stubs": "^3.3", + "phalcon/incubator": "4.0.x-dev", + "phalcon/incubator-acl": "^1.0.0-alpha.1", "php-amqplib/php-amqplib": "^2.9", - "php-http/guzzle6-adapter": "1.1", + "phpstan/phpstan": "^0.9.2", + "phpunit/phpunit": "^9.1", "psr/log": "^1.0", - "pusher/pusher-php-server": "3.4.1", - "robmorgan/phinx": "0.*", + "pusher/pusher-php-server": "^3.0", + "robmorgan/phinx": "^0.12", "sentry/sentry": "^1.9", "sly/notification-pusher": "2.x", - "vlucas/phpdotenv": "^2.4", - "bakaphp/php-apple-signin": "^2.0" + "squizlabs/php_codesniffer": "^3.2", + "stripe/stripe-php": "~6.0", + "swiftmailer/swiftmailer": "^6", + "symfony/browser-kit": "3.4", + "symfony/config": "3.4", + "symfony/console": "3.4", + "symfony/css-selector": "3.4", + "symfony/debug": "3.4", + "symfony/dom-crawler": "3.4", + "symfony/event-dispatcher": "3.4", + "symfony/filesystem": "3.4", + "symfony/finder": "3.4", + "symfony/process": "3.4", + "symfony/yaml": "3.4", + "vlucas/phpdotenv": "^4.1" }, "require-dev": { - "codeception/verify": "*", - "codeception/codeception": "2.4", + "codeception/codeception": "^4.1", + "codeception/module-asserts": "^1.2", + "codeception/module-cli": "^1.0.0", + "codeception/module-filesystem": "^1.0", + "codeception/module-phalcon": "^1.0", + "codeception/module-phalcon4": "^1.0", + "codeception/module-rest": "^1.2", "phpstan/phpstan": "^0.9.2", - "squizlabs/php_codesniffer": "^3.2", - "odan/phinx-migrations-generator": "4.*.*" + "squizlabs/php_codesniffer": "^3.2" }, "autoload": { "psr-4": { diff --git a/src/Cli/tasks/QueueTask.php b/src/Cli/tasks/QueueTask.php index 5290de58..ccccfe26 100644 --- a/src/Cli/tasks/QueueTask.php +++ b/src/Cli/tasks/QueueTask.php @@ -166,12 +166,19 @@ public function jobsAction(?string $queueName = null) */ go(function () use ($job, $msg) { //instance notification and pass the entity - $result = $job['job']->handle(); - - $this->log->info( - "Job ({$job['class']}) ran for {$job['userData']->getEmail()} - Process ID " . $msg->delivery_info['consumer_tag'], - [$result] - ); + try { + $result = $job['job']->handle(); + + $this->log->info( + "Job ({$job['class']}) ran for {$job['userData']->getEmail()} - Process ID " . $msg->delivery_info['consumer_tag'], + [$result] + ); + } catch (Throwable $e) { + $this->log->info( + $e->getMessage(), + [$e->getTraceAsString()] + ); + } }); }; diff --git a/src/Http/SwooleRequest.php b/src/Http/SwooleRequest.php index eac52a29..19c8b6b5 100644 --- a/src/Http/SwooleRequest.php +++ b/src/Http/SwooleRequest.php @@ -9,9 +9,9 @@ use function Baka\isJson; use Canvas\Traits\RequestJwtTrait; use Exception; +use Phalcon\Di\DiInterface; use Phalcon\Di\FactoryDefault; use Phalcon\Di\InjectionAwareInterface; -use Phalcon\Di\DiInterface; use Phalcon\Events\Manager; use Phalcon\FilterInterface; use Phalcon\Http\Request\File; @@ -130,7 +130,7 @@ private function setGlobalServers(array $servers) : void * * @return void */ - public function setDI(DiInterface $dependencyInjector) + public function setDI(DiInterface $dependencyInjector) : void { $this->_dependencyInjector = $dependencyInjector; } @@ -140,7 +140,7 @@ public function setDI(DiInterface $dependencyInjector) * * @return void */ - public function getDI() + public function getDI() : DiInterface { return $this->_dependencyInjector; } @@ -203,7 +203,7 @@ public function getQuery($name = null, $filters = null, $defaultValue = null, $n * * @return string|null */ - public function getServer($name) + public function getServer(string $name) : ?string { $name = strtoupper(str_replace(['-'], '_', $name)); if (isset($this->server[$name])) { @@ -247,7 +247,7 @@ public function getPut($name = null, $filters = null, $defaultValue = null, $not * * @return boolean */ - public function has($name) + public function has($name) : bool { $source = array_merge($this->get, $this->post); return isset($source[$name]); @@ -260,7 +260,7 @@ public function has($name) * * @return boolean */ - public function hasPost($name) + public function hasPost($name) : bool { return isset($this->post[$name]); } @@ -272,7 +272,7 @@ public function hasPost($name) * * @return boolean */ - public function hasPut($name) + public function hasPut($name) : bool { $put = $this->getPut(); @@ -286,7 +286,7 @@ public function hasPut($name) * * @return boolean */ - public function hasQuery($name) + public function hasQuery($name) : bool { return isset($this->get[$name]); } @@ -298,7 +298,7 @@ public function hasQuery($name) * * @return boolean */ - public function hasServer($name) + public function hasServer($name) : bool { $name = strtoupper(str_replace(['-'], '_', $name)); @@ -312,7 +312,7 @@ public function hasServer($name) * * @return boolean */ - public function hasHeader($header) + public function hasHeader($header) : bool { if ($this->hasServer($header)) { return true; @@ -330,7 +330,7 @@ public function hasHeader($header) * * @return string|void */ - public function getHeader($header) + public function getHeader($header) : string { $header = $this->getServer($header); if (isset($header)) { @@ -350,7 +350,7 @@ public function getHeader($header) * * @return string */ - public function getScheme() + public function getScheme() : string { $https = $this->getServer('HTTPS'); if ($https && $https != 'off') { @@ -365,7 +365,7 @@ public function getScheme() * * @return boolean */ - public function isAjax() + public function isAjax() : bool { return $this->getServer('HTTP_X_REQUESTED_WITH') === 'XMLHttpRequest'; } @@ -375,7 +375,7 @@ public function isAjax() * * @return boolean */ - public function isSoap() + public function isSoap() : bool { if ($this->hasServer('HTTP_SOAPACTION')) { return true; @@ -394,7 +394,7 @@ public function isSoap() * * @return boolean */ - public function isSoapRequested() + public function isSoapRequested() : bool { return $this->isSoap(); } @@ -404,7 +404,7 @@ public function isSoapRequested() * * @return boolean */ - public function isSecure() + public function isSecure() : bool { return $this->getScheme() === 'https'; } @@ -414,7 +414,7 @@ public function isSecure() * * @return boolean */ - public function isSecureRequest() + public function isSecureRequest() : bool { return $this->isSecure(); } @@ -424,7 +424,7 @@ public function isSecureRequest() * * @return string */ - public function getRawBody() + public function getRawBody() : string { return $this->_rawBody; } @@ -451,7 +451,7 @@ public function getJsonRawBody($associative = false) * * @return string */ - public function getServerAddress() + public function getServerAddress() : string { $serverAddr = $this->getServer('SERVER_ADDR'); if ($serverAddr) { @@ -466,7 +466,7 @@ public function getServerAddress() * * @return string */ - public function getServerName() + public function getServerName() : string { $serverName = $this->getServer('SERVER_NAME'); if ($serverName) { @@ -481,7 +481,7 @@ public function getServerName() * * @return string */ - public function getHttpHost() + public function getHttpHost() : string { $strict = $this->_strictHostCheck; @@ -546,7 +546,7 @@ public function isStrictHostCheck() * * @return int */ - public function getPort() + public function getPort() : int { /** * Get the server name from $_SERVER["HTTP_HOST"]. @@ -569,7 +569,7 @@ public function getPort() /** * Gets HTTP URI which request has been made. */ - public function getURI() + public function getURI(bool $onlyPath = null) : string { $requestURI = $this->getServer('request_uri'); //$this->getServer('REQUEST_URI') == $this->getQuery('_url') ? $this->getServer('REQUEST_URI') : $this->getQuery('_url'); if ($requestURI) { @@ -622,7 +622,7 @@ public function getClientAddress($trustForwardedHeader = true) * * @return string */ - public function getMethod() + public function getMethod() : string { $returnMethod = $this->getServer('REQUEST_METHOD'); if (!isset($returnMethod)) { @@ -653,7 +653,7 @@ public function getMethod() * * @return string|void */ - public function getUserAgent() + public function getUserAgent() : string { $userAgent = $this->getServer('HTTP_USER_AGENT'); if ($userAgent) { @@ -670,7 +670,7 @@ public function getUserAgent() * * @return boolean */ - public function isMethod($methods, $strict = false) + public function isMethod($methods, $strict = false) : bool { $httpMethod = $this->getMethod(); @@ -703,7 +703,7 @@ public function isMethod($methods, $strict = false) * * @return boolean */ - public function isPost() + public function isPost() : bool { return $this->getMethod() === 'POST'; } @@ -713,7 +713,7 @@ public function isPost() * * @return boolean */ - public function isGet() + public function isGet() : bool { return $this->getMethod() === 'GET'; } @@ -723,7 +723,7 @@ public function isGet() * * @return boolean */ - public function isPut() + public function isPut() : bool { return $this->getMethod() === 'PUT'; } @@ -733,7 +733,7 @@ public function isPut() * * @return boolean */ - public function isPatch() + public function isPatch() : bool { return $this->getMethod() === 'PATCH'; } @@ -743,7 +743,7 @@ public function isPatch() * * @return boolean */ - public function isHead() + public function isHead() : bool { return $this->getMethod() === 'HEAD'; } @@ -753,7 +753,7 @@ public function isHead() * * @return boolean */ - public function isDelete() + public function isDelete() : bool { return $this->getMethod() === 'DELETE'; } @@ -763,7 +763,7 @@ public function isDelete() * * @return boolean */ - public function isOptions() + public function isOptions() : bool { return $this->getMethod() === 'OPTIONS'; } @@ -773,7 +773,7 @@ public function isOptions() * * @return boolean */ - public function isPurge() + public function isPurge() : bool { return $this->getMethod() === 'PURGE'; } @@ -783,7 +783,7 @@ public function isPurge() * * @return boolean */ - public function isTrace() + public function isTrace() : bool { return $this->getMethod() === 'TRACE'; } @@ -793,7 +793,7 @@ public function isTrace() * * @return boolean */ - public function isConnect() + public function isConnect() : bool { return $this->getMethod() === 'CONNECT'; } @@ -805,7 +805,7 @@ public function isConnect() * * @return string */ - public function hasFiles($onlySuccessful = false) + public function hasFiles($onlySuccessful = false) : bool { $numberFiles = 0; @@ -862,7 +862,7 @@ protected function hasFileHelper($data, $onlySuccessful) * * @return array */ - public function getUploadedFiles($onlySuccessful = false) + public function getUploadedFiles(bool $onlySuccessful = null, bool $namedKeys = null) : array { $files = []; @@ -983,7 +983,7 @@ public function getServers() * * @return array */ - public function getHeaders() + public function getHeaders() : array { $headers = []; $contentHeaders = ['CONTENT_TYPE' => true, 'CONTENT_LENGTH' => true, 'CONTENT_MD5' => true]; @@ -1019,7 +1019,7 @@ public function getHeaders() * * @return string|void */ - public function getHTTPReferer() + public function getHTTPReferer() : string { $httpReferer = $this->getServer('HTTP_REFERER'); if ($httpReferer) { @@ -1062,7 +1062,7 @@ protected function _getBestQuality($qualityParts, $name) * * @return array */ - public function getAcceptableContent() + public function getAcceptableContent() : array { return $this->_getQualityHeader('HTTP_ACCEPT', 'accept'); } @@ -1072,7 +1072,7 @@ public function getAcceptableContent() * * @return string */ - public function getBestAccept() + public function getBestAccept() : string { return $this->_getBestQuality($this->getAcceptableContent(), 'accept'); } @@ -1082,7 +1082,7 @@ public function getBestAccept() * * @return array */ - public function getClientCharsets() + public function getClientCharsets() : array { return $this->_getQualityHeader('HTTP_ACCEPT_CHARSET', 'charset'); } @@ -1092,7 +1092,7 @@ public function getClientCharsets() * * @return string */ - public function getBestCharset() + public function getBestCharset() : string { return $this->_getBestQuality($this->getClientCharsets(), 'charset'); } @@ -1102,7 +1102,7 @@ public function getBestCharset() * * @return array */ - public function getLanguages() + public function getLanguages() : array { return $this->_getQualityHeader('HTTP_ACCEPT_LANGUAGE', 'language'); } @@ -1112,7 +1112,7 @@ public function getLanguages() * * @return string */ - public function getBestLanguage() + public function getBestLanguage() : string { return $this->_getBestQuality($this->getLanguages(), 'language'); } @@ -1122,7 +1122,7 @@ public function getBestLanguage() * * @return array|void */ - public function getBasicAuth() + public function getBasicAuth() : ?array { if ($this->hasServer('PHP_AUTH_USER') && $this->hasServer('PHP_AUTH_PW')) { return [ @@ -1139,7 +1139,7 @@ public function getBasicAuth() * * @return array */ - public function getDigestAuth() + public function getDigestAuth() : array { $auth = []; if ($this->hasServer('PHP_AUTH_DIGEST')) { @@ -1221,7 +1221,7 @@ protected function getHelper($source, $name = null, $filters = null, $defaultVal /** * Gets content type which request has been made. */ - public function getContentType() + public function getContentType() : ?string { $contentType = $this->getHeader('CONTENT_TYPE'); if ($contentType) { @@ -1404,4 +1404,12 @@ public function isEmptyBearerToken() : bool { return true === empty($this->getBearerTokenFromHeader()); } + + /** + * Get number of files + */ + public function numFiles(bool $onlySuccessful = bool) : int + { + return count($this->files); + } } diff --git a/src/Models/PaymentMethods.php b/src/Models/PaymentMethods.php index b9910561..1a8ed459 100644 --- a/src/Models/PaymentMethods.php +++ b/src/Models/PaymentMethods.php @@ -25,14 +25,4 @@ public static function getDefault() : self { return self::findFirst(['conditions' => 'is_default = 1 and is_deleted = 0']); } - - /** - * Returns table name mapped in the model. - * - * @return int - */ - public function getId() - { - return (int) $this->id; - } } diff --git a/src/Models/Users.php b/src/Models/Users.php index 7c4478f4..20c4a6f0 100644 --- a/src/Models/Users.php +++ b/src/Models/Users.php @@ -7,6 +7,7 @@ use Baka\Cashier\Billable; use Baka\Contracts\Database\HashTableTrait; use Baka\Contracts\EventsManager\EventManagerAwareTrait; +use Baka\Hashing\Keys; use Baka\Validations\PasswordValidation; use Canvas\Auth\App as AppAuth; use Canvas\Contracts\Auth\UserInterface; @@ -664,7 +665,7 @@ public function signUp() : BakUser */ public function generateForgotHash() : string { - $this->user_activation_forgot = $this->generateActivationKey(); + $this->user_activation_forgot = Keys::make(); $this->updateOrFail(); return $this->user_activation_forgot; diff --git a/storage/db/migrations/20181029002222_gewear_canvas_init.php b/storage/db/migrations/20181029002222_gewear_canvas_init.php index 9ff61516..89b4d76f 100644 --- a/storage/db/migrations/20181029002222_gewear_canvas_init.php +++ b/storage/db/migrations/20181029002222_gewear_canvas_init.php @@ -1,7 +1,7 @@ addColumn('is_deleted', 'boolean', ['null' => true, 'default' => '0', 'limit' => MysqlAdapter::INT_TINY, 'precision' => 3, 'after' => 'status']) ->save(); + $this->execute('ALTER TABLE users ROW_FORMAT=DYNAMIC;'); + $table = $this->table('users_associated_company', ['id' => false, 'primary_key' => ['users_id', 'companies_id'], 'engine' => 'InnoDB', 'encoding' => 'utf8mb4', 'collation' => 'utf8mb4_unicode_ci', 'comment' => '', 'row_format' => 'Compact']); $table->addColumn('users_id', 'integer', ['null' => false, 'limit' => MysqlAdapter::INT_REGULAR, 'precision' => 10]) ->addColumn('companies_id', 'integer', ['null' => false, 'limit' => MysqlAdapter::INT_REGULAR, 'precision' => 10, 'after' => 'users_id']) diff --git a/storage/db/migrations/20181226050247_acl_update_structure_again.php b/storage/db/migrations/20181226050247_acl_update_structure_again.php index 50f3eef3..2942c23f 100644 --- a/storage/db/migrations/20181226050247_acl_update_structure_again.php +++ b/storage/db/migrations/20181226050247_acl_update_structure_again.php @@ -1,7 +1,7 @@ 'InnoDB', 'encoding' => 'utf8', 'collation' => 'utf8_general_ci', - 'comment' => "\t\t\t\t\t", + 'comment' => '', 'row_format' => 'Dynamic', ]); $table->addColumn('has_activities', 'boolean', [ diff --git a/tests/autoload.php b/tests/autoload.php index 4c59210d..f028c678 100644 --- a/tests/autoload.php +++ b/tests/autoload.php @@ -1,15 +1,17 @@ '/baka/src/', 'Canvas' => appPath('/src'), 'Canvas\Cli\Tasks' => appPath('/cli/tasks'), 'Niden\Tests' => appPath('/tests'), @@ -26,4 +28,5 @@ require appPath('vendor/autoload.php'); // Load environment -(new Dotenv(appPath()))->overload(); +$dotenv = Dotenv::createImmutable(appPath()); +$dotenv->load(); diff --git a/tests/integration/library/Acl/AclCest.php b/tests/integration/library/Acl/AclCest.php index c5c72f51..73342f59 100644 --- a/tests/integration/library/Acl/AclCest.php +++ b/tests/integration/library/Acl/AclCest.php @@ -48,7 +48,7 @@ public function checkAddResource(IntegrationTester $I) { $acl = $this->aclService($I); - $I->assertTrue($acl->addResource('Default.Users', ['read', 'list', 'create', 'update', 'delete'])); + $I->assertTrue($acl->addComponent('Default.Users', ['read', 'list', 'create', 'update', 'delete'])); } public function checkAllowPermission(IntegrationTester $I) From 196b9fd7eb7161b58dda65bb8ba86101fc9381b8 Mon Sep 17 00:00:00 2001 From: Rafael White Date: Tue, 30 Jun 2020 17:30:38 -0400 Subject: [PATCH 19/26] Initialize some variables --- src/Models/CompaniesCustomFields.php | 2 +- src/Models/FileSystem.php | 2 +- src/Models/NotificationType.php | 2 +- src/Models/Users.php | 2 +- storage/db/seeds/InitGewaer.php | 4 +++- 5 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/Models/CompaniesCustomFields.php b/src/Models/CompaniesCustomFields.php index d159bafe..43a09ae7 100644 --- a/src/Models/CompaniesCustomFields.php +++ b/src/Models/CompaniesCustomFields.php @@ -6,7 +6,7 @@ class CompaniesCustomFields extends AbstractModel { public int $companies_id; - public int $custom_fields_id; + public int $custom_fields_id = 0; public ?string $value = null; /** diff --git a/src/Models/FileSystem.php b/src/Models/FileSystem.php index 5122043d..f899c427 100644 --- a/src/Models/FileSystem.php +++ b/src/Models/FileSystem.php @@ -22,7 +22,7 @@ class FileSystem extends AbstractModel public string $name; public string $path; public string $url; - public string $size; + public int $size; public string $file_type; /** diff --git a/src/Models/NotificationType.php b/src/Models/NotificationType.php index 4ef0bbc6..44fa0be6 100644 --- a/src/Models/NotificationType.php +++ b/src/Models/NotificationType.php @@ -13,7 +13,7 @@ class NotificationType extends AbstractModel public string $key; public ?string $description = null; public ?string $template = null; - public string $icon_url; + public ?string $icon_url = null; public int $with_realtime; /** diff --git a/src/Models/Users.php b/src/Models/Users.php index 20c4a6f0..8eaccc76 100644 --- a/src/Models/Users.php +++ b/src/Models/Users.php @@ -36,7 +36,7 @@ class Users extends BakUser implements UserInterface use EventManagerAwareTrait; public int $default_company_branch = 0; - public int $roles_id; + public ?int $roles_id = null; public ?string $stripe_id = null; public ?string $card_last_four = null; public ?string $card_brand = null; diff --git a/storage/db/seeds/InitGewaer.php b/storage/db/seeds/InitGewaer.php index 3b57f42a..b2e7cce5 100644 --- a/storage/db/seeds/InitGewaer.php +++ b/storage/db/seeds/InitGewaer.php @@ -1,7 +1,7 @@ u 'anonymous', 'system_modules_id' => 2, 'default_company_branch' => 1, + 'user_last_login_try' => 0, 'created_at' => date('Y-m-d H:i:s'), 'status' => 1, 'user_active' => 1, @@ -150,6 +151,7 @@ public function run() 'displayname' => 'nobody', 'system_modules_id' => 2, 'default_company_branch' => 1, + 'user_last_login_try' => 0, 'created_at' => date('Y-m-d H:i:s'), 'status' => 1, 'user_active' => 1, From 95bcce4b9fe1167d5a1277cb3d3bfbb046319e32 Mon Sep 17 00:00:00 2001 From: mctekk Date: Wed, 1 Jul 2020 00:07:42 -0400 Subject: [PATCH 20/26] Update test --- src/Cli/tasks/ClearcacheTask.php | 26 +----- src/Core/config.php | 44 ++++------ src/CustomFields/CustomFields.php | 4 +- src/Filesystem/Helper.php | 2 +- src/Models/CustomFieldsValues.php | 2 +- src/Models/Subscription.php | 2 +- src/Providers/CacheDataProvider.php | 9 +- src/Providers/SessionProvider.php | 31 ++++--- tests/_support/Helper/Integration.php | 38 +++++---- tests/integration/library/Auth/AppCest.php | 6 +- .../integration/library/DefaultSetupCest.php | 82 +++++++++++-------- tests/integration/library/Models/AppsCest.php | 7 +- .../library/Models/SubscriptionCest.php | 6 +- tests/unit/cli/ClearCacheCest.php | 11 ++- tests/unit/library/Providers/CacheCest.php | 7 +- tests/unit/library/Providers/SessionCest.php | 7 +- 16 files changed, 142 insertions(+), 142 deletions(-) diff --git a/src/Cli/tasks/ClearcacheTask.php b/src/Cli/tasks/ClearcacheTask.php index 58a3a918..010feb7a 100644 --- a/src/Cli/tasks/ClearcacheTask.php +++ b/src/Cli/tasks/ClearcacheTask.php @@ -4,8 +4,6 @@ use function Baka\appPath; use Phalcon\Cli\Task as PhTask; -use Phalcon\Queue\Beanstalk\Extended as BeanstalkExtended; -use Phalcon\Queue\Beanstalk\Job; use RecursiveDirectoryIterator; use RecursiveIteratorIterator; @@ -74,31 +72,11 @@ protected function clearMemCached() : void /** * Clean user session. * + * @deprecated version 1 + * * @return void */ public function sessionsAction() : void { - //call queue - $queue = new BeanstalkExtended([ - 'host' => $this->config->beanstalk->host, - 'prefix' => $this->config->beanstalk->prefix, - ]); - - //call que que tube - $queue->addWorker(getenv('SESSION_QUEUE'), function (Job $job) { - // Here we should collect the meta information, make the screenshots, convert the video to the FLV etc. - - $sessionId = $job->getBody(); - echo "\nProcessing: {$sessionId}\n"; - - $session = new \Baka\Auth\Models\Sessions(); - $session->clean($sessionId, true); - - // It's very important to send the right exit code! - exit(0); - }); - - // Start processing queues - $queue->doWork(); } } diff --git a/src/Core/config.php b/src/Core/config.php index 84a18c0a..f67c3906 100644 --- a/src/Core/config.php +++ b/src/Core/config.php @@ -64,33 +64,15 @@ ], ], 'cache' => [ - //@todo remove this we are not using it any more - 'data' => [ - 'front' => [ - 'adapter' => 'Data', - 'options' => [ - 'lifetime' => envValue('CACHE_LIFETIME'), - ], - ], - 'back' => [ - 'dev' => [ - 'adapter' => 'File', - 'options' => [ - 'cacheDir' => appPath('storage/cache/data/'), - ], - ], - 'prod' => [ - 'adapter' => 'Libmemcached', - 'options' => [ - 'servers' => [ - [ - 'host' => envValue('DATA_API_MEMCACHED_HOST'), - 'port' => envValue('DATA_API_MEMCACHED_PORT'), - 'weight' => envValue('DATA_API_MEMCACHED_WEIGHT'), - ], - ], - ], - ], + 'adapter' => 'redis', + 'options' => [ + 'redis' => [ + 'defaultSerializer' => Redis::SERIALIZER_PHP, + 'host' => envValue('REDIS_HOST', '127.0.0.1'), + 'port' => envValue('REDIS_PORT', 6379), + 'lifetime' => envValue('CACHE_LIFETIME', 86400), + 'index' => 1, + 'prefix' => 'data-', ], ], 'metadata' => [ @@ -99,9 +81,13 @@ 'options' => [], ], 'prod' => [ - 'adapter' => 'Files', + 'adapter' => 'redis', 'options' => [ - 'metaDataDir' => appPath('storage/cache/metadata/'), + 'host' => envValue('REDIS_HOST', '127.0.0.1'), + 'port' => envValue('REDIS_PORT', 6379), + 'index' => 1, + 'lifetime' => envValue('CACHE_LIFETIME', 86400), + 'prefix' => 'metadatas-caches-' ], ], ], diff --git a/src/CustomFields/CustomFields.php b/src/CustomFields/CustomFields.php index 0cf44100..7e64ed08 100644 --- a/src/CustomFields/CustomFields.php +++ b/src/CustomFields/CustomFields.php @@ -63,9 +63,10 @@ public function initialize() * related module. * * @param array $values + * * @return bool */ - public function addValues(array $values): bool + public function addValues(array $values) : bool { if ($this->values) { $this->values->delete(); @@ -79,7 +80,6 @@ public function addValues(array $values): bool $customFieldsValue->saveOrFail(); } - return true; } } diff --git a/src/Filesystem/Helper.php b/src/Filesystem/Helper.php index 9ecd13f9..80cc6646 100644 --- a/src/Filesystem/Helper.php +++ b/src/Filesystem/Helper.php @@ -107,7 +107,7 @@ public static function upload(FileInterface $file) : FileSystem $fileSystem->saveOrFail(); //set the unique name we generate - $fileSystem->set('unique_name', Text::reduceSlashes($uploadFileNameWithPath)); + $fileSystem->set('unique_name', Text::reduceSlashes(DIRECTORY_SEPARATOR . $uploadFileNameWithPath)); return $fileSystem; } diff --git a/src/Models/CustomFieldsValues.php b/src/Models/CustomFieldsValues.php index b66a9661..79dc5be7 100644 --- a/src/Models/CustomFieldsValues.php +++ b/src/Models/CustomFieldsValues.php @@ -8,7 +8,7 @@ class CustomFieldsValues extends AbstractModel public int $custom_fields_id; public string $label; public ?string $value = null; - public int $is_default; + public int $is_default = 0; /** * Initialize method for model. diff --git a/src/Models/Subscription.php b/src/Models/Subscription.php index e9651ce5..d1153bf7 100644 --- a/src/Models/Subscription.php +++ b/src/Models/Subscription.php @@ -167,7 +167,7 @@ public function activate() : bool { $this->is_active = 1; $this->paid = 1; - $this->grace_period_ends = new RawValue('NULL'); + //$this->grace_period_ends = new RawValue('NULL'); $this->ends_at = Carbon::now()->addDays(30)->toDateTimeString(); $this->next_due_payment = $this->ends_at; $this->is_cancelled = 0; diff --git a/src/Providers/CacheDataProvider.php b/src/Providers/CacheDataProvider.php index 44383121..752829f4 100644 --- a/src/Providers/CacheDataProvider.php +++ b/src/Providers/CacheDataProvider.php @@ -2,14 +2,13 @@ namespace Canvas\Providers; +use function Baka\envValue; use Phalcon\Cache; +use Phalcon\Cache\Adapter\Redis; use Phalcon\Cache\AdapterFactory; -use Phalcon\Config; use Phalcon\Di\DiInterface; use Phalcon\Di\ServiceProviderInterface; use Phalcon\Storage\SerializerFactory; -use Phalcon\Cache\Adapter\Redis; -use function Baka\envValue; class CacheDataProvider implements ServiceProviderInterface { @@ -31,12 +30,12 @@ function () use ($config, $app) { $options['prefix'] = $app . '-app-cache'; - $serializerFactory = new SerializerFactory(); $adapterFactory = new AdapterFactory($serializerFactory); $adapter = $adapterFactory->newInstance($adapter, $options); return new Cache($adapter); - }); + } + ); } } diff --git a/src/Providers/SessionProvider.php b/src/Providers/SessionProvider.php index d77db5f8..87a14248 100644 --- a/src/Providers/SessionProvider.php +++ b/src/Providers/SessionProvider.php @@ -3,9 +3,12 @@ namespace Canvas\Providers; use function Baka\envValue; -use Phalcon\Di\ServiceProviderInterface; use Phalcon\Di\DiInterface; +use Phalcon\Di\ServiceProviderInterface; use Phalcon\Session\Adapter\Redis; +use Phalcon\Session\Manager; +use Phalcon\Storage\AdapterFactory; +use Phalcon\Storage\SerializerFactory; class SessionProvider implements ServiceProviderInterface { @@ -19,18 +22,22 @@ public function register(DiInterface $container) : void $container->setShared( 'session', function () use ($app) { - $session = new Redis( - [ - 'uniqueId' => $app, - 'host' => envValue('REDIS_HOST', '127.0.0.1'), - 'port' => (int) envValue('REDIS_PORT', 6379), - 'persistent' => false, - 'lifetime' => 3600, - 'prefix' => 'session', - ] - ); + $options = [ + 'uniqueId' => $app, + 'host' => envValue('REDIS_HOST', '127.0.0.1'), + 'port' => (int) envValue('REDIS_PORT', 6379), + 'index' => '1', + 'prefix' => 'session', + ]; + + $session = new Manager(); + $serializerFactory = new SerializerFactory(); + $factory = new AdapterFactory($serializerFactory); + $redis = new Redis($factory, $options); - $session->start(); + $session + ->setAdapter($redis) + ->start(); return $session; } diff --git a/tests/_support/Helper/Integration.php b/tests/_support/Helper/Integration.php index fcf5f48f..f82161a4 100644 --- a/tests/_support/Helper/Integration.php +++ b/tests/_support/Helper/Integration.php @@ -3,24 +3,18 @@ namespace Helper; use Baka\Database\SystemModules; -use Codeception\Module; +use Canvas\Bootstrap\IntegrationTests; +use Canvas\Models\FileSystem; +use Canvas\Models\FileSystemEntities; +use Canvas\Models\Users; use Codeception\Exception\TestRuntimeException; +use Codeception\Module; use Codeception\TestInterface; -use Canvas\Bootstrap\Api; -use Canvas\Models\Users; -use Niden\Models\Companies; -use Niden\Models\CompaniesXProducts; -use Niden\Models\Individuals; -use Niden\Models\IndividualTypes; -use Niden\Models\Products; -use Niden\Models\ProductTypes; +use Faker\Factory; +use Faker\Generator; use Niden\Mvc\Model\AbstractModel; -use Phalcon\DI\FactoryDefault as PhDI; use Phalcon\Config as PhConfig; -use Canvas\Bootstrap\IntegrationTests; -use Canvas\Models\FileSystem; -use Canvas\Models\FileSystemEntities; -use function Baka\appPath; +use Phalcon\DI\FactoryDefault as PhDI; // here you can define custom actions // all public methods declared in helper class will be available in $I @@ -51,6 +45,8 @@ public function _before(TestInterface $test) //Set default user $user = Users::findFirst(1); $this->diContainer->setShared('userData', $user); + $this->diContainer->setShared('userProvider', new Users()); + $this->savedModels = []; $this->savedRecords = []; } @@ -67,6 +63,16 @@ public function _after(TestInterface $test) $this->diContainer->get('db')->close(); } + /** + * Faker data. + * + * @return void + */ + public function faker() : Generator + { + return Factory::create(); + } + /** * @return mixed */ @@ -92,7 +98,7 @@ public function grabFromDi(string $name) * * @return array */ - public function getModelRelationships(string $class): array + public function getModelRelationships(string $class) : array { /** @var AbstractModel $class */ $model = new $class(); @@ -305,7 +311,7 @@ public function seeRecordSaved($model, $by, $fields) * * @return FileSystemEntities */ - public function getFileSystemEntity(): FileSystemEntities + public function getFileSystemEntity() : FileSystemEntities { $newFilesystem = new FileSystem(); $newFilesystem->companies_id = $this->grabFromDi('userData')->currentCompanyId(); diff --git a/tests/integration/library/Auth/AppCest.php b/tests/integration/library/Auth/AppCest.php index 638f0718..5637844c 100644 --- a/tests/integration/library/Auth/AppCest.php +++ b/tests/integration/library/Auth/AppCest.php @@ -11,7 +11,6 @@ use IntegrationTester; use Page\Data; use Phalcon\Security\Random; -use PhpParser\Node\Expr\Instanceof_; class AppCest { @@ -24,13 +23,14 @@ class AppCest */ public function onContruct() { - $this->app = Apps::getACLApp(Apps::CANVAS_DEFAULT_APP_NAME); + $this->app = Apps::findFirst(); } /** * Register a new Company. * * @param IntegrationTester $I + * * @return void */ public function setCompanyTest(IntegrationTester $I) @@ -53,6 +53,7 @@ public function canSetAppPassword(IntegrationTester $I) * not specific login. * * @param IntegrationTester $I + * * @return void */ public function cantLoginToSpecificApp(IntegrationTester $I) @@ -114,6 +115,7 @@ public function updateUserAppPassword(IntegrationTester $I) * we run it after updateuserpass to make sure we have the correct pass for this speciifc app. * * @param IntegrationTester $I + * * @return boolean */ public function canLoginToSpecificApp(IntegrationTester $I) diff --git a/tests/integration/library/DefaultSetupCest.php b/tests/integration/library/DefaultSetupCest.php index 9f0143c3..b476a8b2 100644 --- a/tests/integration/library/DefaultSetupCest.php +++ b/tests/integration/library/DefaultSetupCest.php @@ -2,16 +2,18 @@ namespace Gewaer\Tests\integration\library\Models; +use Canvas\Auth\Auth; use Canvas\Models\Apps; use Canvas\Models\AppsPlans; use Canvas\Models\AppsSettings; use Canvas\Models\Companies; -use Canvas\Models\Users; use Canvas\Models\Roles; -use Canvas\Models\UsersInvite; use Canvas\Models\Subscription; -use Phalcon\Security\Random; +use Canvas\Models\Users; +use Canvas\Models\UsersInvite; +use Faker\Factory; use IntegrationTester; +use Phalcon\Security\Random; class DefaultSetupCest { @@ -25,18 +27,20 @@ class DefaultSetupCest private $usersInviteEmail; - public function onContruct() { - $this->random = new Random(); - $this->email = 'Email-' . $this->random->base58() . '@example.com'; - $this->password = 'password'; - $this->app = Apps::getACLApp(Apps::CANVAS_DEFAULT_APP_NAME); + $faker = Factory::create(); + $this->random = new Random(); + $this->email = strtolower($faker->firstname . '@example.com'); + $this->password = $faker->password; + $this->app = Apps::findFirst(); } + /** * Confirm the default apps exist. * * @param IntegrationTester $I + * * @return void */ public function getDefaultApp(IntegrationTester $I) @@ -45,9 +49,10 @@ public function getDefaultApp(IntegrationTester $I) } /** - * Validate is an app has an active status or not + * Validate is an app has an active status or not. * * @param UnitTester $I + * * @return void */ public function isActive(IntegrationTester $I) @@ -59,6 +64,7 @@ public function isActive(IntegrationTester $I) * Confirm the default apps exist. * * @param IntegrationTester $I + * * @return void */ public function getDefaultPlan(IntegrationTester $I) @@ -67,16 +73,17 @@ public function getDefaultPlan(IntegrationTester $I) } /** - * Confirm all the apps settings + * Confirm all the apps settings. * * @param IntegrationTester $I + * * @return void */ public function getAllAppSettings(IntegrationTester $I) { $appSettings = AppsSettings::find([ - 'conditions'=> 'apps_id = ?0 and is_deleted = 0', - 'bind'=>[$this->app->id] + 'conditions' => 'apps_id = ?0 and is_deleted = 0', + 'bind' => [$this->app->id] ]); //Assert true if we got the exact number of settings for the app. These are the most basic settings used by an app. @@ -84,9 +91,10 @@ public function getAllAppSettings(IntegrationTester $I) } /** - * Get the active subscription for this company app + * Get the active subscription for this company app. * * @param IntegrationTester $I + * * @return void */ public function getActiveSubscriptionForThisApp(IntegrationTester $I) @@ -95,80 +103,86 @@ public function getActiveSubscriptionForThisApp(IntegrationTester $I) } /** - * Get all Roles of the app + * Get all Roles of the app. * * @param IntegrationTester $I + * * @return void */ public function getAllRoles(IntegrationTester $I) { $role = Roles::find([ - 'conditions'=> 'apps_id = ?0 and is_deleted = 0', - 'bind'=>[$this->app->id] + 'conditions' => 'apps_id = ?0 and is_deleted = 0', + 'bind' => [$this->app->id] ]); $I->assertTrue(is_object($role)); } /** - * Register a new Company + * Register a new Company. * * @param IntegrationTester $I + * * @return void */ public function registerCompanyTest(IntegrationTester $I) { $random = new Random(); - $newCompany = Companies::register( $I->grabFromDi('userData'), 'TestCompany-'. $random->base58()); + $newCompany = Companies::register($I->grabFromDi('userData'), 'TestCompany-' . $random->base58()); $I->assertTrue($newCompany instanceof Companies); } /** - * Signup a new user + * Signup a new user. * * @param IntegrationTester $I + * * @return void */ public function signupTest(IntegrationTester $I) { - $user = new Users(); - $user->email = $this->email; - $user->firstname = 'Firstname-' . $this->random->base58(); - $user->lastname = 'Lastname-' . $this->random->base58(); - $user->password = $this->password; - $user->displayname = 'DisplayName-' . $this->random->base58(); - $user->defaultCompanyName = 'Company-' . $this->random->base58(); - $I->assertTrue($user->signup() instanceof Users); - + $user = [ + 'email' => $this->email, + 'firstname' => $I->faker()->firstname, + 'lastname' => $I->faker()->lastname, + 'password' => $this->password, + 'displayname' => $I->faker()->name, + 'defaultCompanyName' => $I->faker()->company, + ]; + + $I->assertTrue(Auth::signUp($user) instanceof Users); } - /** - * Login the new user + * Login the new user. * * @param IntegrationTester $I + * * @return void */ public function loginTest(IntegrationTester $I) { - $I->assertTrue(Users::login($this->email, $this->password, 1, 0, '127.0.0.1') instanceof Users); + $I->assertTrue(Auth::login($this->email, $this->password, 1, 0, $I->faker()->ipv4) instanceof Users); } /** - * Check if email does not exist on system for users invite + * Check if email does not exist on system for users invite. * * @param IntegrationTester $I + * * @return void */ public function emailIsValidTest(IntegrationTester $I) { - $this->usersInviteEmail = $this->random->base58() . '@example.com'; + $this->usersInviteEmail = $I->faker()->email; $I->assertTrue(UsersInvite::isValid($this->usersInviteEmail)); } /** - * Verify if users invite exists by hash + * Verify if users invite exists by hash. * * @param IntegrationTester $I + * * @return void */ public function getUsersInviteByHashTest(IntegrationTester $I) diff --git a/tests/integration/library/Models/AppsCest.php b/tests/integration/library/Models/AppsCest.php index fc9e53b7..00f8842b 100644 --- a/tests/integration/library/Models/AppsCest.php +++ b/tests/integration/library/Models/AppsCest.php @@ -7,8 +7,6 @@ use Canvas\Models\AppsSettings; use Canvas\Models\UserWebhooks; use IntegrationTester; -use Canvas\Providers\ConfigProvider; -use Phalcon\Di\FactoryDefault; class AppsCest { @@ -29,6 +27,7 @@ public function validateRelationships(IntegrationTester $I) * Confirm the default apps exist. * * @param IntegrationTester $I + * * @return void */ public function getDefaultApp(IntegrationTester $I) @@ -41,6 +40,7 @@ public function getDefaultApp(IntegrationTester $I) * Confirm the default apps exist. * * @param IntegrationTester $I + * * @return void */ public function getGewaerApp(IntegrationTester $I) @@ -53,6 +53,7 @@ public function getGewaerApp(IntegrationTester $I) * Validate is an app has an active status or not. * * @param UnitTester $I + * * @return void */ public function isActive(IntegrationTester $I) @@ -70,6 +71,6 @@ public function validateEcosystemAuth(IntegrationTester $I) public function validateSubscriptionBased(IntegrationTester $I) { $app = Apps::getACLApp('Default'); - $I->assertTrue(is_bool($app->subscriptioBased())); + $I->assertTrue(is_bool($app->subscriptionBased())); } } diff --git a/tests/integration/library/Models/SubscriptionCest.php b/tests/integration/library/Models/SubscriptionCest.php index 105d7c1a..d5ee28a0 100644 --- a/tests/integration/library/Models/SubscriptionCest.php +++ b/tests/integration/library/Models/SubscriptionCest.php @@ -4,9 +4,6 @@ use Canvas\Models\Subscription; use IntegrationTester; -use Canvas\Providers\ConfigProvider; -use Phalcon\Di\FactoryDefault; -use Phalcon\Security\Random; class SubscriptionCest { @@ -14,6 +11,7 @@ class SubscriptionCest * Get the active subscription for this company app. * * @param IntegrationTester $I + * * @return void */ public function getActiveForThisApp(IntegrationTester $I) @@ -25,6 +23,7 @@ public function getActiveForThisApp(IntegrationTester $I) * Get subscription by user's default company. * * @param IntegrationTester $I + * * @return void */ public function getByDefaultCompany(IntegrationTester $I) @@ -36,6 +35,7 @@ public function getByDefaultCompany(IntegrationTester $I) * Search current company's app setting with key paid to verify payment status for current company. * * @param IntegrationTester $I + * * @return void */ public function getPaymentStatus(IntegrationTester $I) diff --git a/tests/unit/cli/ClearCacheCest.php b/tests/unit/cli/ClearCacheCest.php index b82260a3..2c8c4c69 100644 --- a/tests/unit/cli/ClearCacheCest.php +++ b/tests/unit/cli/ClearCacheCest.php @@ -2,19 +2,20 @@ namespace Canvas\Tests\unit\cli; -use FilesystemIterator; +use function Baka\appPath; use Canvas\Cli\Tasks\ClearcacheTask; use Canvas\Providers\CacheDataProvider; +use Canvas\Providers\ConfigProvider; use Canvas\Providers\RedisProvider; -use Phalcon\Di\FactoryDefault\Cli; -use UnitTester; use function fclose; +use FilesystemIterator; use function iterator_count; -use function Baka\appPath; use function ob_end_clean; use function ob_get_contents; use function ob_start; +use Phalcon\Di\FactoryDefault\Cli; use function uniqid; +use UnitTester; class ClearCacheCest { @@ -24,6 +25,8 @@ public function checkClearCache(UnitTester $I) $path = appPath('storage/cache/data/'); $container = new Cli(); + $config = new ConfigProvider(); + $config->register($container); $redis = new RedisProvider(); $redis->register($container); $cache = new CacheDataProvider(); diff --git a/tests/unit/library/Providers/CacheCest.php b/tests/unit/library/Providers/CacheCest.php index 0a1f34cf..0d162fb6 100644 --- a/tests/unit/library/Providers/CacheCest.php +++ b/tests/unit/library/Providers/CacheCest.php @@ -3,10 +3,11 @@ namespace Canvas\Tests\unit\library\Providers; use Canvas\Providers\CacheDataProvider; +use Canvas\Providers\ConfigProvider; +use Phalcon\Cache; use Phalcon\Cache\Backend\Libmemcached; use Phalcon\Di\FactoryDefault; use UnitTester; -use Redis; class CacheCest { @@ -16,12 +17,14 @@ class CacheCest public function checkRegistration(UnitTester $I) { $diContainer = new FactoryDefault(); + $config = new ConfigProvider(); + $config->register($diContainer); $provider = new CacheDataProvider(); $provider->register($diContainer); $I->assertTrue($diContainer->has('cache')); /** @var Libmemcached $cache */ $cache = $diContainer->getShared('cache'); - $I->assertTrue($cache instanceof Redis); + $I->assertTrue($cache instanceof Cache); } } diff --git a/tests/unit/library/Providers/SessionCest.php b/tests/unit/library/Providers/SessionCest.php index d55b7dd5..a4e7d0f3 100644 --- a/tests/unit/library/Providers/SessionCest.php +++ b/tests/unit/library/Providers/SessionCest.php @@ -2,11 +2,11 @@ namespace Canvas\Tests\unit\library\Providers; -use Canvas\Providers\SessionProvider; use Canvas\Providers\ConfigProvider; +use Canvas\Providers\SessionProvider; use Phalcon\Di\FactoryDefault; +use Phalcon\Session\Manager; use UnitTester; -use Phalcon\Session\Adapter\Redis; class SessionCest { @@ -25,6 +25,7 @@ public function checkRegistration(UnitTester $I) $I->assertTrue($diContainer->has('session')); $session = $diContainer->getShared('session'); - $I->assertTrue($session instanceof Redis); + + $I->assertTrue($session instanceof Manager); } } From 205ba926786c03fe27344bfe62ecccd973f965bf Mon Sep 17 00:00:00 2001 From: mctekk Date: Wed, 1 Jul 2020 01:59:27 -0400 Subject: [PATCH 21/26] finish with core 7.4 test --- src/Core/config.php | 4 +- src/Filesystem/Helper.php | 60 +------------------ tests/integration/library/Acl/AclCest.php | 14 ++--- tests/integration/library/Auth/AuthCest.php | 6 +- .../library/Filesystem/HelperCest.php | 8 ++- .../library/Models/AppsPlanCest.php | 3 +- .../library/Models/CompaniesCest.php | 1 + tests/unit/library/Providers/ConfigCest.php | 7 +-- 8 files changed, 26 insertions(+), 77 deletions(-) diff --git a/src/Core/config.php b/src/Core/config.php index f67c3906..e6ba3c54 100644 --- a/src/Core/config.php +++ b/src/Core/config.php @@ -40,8 +40,8 @@ ] ], 'filesystem' => [ - //temp directoy where we will upload our files before moving them to the final location - 'uploadDirectoy' => appPath(envValue('LOCAL_UPLOAD_DIR_TEMP')), + //temp directory where we will upload our files before moving them to the final location + 'uploadDirectory' => appPath(envValue('LOCAL_UPLOAD_DIR_TEMP')), 'local' => [ 'path' => appPath(envValue('LOCAL_UPLOAD_DIR')), 'cdn' => envValue('FILESYSTEM_CDN_URL'), diff --git a/src/Filesystem/Helper.php b/src/Filesystem/Helper.php index 80cc6646..f3c58130 100644 --- a/src/Filesystem/Helper.php +++ b/src/Filesystem/Helper.php @@ -4,6 +4,7 @@ namespace Canvas\Filesystem; +use Baka\Filesystem\Helper as FilesystemHelper; use Baka\Validations\File as FileValidation; use Canvas\Models\FileSystem; use Exception; @@ -13,53 +14,8 @@ use Phalcon\Image\Adapter\Gd; use Phalcon\Text; -class Helper +class Helper extends FilesystemHelper { - /** - * Generate a unique name in a specific dir. - * - * @param string $dir the specific dir where the file will be saved - * @param bool $withPath - * - * @return string - */ - public static function generateUniqueName(FileInterface $file, string $dir, $withPath = false) : string - { - // the provided path has to be a dir - if (!is_dir($dir)) { - throw new Exception("The dir provided: '{$dir}' isn't a valid one."); - } - - $path = tempnam($dir . '/', ''); - - //this function creates a file (like touch) so, we have to delete it. - unlink($path); - $uniqueName = $path; - if (!$withPath) { - $uniqueName = str_replace($dir, '', $path); - } - - return $uniqueName . '.' . strtolower($file->getExtension()); - } - - /** - * Create a File instance from a given path. - * - * @param string $path Path of the file to be used - * - * @return File - */ - public static function pathToFile(string $path) : File - { - //Simulate the body of a Phalcon\Request\File class - return new File([ - 'name' => basename($path), - 'type' => mime_content_type($path), - 'tmp_name' => $path, - 'error' => 0, - 'size' => filesize($path), - ]); - } /** * Given a file create it in the filesystem. @@ -112,18 +68,6 @@ public static function upload(FileInterface $file) : FileSystem return $fileSystem; } - /** - * Is this file a image? - * - * @param File $file - * - * @return boolean - */ - public static function isImage(FileInterface $file) : bool - { - return strpos(mime_content_type($file->getTempName()), 'image/') === 0; - } - /** * Given a image set its dimension. * diff --git a/tests/integration/library/Acl/AclCest.php b/tests/integration/library/Acl/AclCest.php index 73342f59..35cb1cce 100644 --- a/tests/integration/library/Acl/AclCest.php +++ b/tests/integration/library/Acl/AclCest.php @@ -2,19 +2,19 @@ namespace Gewaer\Tests\integration\library\Acl; -use IntegrationTester; use Canvas\Acl\Manager as AclManager; -use Phalcon\Di\FactoryDefault; +use Canvas\Models\Users; use Canvas\Providers\AclProvider; use Canvas\Providers\ConfigProvider; use Canvas\Providers\DatabaseProvider; -use Canvas\Models\Users; +use IntegrationTester; use Page\Data; +use Phalcon\Di\FactoryDefault; class AclCest { /** - * Initiliaze ACL + * Initiliaze ACL. * * @return void */ @@ -55,14 +55,14 @@ public function checkAllowPermission(IntegrationTester $I) { $acl = $this->aclService($I); - $I->assertTrue($acl->allow('Admins', 'Default.Users', ['read', 'list', 'create'])); + $I->assertTrue(is_null($acl->allow('Admins', 'Default.Users', ['read', 'list', 'create']))); } public function checkDenyPermission(IntegrationTester $I) { $acl = $this->aclService($I); - $I->assertTrue($acl->deny('Admins', 'Default.Users', ['update', 'delete'])); + $I->assertTrue(is_null($acl->deny('Admins', 'Default.Users', ['update', 'delete']))); } public function checkIsAllowPermission(IntegrationTester $I) @@ -114,7 +114,7 @@ public function checkUsersRemoveRole(IntegrationTester $I) { $acl = $this->aclService($I); $userData = Users::findFirstByEmail(Data::loginJsonDefaultUser()['email']); - + $I->assertTrue($userData->assignRole('Default.Admins')); $I->assertTrue($userData->removeRole('Default.Admins')); diff --git a/tests/integration/library/Auth/AuthCest.php b/tests/integration/library/Auth/AuthCest.php index 54517ad0..949a4601 100644 --- a/tests/integration/library/Auth/AuthCest.php +++ b/tests/integration/library/Auth/AuthCest.php @@ -3,6 +3,7 @@ namespace Gewaer\Tests\integration\library\Jobs; use Canvas\Auth\App; +use Canvas\Auth\Auth; use Canvas\Auth\Factory; use Canvas\Hashing\Password; use Canvas\Models\Users; @@ -12,7 +13,6 @@ class AuthCest { - public function setAppPassword(IntegrationTester $I) { $oldUser = Users::findFirstByEmail(Data::loginJsonDefaultUser()['email']); @@ -61,13 +61,14 @@ public function verifyRestAttemptsCount(IntegrationTester $I) * User object since the password is the same for all apps. * * @param IntegrationTester $I + * * @return void */ public function getEcosystemLogin(IntegrationTester $I) { $appAuthConfig = Factory::create(true); - $I->assertTrue($appAuthConfig instanceof Users); + $I->assertTrue($appAuthConfig instanceof Auth); } /** @@ -75,6 +76,7 @@ public function getEcosystemLogin(IntegrationTester $I) * object where the password is uniq for that app. * * @param IntegrationTester $I + * * @return void */ public function getAppLogin(IntegrationTester $I) diff --git a/tests/integration/library/Filesystem/HelperCest.php b/tests/integration/library/Filesystem/HelperCest.php index 7dce30a5..391288b4 100644 --- a/tests/integration/library/Filesystem/HelperCest.php +++ b/tests/integration/library/Filesystem/HelperCest.php @@ -4,10 +4,12 @@ use Aws\S3\Exception\S3Exception; use Canvas\Filesystem\Helper; -use IntegrationTester; -use Phalcon\Http\Request\File; use Canvas\Models\FileSystem; use Exception; +use IntegrationTester; +use Phalcon\Http\Request\File; + +use function Baka\appPath; class HelperCest { @@ -27,7 +29,7 @@ public function pathToFile(IntegrationTester $I) public function upload(IntegrationTester $I) { try { - $file = Helper::upload(Helper::pathToFile('./README.md')); + $file = Helper::upload(Helper::pathToFile(appPath('README.md'))); $I->assertTrue($file instanceof FileSystem); } catch (S3Exception $s) { diff --git a/tests/integration/library/Models/AppsPlanCest.php b/tests/integration/library/Models/AppsPlanCest.php index 1c10ea7b..757a3095 100644 --- a/tests/integration/library/Models/AppsPlanCest.php +++ b/tests/integration/library/Models/AppsPlanCest.php @@ -15,6 +15,7 @@ public function validateRelationships(IntegrationTester $I) $actual = $I->getModelRelationships(AppsPlans::class); $expected = [ [0, 'apps_id', Apps::class, 'id', ['alias' => 'app']], + [0, 'payment_frequencies_id', PaymentFrequencies::class, 'id', ['alias' => 'paymentFrequencies']], [0, 'payment_frequencies_id', PaymentFrequencies::class, 'id', ['alias' => 'paymentFrequecies']], [2, 'apps_id', AppsPlansSettings::class, 'apps_id', ['alias' => 'settings']] ]; @@ -42,6 +43,6 @@ public function getDefaultPlan(IntegrationTester $I) public function get(IntegrationTester $I) { $appPlan = AppsPlans::findFirst(1); - $I->assertTrue(gettype($appPlan->get('example123456')) == 'string'); + $I->assertTrue(gettype($appPlan->get('users_total')) == 'string'); } } diff --git a/tests/integration/library/Models/CompaniesCest.php b/tests/integration/library/Models/CompaniesCest.php index b4e9486d..26192a11 100644 --- a/tests/integration/library/Models/CompaniesCest.php +++ b/tests/integration/library/Models/CompaniesCest.php @@ -46,6 +46,7 @@ public function validateRelationships(IntegrationTester $I) [1, 'id', UserCompanyApps::class, 'companies_id', ['alias' => 'apps', 'params' => ['conditions' => 'apps_id = 1']]], [1, 'id', Subscription::class, 'companies_id', ['alias' => 'subscription', 'params' => ['conditions' => 'apps_id = 1 AND is_deleted = 0', 'order' => 'id DESC']]], [1, 'id', FileSystemEntities::class, 'entity_id', ['alias' => 'files', 'params' => ['conditions' => 'system_modules_id = ?0', 'bind' => [1]]]], + [4, 'id', Users::class, 'id', ['alias' => 'users', 'params' => ['conditions' => 'apps_id = 1 AND Canvas\Models\UsersAssociatedApps.is_deleted = 0']]], ]; $I->assertEquals($expected, $actual); diff --git a/tests/unit/library/Providers/ConfigCest.php b/tests/unit/library/Providers/ConfigCest.php index 2ec1c488..e484adeb 100644 --- a/tests/unit/library/Providers/ConfigCest.php +++ b/tests/unit/library/Providers/ConfigCest.php @@ -45,7 +45,7 @@ public function checkRegistration(UnitTester $I) $I->assertTrue(isset($configArray['application']['debug']['logRequest'])); //FileSystem - $I->assertTrue(isset($configArray['filesystem']['uploadDirectoy'])); + $I->assertTrue(isset($configArray['filesystem']['uploadDirectory'])); $I->assertTrue(isset($configArray['filesystem']['local']['path'])); $I->assertTrue(isset($configArray['filesystem']['local']['cdn'])); $I->assertTrue(isset($configArray['filesystem']['s3']['info']['credentials']['key'])); @@ -58,9 +58,8 @@ public function checkRegistration(UnitTester $I) //Cache $I->assertTrue(isset($configArray['cache'])); - $I->assertTrue(isset($configArray['cache']['data'])); - $I->assertTrue(isset($configArray['cache']['data']['front'])); - $I->assertTrue(isset($configArray['cache']['data']['back'])); + $I->assertTrue(isset($configArray['cache']['adapter'])); + $I->assertTrue(isset($configArray['cache']['options'])); $I->assertTrue(isset($configArray['cache']['metadata'])); $I->assertTrue(isset($configArray['cache']['metadata']['dev'])); $I->assertTrue(isset($configArray['cache']['metadata']['prod'])); From d1619e68cd6cfa85efe14e4d489506bbcfdc4d04 Mon Sep 17 00:00:00 2001 From: Rafael White Date: Wed, 1 Jul 2020 14:32:31 -0400 Subject: [PATCH 22/26] Fix Acl integration tests --- src/Cli/tasks/AclTask.php | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/Cli/tasks/AclTask.php b/src/Cli/tasks/AclTask.php index 2724d19a..f2edd4c8 100644 --- a/src/Cli/tasks/AclTask.php +++ b/src/Cli/tasks/AclTask.php @@ -35,7 +35,7 @@ public function setupDefaultRoles() $this->acl->addRole('Default.Agents'); $this->acl->addRole('Default.Users'); - $this->acl->addResource('Default.Users', ['test-create', 'test-update', 'read', 'list', 'create', 'update', 'delete']); + $this->acl->addComponent('Default.Users', ['test-create', 'test-update', 'read', 'list', 'create', 'update', 'delete']); $this->acl->allow('Admins', 'Default.Users', ['read', 'list', 'create', 'update', 'delete']); } @@ -47,20 +47,20 @@ public function setupDefaultRoles() public function crmAction() { $this->acl->addRole('CRM.Users'); - $this->acl->addResource('CRM.Users', ['read', 'list', 'create', 'update', 'delete']); + $this->acl->addComponent('CRM.Users', ['read', 'list', 'create', 'update', 'delete']); $this->acl->allow('Users', 'CRM.Users', ['read', 'list', 'create']); $this->acl->deny('Users', 'CRM.Users', ['update', 'delete']); //Apps Settings - $this->acl->addResource('CRM.AppsSettings', ['read', 'list', 'create', 'update', 'delete']); + $this->acl->addComponent('CRM.AppsSettings', ['read', 'list', 'create', 'update', 'delete']); $this->acl->allow('Users', 'CRM.AppsSettings', ['read', 'list', 'create', 'update', 'delete']); //Companies Settings - $this->acl->addResource('CRM.CompaniesSettings', ['read', 'list', 'create', 'update', 'delete']); + $this->acl->addComponent('CRM.CompaniesSettings', ['read', 'list', 'create', 'update', 'delete']); $this->acl->allow('Users', 'CRM.CompaniesSettings', ['read', 'list', 'create', 'update', 'delete']); //Apps plans - $this->acl->addResource('CRM.Apps-plans', ['read', 'list', 'create', 'update', 'delete']); + $this->acl->addComponent('CRM.Apps-plans', ['read', 'list', 'create', 'update', 'delete']); $this->acl->allow('Users', 'CRM.Apps-plans', ['read', 'list', 'create', 'update', 'delete']); } @@ -69,9 +69,9 @@ public function crmAction() * * @return void */ - public function kanvas(): void + public function kanvas() : void { - $this->acl->addResource( + $this->acl->addComponent( 'Default.SettingsMenu', [ 'company-settings', @@ -91,7 +91,7 @@ public function kanvas(): void ]; foreach ($defaultResources as $resource) { - $this->acl->addResource( + $this->acl->addComponent( $resource, [ 'read', From 2233b315d127c9d57acb0ec7a1b47c0801ac0717 Mon Sep 17 00:00:00 2001 From: Rafael White Date: Wed, 1 Jul 2020 15:58:14 -0400 Subject: [PATCH 23/26] Update travis file --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 20fd92ac..23071a96 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,7 @@ language: php php: -- 7.2 - 7.3 +- 7.4 services: - mysql - memcached @@ -37,7 +37,7 @@ cache: - "~/cphalcon" install: - composer self-update -- cd ~/ && rm -rf cphalcon && git clone -b 3.4.x -q --depth=1 https://github.com/phalcon/cphalcon.git +- cd ~/ && rm -rf cphalcon && git clone -b 4.x -q --depth=1 https://github.com/phalcon/cphalcon.git && cd cphalcon/build && ./install - echo 'extension = "phalcon.so"' >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini - echo "extension = redis.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini From c9f38b363b167ac871f926749b58f5a9684f4264 Mon Sep 17 00:00:00 2001 From: Rafael White Date: Thu, 2 Jul 2020 10:54:31 -0400 Subject: [PATCH 24/26] Update carbon dependency version --- composer.json | 2 +- composer.lock | 7986 +++++++++++++++++++++++++------------------------ 2 files changed, 4082 insertions(+), 3906 deletions(-) diff --git a/composer.json b/composer.json index 5f72225c..6f2e5920 100644 --- a/composer.json +++ b/composer.json @@ -21,7 +21,7 @@ "mark-gerarts/auto-mapper-plus": "2.0.0-alpha1", "monolog/monolog": "^1.23", "namshi/notificator": " 1.0.*", - "nesbot/carbon": "~1.18", + "nesbot/carbon": "^2.3", "odan/phinx-migrations-generator": "^5", "phalcon/ide-stubs": "^3.3", "phalcon/incubator": "4.0.x-dev", diff --git a/composer.lock b/composer.lock index e34d1605..6b33067d 100644 --- a/composer.lock +++ b/composer.lock @@ -4,20 +4,20 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "fc2bfafa12aec22ad46b5fb84196a477", + "content-hash": "f74f13270583f3da014dbe4a7a9563ee", "packages": [ { "name": "aws/aws-sdk-php", - "version": "3.138.1", + "version": "3.144.2", "source": { "type": "git", "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "66df78e714c7ac87a9ea2bbb77cde586649d0141" + "reference": "0a0b9e4d485fe0cd53db2a4075eba9a416d8331c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/66df78e714c7ac87a9ea2bbb77cde586649d0141", - "reference": "66df78e714c7ac87a9ea2bbb77cde586649d0141", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/0a0b9e4d485fe0cd53db2a4075eba9a416d8331c", + "reference": "0a0b9e4d485fe0cd53db2a4075eba9a416d8331c", "shasum": "" }, "require": { @@ -40,6 +40,7 @@ "ext-pcntl": "*", "ext-sockets": "*", "nette/neon": "^2.3", + "paragonie/random_compat": ">= 2", "phpunit/phpunit": "^4.8.35|^5.4.3", "psr/cache": "^1.0", "psr/simple-cache": "^1.0", @@ -88,196 +89,24 @@ "s3", "sdk" ], - "time": "2020-05-14T18:17:11+00:00" - }, - { - "name": "baka/baka", - "version": "v0.5.4", - "source": { - "type": "git", - "url": "https://github.com/bakaphp/baka.git", - "reference": "6dc7aa2d0c114d5dffc1b3a00f6cf0199fcc33ab" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/bakaphp/baka/zipball/6dc7aa2d0c114d5dffc1b3a00f6cf0199fcc33ab", - "reference": "6dc7aa2d0c114d5dffc1b3a00f6cf0199fcc33ab", - "shasum": "" - }, - "require": { - "dompdf/dompdf": "^0.6.1", - "duncan3dc/fork-helper": "^2.2.0", - "elasticsearch/elasticsearch": "^6.1", - "ext-phalcon": ">=3.4", - "guzzlehttp/guzzle": "^6.3", - "lcobucci/jwt": "^3.2", - "monolog/monolog": "^1.16", - "nesbot/carbon": "~1.0", - "phalcon/incubator": "^3.4", - "php": ">=7.2", - "php-amqplib/php-amqplib": "^2.9", - "robmorgan/phinx": "^0.11", - "stripe/stripe-php": "~6.0", - "swiftmailer/swiftmailer": "^6", - "symfony/var-dumper": "^4.2", - "vlucas/phpdotenv": "^2.4" - }, - "replace": { - "baka/auth": "self.version", - "baka/blameable": "self.version", - "baka/cashier": "self.version", - "baka/database": "self.version", - "baka/elasticsearch": "self.version", - "baka/http": "self.version", - "baka/mail": "self.version", - "baka/phalcon-throttler": "self.version", - "baka/router": "self.version", - "baka/support": "self.version" - }, - "require-dev": { - "codeception/codeception": "^4.1", - "codeception/module-asserts": "^1.2", - "codeception/module-filesystem": "^1.0", - "codeception/module-phalcon": "^1.0", - "codeception/verify": "*", - "duncan3dc/fork-helper": "^2.2.0", - "fzaninotto/faker": "^1.9", - "odan/phinx-migrations-generator": "^4", - "phpunit/phpunit": "^8.5", - "squizlabs/php_codesniffer": "1.*", - "symfony/var-dumper": "^4.3@dev" - }, - "suggest": { - "ext-redis": "Required to use the Redis cache and queue drivers (^4.0|^5.0)." - }, - "type": "library", - "autoload": { - "psr-4": { - "Baka\\": "src/", - "Phalcon\\Cashier\\": "src/cashier/" - }, - "files": [ - "src/functions.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "mctekk", - "email": "max@mctekk.com" - } - ], - "description": "Baka Packages", - "keywords": [ - "canvas", - "saas" - ], - "time": "2020-05-12T15:36:16+00:00" - }, - { - "name": "bakaphp/php-apple-signin", - "version": "v2.0", - "source": { - "type": "git", - "url": "https://github.com/bakaphp/apple-signin.git", - "reference": "e99d122e24b8fea65c3a2e401db7de68e02b53c4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/bakaphp/apple-signin/zipball/e99d122e24b8fea65c3a2e401db7de68e02b53c4", - "reference": "e99d122e24b8fea65c3a2e401db7de68e02b53c4", - "shasum": "" - }, - "type": "library", - "autoload": { - "psr-4": { - "Baka\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mctekk" - } - ], - "description": "A simple library to decode and parse Apple Sign In client tokens.", - "keywords": [ - "JWK", - "apple", - "in", - "ios", - "jwt", - "php", - "sign" - ], - "time": "2020-03-11T16:56:32+00:00" - }, - { - "name": "cakephp/cache", - "version": "3.8.12", - "source": { - "type": "git", - "url": "https://github.com/cakephp/cache.git", - "reference": "09b2a1c4929e134456d30c61d9dbf6e10ace8436" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/cakephp/cache/zipball/09b2a1c4929e134456d30c61d9dbf6e10ace8436", - "reference": "09b2a1c4929e134456d30c61d9dbf6e10ace8436", - "shasum": "" - }, - "require": { - "cakephp/core": "^3.6.0", - "php": ">=5.6.0", - "psr/simple-cache": "^1.0.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Cake\\Cache\\": "." - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "CakePHP Community", - "homepage": "https://github.com/cakephp/cache/graphs/contributors" - } - ], - "description": "Easy to use Caching library with support for multiple caching backends", - "homepage": "https://cakephp.org", - "keywords": [ - "cache", - "caching", - "cakephp" - ], - "time": "2020-04-19T21:38:42+00:00" + "time": "2020-07-01T18:18:54+00:00" }, { "name": "cakephp/collection", - "version": "3.8.12", + "version": "4.0.9", "source": { "type": "git", "url": "https://github.com/cakephp/collection.git", - "reference": "013e9d02552c56d737a6bff91e59544c735efed7" + "reference": "96bfd16c815fb8cbdaf736d5dc5dc9236af76567" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cakephp/collection/zipball/013e9d02552c56d737a6bff91e59544c735efed7", - "reference": "013e9d02552c56d737a6bff91e59544c735efed7", + "url": "https://api.github.com/repos/cakephp/collection/zipball/96bfd16c815fb8cbdaf736d5dc5dc9236af76567", + "reference": "96bfd16c815fb8cbdaf736d5dc5dc9236af76567", "shasum": "" }, "require": { - "php": ">=5.6.0" + "php": ">=7.2.0" }, "type": "library", "autoload": { @@ -306,25 +135,25 @@ "collections", "iterators" ], - "time": "2020-01-10T15:24:40+00:00" + "time": "2020-05-20T14:35:50+00:00" }, { "name": "cakephp/core", - "version": "3.8.12", + "version": "4.0.9", "source": { "type": "git", "url": "https://github.com/cakephp/core.git", - "reference": "16249fa6771663e6649cbdb832f7ff25bf568b84" + "reference": "44f2d71250fa8e2d88e93580987bfc2ab0f4455b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cakephp/core/zipball/16249fa6771663e6649cbdb832f7ff25bf568b84", - "reference": "16249fa6771663e6649cbdb832f7ff25bf568b84", + "url": "https://api.github.com/repos/cakephp/core/zipball/44f2d71250fa8e2d88e93580987bfc2ab0f4455b", + "reference": "44f2d71250fa8e2d88e93580987bfc2ab0f4455b", "shasum": "" }, "require": { - "cakephp/utility": "^3.6.0", - "php": ">=5.6.0" + "cakephp/utility": "^4.0", + "php": ">=7.2.0" }, "suggest": { "cakephp/cache": "To use Configure::store() and restore().", @@ -356,28 +185,29 @@ "core", "framework" ], - "time": "2020-01-10T15:24:40+00:00" + "time": "2020-06-12T16:55:29+00:00" }, { "name": "cakephp/database", - "version": "3.8.12", + "version": "4.0.9", "source": { "type": "git", "url": "https://github.com/cakephp/database.git", - "reference": "489591545fd223d6cdbf022049f7c73ede0cb4fa" + "reference": "b7ba8b442cfc3c35acb642824e7a6615763044ab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cakephp/database/zipball/489591545fd223d6cdbf022049f7c73ede0cb4fa", - "reference": "489591545fd223d6cdbf022049f7c73ede0cb4fa", + "url": "https://api.github.com/repos/cakephp/database/zipball/b7ba8b442cfc3c35acb642824e7a6615763044ab", + "reference": "b7ba8b442cfc3c35acb642824e7a6615763044ab", "shasum": "" }, "require": { - "cakephp/cache": "^3.6.0", - "cakephp/core": "^3.6.0", - "cakephp/datasource": "^3.6.0", - "cakephp/log": "^3.6.0", - "php": ">=5.6.0" + "cakephp/core": "^4.0", + "cakephp/datasource": "^4.0", + "php": ">=7.2.0" + }, + "suggest": { + "cakephp/i18n": "If you are using locale-aware datetime formats or Chronos types." }, "type": "library", "autoload": { @@ -404,25 +234,27 @@ "database abstraction", "pdo" ], - "time": "2020-04-13T01:41:15+00:00" + "time": "2020-06-12T16:55:29+00:00" }, { "name": "cakephp/datasource", - "version": "3.8.12", + "version": "4.0.9", "source": { "type": "git", "url": "https://github.com/cakephp/datasource.git", - "reference": "adc983f7c4d99c4361e3a8e4c0db7cdde26ee180" + "reference": "385cf016158ba7c81d78836050eed262f4a8c072" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cakephp/datasource/zipball/adc983f7c4d99c4361e3a8e4c0db7cdde26ee180", - "reference": "adc983f7c4d99c4361e3a8e4c0db7cdde26ee180", + "url": "https://api.github.com/repos/cakephp/datasource/zipball/385cf016158ba7c81d78836050eed262f4a8c072", + "reference": "385cf016158ba7c81d78836050eed262f4a8c072", "shasum": "" }, "require": { - "cakephp/core": "^3.6.0", - "php": ">=5.6.0" + "cakephp/core": "^4.0", + "php": ">=7.2.0", + "psr/log": "^1.1", + "psr/simple-cache": "^1.0" }, "suggest": { "cakephp/cache": "If you decide to use Query caching.", @@ -454,70 +286,25 @@ "entity", "query" ], - "time": "2020-04-14T14:22:40+00:00" - }, - { - "name": "cakephp/log", - "version": "3.8.12", - "source": { - "type": "git", - "url": "https://github.com/cakephp/log.git", - "reference": "2dae5b32430ca89d66c73bd9d568fcf68736eae5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/cakephp/log/zipball/2dae5b32430ca89d66c73bd9d568fcf68736eae5", - "reference": "2dae5b32430ca89d66c73bd9d568fcf68736eae5", - "shasum": "" - }, - "require": { - "cakephp/core": "^3.6.0", - "php": ">=5.6.0", - "psr/log": "^1.0.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Cake\\Log\\": "." - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "CakePHP Community", - "homepage": "https://github.com/cakephp/log/graphs/contributors" - } - ], - "description": "CakePHP logging library with support for multiple different streams", - "homepage": "https://cakephp.org", - "keywords": [ - "Streams", - "cakephp", - "log", - "logging" - ], - "time": "2020-01-10T15:24:40+00:00" + "time": "2020-06-02T17:54:38+00:00" }, { "name": "cakephp/utility", - "version": "3.8.12", + "version": "4.0.9", "source": { "type": "git", "url": "https://github.com/cakephp/utility.git", - "reference": "9f121defbff4b5f3691b33de8cb203b8923fc2a4" + "reference": "21772f1f404c651890ab10277f32f7a2d77872d6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cakephp/utility/zipball/9f121defbff4b5f3691b33de8cb203b8923fc2a4", - "reference": "9f121defbff4b5f3691b33de8cb203b8923fc2a4", + "url": "https://api.github.com/repos/cakephp/utility/zipball/21772f1f404c651890ab10277f32f7a2d77872d6", + "reference": "21772f1f404c651890ab10277f32f7a2d77872d6", "shasum": "" }, "require": { - "cakephp/core": "^3.6.0", - "php": ">=5.6.0" + "cakephp/core": "^4.0", + "php": ">=7.2.0" }, "suggest": { "ext-intl": "To use Text::transliterate() or Text::slug()", @@ -552,36 +339,45 @@ "string", "utility" ], - "time": "2020-02-18T01:57:35+00:00" + "time": "2020-05-29T20:56:19+00:00" }, { - "name": "clue/stream-filter", - "version": "v1.4.1", + "name": "composer/package-versions-deprecated", + "version": "1.8.1", "source": { "type": "git", - "url": "https://github.com/clue/php-stream-filter.git", - "reference": "5a58cc30a8bd6a4eb8f856adf61dd3e013f53f71" + "url": "https://github.com/composer/package-versions-deprecated.git", + "reference": "b9805885293f3957ee0dd42616ac6915c4ac9a4b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/clue/php-stream-filter/zipball/5a58cc30a8bd6a4eb8f856adf61dd3e013f53f71", - "reference": "5a58cc30a8bd6a4eb8f856adf61dd3e013f53f71", + "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/b9805885293f3957ee0dd42616ac6915c4ac9a4b", + "reference": "b9805885293f3957ee0dd42616ac6915c4ac9a4b", "shasum": "" }, "require": { - "php": ">=5.3" + "composer-plugin-api": "^1.1.0 || ^2.0", + "php": "^7" + }, + "replace": { + "ocramius/package-versions": "1.8.99" }, "require-dev": { - "phpunit/phpunit": "^5.0 || ^4.8" + "composer/composer": "^1.9.3 || ^2.0@dev", + "ext-zip": "^1.13", + "phpunit/phpunit": "^6.5 || ^7" + }, + "type": "composer-plugin", + "extra": { + "class": "PackageVersions\\Installer", + "branch-alias": { + "dev-master": "1.x-dev" + } }, - "type": "library", "autoload": { "psr-4": { - "Clue\\StreamFilter\\": "src/" - }, - "files": [ - "src/functions_include.php" - ] + "PackageVersions\\": "src/PackageVersions" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -589,22 +385,30 @@ ], "authors": [ { - "name": "Christian Lück", - "email": "christian@lueck.tv" + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be" } ], - "description": "A simple and modern approach to stream filtering in PHP", - "homepage": "https://github.com/clue/php-stream-filter", - "keywords": [ - "bucket brigade", - "callback", - "filter", - "php_user_filter", - "stream", - "stream_filter_append", - "stream_filter_register" + "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)", + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } ], - "time": "2019-04-09T12:31:48+00:00" + "time": "2020-06-19T07:59:31+00:00" }, { "name": "container-interop/container-interop", @@ -679,63 +483,22 @@ "description": "Cli progress bar", "time": "2018-11-24T20:35:59+00:00" }, - { - "name": "dmkit/phalcon-jwt-auth", - "version": "dev-master", - "source": { - "type": "git", - "url": "https://github.com/dmkit/phalcon-jwt-auth.git", - "reference": "1f4db19a7da8924832e482e4cc37471c5e61b8c2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/dmkit/phalcon-jwt-auth/zipball/1f4db19a7da8924832e482e4cc37471c5e61b8c2", - "reference": "1f4db19a7da8924832e482e4cc37471c5e61b8c2", - "shasum": "" - }, - "require": { - "ext-phalcon": "^3.0", - "firebase/php-jwt": "^5.0", - "php": ">=7.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Dmkit\\Phalcon\\Auth\\": "src/Phalcon/Auth/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "authors": [ - { - "name": "Dan Bangayan", - "email": "danny.bangayan@gmail.com", - "role": "Developer" - } - ], - "description": "A simple JWT middleware for Phalcon Micro to handle stateless authentication", - "keywords": [ - "Authentication", - "jwt", - "phalcon" - ], - "time": "2018-05-16T16:16:42+00:00" - }, { "name": "doctrine/inflector", - "version": "1.4.1", + "version": "1.4.3", "source": { "type": "git", "url": "https://github.com/doctrine/inflector.git", - "reference": "4111f6853aea6f28b2b1dcfdde83d12dd3d5e6e3" + "reference": "4650c8b30c753a76bf44fb2ed00117d6f367490c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/inflector/zipball/4111f6853aea6f28b2b1dcfdde83d12dd3d5e6e3", - "reference": "4111f6853aea6f28b2b1dcfdde83d12dd3d5e6e3", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/4650c8b30c753a76bf44fb2ed00117d6f367490c", + "reference": "4650c8b30c753a76bf44fb2ed00117d6f367490c", "shasum": "" }, "require": { - "php": "^7.2" + "php": "^7.2 || ^8.0" }, "require-dev": { "doctrine/coding-standard": "^7.0", @@ -796,29 +559,47 @@ "uppercase", "words" ], - "time": "2020-05-09T15:09:09+00:00" + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finflector", + "type": "tidelift" + } + ], + "time": "2020-05-29T07:19:59+00:00" }, { - "name": "doctrine/lexer", - "version": "1.2.0", + "name": "doctrine/instantiator", + "version": "1.3.1", "source": { "type": "git", - "url": "https://github.com/doctrine/lexer.git", - "reference": "5242d66dbeb21a30dd8a3e66bf7a73b66e05e1f6" + "url": "https://github.com/doctrine/instantiator.git", + "reference": "f350df0268e904597e3bd9c4685c53e0e333feea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/5242d66dbeb21a30dd8a3e66bf7a73b66e05e1f6", - "reference": "5242d66dbeb21a30dd8a3e66bf7a73b66e05e1f6", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/f350df0268e904597e3bd9c4685c53e0e333feea", + "reference": "f350df0268e904597e3bd9c4685c53e0e333feea", "shasum": "" }, "require": { - "php": "^7.2" + "php": "^7.1 || ^8.0" }, "require-dev": { "doctrine/coding-standard": "^6.0", - "phpstan/phpstan": "^0.11.8", - "phpunit/phpunit": "^8.2" + "ext-pdo": "*", + "ext-phar": "*", + "phpbench/phpbench": "^0.13", + "phpstan/phpstan-phpunit": "^0.11", + "phpstan/phpstan-shim": "^0.11", + "phpunit/phpunit": "^7.0" }, "type": "library", "extra": { @@ -828,7 +609,7 @@ }, "autoload": { "psr-4": { - "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" + "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" } }, "notification-url": "https://packagist.org/downloads/", @@ -837,141 +618,121 @@ ], "authors": [ { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "http://ocramius.github.com/" + } + ], + "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", + "homepage": "https://www.doctrine-project.org/projects/instantiator.html", + "keywords": [ + "constructor", + "instantiate" + ], + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" }, { - "name": "Roman Borschel", - "email": "roman@code-factory.org" + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" }, { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", + "type": "tidelift" } ], - "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", - "homepage": "https://www.doctrine-project.org/projects/lexer.html", - "keywords": [ - "annotations", - "docblock", - "lexer", - "parser", - "php" - ], - "time": "2019-10-30T14:39:59+00:00" + "time": "2020-05-29T17:27:14+00:00" }, { - "name": "dompdf/dompdf", - "version": "v0.6.2", + "name": "doctrine/lexer", + "version": "1.2.1", "source": { "type": "git", - "url": "https://github.com/dompdf/dompdf.git", - "reference": "cc06008f75262510ee135b8cbb14e333a309f651" + "url": "https://github.com/doctrine/lexer.git", + "reference": "e864bbf5904cb8f5bb334f99209b48018522f042" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dompdf/dompdf/zipball/cc06008f75262510ee135b8cbb14e333a309f651", - "reference": "cc06008f75262510ee135b8cbb14e333a309f651", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/e864bbf5904cb8f5bb334f99209b48018522f042", + "reference": "e864bbf5904cb8f5bb334f99209b48018522f042", "shasum": "" }, "require": { - "phenx/php-font-lib": "0.2.*" - }, - "type": "library", - "autoload": { - "classmap": [ - "include/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "LGPL" - ], - "authors": [ - { - "name": "Fabien Ménager", - "email": "fabien.menager@gmail.com" - }, - { - "name": "Brian Sweeney", - "email": "eclecticgeek@gmail.com" - } - ], - "description": "DOMPDF is a CSS 2.1 compliant HTML to PDF converter", - "homepage": "https://github.com/dompdf/dompdf", - "time": "2015-12-07T04:07:13+00:00" - }, - { - "name": "duncan3dc/fork-helper", - "version": "2.3.0", - "source": { - "type": "git", - "url": "https://github.com/duncan3dc/fork-helper.git", - "reference": "abd046d6059501d4276c61eb528824546b0416ce" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/duncan3dc/fork-helper/zipball/abd046d6059501d4276c61eb528824546b0416ce", - "reference": "abd046d6059501d4276c61eb528824546b0416ce", - "shasum": "" - }, - "require": { - "php": "^7.1" + "php": "^7.2 || ^8.0" }, "require-dev": { - "duncan3dc/object-intruder": "^0.3.0", - "mockery/mockery": "^1.2", - "phpstan/phpstan": "^0.10.3", - "phpstan/phpstan-mockery": "^0.10.1", - "phpstan/phpstan-phpunit": "^0.10.0", - "phpunit/phpunit": "^7.0", - "squizlabs/php_codesniffer": "^3.4" - }, - "suggest": { - "ext-pcntl": "Needed to allow multi-threaded execution of code", - "ext-shmop": "If pcntl is present then shmop is required to handle errors" + "doctrine/coding-standard": "^6.0", + "phpstan/phpstan": "^0.11.8", + "phpunit/phpunit": "^8.2" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2.x-dev" + } + }, "autoload": { "psr-4": { - "duncan3dc\\Forker\\": "src/" + "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "Apache-2.0" + "MIT" ], "authors": [ { - "name": "Craig Duncan", - "email": "git@duncanc.co.uk", - "homepage": "https://github.com/duncan3dc", - "role": "Developer" + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" } ], - "description": "Simple class to fork processes in PHP and allow multi-threading", - "homepage": "https://github.com/duncan3dc/fork-helper", + "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", + "homepage": "https://www.doctrine-project.org/projects/lexer.html", "keywords": [ - "control", - "fork", - "multi-threading", - "pcntl", - "process" + "annotations", + "docblock", + "lexer", + "parser", + "php" ], - "time": "2019-01-10T12:10:16+00:00" + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer", + "type": "tidelift" + } + ], + "time": "2020-05-25T17:44:05+00:00" }, { "name": "egulias/email-validator", - "version": "2.1.17", + "version": "2.1.18", "source": { "type": "git", "url": "https://github.com/egulias/EmailValidator.git", - "reference": "ade6887fd9bd74177769645ab5c474824f8a418a" + "reference": "cfa3d44471c7f5bfb684ac2b0da7114283d78441" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/ade6887fd9bd74177769645ab5c474824f8a418a", - "reference": "ade6887fd9bd74177769645ab5c474824f8a418a", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/cfa3d44471c7f5bfb684ac2b0da7114283d78441", + "reference": "cfa3d44471c7f5bfb684ac2b0da7114283d78441", "shasum": "" }, "require": { @@ -995,7 +756,7 @@ }, "autoload": { "psr-4": { - "Egulias\\EmailValidator\\": "EmailValidator" + "Egulias\\EmailValidator\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -1016,37 +777,37 @@ "validation", "validator" ], - "time": "2020-02-13T22:36:52+00:00" + "time": "2020-06-16T20:11:17+00:00" }, { "name": "elasticsearch/elasticsearch", - "version": "v6.7.2", + "version": "v7.8.0", "source": { "type": "git", "url": "https://github.com/elastic/elasticsearch-php.git", - "reference": "9ba89f905ebf699e72dacffa410331c7fecc8255" + "reference": "5c2d039ae7bdaa1e28f1e66971c5b3314fc36383" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/elastic/elasticsearch-php/zipball/9ba89f905ebf699e72dacffa410331c7fecc8255", - "reference": "9ba89f905ebf699e72dacffa410331c7fecc8255", + "url": "https://api.github.com/repos/elastic/elasticsearch-php/zipball/5c2d039ae7bdaa1e28f1e66971c5b3314fc36383", + "reference": "5c2d039ae7bdaa1e28f1e66971c5b3314fc36383", "shasum": "" }, "require": { "ext-json": ">=1.3.7", - "guzzlehttp/ringphp": "~1.0", - "php": "^7.0", + "ezimuel/ringphp": "^1.1.2", + "php": "^7.1", "psr/log": "~1.0" }, "require-dev": { - "cpliakas/git-wrapper": "^1.7 || ^2.1", - "doctrine/inflector": "^1.1", + "cpliakas/git-wrapper": "~2.0", + "doctrine/inflector": "^1.3", "mockery/mockery": "^1.2", - "phpstan/phpstan-shim": "^0.9 || ^0.11", - "phpunit/phpunit": "^5.7 || ^6.5", + "phpstan/phpstan": "^0.12", + "phpunit/phpunit": "^7.5", "squizlabs/php_codesniffer": "^3.4", - "symfony/finder": "^2.8", - "symfony/yaml": "^2.8" + "symfony/finder": "~4.0", + "symfony/yaml": "~4.0" }, "suggest": { "ext-curl": "*", @@ -1054,6 +815,9 @@ }, "type": "library", "autoload": { + "files": [ + "src/autoload.php" + ], "psr-4": { "Elasticsearch\\": "src/Elasticsearch/" } @@ -1076,7 +840,108 @@ "elasticsearch", "search" ], - "time": "2019-07-19T14:48:24+00:00" + "time": "2020-06-18T19:23:29+00:00" + }, + { + "name": "ezimuel/guzzlestreams", + "version": "3.0.1", + "source": { + "type": "git", + "url": "https://github.com/ezimuel/guzzlestreams.git", + "reference": "abe3791d231167f14eb80d413420d1eab91163a8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ezimuel/guzzlestreams/zipball/abe3791d231167f14eb80d413420d1eab91163a8", + "reference": "abe3791d231167f14eb80d413420d1eab91163a8", + "shasum": "" + }, + "require": { + "php": ">=5.4.0" + }, + "require-dev": { + "phpunit/phpunit": "~4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\Stream\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + } + ], + "description": "Fork of guzzle/streams (abandoned) to be used with elasticsearch-php", + "homepage": "http://guzzlephp.org/", + "keywords": [ + "Guzzle", + "stream" + ], + "time": "2020-02-14T23:11:50+00:00" + }, + { + "name": "ezimuel/ringphp", + "version": "1.1.2", + "source": { + "type": "git", + "url": "https://github.com/ezimuel/ringphp.git", + "reference": "0b78f89d8e0bb9e380046c31adfa40347e9f663b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ezimuel/ringphp/zipball/0b78f89d8e0bb9e380046c31adfa40347e9f663b", + "reference": "0b78f89d8e0bb9e380046c31adfa40347e9f663b", + "shasum": "" + }, + "require": { + "ezimuel/guzzlestreams": "^3.0.1", + "php": ">=5.4.0", + "react/promise": "~2.0" + }, + "require-dev": { + "ext-curl": "*", + "phpunit/phpunit": "~4.0" + }, + "suggest": { + "ext-curl": "Guzzle will use specific adapters if cURL is present" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1-dev" + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\Ring\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + } + ], + "description": "Fork of guzzle/RingPHP (abandoned) to be used with elasticsearch-php", + "time": "2020-02-14T23:51:21+00:00" }, { "name": "firebase/php-jwt", @@ -1128,18 +993,68 @@ ], "time": "2020-03-25T18:49:23+00:00" }, + { + "name": "fzaninotto/faker", + "version": "v1.9.1", + "source": { + "type": "git", + "url": "https://github.com/fzaninotto/Faker.git", + "reference": "fc10d778e4b84d5bd315dad194661e091d307c6f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/fc10d778e4b84d5bd315dad194661e091d307c6f", + "reference": "fc10d778e4b84d5bd315dad194661e091d307c6f", + "shasum": "" + }, + "require": { + "php": "^5.3.3 || ^7.0" + }, + "require-dev": { + "ext-intl": "*", + "phpunit/phpunit": "^4.8.35 || ^5.7", + "squizlabs/php_codesniffer": "^2.9.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.9-dev" + } + }, + "autoload": { + "psr-4": { + "Faker\\": "src/Faker/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "François Zaninotto" + } + ], + "description": "Faker is a PHP library that generates fake data for you.", + "keywords": [ + "data", + "faker", + "fixtures" + ], + "time": "2019-12-12T13:22:17+00:00" + }, { "name": "guzzlehttp/guzzle", - "version": "6.5.3", + "version": "6.5.5", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "aab4ebd862aa7d04f01a4b51849d657db56d882e" + "reference": "9d4290de1cfd701f38099ef7e183b64b4b7b0c5e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/aab4ebd862aa7d04f01a4b51849d657db56d882e", - "reference": "aab4ebd862aa7d04f01a4b51849d657db56d882e", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/9d4290de1cfd701f38099ef7e183b64b4b7b0c5e", + "reference": "9d4290de1cfd701f38099ef7e183b64b4b7b0c5e", "shasum": "" }, "require": { @@ -1147,7 +1062,7 @@ "guzzlehttp/promises": "^1.0", "guzzlehttp/psr7": "^1.6.1", "php": ">=5.5", - "symfony/polyfill-intl-idn": "^1.11" + "symfony/polyfill-intl-idn": "^1.17.0" }, "require-dev": { "ext-curl": "*", @@ -1193,7 +1108,7 @@ "rest", "web service" ], - "time": "2020-04-18T10:38:46+00:00" + "time": "2020-06-16T21:01:06+00:00" }, { "name": "guzzlehttp/promises", @@ -1318,40 +1233,30 @@ "time": "2019-07-01T23:21:34+00:00" }, { - "name": "guzzlehttp/ringphp", - "version": "1.1.1", + "name": "hybridauth/hybridauth", + "version": "dev-master", "source": { "type": "git", - "url": "https://github.com/guzzle/RingPHP.git", - "reference": "5e2a174052995663dd68e6b5ad838afd47dd615b" + "url": "https://github.com/hybridauth/hybridauth.git", + "reference": "611f3f8f17dee3d82dc650c20cd4cd4c9d6ba49c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/RingPHP/zipball/5e2a174052995663dd68e6b5ad838afd47dd615b", - "reference": "5e2a174052995663dd68e6b5ad838afd47dd615b", + "url": "https://api.github.com/repos/hybridauth/hybridauth/zipball/611f3f8f17dee3d82dc650c20cd4cd4c9d6ba49c", + "reference": "611f3f8f17dee3d82dc650c20cd4cd4c9d6ba49c", "shasum": "" }, "require": { - "guzzlehttp/streams": "~3.0", - "php": ">=5.4.0", - "react/promise": "~2.0" + "php": ">=5.4.0" }, "require-dev": { "ext-curl": "*", - "phpunit/phpunit": "~4.0" - }, - "suggest": { - "ext-curl": "Guzzle will use specific adapters if cURL is present" + "phpunit/phpunit": "^4.8.35 || ^6.5 || ^8" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1-dev" - } - }, "autoload": { "psr-4": { - "GuzzleHttp\\Ring\\": "src/" + "Hybridauth\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -1360,44 +1265,55 @@ ], "authors": [ { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" + "name": "Miled", + "email": "hybridauth@gmail.com" } ], - "description": "Provides a simple API and specification that abstracts away the details of HTTP into a single PHP function.", - "abandoned": true, - "time": "2018-07-31T13:22:33+00:00" + "description": "PHP Social Authentication Library", + "homepage": "https://hybridauth.github.io", + "keywords": [ + "Authentication", + "OpenId", + "api", + "authorization", + "facebook", + "google", + "oauth", + "social", + "twitter" + ], + "time": "2020-05-07T18:46:34+00:00" }, { - "name": "guzzlehttp/streams", - "version": "3.0.0", + "name": "jean85/pretty-package-versions", + "version": "1.5.0", "source": { "type": "git", - "url": "https://github.com/guzzle/streams.git", - "reference": "47aaa48e27dae43d39fc1cea0ccf0d84ac1a2ba5" + "url": "https://github.com/Jean85/pretty-package-versions.git", + "reference": "e9f4324e88b8664be386d90cf60fbc202e1f7fc9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/streams/zipball/47aaa48e27dae43d39fc1cea0ccf0d84ac1a2ba5", - "reference": "47aaa48e27dae43d39fc1cea0ccf0d84ac1a2ba5", + "url": "https://api.github.com/repos/Jean85/pretty-package-versions/zipball/e9f4324e88b8664be386d90cf60fbc202e1f7fc9", + "reference": "e9f4324e88b8664be386d90cf60fbc202e1f7fc9", "shasum": "" }, "require": { - "php": ">=5.4.0" + "composer/package-versions-deprecated": "^1.8.0", + "php": "^7.0" }, "require-dev": { - "phpunit/phpunit": "~4.0" + "phpunit/phpunit": "^6.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "1.x-dev" } }, "autoload": { "psr-4": { - "GuzzleHttp\\Stream\\": "src/" + "Jean85\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -1406,129 +1322,31 @@ ], "authors": [ { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" + "name": "Alessandro Lai", + "email": "alessandro.lai85@gmail.com" } ], - "description": "Provides a simple abstraction over streams of data", - "homepage": "http://guzzlephp.org/", + "description": "A wrapper for ocramius/package-versions to get pretty versions strings", "keywords": [ - "Guzzle", - "stream" + "composer", + "package", + "release", + "versions" ], - "abandoned": true, - "time": "2014-10-12T19:18:40+00:00" + "time": "2020-06-23T06:23:06+00:00" }, { - "name": "hybridauth/hybridauth", - "version": "dev-master", - "source": { - "type": "git", - "url": "https://github.com/hybridauth/hybridauth.git", - "reference": "611f3f8f17dee3d82dc650c20cd4cd4c9d6ba49c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/hybridauth/hybridauth/zipball/611f3f8f17dee3d82dc650c20cd4cd4c9d6ba49c", - "reference": "611f3f8f17dee3d82dc650c20cd4cd4c9d6ba49c", - "shasum": "" - }, - "require": { - "php": ">=5.4.0" - }, - "require-dev": { - "ext-curl": "*", - "phpunit/phpunit": "^4.8.35 || ^6.5 || ^8" - }, - "type": "library", - "autoload": { - "psr-4": { - "Hybridauth\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Miled", - "email": "hybridauth@gmail.com" - } - ], - "description": "PHP Social Authentication Library", - "homepage": "https://hybridauth.github.io", - "keywords": [ - "Authentication", - "OpenId", - "api", - "authorization", - "facebook", - "google", - "oauth", - "social", - "twitter" - ], - "time": "2020-05-07T18:46:34+00:00" - }, - { - "name": "kylekatarnls/update-helper", - "version": "1.2.1", - "source": { - "type": "git", - "url": "https://github.com/kylekatarnls/update-helper.git", - "reference": "429be50660ed8a196e0798e5939760f168ec8ce9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/kylekatarnls/update-helper/zipball/429be50660ed8a196e0798e5939760f168ec8ce9", - "reference": "429be50660ed8a196e0798e5939760f168ec8ce9", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^1.1.0 || ^2.0.0", - "php": ">=5.3.0" - }, - "require-dev": { - "codeclimate/php-test-reporter": "dev-master", - "composer/composer": "2.0.x-dev || ^2.0.0-dev", - "phpunit/phpunit": ">=4.8.35 <6.0" - }, - "type": "composer-plugin", - "extra": { - "class": "UpdateHelper\\ComposerPlugin" - }, - "autoload": { - "psr-0": { - "UpdateHelper\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Kyle", - "email": "kylekatarnls@gmail.com" - } - ], - "description": "Update helper", - "time": "2020-04-07T20:44:10+00:00" - }, - { - "name": "lcobucci/jwt", - "version": "3.3.1", + "name": "lcobucci/jwt", + "version": "3.3.2", "source": { "type": "git", "url": "https://github.com/lcobucci/jwt.git", - "reference": "a11ec5f4b4d75d1fcd04e133dede4c317aac9e18" + "reference": "56f10808089e38623345e28af2f2d5e4eb579455" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/lcobucci/jwt/zipball/a11ec5f4b4d75d1fcd04e133dede4c317aac9e18", - "reference": "a11ec5f4b4d75d1fcd04e133dede4c317aac9e18", + "url": "https://api.github.com/repos/lcobucci/jwt/zipball/56f10808089e38623345e28af2f2d5e4eb579455", + "reference": "56f10808089e38623345e28af2f2d5e4eb579455", "shasum": "" }, "require": { @@ -1570,20 +1388,30 @@ "JWS", "jwt" ], - "time": "2019-05-24T18:30:49+00:00" + "funding": [ + { + "url": "https://github.com/lcobucci", + "type": "github" + }, + { + "url": "https://www.patreon.com/lcobucci", + "type": "patreon" + } + ], + "time": "2020-05-22T08:21:12+00:00" }, { "name": "league/flysystem", - "version": "1.0.68", + "version": "1.0.69", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem.git", - "reference": "3e4198372276ec99ac3409a21d7c9d1ced9026e4" + "reference": "7106f78428a344bc4f643c233a94e48795f10967" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/3e4198372276ec99ac3409a21d7c9d1ced9026e4", - "reference": "3e4198372276ec99ac3409a21d7c9d1ced9026e4", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/7106f78428a344bc4f643c233a94e48795f10967", + "reference": "7106f78428a344bc4f643c233a94e48795f10967", "shasum": "" }, "require": { @@ -1654,20 +1482,26 @@ "sftp", "storage" ], - "time": "2020-05-12T20:33:44+00:00" + "funding": [ + { + "url": "https://offset.earth/frankdejonge", + "type": "other" + } + ], + "time": "2020-05-18T15:13:39+00:00" }, { "name": "league/flysystem-aws-s3-v3", - "version": "1.0.24", + "version": "1.0.25", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem-aws-s3-v3.git", - "reference": "4382036bde5dc926f9b8b337e5bdb15e5ec7b570" + "reference": "d409b97a50bf85fbde30cbc9fc10237475e696ea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/4382036bde5dc926f9b8b337e5bdb15e5ec7b570", - "reference": "4382036bde5dc926f9b8b337e5bdb15e5ec7b570", + "url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/d409b97a50bf85fbde30cbc9fc10237475e696ea", + "reference": "d409b97a50bf85fbde30cbc9fc10237475e696ea", "shasum": "" }, "require": { @@ -1701,7 +1535,7 @@ } ], "description": "Flysystem adapter for the AWS S3 SDK v3.x", - "time": "2020-02-23T13:31:58+00:00" + "time": "2020-06-02T18:41:58+00:00" }, { "name": "league/fractal", @@ -1815,16 +1649,16 @@ }, { "name": "monolog/monolog", - "version": "1.25.3", + "version": "1.25.4", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "fa82921994db851a8becaf3787a9e73c5976b6f1" + "reference": "3022efff205e2448b560c833c6fbbf91c3139168" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/fa82921994db851a8becaf3787a9e73c5976b6f1", - "reference": "fa82921994db851a8becaf3787a9e73c5976b6f1", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/3022efff205e2448b560c833c6fbbf91c3139168", + "reference": "3022efff205e2448b560c833c6fbbf91c3139168", "shasum": "" }, "require": { @@ -1838,11 +1672,10 @@ "aws/aws-sdk-php": "^2.4.9 || ^3.0", "doctrine/couchdb": "~1.0@dev", "graylog2/gelf-php": "~1.0", - "jakub-onderka/php-parallel-lint": "0.9", "php-amqplib/php-amqplib": "~2.4", "php-console/php-console": "^3.1.3", + "php-parallel-lint/php-parallel-lint": "^1.0", "phpunit/phpunit": "~4.5", - "phpunit/phpunit-mock-objects": "2.3.0", "ruflin/elastica": ">=0.90 <3.0", "sentry/sentry": "^0.13", "swiftmailer/swiftmailer": "^5.3|^6.0" @@ -1889,7 +1722,17 @@ "logging", "psr-3" ], - "time": "2019-12-20T14:15:16+00:00" + "funding": [ + { + "url": "https://github.com/Seldaek", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/monolog/monolog", + "type": "tidelift" + } + ], + "time": "2020-05-22T07:31:27+00:00" }, { "name": "mtdowling/jmespath.php", @@ -1948,6 +1791,60 @@ ], "time": "2019-12-30T18:03:34+00:00" }, + { + "name": "myclabs/deep-copy", + "version": "1.10.1", + "source": { + "type": "git", + "url": "https://github.com/myclabs/DeepCopy.git", + "reference": "969b211f9a51aa1f6c01d1d2aef56d3bd91598e5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/969b211f9a51aa1f6c01d1d2aef56d3bd91598e5", + "reference": "969b211f9a51aa1f6c01d1d2aef56d3bd91598e5", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "replace": { + "myclabs/deep-copy": "self.version" + }, + "require-dev": { + "doctrine/collections": "^1.0", + "doctrine/common": "^2.6", + "phpunit/phpunit": "^7.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "DeepCopy\\": "src/DeepCopy/" + }, + "files": [ + "src/DeepCopy/deep_copy.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Create deep copies (clones) of your objects", + "keywords": [ + "clone", + "copy", + "duplicate", + "object", + "object graph" + ], + "funding": [ + { + "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", + "type": "tidelift" + } + ], + "time": "2020-06-29T13:22:24+00:00" + }, { "name": "namshi/notificator", "version": "1.0.4", @@ -1998,43 +1895,57 @@ }, { "name": "nesbot/carbon", - "version": "1.39.1", + "version": "2.36.0", "source": { "type": "git", "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "4be0c005164249208ce1b5ca633cd57bdd42ff33" + "reference": "d0b65958d9942fd1b501fdb0800c67e8323aa08d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/4be0c005164249208ce1b5ca633cd57bdd42ff33", - "reference": "4be0c005164249208ce1b5ca633cd57bdd42ff33", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/d0b65958d9942fd1b501fdb0800c67e8323aa08d", + "reference": "d0b65958d9942fd1b501fdb0800c67e8323aa08d", "shasum": "" }, "require": { - "kylekatarnls/update-helper": "^1.1", - "php": ">=5.3.9", - "symfony/translation": "~2.6 || ~3.0 || ~4.0" + "ext-json": "*", + "php": "^7.1.8 || ^8.0", + "symfony/polyfill-mbstring": "^1.0", + "symfony/translation": "^3.4 || ^4.0 || ^5.0" }, "require-dev": { - "composer/composer": "^1.2", - "friendsofphp/php-cs-fixer": "~2", - "phpunit/phpunit": "^4.8.35 || ^5.7" + "doctrine/orm": "^2.7", + "friendsofphp/php-cs-fixer": "^2.14 || ^3.0", + "kylekatarnls/multi-tester": "^2.0", + "phpmd/phpmd": "^2.8", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^0.12.30", + "phpunit/phpunit": "^7.5 || ^8.0", + "squizlabs/php_codesniffer": "^3.4" }, "bin": [ - "bin/upgrade-carbon" + "bin/carbon" ], "type": "library", "extra": { - "update-helper": "Carbon\\Upgrade", + "branch-alias": { + "dev-master": "2.x-dev", + "dev-3.x": "3.x-dev" + }, "laravel": { "providers": [ "Carbon\\Laravel\\ServiceProvider" ] + }, + "phpstan": { + "includes": [ + "extension.neon" + ] } }, "autoload": { "psr-4": { - "": "src/" + "Carbon\\": "src/Carbon/" } }, "notification-url": "https://packagist.org/downloads/", @@ -2046,985 +1957,1080 @@ "name": "Brian Nesbitt", "email": "brian@nesbot.com", "homepage": "http://nesbot.com" + }, + { + "name": "kylekatarnls", + "homepage": "http://github.com/kylekatarnls" } ], - "description": "A simple API extension for DateTime.", + "description": "An API extension for DateTime that supports 281 different languages.", "homepage": "http://carbon.nesbot.com", "keywords": [ "date", "datetime", "time" ], - "time": "2019-10-14T05:51:36+00:00" + "funding": [ + { + "url": "https://opencollective.com/Carbon", + "type": "open_collective" + }, + { + "url": "https://tidelift.com/funding/github/packagist/nesbot/carbon", + "type": "tidelift" + } + ], + "time": "2020-06-25T20:20:01+00:00" }, { - "name": "norkunas/onesignal-php-api", - "version": "v1.14.1", + "name": "nette/bootstrap", + "version": "v3.0.2", "source": { "type": "git", - "url": "https://github.com/norkunas/onesignal-php-api.git", - "reference": "695b53f433dcc35f6cce2fd692e9d0ffa2ca4f23" + "url": "https://github.com/nette/bootstrap.git", + "reference": "67830a65b42abfb906f8e371512d336ebfb5da93" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/norkunas/onesignal-php-api/zipball/695b53f433dcc35f6cce2fd692e9d0ffa2ca4f23", - "reference": "695b53f433dcc35f6cce2fd692e9d0ffa2ca4f23", + "url": "https://api.github.com/repos/nette/bootstrap/zipball/67830a65b42abfb906f8e371512d336ebfb5da93", + "reference": "67830a65b42abfb906f8e371512d336ebfb5da93", "shasum": "" }, "require": { - "ext-json": "*", - "php": "^7.1", - "php-http/client-common": "^1.9|^2.0", - "php-http/client-implementation": "^1.0", - "php-http/message": "^1.7", - "symfony/options-resolver": "^3.4|^4.0|^5.0" + "nette/di": "^3.0", + "nette/utils": "^3.0", + "php": ">=7.1" + }, + "conflict": { + "tracy/tracy": "<2.6" }, "require-dev": { - "php-http/guzzle6-adapter": "^1.1", - "symfony/phpunit-bridge": "^5.0" + "latte/latte": "^2.2", + "nette/application": "^3.0", + "nette/caching": "^3.0", + "nette/database": "^3.0", + "nette/forms": "^3.0", + "nette/http": "^3.0", + "nette/mail": "^3.0", + "nette/robot-loader": "^3.0", + "nette/safe-stream": "^2.2", + "nette/security": "^3.0", + "nette/tester": "^2.0", + "phpstan/phpstan-nette": "^0.12", + "tracy/tracy": "^2.6" + }, + "suggest": { + "nette/robot-loader": "to use Configurator::createRobotLoader()", + "tracy/tracy": "to use Configurator::enableTracy()" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-master": "3.0-dev" } }, "autoload": { - "psr-4": { - "OneSignal\\": "src/" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause", + "GPL-2.0-only", + "GPL-3.0-only" ], "authors": [ { - "name": "Tomas Norkūnas", - "email": "norkunas.tom@gmail.com" + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" } ], - "description": "OneSignal API for PHP", + "description": "🅱 Nette Bootstrap: the simple way to configure and bootstrap your Nette application.", + "homepage": "https://nette.org", "keywords": [ - "api", - "apns", - "gcm", - "notifications", - "onesignal", - "push" + "bootstrapping", + "configurator", + "nette" ], - "time": "2019-11-27T10:35:34+00:00" + "time": "2020-05-26T08:46:23+00:00" }, { - "name": "paragonie/random_compat", - "version": "v9.99.99", + "name": "nette/di", + "version": "v3.0.4", "source": { "type": "git", - "url": "https://github.com/paragonie/random_compat.git", - "reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95" + "url": "https://github.com/nette/di.git", + "reference": "34d3e47ebe96229b7671664893a3b1128c102213" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/paragonie/random_compat/zipball/84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95", - "reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95", + "url": "https://api.github.com/repos/nette/di/zipball/34d3e47ebe96229b7671664893a3b1128c102213", + "reference": "34d3e47ebe96229b7671664893a3b1128c102213", "shasum": "" }, "require": { - "php": "^7" + "ext-tokenizer": "*", + "nette/neon": "^3.0", + "nette/php-generator": "^3.3.3", + "nette/robot-loader": "^3.2", + "nette/schema": "^1.0", + "nette/utils": "^3.1", + "php": ">=7.1" }, - "require-dev": { - "phpunit/phpunit": "4.*|5.*", - "vimeo/psalm": "^1" + "conflict": { + "nette/bootstrap": "<3.0" }, - "suggest": { - "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." + "require-dev": { + "nette/tester": "^2.2", + "phpstan/phpstan": "^0.12", + "tracy/tracy": "^2.3" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause", + "GPL-2.0-only", + "GPL-3.0-only" ], "authors": [ { - "name": "Paragon Initiative Enterprises", - "email": "security@paragonie.com", - "homepage": "https://paragonie.com" + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" } ], - "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", + "description": "💎 Nette Dependency Injection Container: Flexible, compiled and full-featured DIC with perfectly usable autowiring and support for all new PHP 7.1 features.", + "homepage": "https://nette.org", "keywords": [ - "csprng", - "polyfill", - "pseudorandom", - "random" + "compiled", + "di", + "dic", + "factory", + "ioc", + "nette", + "static" ], - "time": "2018-07-02T15:55:56+00:00" + "time": "2020-05-14T10:29:59+00:00" }, { - "name": "paragonie/sodium_compat", - "version": "v1.13.0", + "name": "nette/finder", + "version": "v2.5.2", "source": { "type": "git", - "url": "https://github.com/paragonie/sodium_compat.git", - "reference": "bbade402cbe84c69b718120911506a3aa2bae653" + "url": "https://github.com/nette/finder.git", + "reference": "4ad2c298eb8c687dd0e74ae84206a4186eeaed50" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/paragonie/sodium_compat/zipball/bbade402cbe84c69b718120911506a3aa2bae653", - "reference": "bbade402cbe84c69b718120911506a3aa2bae653", + "url": "https://api.github.com/repos/nette/finder/zipball/4ad2c298eb8c687dd0e74ae84206a4186eeaed50", + "reference": "4ad2c298eb8c687dd0e74ae84206a4186eeaed50", "shasum": "" }, "require": { - "paragonie/random_compat": ">=1", - "php": "^5.2.4|^5.3|^5.4|^5.5|^5.6|^7|^8" + "nette/utils": "^2.4 || ^3.0", + "php": ">=7.1" }, - "require-dev": { - "phpunit/phpunit": "^3|^4|^5|^6|^7" + "conflict": { + "nette/nette": "<2.2" }, - "suggest": { - "ext-libsodium": "PHP < 7.0: Better performance, password hashing (Argon2i), secure memory management (memzero), and better security.", - "ext-sodium": "PHP >= 7.0: Better performance, password hashing (Argon2i), secure memory management (memzero), and better security." + "require-dev": { + "nette/tester": "^2.0", + "phpstan/phpstan": "^0.12", + "tracy/tracy": "^2.3" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.5-dev" + } + }, "autoload": { - "files": [ - "autoload.php" + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "ISC" + "BSD-3-Clause", + "GPL-2.0", + "GPL-3.0" ], "authors": [ { - "name": "Paragon Initiative Enterprises", - "email": "security@paragonie.com" + "name": "David Grudl", + "homepage": "https://davidgrudl.com" }, { - "name": "Frank Denis", - "email": "jedisct1@pureftpd.org" + "name": "Nette Community", + "homepage": "https://nette.org/contributors" } ], - "description": "Pure PHP implementation of libsodium; uses the PHP extension if it exists", + "description": "🔍 Nette Finder: find files and directories with an intuitive API.", + "homepage": "https://nette.org", "keywords": [ - "Authentication", - "BLAKE2b", - "ChaCha20", - "ChaCha20-Poly1305", - "Chapoly", - "Curve25519", - "Ed25519", - "EdDSA", - "Edwards-curve Digital Signature Algorithm", - "Elliptic Curve Diffie-Hellman", - "Poly1305", - "Pure-PHP cryptography", - "RFC 7748", - "RFC 8032", - "Salpoly", - "Salsa20", - "X25519", - "XChaCha20-Poly1305", - "XSalsa20-Poly1305", - "Xchacha20", - "Xsalsa20", - "aead", - "cryptography", - "ecdh", - "elliptic curve", - "elliptic curve cryptography", - "encryption", - "libsodium", - "php", - "public-key cryptography", - "secret-key cryptography", - "side-channel resistant" + "filesystem", + "glob", + "iterator", + "nette" ], - "time": "2020-03-20T21:48:09+00:00" + "time": "2020-01-03T20:35:40+00:00" }, { - "name": "phalcon/incubator", - "version": "v3.4.6", + "name": "nette/neon", + "version": "v3.1.2", "source": { "type": "git", - "url": "https://github.com/phalcon/incubator.git", - "reference": "4883d9009a9d651308bfc201a0e9440c0ff692e2" + "url": "https://github.com/nette/neon.git", + "reference": "3c3dcbc6bf6c80dc97b1fc4ba9a22ae67930fc0e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phalcon/incubator/zipball/4883d9009a9d651308bfc201a0e9440c0ff692e2", - "reference": "4883d9009a9d651308bfc201a0e9440c0ff692e2", + "url": "https://api.github.com/repos/nette/neon/zipball/3c3dcbc6bf6c80dc97b1fc4ba9a22ae67930fc0e", + "reference": "3c3dcbc6bf6c80dc97b1fc4ba9a22ae67930fc0e", "shasum": "" }, "require": { - "ext-phalcon": "^3.3", - "php": ">=5.5" + "ext-iconv": "*", + "ext-json": "*", + "php": ">=7.1" }, "require-dev": { - "codeception/aerospike-module": "^1.0", - "codeception/codeception": "^2.5", - "codeception/mockery-module": "0.2.2", - "codeception/specify": "^0.4", - "codeception/verify": "^0.3", - "doctrine/instantiator": "1.0.5", - "phalcon/dd": "^1.1", - "phpdocumentor/reflection-docblock": "2.0.4", - "phpunit/phpunit": "^4.8", - "squizlabs/php_codesniffer": "^2.9", - "vlucas/phpdotenv": "^2.4" - }, - "suggest": { - "duncan3dc/fork-helper": "To use extended class to access the beanstalk queue service", - "ext-aerospike": "*", - "phalcon/ide-stubs": "Phalcon IDE Stubs", - "sergeyklay/aerospike-php-stubs": "The most complete Aerospike PHP stubs which allows autocomplete in modern IDEs", - "swiftmailer/swiftmailer": "~5.2", - "twig/twig": "~1.35|~2.0" + "nette/tester": "^2.0", + "phpstan/phpstan": "^0.12", + "tracy/tracy": "^2.3" }, "type": "library", - "autoload": { - "psr-4": { - "Phalcon\\": "Library/Phalcon/" + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" } }, + "autoload": { + "classmap": [ + "src/" + ] + }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "BSD-3-Clause", + "GPL-2.0-only", + "GPL-3.0-only" ], "authors": [ { - "name": "Phalcon Team", - "email": "team@phalconphp.com", - "homepage": "https://phalconphp.com/en/team" + "name": "David Grudl", + "homepage": "https://davidgrudl.com" }, { - "name": "Contributors", - "homepage": "https://github.com/phalcon/incubator/graphs/contributors" + "name": "Nette Community", + "homepage": "https://nette.org/contributors" } ], - "description": "Adapters, prototypes or functionality that can be potentially incorporated to the C-framework.", - "homepage": "https://phalconphp.com", + "description": "🍸 Nette NEON: encodes and decodes NEON file format.", + "homepage": "https://ne-on.org", "keywords": [ - "framework", - "incubator", - "phalcon" + "export", + "import", + "neon", + "nette", + "yaml" ], - "time": "2019-09-16T13:54:24+00:00" + "time": "2020-03-04T11:47:04+00:00" }, { - "name": "phenx/php-font-lib", - "version": "0.2.2", + "name": "nette/php-generator", + "version": "v3.4.1", "source": { "type": "git", - "url": "https://github.com/PhenX/php-font-lib.git", - "reference": "c30c7fc00a6b0d863e9bb4c5d5dd015298b2dc82" + "url": "https://github.com/nette/php-generator.git", + "reference": "7051954c534cebafd650efe8b145ac75b223cb66" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PhenX/php-font-lib/zipball/c30c7fc00a6b0d863e9bb4c5d5dd015298b2dc82", - "reference": "c30c7fc00a6b0d863e9bb4c5d5dd015298b2dc82", + "url": "https://api.github.com/repos/nette/php-generator/zipball/7051954c534cebafd650efe8b145ac75b223cb66", + "reference": "7051954c534cebafd650efe8b145ac75b223cb66", "shasum": "" }, + "require": { + "nette/utils": "^2.4.2 || ^3.0", + "php": ">=7.1" + }, + "require-dev": { + "nette/tester": "^2.0", + "nikic/php-parser": "^4.4", + "phpstan/phpstan": "^0.12", + "tracy/tracy": "^2.3" + }, + "suggest": { + "nikic/php-parser": "to use ClassType::withBodiesFrom() & GlobalFunction::withBodyFrom()" + }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, "autoload": { "classmap": [ - "classes/" + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "LGPL" + "BSD-3-Clause", + "GPL-2.0-only", + "GPL-3.0-only" ], "authors": [ { - "name": "Fabien Ménager", - "email": "fabien.menager@gmail.com" + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" } ], - "description": "A library to read, parse, export and make subsets of different types of font files.", - "homepage": "https://github.com/PhenX/php-font-lib", - "time": "2014-02-01T15:22:28+00:00" + "description": "🐘 Nette PHP Generator: generates neat PHP code for you. Supports new PHP 7.4 features.", + "homepage": "https://nette.org", + "keywords": [ + "code", + "nette", + "php", + "scaffolding" + ], + "time": "2020-06-19T14:31:47+00:00" }, { - "name": "php-amqplib/php-amqplib", - "version": "v2.11.3", + "name": "nette/robot-loader", + "version": "v3.2.3", "source": { "type": "git", - "url": "https://github.com/php-amqplib/php-amqplib.git", - "reference": "6353c5d2d3021a301914bc6566e695c99cfeb742" + "url": "https://github.com/nette/robot-loader.git", + "reference": "726c462e73e739e965ec654a667407074cfe83c0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-amqplib/php-amqplib/zipball/6353c5d2d3021a301914bc6566e695c99cfeb742", - "reference": "6353c5d2d3021a301914bc6566e695c99cfeb742", + "url": "https://api.github.com/repos/nette/robot-loader/zipball/726c462e73e739e965ec654a667407074cfe83c0", + "reference": "726c462e73e739e965ec654a667407074cfe83c0", "shasum": "" }, "require": { - "ext-mbstring": "*", - "ext-sockets": "*", - "php": ">=5.6.3", - "phpseclib/phpseclib": "^2.0.0" - }, - "conflict": { - "php": "7.4.0 - 7.4.1" - }, - "replace": { - "videlalvaro/php-amqplib": "self.version" + "ext-tokenizer": "*", + "nette/finder": "^2.5 || ^3.0", + "nette/utils": "^3.0", + "php": ">=7.1" }, "require-dev": { - "ext-curl": "*", - "nategood/httpful": "^0.2.20", - "phpunit/phpunit": "^5.7|^6.5|^7.0", - "squizlabs/php_codesniffer": "^2.5" + "nette/tester": "^2.0", + "phpstan/phpstan": "^0.12", + "tracy/tracy": "^2.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.11-dev" + "dev-master": "3.2-dev" } }, "autoload": { - "psr-4": { - "PhpAmqpLib\\": "PhpAmqpLib/" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "LGPL-2.1-or-later" + "BSD-3-Clause", + "GPL-2.0-only", + "GPL-3.0-only" ], "authors": [ { - "name": "Alvaro Videla", - "role": "Original Maintainer" - }, - { - "name": "Raúl Araya", - "email": "nubeiro@gmail.com", - "role": "Maintainer" - }, - { - "name": "Luke Bakken", - "email": "luke@bakken.io", - "role": "Maintainer" + "name": "David Grudl", + "homepage": "https://davidgrudl.com" }, { - "name": "Ramūnas Dronga", - "email": "github@ramuno.lt", - "role": "Maintainer" + "name": "Nette Community", + "homepage": "https://nette.org/contributors" } ], - "description": "Formerly videlalvaro/php-amqplib. This library is a pure PHP implementation of the AMQP protocol. It's been tested against RabbitMQ.", - "homepage": "https://github.com/php-amqplib/php-amqplib/", + "description": "🍀 Nette RobotLoader: high performance and comfortable autoloader that will search and autoload classes within your application.", + "homepage": "https://nette.org", "keywords": [ - "message", - "queue", - "rabbitmq" + "autoload", + "class", + "interface", + "nette", + "trait" ], - "time": "2020-05-13T13:56:11+00:00" + "time": "2020-02-28T13:10:07+00:00" }, { - "name": "php-http/client-common", - "version": "1.10.0", + "name": "nette/schema", + "version": "v1.0.2", "source": { "type": "git", - "url": "https://github.com/php-http/client-common.git", - "reference": "c0390ae3c8f2ae9d50901feef0127fb9e396f6b4" + "url": "https://github.com/nette/schema.git", + "reference": "febf71fb4052c824046f5a33f4f769a6e7fa0cb4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-http/client-common/zipball/c0390ae3c8f2ae9d50901feef0127fb9e396f6b4", - "reference": "c0390ae3c8f2ae9d50901feef0127fb9e396f6b4", + "url": "https://api.github.com/repos/nette/schema/zipball/febf71fb4052c824046f5a33f4f769a6e7fa0cb4", + "reference": "febf71fb4052c824046f5a33f4f769a6e7fa0cb4", "shasum": "" }, "require": { - "php": "^5.4 || ^7.0", - "php-http/httplug": "^1.1", - "php-http/message": "^1.6", - "php-http/message-factory": "^1.0", - "symfony/options-resolver": "^2.6 || ^3.0 || ^4.0 || ^5.0" + "nette/utils": "^3.1", + "php": ">=7.1" }, "require-dev": { - "guzzlehttp/psr7": "^1.4", - "phpspec/phpspec": "^2.5 || ^3.4 || ^4.2" - }, - "suggest": { - "php-http/cache-plugin": "PSR-6 Cache plugin", - "php-http/logger-plugin": "PSR-3 Logger plugin", - "php-http/stopwatch-plugin": "Symfony Stopwatch plugin" + "nette/tester": "^2.2", + "phpstan/phpstan-nette": "^0.12", + "tracy/tracy": "^2.3" }, "type": "library", "extra": { - "branch-alias": { - "dev-master": "1.10.x-dev" - } + "branch-alias": [] }, "autoload": { - "psr-4": { - "Http\\Client\\Common\\": "src/" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause", + "GPL-2.0", + "GPL-3.0" ], "authors": [ { - "name": "Márk Sági-Kazár", - "email": "mark.sagikazar@gmail.com" + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" } ], - "description": "Common HTTP Client implementations and tools for HTTPlug", - "homepage": "http://httplug.io", + "description": "📐 Nette Schema: validating data structures against a given Schema.", + "homepage": "https://nette.org", "keywords": [ - "client", - "common", - "http", - "httplug" + "config", + "nette" ], - "time": "2019-11-18T08:54:36+00:00" + "time": "2020-01-06T22:52:48+00:00" }, { - "name": "php-http/guzzle6-adapter", - "version": "v1.1.0", + "name": "nette/utils", + "version": "v3.1.2", "source": { "type": "git", - "url": "https://github.com/php-http/guzzle6-adapter.git", - "reference": "c7a1c6b47530d88b7cb10949779505e2dbd8e7b4" + "url": "https://github.com/nette/utils.git", + "reference": "488f58378bba71767e7831c83f9e0fa808bf83b9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-http/guzzle6-adapter/zipball/c7a1c6b47530d88b7cb10949779505e2dbd8e7b4", - "reference": "c7a1c6b47530d88b7cb10949779505e2dbd8e7b4", + "url": "https://api.github.com/repos/nette/utils/zipball/488f58378bba71767e7831c83f9e0fa808bf83b9", + "reference": "488f58378bba71767e7831c83f9e0fa808bf83b9", "shasum": "" }, "require": { - "guzzlehttp/guzzle": "^6.0", - "php": ">=5.5.0", - "php-http/httplug": "^1.0" - }, - "provide": { - "php-http/async-client-implementation": "1.0", - "php-http/client-implementation": "1.0" + "php": ">=7.1" }, "require-dev": { - "ext-curl": "*", - "php-http/adapter-integration-tests": "^0.4" + "nette/tester": "~2.0", + "phpstan/phpstan": "^0.12", + "tracy/tracy": "^2.3" + }, + "suggest": { + "ext-gd": "to use Image", + "ext-iconv": "to use Strings::webalize(), toAscii(), chr() and reverse()", + "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()", + "ext-json": "to use Nette\\Utils\\Json", + "ext-mbstring": "to use Strings::lower() etc...", + "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()", + "ext-xml": "to use Strings::length() etc. when mbstring is not available" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.2-dev" + "dev-master": "3.1-dev" } }, "autoload": { - "psr-4": { - "Http\\Adapter\\Guzzle6\\": "src/" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause", + "GPL-2.0-only", + "GPL-3.0-only" ], "authors": [ { - "name": "Márk Sági-Kazár", - "email": "mark.sagikazar@gmail.com" + "name": "David Grudl", + "homepage": "https://davidgrudl.com" }, { - "name": "David de Boer", - "email": "david@ddeboer.nl" + "name": "Nette Community", + "homepage": "https://nette.org/contributors" } ], - "description": "Guzzle 6 HTTP Adapter", - "homepage": "http://httplug.io", + "description": "🛠 Nette Utils: lightweight utilities for string & array manipulation, image handling, safe JSON encoding/decoding, validation, slug or strong password generating etc.", + "homepage": "https://nette.org", "keywords": [ - "Guzzle", - "http" + "array", + "core", + "datetime", + "images", + "json", + "nette", + "paginator", + "password", + "slugify", + "string", + "unicode", + "utf-8", + "utility", + "validation" ], - "time": "2016-05-09T21:46:08+00:00" + "time": "2020-05-27T09:58:51+00:00" }, { - "name": "php-http/httplug", - "version": "v1.1.0", + "name": "nikic/php-parser", + "version": "v3.1.5", "source": { "type": "git", - "url": "https://github.com/php-http/httplug.git", - "reference": "1c6381726c18579c4ca2ef1ec1498fdae8bdf018" + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "bb87e28e7d7b8d9a7fda231d37457c9210faf6ce" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-http/httplug/zipball/1c6381726c18579c4ca2ef1ec1498fdae8bdf018", - "reference": "1c6381726c18579c4ca2ef1ec1498fdae8bdf018", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/bb87e28e7d7b8d9a7fda231d37457c9210faf6ce", + "reference": "bb87e28e7d7b8d9a7fda231d37457c9210faf6ce", "shasum": "" }, "require": { - "php": ">=5.4", - "php-http/promise": "^1.0", - "psr/http-message": "^1.0" + "ext-tokenizer": "*", + "php": ">=5.5" }, "require-dev": { - "henrikbjorn/phpspec-code-coverage": "^1.0", - "phpspec/phpspec": "^2.4" + "phpunit/phpunit": "~4.0|~5.0" }, + "bin": [ + "bin/php-parse" + ], "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1-dev" + "dev-master": "3.0-dev" } }, "autoload": { "psr-4": { - "Http\\Client\\": "src/" + "PhpParser\\": "lib/PhpParser" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Eric GELOEN", - "email": "geloen.eric@gmail.com" - }, - { - "name": "Márk Sági-Kazár", - "email": "mark.sagikazar@gmail.com" + "name": "Nikita Popov" } ], - "description": "HTTPlug, the HTTP client abstraction for PHP", - "homepage": "http://httplug.io", + "description": "A PHP parser written in PHP", "keywords": [ - "client", - "http" + "parser", + "php" ], - "time": "2016-08-31T08:30:17+00:00" + "time": "2018-02-28T20:30:58+00:00" }, { - "name": "php-http/message", - "version": "1.8.0", + "name": "odan/phinx-migrations-generator", + "version": "5.1.2", "source": { "type": "git", - "url": "https://github.com/php-http/message.git", - "reference": "ce8f43ac1e294b54aabf5808515c3554a19c1e1c" + "url": "https://github.com/odan/phinx-migrations-generator.git", + "reference": "f3cb7cc6bc7eb22e85f34f229b6d476e96d99c73" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-http/message/zipball/ce8f43ac1e294b54aabf5808515c3554a19c1e1c", - "reference": "ce8f43ac1e294b54aabf5808515c3554a19c1e1c", + "url": "https://api.github.com/repos/odan/phinx-migrations-generator/zipball/f3cb7cc6bc7eb22e85f34f229b6d476e96d99c73", + "reference": "f3cb7cc6bc7eb22e85f34f229b6d476e96d99c73", "shasum": "" }, "require": { - "clue/stream-filter": "^1.4", - "php": "^7.1", - "php-http/message-factory": "^1.0.2", - "psr/http-message": "^1.0" - }, - "provide": { - "php-http/message-factory-implementation": "1.0" + "ext-json": "*", + "ext-pdo": "*", + "php": "^7.2", + "riimu/kit-phpencoder": "^2.4", + "robmorgan/phinx": "^0.12", + "symfony/console": "^2.8 || ^3.0 || ^4.0 || ^5.0" }, "require-dev": { - "akeneo/phpspec-skip-example-extension": "^1.0", - "coduo/phpspec-data-provider-extension": "^1.0", - "ext-zlib": "*", - "guzzlehttp/psr7": "^1.0", - "henrikbjorn/phpspec-code-coverage": "^1.0", - "phpspec/phpspec": "^2.4", - "slim/slim": "^3.0", - "zendframework/zend-diactoros": "^1.0" - }, - "suggest": { - "ext-zlib": "Used with compressor/decompressor streams", - "guzzlehttp/psr7": "Used with Guzzle PSR-7 Factories", - "slim/slim": "Used with Slim Framework PSR-7 implementation", - "zendframework/zend-diactoros": "Used with Diactoros Factories" + "friendsofphp/php-cs-fixer": "^2.16", + "overtrue/phplint": "^1.1", + "phpstan/phpstan": "^0.12", + "phpunit/phpunit": "^8 || ^9", + "squizlabs/php_codesniffer": "^3.4" }, + "bin": [ + "./bin/phinx-migrations" + ], "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.8-dev" - } - }, "autoload": { "psr-4": { - "Http\\Message\\": "src/" - }, - "files": [ - "src/filters.php" - ] + "Odan\\Migration\\": "src/Migration/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "authors": [ - { - "name": "Márk Sági-Kazár", - "email": "mark.sagikazar@gmail.com" - } - ], - "description": "HTTP Message related tools", - "homepage": "http://php-http.org", + "description": "Migration generator for Phinx", + "homepage": "https://github.com/odan/phinx-migrations-generator", "keywords": [ - "http", - "message", - "psr-7" + "database", + "generator", + "migration", + "migrations", + "mysql", + "phinx" ], - "time": "2019-08-05T06:55:08+00:00" + "time": "2020-06-15T19:36:35+00:00" }, { - "name": "php-http/message-factory", - "version": "v1.0.2", + "name": "paragonie/random_compat", + "version": "v9.99.99", "source": { "type": "git", - "url": "https://github.com/php-http/message-factory.git", - "reference": "a478cb11f66a6ac48d8954216cfed9aa06a501a1" + "url": "https://github.com/paragonie/random_compat.git", + "reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-http/message-factory/zipball/a478cb11f66a6ac48d8954216cfed9aa06a501a1", - "reference": "a478cb11f66a6ac48d8954216cfed9aa06a501a1", + "url": "https://api.github.com/repos/paragonie/random_compat/zipball/84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95", + "reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95", "shasum": "" }, "require": { - "php": ">=5.4", - "psr/http-message": "^1.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } + "php": "^7" }, - "autoload": { - "psr-4": { - "Http\\Message\\": "src/" - } + "require-dev": { + "phpunit/phpunit": "4.*|5.*", + "vimeo/psalm": "^1" }, + "suggest": { + "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." + }, + "type": "library", "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ { - "name": "Márk Sági-Kazár", - "email": "mark.sagikazar@gmail.com" + "name": "Paragon Initiative Enterprises", + "email": "security@paragonie.com", + "homepage": "https://paragonie.com" } ], - "description": "Factory interfaces for PSR-7 HTTP Message", - "homepage": "http://php-http.org", + "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", "keywords": [ - "factory", - "http", - "message", - "stream", - "uri" + "csprng", + "polyfill", + "pseudorandom", + "random" ], - "time": "2015-12-19T14:08:53+00:00" + "time": "2018-07-02T15:55:56+00:00" }, { - "name": "php-http/promise", - "version": "v1.0.0", + "name": "paragonie/sodium_compat", + "version": "v1.13.0", "source": { "type": "git", - "url": "https://github.com/php-http/promise.git", - "reference": "dc494cdc9d7160b9a09bd5573272195242ce7980" + "url": "https://github.com/paragonie/sodium_compat.git", + "reference": "bbade402cbe84c69b718120911506a3aa2bae653" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-http/promise/zipball/dc494cdc9d7160b9a09bd5573272195242ce7980", - "reference": "dc494cdc9d7160b9a09bd5573272195242ce7980", + "url": "https://api.github.com/repos/paragonie/sodium_compat/zipball/bbade402cbe84c69b718120911506a3aa2bae653", + "reference": "bbade402cbe84c69b718120911506a3aa2bae653", "shasum": "" }, + "require": { + "paragonie/random_compat": ">=1", + "php": "^5.2.4|^5.3|^5.4|^5.5|^5.6|^7|^8" + }, "require-dev": { - "henrikbjorn/phpspec-code-coverage": "^1.0", - "phpspec/phpspec": "^2.4" + "phpunit/phpunit": "^3|^4|^5|^6|^7" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1-dev" - } + "suggest": { + "ext-libsodium": "PHP < 7.0: Better performance, password hashing (Argon2i), secure memory management (memzero), and better security.", + "ext-sodium": "PHP >= 7.0: Better performance, password hashing (Argon2i), secure memory management (memzero), and better security." }, + "type": "library", "autoload": { - "psr-4": { - "Http\\Promise\\": "src/" - } + "files": [ + "autoload.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "ISC" ], "authors": [ { - "name": "Márk Sági-Kazár", - "email": "mark.sagikazar@gmail.com" + "name": "Paragon Initiative Enterprises", + "email": "security@paragonie.com" }, { - "name": "Joel Wurtz", - "email": "joel.wurtz@gmail.com" + "name": "Frank Denis", + "email": "jedisct1@pureftpd.org" } ], - "description": "Promise used for asynchronous HTTP requests", - "homepage": "http://httplug.io", + "description": "Pure PHP implementation of libsodium; uses the PHP extension if it exists", "keywords": [ - "promise" + "Authentication", + "BLAKE2b", + "ChaCha20", + "ChaCha20-Poly1305", + "Chapoly", + "Curve25519", + "Ed25519", + "EdDSA", + "Edwards-curve Digital Signature Algorithm", + "Elliptic Curve Diffie-Hellman", + "Poly1305", + "Pure-PHP cryptography", + "RFC 7748", + "RFC 8032", + "Salpoly", + "Salsa20", + "X25519", + "XChaCha20-Poly1305", + "XSalsa20-Poly1305", + "Xchacha20", + "Xsalsa20", + "aead", + "cryptography", + "ecdh", + "elliptic curve", + "elliptic curve cryptography", + "encryption", + "libsodium", + "php", + "public-key cryptography", + "secret-key cryptography", + "side-channel resistant" ], - "time": "2016-01-26T13:27:02+00:00" + "time": "2020-03-20T21:48:09+00:00" }, { - "name": "phpseclib/phpseclib", - "version": "2.0.27", + "name": "phalcon/ide-stubs", + "version": "v3.4.3", "source": { "type": "git", - "url": "https://github.com/phpseclib/phpseclib.git", - "reference": "34620af4df7d1988d8f0d7e91f6c8a3bf931d8dc" + "url": "https://github.com/phalcon/ide-stubs.git", + "reference": "65144f2b0fad32b182ccb062b1efc1b4edea5d44" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/34620af4df7d1988d8f0d7e91f6c8a3bf931d8dc", - "reference": "34620af4df7d1988d8f0d7e91f6c8a3bf931d8dc", + "url": "https://api.github.com/repos/phalcon/ide-stubs/zipball/65144f2b0fad32b182ccb062b1efc1b4edea5d44", + "reference": "65144f2b0fad32b182ccb062b1efc1b4edea5d44", "shasum": "" }, "require": { - "php": ">=5.3.3" - }, - "require-dev": { - "phing/phing": "~2.7", - "phpunit/phpunit": "^4.8.35|^5.7|^6.0", - "sami/sami": "~2.0", - "squizlabs/php_codesniffer": "~2.0" - }, - "suggest": { - "ext-gmp": "Install the GMP (GNU Multiple Precision) extension in order to speed up arbitrary precision integer arithmetic operations.", - "ext-libsodium": "SSH2/SFTP can make use of some algorithms provided by the libsodium-php extension.", - "ext-mcrypt": "Install the Mcrypt extension in order to speed up a few other cryptographic operations.", - "ext-openssl": "Install the OpenSSL extension in order to speed up a wide variety of cryptographic operations." + "php": ">=5.3.0" }, "type": "library", - "autoload": { - "files": [ - "phpseclib/bootstrap.php" - ], - "psr-4": { - "phpseclib\\": "phpseclib/" - } - }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Jim Wigginton", - "email": "terrafrost@php.net", - "role": "Lead Developer" - }, - { - "name": "Patrick Monnerat", - "email": "pm@datasphere.ch", - "role": "Developer" - }, - { - "name": "Andreas Fischer", - "email": "bantu@phpbb.com", - "role": "Developer" - }, - { - "name": "Hans-Jürgen Petrich", - "email": "petrich@tronic-media.com", - "role": "Developer" + "name": "Phalcon Team", + "email": "team@phalconphp.com", + "homepage": "https://phalconphp.com/en/team" }, { - "name": "Graham Campbell", - "email": "graham@alt-three.com", - "role": "Developer" + "name": "Contributors", + "homepage": "https://github.com/phalcon/ide-stubs/graphs/contributors" } ], - "description": "PHP Secure Communications Library - Pure-PHP implementations of RSA, AES, SSH2, SFTP, X.509 etc.", - "homepage": "http://phpseclib.sourceforge.net", + "description": "The most complete Phalcon Framework IDE stubs library which enables autocompletion in modern IDEs.", + "homepage": "https://phalconphp.com", "keywords": [ - "BigInteger", - "aes", - "asn.1", - "asn1", - "blowfish", - "crypto", - "cryptography", - "encryption", - "rsa", - "security", - "sftp", - "signature", - "signing", - "ssh", - "twofish", - "x.509", - "x509" + "Devtools", + "Eclipse", + "autocomplete", + "ide", + "netbeans", + "phalcon", + "phpstorm", + "stub", + "stubs" ], - "time": "2020-04-04T23:17:33+00:00" + "time": "2018-12-09T14:11:06+00:00" }, { - "name": "psr/container", - "version": "1.0.0", + "name": "phalcon/incubator", + "version": "4.0.x-dev", "source": { "type": "git", - "url": "https://github.com/php-fig/container.git", - "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f" + "url": "https://github.com/phalcon/incubator.git", + "reference": "32ec732046be7e0046bf7d9310beb029775e7235" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f", - "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f", + "url": "https://api.github.com/repos/phalcon/incubator/zipball/32ec732046be7e0046bf7d9310beb029775e7235", + "reference": "32ec732046be7e0046bf7d9310beb029775e7235", "shasum": "" }, "require": { - "php": ">=5.3.0" + "ext-phalcon": "^4.0", + "phalcon/incubator-acl": "^1.0.0-alpha.1", + "phalcon/incubator-session": "^1.0.0", + "php": ">=7.2" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } + "require-dev": { + "codeception/aerospike-module": "^1.0", + "codeception/codeception": "^2.5", + "codeception/mockery-module": "0.2.2", + "codeception/specify": "^0.4", + "codeception/verify": "^0.3", + "doctrine/instantiator": "1.0.5", + "phalcon/dd": "^1.1", + "phalcon/ide-stubs": "^4.0", + "phpdocumentor/reflection-docblock": "2.0.4", + "phpunit/phpunit": "^4.8", + "squizlabs/php_codesniffer": "^2.9", + "vlucas/phpdotenv": "^2.4" + }, + "suggest": { + "duncan3dc/fork-helper": "To use extended class to access the beanstalk queue service", + "phalcon/ide-stubs": "Phalcon IDE Stubs", + "swiftmailer/swiftmailer": "~5.2", + "twig/twig": "~1.35|~2.0" }, + "type": "library", "autoload": { "psr-4": { - "Psr\\Container\\": "src/" + "Phalcon\\": "Library/Phalcon/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "name": "Phalcon Team", + "email": "team@phalconphp.com", + "homepage": "https://phalconphp.com/en/team" + }, + { + "name": "Contributors", + "homepage": "https://github.com/phalcon/incubator/graphs/contributors" } ], - "description": "Common Container Interface (PHP FIG PSR-11)", - "homepage": "https://github.com/php-fig/container", + "description": "Adapters, prototypes or functionality that can be potentially incorporated to the C-framework.", + "homepage": "https://phalconphp.com", "keywords": [ - "PSR-11", - "container", - "container-interface", - "container-interop", - "psr" + "framework", + "incubator", + "phalcon" ], - "time": "2017-02-14T16:28:37+00:00" + "funding": [ + { + "url": "https://github.com/phalcon", + "type": "github" + }, + { + "url": "https://opencollective.com/phalcon", + "type": "open_collective" + } + ], + "time": "2020-06-18T21:44:08+00:00" }, { - "name": "psr/http-message", - "version": "1.0.1", + "name": "phalcon/incubator-acl", + "version": "v1.0.0-alpha.1", "source": { "type": "git", - "url": "https://github.com/php-fig/http-message.git", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" + "url": "https://github.com/phalcon/incubator-acl.git", + "reference": "33b4e184ef9c99d355c20eb983e85621015c6d3f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", + "url": "https://api.github.com/repos/phalcon/incubator-acl/zipball/33b4e184ef9c99d355c20eb983e85621015c6d3f", + "reference": "33b4e184ef9c99d355c20eb983e85621015c6d3f", "shasum": "" }, "require": { - "php": ">=5.3.0" + "ext-phalcon": "^4.0", + "php": ">=7.2" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } + "require-dev": { + "codeception/codeception": "^4.1", + "codeception/module-asserts": "^1.0.0", + "mongodb/mongodb": "^1.6", + "phalcon/ide-stubs": "^4.0", + "phpstan/phpstan": "^0.12.18", + "squizlabs/php_codesniffer": "3.5.1", + "vimeo/psalm": "3.6.2" }, + "type": "library", "autoload": { "psr-4": { - "Psr\\Http\\Message\\": "src/" + "Phalcon\\Incubator\\Acl\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "name": "Phalcon Team", + "email": "team@phalcon.io", + "homepage": "https://phalcon.io/en/team" + }, + { + "name": "Contributors", + "homepage": "https://github.com/phalcon/incubator-acl/graphs/contributors" } ], - "description": "Common interface for HTTP messages", - "homepage": "https://github.com/php-fig/http-message", + "description": "Phalcon Incubator Access Control List", + "homepage": "https://phalcon.io", "keywords": [ - "http", - "http-message", - "psr", - "psr-7", - "request", - "response" + "acl", + "framework", + "incubator", + "phalcon" ], - "time": "2016-08-06T14:39:51+00:00" + "funding": [ + { + "url": "https://github.com/phalcon", + "type": "github" + }, + { + "url": "https://opencollective.com/phalcon", + "type": "open_collective" + } + ], + "time": "2020-04-13T22:00:37+00:00" }, { - "name": "psr/log", - "version": "1.1.3", + "name": "phalcon/incubator-session", + "version": "v1.0.0", "source": { "type": "git", - "url": "https://github.com/php-fig/log.git", - "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc" + "url": "https://github.com/phalcon/incubator-session.git", + "reference": "68e6543c91789b5f79ca7e2c1f8c9ae4689bef14" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/0f73288fd15629204f9d42b7055f72dacbe811fc", - "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc", + "url": "https://api.github.com/repos/phalcon/incubator-session/zipball/68e6543c91789b5f79ca7e2c1f8c9ae4689bef14", + "reference": "68e6543c91789b5f79ca7e2c1f8c9ae4689bef14", "shasum": "" }, "require": { - "php": ">=5.3.0" + "ext-phalcon": "^4.0", + "php": ">=7.2" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1.x-dev" - } + "require-dev": { + "codeception/codeception": "^4.1", + "codeception/module-asserts": "^1.0.0", + "mongodb/mongodb": "^1.6", + "phalcon/ide-stubs": "^4.0", + "phpstan/phpstan": "^0.12.18", + "squizlabs/php_codesniffer": "^3.5", + "vimeo/psalm": "^3.6" }, + "type": "library", "autoload": { "psr-4": { - "Psr\\Log\\": "Psr/Log/" + "Phalcon\\Incubator\\Session\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "name": "Phalcon Team", + "email": "team@phalcon.io", + "homepage": "https://phalcon.io/en/team" + }, + { + "name": "Contributors", + "homepage": "https://github.com/phalcon/incubator-session/graphs/contributors" } ], - "description": "Common interface for logging libraries", - "homepage": "https://github.com/php-fig/log", + "description": "Phalcon Incubator Sessions Adapters", + "homepage": "https://phalcon.io", "keywords": [ - "log", - "psr", - "psr-3" + "framework", + "incubator", + "phalcon", + "session" ], - "time": "2020-03-23T09:12:05+00:00" + "funding": [ + { + "url": "https://github.com/phalcon", + "type": "github" + }, + { + "url": "https://opencollective.com/phalcon", + "type": "open_collective" + } + ], + "time": "2020-06-18T15:04:50+00:00" }, { - "name": "psr/simple-cache", - "version": "1.0.1", + "name": "phar-io/manifest", + "version": "1.0.3", "source": { "type": "git", - "url": "https://github.com/php-fig/simple-cache.git", - "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b" + "url": "https://github.com/phar-io/manifest.git", + "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", - "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", + "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", "shasum": "" }, "require": { - "php": ">=5.3.0" + "ext-dom": "*", + "ext-phar": "*", + "phar-io/version": "^2.0", + "php": "^5.6 || ^7.0" }, "type": "library", "extra": { @@ -3033,152 +3039,185 @@ } }, "autoload": { - "psr-4": { - "Psr\\SimpleCache\\": "src/" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" } ], - "description": "Common interfaces for simple caching", - "keywords": [ - "cache", - "caching", - "psr", - "psr-16", - "simple-cache" - ], - "time": "2017-10-23T01:57:42+00:00" + "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", + "time": "2018-07-08T19:23:20+00:00" }, { - "name": "pusher/pusher-php-server", - "version": "v3.4.1", + "name": "phar-io/version", + "version": "2.0.1", "source": { "type": "git", - "url": "https://github.com/pusher/pusher-http-php.git", - "reference": "a5fcdc65efd8d9a8291efbe01d326ec7ef5d5cee" + "url": "https://github.com/phar-io/version.git", + "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pusher/pusher-http-php/zipball/a5fcdc65efd8d9a8291efbe01d326ec7ef5d5cee", - "reference": "a5fcdc65efd8d9a8291efbe01d326ec7ef5d5cee", + "url": "https://api.github.com/repos/phar-io/version/zipball/45a2ec53a73c70ce41d55cedef9063630abaf1b6", + "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6", "shasum": "" }, "require": { - "ext-curl": "*", - "paragonie/sodium_compat": "^1.6", - "php": ">=5.4 <7.4", - "psr/log": "^1.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7" + "php": "^5.6 || ^7.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - }, "autoload": { - "psr-4": { - "Pusher\\": "src/" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], - "description": "Library for interacting with the Pusher REST API", - "keywords": [ - "events", - "messaging", - "php-pusher-server", - "publish", - "push", - "pusher", - "real time", - "real-time", - "realtime", - "rest", - "trigger" + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } ], - "time": "2019-03-19T11:19:11+00:00" + "description": "Library for handling version information and constraints", + "time": "2018-07-08T19:19:57+00:00" }, { - "name": "ralouphie/getallheaders", - "version": "3.0.3", + "name": "php-amqplib/php-amqplib", + "version": "v2.11.3", "source": { "type": "git", - "url": "https://github.com/ralouphie/getallheaders.git", - "reference": "120b605dfeb996808c31b6477290a714d356e822" + "url": "https://github.com/php-amqplib/php-amqplib.git", + "reference": "6353c5d2d3021a301914bc6566e695c99cfeb742" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", - "reference": "120b605dfeb996808c31b6477290a714d356e822", + "url": "https://api.github.com/repos/php-amqplib/php-amqplib/zipball/6353c5d2d3021a301914bc6566e695c99cfeb742", + "reference": "6353c5d2d3021a301914bc6566e695c99cfeb742", "shasum": "" }, "require": { - "php": ">=5.6" + "ext-mbstring": "*", + "ext-sockets": "*", + "php": ">=5.6.3", + "phpseclib/phpseclib": "^2.0.0" + }, + "conflict": { + "php": "7.4.0 - 7.4.1" + }, + "replace": { + "videlalvaro/php-amqplib": "self.version" }, "require-dev": { - "php-coveralls/php-coveralls": "^2.1", - "phpunit/phpunit": "^5 || ^6.5" + "ext-curl": "*", + "nategood/httpful": "^0.2.20", + "phpunit/phpunit": "^5.7|^6.5|^7.0", + "squizlabs/php_codesniffer": "^2.5" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.11-dev" + } + }, "autoload": { - "files": [ - "src/getallheaders.php" - ] + "psr-4": { + "PhpAmqpLib\\": "PhpAmqpLib/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "LGPL-2.1-or-later" ], "authors": [ { - "name": "Ralph Khattar", - "email": "ralph.khattar@gmail.com" + "name": "Alvaro Videla", + "role": "Original Maintainer" + }, + { + "name": "Raúl Araya", + "email": "nubeiro@gmail.com", + "role": "Maintainer" + }, + { + "name": "Luke Bakken", + "email": "luke@bakken.io", + "role": "Maintainer" + }, + { + "name": "Ramūnas Dronga", + "email": "github@ramuno.lt", + "role": "Maintainer" } ], - "description": "A polyfill for getallheaders.", - "time": "2019-03-08T08:55:37+00:00" + "description": "Formerly videlalvaro/php-amqplib. This library is a pure PHP implementation of the AMQP protocol. It's been tested against RabbitMQ.", + "homepage": "https://github.com/php-amqplib/php-amqplib/", + "keywords": [ + "message", + "queue", + "rabbitmq" + ], + "time": "2020-05-13T13:56:11+00:00" }, { - "name": "react/promise", - "version": "v2.8.0", + "name": "phpdocumentor/reflection-common", + "version": "2.2.0", "source": { "type": "git", - "url": "https://github.com/reactphp/promise.git", - "reference": "f3cff96a19736714524ca0dd1d4130de73dbbbc4" + "url": "https://github.com/phpDocumentor/ReflectionCommon.git", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/reactphp/promise/zipball/f3cff96a19736714524ca0dd1d4130de73dbbbc4", - "reference": "f3cff96a19736714524ca0dd1d4130de73dbbbc4", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", "shasum": "" }, "require": { - "php": ">=5.4.0" - }, - "require-dev": { - "phpunit/phpunit": "^7.0 || ^6.5 || ^5.7 || ^4.8.36" + "php": "^7.2 || ^8.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-2.x": "2.x-dev" + } + }, "autoload": { "psr-4": { - "React\\Promise\\": "src/" - }, - "files": [ - "src/functions_include.php" - ] + "phpDocumentor\\Reflection\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3186,56 +3225,55 @@ ], "authors": [ { - "name": "Jan Sorgalla", - "email": "jsorgalla@gmail.com" + "name": "Jaap van Otterdijk", + "email": "opensource@ijaap.nl" } ], - "description": "A lightweight implementation of CommonJS Promises/A for PHP", + "description": "Common reflection classes used by phpdocumentor to reflect the code structure", + "homepage": "http://www.phpdoc.org", "keywords": [ - "promise", - "promises" + "FQSEN", + "phpDocumentor", + "phpdoc", + "reflection", + "static analysis" ], - "time": "2020-05-12T15:16:56+00:00" + "time": "2020-06-27T09:03:43+00:00" }, { - "name": "robmorgan/phinx", - "version": "0.11.7", + "name": "phpdocumentor/reflection-docblock", + "version": "5.1.0", "source": { "type": "git", - "url": "https://github.com/cakephp/phinx.git", - "reference": "3cdde73e0c33c410e076108b3e1603fabb5b330d" + "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", + "reference": "cd72d394ca794d3466a3b2fc09d5a6c1dc86b47e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cakephp/phinx/zipball/3cdde73e0c33c410e076108b3e1603fabb5b330d", - "reference": "3cdde73e0c33c410e076108b3e1603fabb5b330d", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/cd72d394ca794d3466a3b2fc09d5a6c1dc86b47e", + "reference": "cd72d394ca794d3466a3b2fc09d5a6c1dc86b47e", "shasum": "" }, "require": { - "cakephp/collection": "^3.7", - "cakephp/database": "^3.7", - "php": ">=5.6", - "symfony/config": "^3.4|^4.0|^5.0", - "symfony/console": "^3.4|^4.0|^5.0", - "symfony/yaml": "^3.4|^4.0|^5.0" + "ext-filter": "^7.1", + "php": "^7.2", + "phpdocumentor/reflection-common": "^2.0", + "phpdocumentor/type-resolver": "^1.0", + "webmozart/assert": "^1" }, "require-dev": { - "cakephp/cakephp-codesniffer": "^3.0", - "ext-json": "*", - "phpunit/phpunit": ">=5.7,<8.0", - "sebastian/comparator": ">=1.2.3" - }, - "suggest": { - "ext-json": "Install if using JSON configuration format", - "symfony/yaml": "Install if using YAML configuration format" + "doctrine/instantiator": "^1", + "mockery/mockery": "^1" }, - "bin": [ - "bin/phinx" - ], "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.x-dev" + } + }, "autoload": { "psr-4": { - "Phinx\\": "src/Phinx/" + "phpDocumentor\\Reflection\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -3244,207 +3282,163 @@ ], "authors": [ { - "name": "Rob Morgan", - "email": "robbym@gmail.com", - "homepage": "https://robmorgan.id.au", - "role": "Lead Developer" - }, - { - "name": "Woody Gilk", - "email": "woody.gilk@gmail.com", - "homepage": "https://shadowhand.me", - "role": "Developer" - }, - { - "name": "Richard Quadling", - "email": "rquadling@gmail.com", - "role": "Developer" + "name": "Mike van Riel", + "email": "me@mikevanriel.com" }, { - "name": "CakePHP Community", - "homepage": "https://github.com/cakephp/phinx/graphs/contributors", - "role": "Developer" + "name": "Jaap van Otterdijk", + "email": "account@ijaap.nl" } ], - "description": "Phinx makes it ridiculously easy to manage the database migrations for your PHP app.", - "homepage": "https://phinx.org", - "keywords": [ - "database", - "database migrations", - "db", - "migrations", - "phinx" - ], - "time": "2020-05-09T13:59:05+00:00" + "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", + "time": "2020-02-22T12:28:44+00:00" }, { - "name": "sentry/sentry", - "version": "1.11.0", + "name": "phpdocumentor/type-resolver", + "version": "1.3.0", "source": { "type": "git", - "url": "https://github.com/getsentry/sentry-php.git", - "reference": "159eeaa02bb2ef8a8ec669f3c88e4bff7e6a7ffe" + "url": "https://github.com/phpDocumentor/TypeResolver.git", + "reference": "e878a14a65245fbe78f8080eba03b47c3b705651" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/getsentry/sentry-php/zipball/159eeaa02bb2ef8a8ec669f3c88e4bff7e6a7ffe", - "reference": "159eeaa02bb2ef8a8ec669f3c88e4bff7e6a7ffe", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/e878a14a65245fbe78f8080eba03b47c3b705651", + "reference": "e878a14a65245fbe78f8080eba03b47c3b705651", "shasum": "" }, "require": { - "ext-curl": "*", - "php": "^5.3|^7.0" - }, - "conflict": { - "raven/raven": "*" + "php": "^7.2 || ^8.0", + "phpdocumentor/reflection-common": "^2.0" }, "require-dev": { - "friendsofphp/php-cs-fixer": "^1.8.0", - "monolog/monolog": "^1.0", - "phpunit/phpunit": "^4.8.35 || ^5.7" - }, - "suggest": { - "ext-hash": "*", - "ext-json": "*", - "ext-mbstring": "*", - "monolog/monolog": "Automatically capture Monolog events as breadcrumbs" + "ext-tokenizer": "*" }, - "bin": [ - "bin/sentry" - ], "type": "library", "extra": { "branch-alias": { - "dev-master": "1.11.x-dev" + "dev-1.x": "1.x-dev" } }, "autoload": { - "psr-0": { - "Raven_": "lib/" + "psr-4": { + "phpDocumentor\\Reflection\\": "src" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "David Cramer", - "email": "dcramer@gmail.com" + "name": "Mike van Riel", + "email": "me@mikevanriel.com" } ], - "description": "A PHP client for Sentry (http://getsentry.com)", - "homepage": "http://getsentry.com", - "keywords": [ - "log", - "logging" - ], - "time": "2020-02-12T18:38:11+00:00" + "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", + "time": "2020-06-27T10:12:23+00:00" }, { - "name": "sly/notification-pusher", - "version": "v2.3.6", + "name": "phpoption/phpoption", + "version": "1.7.4", "source": { "type": "git", - "url": "https://github.com/Ph3nol/NotificationPusher.git", - "reference": "6b3710bf65192d5bec724249566c2f11928866ad" + "url": "https://github.com/schmittjoh/php-option.git", + "reference": "b2ada2ad5d8a32b89088b8adc31ecd2e3a13baf3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Ph3nol/NotificationPusher/zipball/6b3710bf65192d5bec724249566c2f11928866ad", - "reference": "6b3710bf65192d5bec724249566c2f11928866ad", + "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/b2ada2ad5d8a32b89088b8adc31ecd2e3a13baf3", + "reference": "b2ada2ad5d8a32b89088b8adc31ecd2e3a13baf3", "shasum": "" }, "require": { - "doctrine/inflector": "1.*", - "php": ">=5.6", - "symfony/console": ">=2.3,<5", - "symfony/debug": ">=2.3,<5", - "symfony/filesystem": ">=2.3,<5", - "symfony/options-resolver": ">=2.3,<5", - "symfony/process": ">=2.3,<5", - "zendframework/zendservice-apple-apns": "~1.0", - "zendframework/zendservice-google-gcm": "~2.0" + "php": "^5.5.9 || ^7.0 || ^8.0" }, "require-dev": { - "atoum/atoum": "^3.1", - "atoum/stubs": "^2.5", - "atoum/visibility-extension": "^1.3", - "symfony/var-dumper": ">=2.3,<5" + "bamarni/composer-bin-plugin": "^1.3", + "phpunit/phpunit": "^4.8.35 || ^5.0 || ^6.0 || ^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.7-dev" + } }, - "bin": [ - "np" - ], - "type": "standalone", "autoload": { "psr-4": { - "Sly\\": "src/Sly/" + "PhpOption\\": "src/PhpOption/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "Apache-2.0" ], "authors": [ { - "name": "Cédric Dugat", - "email": "cedric@dugat.me" + "name": "Johannes M. Schmitt", + "email": "schmittjoh@gmail.com" }, { - "name": "Contributors", - "homepage": "https://github.com/Ph3nol/NotificationPusher/contributors" + "name": "Graham Campbell", + "email": "graham@alt-three.com" } ], - "description": "Standalone PHP library for easy devices notifications push.", - "homepage": "https://github.com/Ph3nol/NotificationPusher", + "description": "Option Type for PHP", "keywords": [ - "android", - "apns", - "apple", - "gcm", - "iphone", - "message", - "notification", - "push", - "pusher" + "language", + "option", + "php", + "type" + ], + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpoption/phpoption", + "type": "tidelift" + } ], - "time": "2018-09-15T15:21:38+00:00" + "time": "2020-06-07T10:40:07+00:00" }, { - "name": "stripe/stripe-php", - "version": "v6.43.1", + "name": "phpseclib/phpseclib", + "version": "2.0.27", "source": { "type": "git", - "url": "https://github.com/stripe/stripe-php.git", - "reference": "42fcdaf99c44bb26937223f8eae1f263491d5ab8" + "url": "https://github.com/phpseclib/phpseclib.git", + "reference": "34620af4df7d1988d8f0d7e91f6c8a3bf931d8dc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/stripe/stripe-php/zipball/42fcdaf99c44bb26937223f8eae1f263491d5ab8", - "reference": "42fcdaf99c44bb26937223f8eae1f263491d5ab8", + "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/34620af4df7d1988d8f0d7e91f6c8a3bf931d8dc", + "reference": "34620af4df7d1988d8f0d7e91f6c8a3bf931d8dc", "shasum": "" }, "require": { - "ext-curl": "*", - "ext-json": "*", - "ext-mbstring": "*", - "php": ">=5.4.0" + "php": ">=5.3.3" }, "require-dev": { - "php-coveralls/php-coveralls": "1.*", - "phpunit/phpunit": "~4.0", - "squizlabs/php_codesniffer": "~2.0", - "symfony/process": "~2.8" + "phing/phing": "~2.7", + "phpunit/phpunit": "^4.8.35|^5.7|^6.0", + "sami/sami": "~2.0", + "squizlabs/php_codesniffer": "~2.0" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } + "suggest": { + "ext-gmp": "Install the GMP (GNU Multiple Precision) extension in order to speed up arbitrary precision integer arithmetic operations.", + "ext-libsodium": "SSH2/SFTP can make use of some algorithms provided by the libsodium-php extension.", + "ext-mcrypt": "Install the Mcrypt extension in order to speed up a few other cryptographic operations.", + "ext-openssl": "Install the OpenSSL extension in order to speed up a wide variety of cryptographic operations." }, + "type": "library", "autoload": { + "files": [ + "phpseclib/bootstrap.php" + ], "psr-4": { - "Stripe\\": "lib/" + "phpseclib\\": "phpseclib/" } }, "notification-url": "https://packagist.org/downloads/", @@ -3453,58 +3447,103 @@ ], "authors": [ { - "name": "Stripe and contributors", - "homepage": "https://github.com/stripe/stripe-php/contributors" + "name": "Jim Wigginton", + "email": "terrafrost@php.net", + "role": "Lead Developer" + }, + { + "name": "Patrick Monnerat", + "email": "pm@datasphere.ch", + "role": "Developer" + }, + { + "name": "Andreas Fischer", + "email": "bantu@phpbb.com", + "role": "Developer" + }, + { + "name": "Hans-Jürgen Petrich", + "email": "petrich@tronic-media.com", + "role": "Developer" + }, + { + "name": "Graham Campbell", + "email": "graham@alt-three.com", + "role": "Developer" } ], - "description": "Stripe PHP Library", - "homepage": "https://stripe.com/", + "description": "PHP Secure Communications Library - Pure-PHP implementations of RSA, AES, SSH2, SFTP, X.509 etc.", + "homepage": "http://phpseclib.sourceforge.net", "keywords": [ - "api", - "payment processing", - "stripe" + "BigInteger", + "aes", + "asn.1", + "asn1", + "blowfish", + "crypto", + "cryptography", + "encryption", + "rsa", + "security", + "sftp", + "signature", + "signing", + "ssh", + "twofish", + "x.509", + "x509" + ], + "funding": [ + { + "url": "https://github.com/terrafrost", + "type": "github" + }, + { + "url": "https://www.patreon.com/phpseclib", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpseclib/phpseclib", + "type": "tidelift" + } ], - "time": "2019-08-29T16:56:12+00:00" + "time": "2020-04-04T23:17:33+00:00" }, { - "name": "swiftmailer/swiftmailer", - "version": "v6.2.3", + "name": "phpspec/prophecy", + "version": "v1.10.3", "source": { "type": "git", - "url": "https://github.com/swiftmailer/swiftmailer.git", - "reference": "149cfdf118b169f7840bbe3ef0d4bc795d1780c9" + "url": "https://github.com/phpspec/prophecy.git", + "reference": "451c3cd1418cf640de218914901e51b064abb093" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/149cfdf118b169f7840bbe3ef0d4bc795d1780c9", - "reference": "149cfdf118b169f7840bbe3ef0d4bc795d1780c9", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/451c3cd1418cf640de218914901e51b064abb093", + "reference": "451c3cd1418cf640de218914901e51b064abb093", "shasum": "" }, "require": { - "egulias/email-validator": "~2.0", - "php": ">=7.0.0", - "symfony/polyfill-iconv": "^1.0", - "symfony/polyfill-intl-idn": "^1.10", - "symfony/polyfill-mbstring": "^1.0" + "doctrine/instantiator": "^1.0.2", + "php": "^5.3|^7.0", + "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0|^5.0", + "sebastian/comparator": "^1.2.3|^2.0|^3.0|^4.0", + "sebastian/recursion-context": "^1.0|^2.0|^3.0|^4.0" }, "require-dev": { - "mockery/mockery": "~0.9.1", - "symfony/phpunit-bridge": "^3.4.19|^4.1.8" - }, - "suggest": { - "ext-intl": "Needed to support internationalized email addresses", - "true/punycode": "Needed to support internationalized email addresses, if ext-intl is not installed" + "phpspec/phpspec": "^2.5 || ^3.2", + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "6.2-dev" + "dev-master": "1.10.x-dev" } }, "autoload": { - "files": [ - "lib/swift_required.php" - ] + "psr-4": { + "Prophecy\\": "src/Prophecy" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3512,648 +3551,659 @@ ], "authors": [ { - "name": "Chris Corbyn" + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" }, { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Marcello Duarte", + "email": "marcello.duarte@gmail.com" } ], - "description": "Swiftmailer, free feature-rich PHP mailer", - "homepage": "https://swiftmailer.symfony.com", + "description": "Highly opinionated mocking framework for PHP 5.3+", + "homepage": "https://github.com/phpspec/prophecy", "keywords": [ - "email", - "mail", - "mailer" + "Double", + "Dummy", + "fake", + "mock", + "spy", + "stub" ], - "time": "2019-11-12T09:31:26+00:00" + "time": "2020-03-05T15:02:03+00:00" }, { - "name": "symfony/config", - "version": "v5.0.8", + "name": "phpstan/phpdoc-parser", + "version": "0.2", "source": { "type": "git", - "url": "https://github.com/symfony/config.git", - "reference": "db1674e1a261148429f123871f30d211992294e7" + "url": "https://github.com/phpstan/phpdoc-parser.git", + "reference": "02f909f134fe06f0cd4790d8627ee24efbe84d6a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/db1674e1a261148429f123871f30d211992294e7", - "reference": "db1674e1a261148429f123871f30d211992294e7", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/02f909f134fe06f0cd4790d8627ee24efbe84d6a", + "reference": "02f909f134fe06f0cd4790d8627ee24efbe84d6a", "shasum": "" }, "require": { - "php": "^7.2.5", - "symfony/filesystem": "^4.4|^5.0", - "symfony/polyfill-ctype": "~1.8" - }, - "conflict": { - "symfony/finder": "<4.4" + "php": "~7.0" }, "require-dev": { - "symfony/event-dispatcher": "^4.4|^5.0", - "symfony/finder": "^4.4|^5.0", - "symfony/messenger": "^4.4|^5.0", - "symfony/service-contracts": "^1.1|^2", - "symfony/yaml": "^4.4|^5.0" - }, - "suggest": { - "symfony/yaml": "To use the yaml reference dumper" + "consistence/coding-standard": "^2.0.0", + "jakub-onderka/php-parallel-lint": "^0.9.2", + "phing/phing": "^2.16.0", + "phpstan/phpstan": "^0.9", + "phpunit/phpunit": "^6.3", + "slevomat/coding-standard": "^3.3.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "5.0-dev" + "dev-master": "0.1-dev" } }, "autoload": { "psr-4": { - "Symfony\\Component\\Config\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "PHPStan\\PhpDocParser\\": [ + "src/" + ] + } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Config Component", - "homepage": "https://symfony.com", - "time": "2020-04-15T15:59:10+00:00" + "description": "PHPDoc parser with support for nullable, intersection and generic types", + "time": "2018-01-13T18:19:41+00:00" }, { - "name": "symfony/console", - "version": "v4.4.8", + "name": "phpstan/phpstan", + "version": "0.9.3", "source": { "type": "git", - "url": "https://github.com/symfony/console.git", - "reference": "10bb3ee3c97308869d53b3e3d03f6ac23ff985f7" + "url": "https://github.com/phpstan/phpstan.git", + "reference": "884091282ad055da6ba86b5455be2d043922d882" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/10bb3ee3c97308869d53b3e3d03f6ac23ff985f7", - "reference": "10bb3ee3c97308869d53b3e3d03f6ac23ff985f7", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/884091282ad055da6ba86b5455be2d043922d882", + "reference": "884091282ad055da6ba86b5455be2d043922d882", "shasum": "" }, "require": { - "php": "^7.1.3", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php73": "^1.8", - "symfony/service-contracts": "^1.1|^2" - }, - "conflict": { - "symfony/dependency-injection": "<3.4", - "symfony/event-dispatcher": "<4.3|>=5", - "symfony/lock": "<4.4", - "symfony/process": "<3.3" - }, - "provide": { - "psr/log-implementation": "1.0" + "jean85/pretty-package-versions": "^1.0.3", + "nette/bootstrap": "^2.4 || ^3.0", + "nette/di": "^2.4.7 || ^3.0", + "nette/robot-loader": "^3.0.1", + "nette/utils": "^2.4.5 || ^3.0", + "nikic/php-parser": "^3.1", + "php": "~7.0", + "phpstan/phpdoc-parser": "^0.2", + "symfony/console": "~3.2 || ~4.0", + "symfony/finder": "~3.2 || ~4.0" }, "require-dev": { - "psr/log": "~1.0", - "symfony/config": "^3.4|^4.0|^5.0", - "symfony/dependency-injection": "^3.4|^4.0|^5.0", - "symfony/event-dispatcher": "^4.3", - "symfony/lock": "^4.4|^5.0", - "symfony/process": "^3.4|^4.0|^5.0", - "symfony/var-dumper": "^4.3|^5.0" - }, - "suggest": { - "psr/log": "For using the console logger", - "symfony/event-dispatcher": "", - "symfony/lock": "", - "symfony/process": "" + "consistence/coding-standard": "2.2.1", + "ext-gd": "*", + "ext-intl": "*", + "ext-mysqli": "*", + "jakub-onderka/php-parallel-lint": "^0.9.2", + "phing/phing": "^2.16.0", + "phpstan/phpstan-php-parser": "^0.9", + "phpstan/phpstan-phpunit": "^0.9.3", + "phpstan/phpstan-strict-rules": "^0.9", + "phpunit/phpunit": "^6.5.4", + "slevomat/coding-standard": "4.0.0" }, + "bin": [ + "bin/phpstan" + ], "type": "library", "extra": { "branch-alias": { - "dev-master": "4.4-dev" + "dev-master": "0.9-dev" } }, "autoload": { "psr-4": { - "Symfony\\Component\\Console\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "PHPStan\\": [ + "src/", + "build/PHPStan" + ] + } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Console Component", - "homepage": "https://symfony.com", - "time": "2020-03-30T11:41:10+00:00" + "description": "PHPStan - PHP Static Analysis Tool", + "time": "2020-01-07T15:01:00+00:00" }, { - "name": "symfony/debug", - "version": "v4.4.8", + "name": "phpunit/php-code-coverage", + "version": "8.0.2", "source": { "type": "git", - "url": "https://github.com/symfony/debug.git", - "reference": "346636d2cae417992ecfd761979b2ab98b339a45" + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "ca6647ffddd2add025ab3f21644a441d7c146cdc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/346636d2cae417992ecfd761979b2ab98b339a45", - "reference": "346636d2cae417992ecfd761979b2ab98b339a45", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/ca6647ffddd2add025ab3f21644a441d7c146cdc", + "reference": "ca6647ffddd2add025ab3f21644a441d7c146cdc", "shasum": "" }, "require": { - "php": "^7.1.3", - "psr/log": "~1.0" - }, - "conflict": { - "symfony/http-kernel": "<3.4" + "ext-dom": "*", + "ext-xmlwriter": "*", + "php": "^7.3", + "phpunit/php-file-iterator": "^3.0", + "phpunit/php-text-template": "^2.0", + "phpunit/php-token-stream": "^4.0", + "sebastian/code-unit-reverse-lookup": "^2.0", + "sebastian/environment": "^5.0", + "sebastian/version": "^3.0", + "theseer/tokenizer": "^1.1.3" }, "require-dev": { - "symfony/http-kernel": "^3.4|^4.0|^5.0" + "phpunit/phpunit": "^9.0" + }, + "suggest": { + "ext-pcov": "*", + "ext-xdebug": "*" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.4-dev" + "dev-master": "8.0-dev" } }, "autoload": { - "psr-4": { - "Symfony\\Component\\Debug\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", + "homepage": "https://github.com/sebastianbergmann/php-code-coverage", + "keywords": [ + "coverage", + "testing", + "xunit" + ], + "funding": [ { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "url": "https://github.com/sebastianbergmann", + "type": "github" } ], - "description": "Symfony Debug Component", - "homepage": "https://symfony.com", - "time": "2020-03-27T16:54:36+00:00" + "time": "2020-05-23T08:02:54+00:00" }, { - "name": "symfony/filesystem", - "version": "v4.4.8", + "name": "phpunit/php-file-iterator", + "version": "3.0.3", "source": { "type": "git", - "url": "https://github.com/symfony/filesystem.git", - "reference": "a3ebf3bfd8a98a147c010a568add5a8aa4edea0f" + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "8e282e5f5e2db5fb2271b3962ad69875c34a6f41" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/a3ebf3bfd8a98a147c010a568add5a8aa4edea0f", - "reference": "a3ebf3bfd8a98a147c010a568add5a8aa4edea0f", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/8e282e5f5e2db5fb2271b3962ad69875c34a6f41", + "reference": "8e282e5f5e2db5fb2271b3962ad69875c34a6f41", "shasum": "" }, "require": { - "php": "^7.1.3", - "symfony/polyfill-ctype": "~1.8" + "php": "^7.3 || ^8.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.4-dev" + "dev-master": "3.0-dev" } }, "autoload": { - "psr-4": { - "Symfony\\Component\\Filesystem\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "FilterIterator implementation that filters files based on a list of suffixes.", + "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "keywords": [ + "filesystem", + "iterator" ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, + "funding": [ { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "url": "https://github.com/sebastianbergmann", + "type": "github" } ], - "description": "Symfony Filesystem Component", - "homepage": "https://symfony.com", - "time": "2020-04-12T14:39:55+00:00" + "time": "2020-06-26T11:50:37+00:00" }, { - "name": "symfony/options-resolver", - "version": "v4.4.8", + "name": "phpunit/php-invoker", + "version": "3.0.2", "source": { "type": "git", - "url": "https://github.com/symfony/options-resolver.git", - "reference": "ade3d89dd3b875b83c8cff2980c9bb0daf6ef297" + "url": "https://github.com/sebastianbergmann/php-invoker.git", + "reference": "f6eedfed1085dd1f4c599629459a0277d25f9a66" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/ade3d89dd3b875b83c8cff2980c9bb0daf6ef297", - "reference": "ade3d89dd3b875b83c8cff2980c9bb0daf6ef297", + "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/f6eedfed1085dd1f4c599629459a0277d25f9a66", + "reference": "f6eedfed1085dd1f4c599629459a0277d25f9a66", "shasum": "" }, "require": { - "php": "^7.1.3" + "php": "^7.3 || ^8.0" + }, + "require-dev": { + "ext-pcntl": "*", + "phpunit/phpunit": "^9.0" + }, + "suggest": { + "ext-pcntl": "*" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.4-dev" + "dev-master": "3.0-dev" } }, "autoload": { - "psr-4": { - "Symfony\\Component\\OptionsResolver\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Symfony OptionsResolver Component", - "homepage": "https://symfony.com", + "description": "Invoke callables with a timeout", + "homepage": "https://github.com/sebastianbergmann/php-invoker/", "keywords": [ - "config", - "configuration", - "options" + "process" + ], + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } ], - "time": "2020-04-06T10:16:26+00:00" + "time": "2020-06-26T11:53:53+00:00" }, { - "name": "symfony/polyfill-ctype", - "version": "v1.17.0", + "name": "phpunit/php-text-template", + "version": "2.0.2", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "e94c8b1bbe2bc77507a1056cdb06451c75b427f9" + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "6ff9c8ea4d3212b88fcf74e25e516e2c51c99324" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/e94c8b1bbe2bc77507a1056cdb06451c75b427f9", - "reference": "e94c8b1bbe2bc77507a1056cdb06451c75b427f9", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/6ff9c8ea4d3212b88fcf74e25e516e2c51c99324", + "reference": "6ff9c8ea4d3212b88fcf74e25e516e2c51c99324", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": "^7.3 || ^8.0" }, - "suggest": { - "ext-ctype": "For best performance" + "require-dev": { + "phpunit/phpunit": "^9.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.17-dev" + "dev-master": "2.0-dev" } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" - }, - "files": [ - "bootstrap.php" + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Gert de Pagter", - "email": "BackEndTea@gmail.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Symfony polyfill for ctype functions", - "homepage": "https://symfony.com", + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", "keywords": [ - "compatibility", - "ctype", - "polyfill", - "portable" + "template" + ], + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } ], - "time": "2020-05-12T16:14:59+00:00" + "time": "2020-06-26T11:55:37+00:00" }, { - "name": "symfony/polyfill-iconv", - "version": "v1.17.0", + "name": "phpunit/php-timer", + "version": "5.0.1", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-iconv.git", - "reference": "c4de7601eefbf25f9d47190abe07f79fe0a27424" + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "cc49734779cbb302bf51a44297dab8c4bbf941e7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/c4de7601eefbf25f9d47190abe07f79fe0a27424", - "reference": "c4de7601eefbf25f9d47190abe07f79fe0a27424", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/cc49734779cbb302bf51a44297dab8c4bbf941e7", + "reference": "cc49734779cbb302bf51a44297dab8c4bbf941e7", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": "^7.3 || ^8.0" }, - "suggest": { - "ext-iconv": "For best performance" + "require-dev": { + "phpunit/phpunit": "^9.2" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.17-dev" + "dev-master": "5.0-dev" } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Iconv\\": "" - }, - "files": [ - "bootstrap.php" + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Symfony polyfill for the Iconv extension", - "homepage": "https://symfony.com", + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", "keywords": [ - "compatibility", - "iconv", - "polyfill", - "portable", - "shim" + "timer" ], - "time": "2020-05-12T16:47:27+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-06-26T11:58:13+00:00" }, { - "name": "symfony/polyfill-intl-idn", - "version": "v1.17.0", + "name": "phpunit/php-token-stream", + "version": "4.0.3", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "3bff59ea7047e925be6b7f2059d60af31bb46d6a" + "url": "https://github.com/sebastianbergmann/php-token-stream.git", + "reference": "5672711b6b07b14d5ab694e700c62eeb82fcf374" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/3bff59ea7047e925be6b7f2059d60af31bb46d6a", - "reference": "3bff59ea7047e925be6b7f2059d60af31bb46d6a", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/5672711b6b07b14d5ab694e700c62eeb82fcf374", + "reference": "5672711b6b07b14d5ab694e700c62eeb82fcf374", "shasum": "" }, "require": { - "php": ">=5.3.3", - "symfony/polyfill-mbstring": "^1.3", - "symfony/polyfill-php72": "^1.10" + "ext-tokenizer": "*", + "php": "^7.3 || ^8.0" }, - "suggest": { - "ext-intl": "For best performance" + "require-dev": { + "phpunit/phpunit": "^9.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.17-dev" + "dev-master": "4.0-dev" } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Intl\\Idn\\": "" - }, - "files": [ - "bootstrap.php" + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Laurent Bassin", - "email": "laurent@bassin.info" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" } ], - "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", - "homepage": "https://symfony.com", + "description": "Wrapper around PHP's tokenizer extension.", + "homepage": "https://github.com/sebastianbergmann/php-token-stream/", "keywords": [ - "compatibility", - "idn", - "intl", - "polyfill", - "portable", - "shim" + "tokenizer" ], - "time": "2020-05-12T16:47:27+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-06-27T06:36:25+00:00" }, { - "name": "symfony/polyfill-mbstring", - "version": "v1.17.0", + "name": "phpunit/phpunit", + "version": "9.2.5", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "fa79b11539418b02fc5e1897267673ba2c19419c" + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "ad7cc5ec3ab2597b329880e30442d9054526023b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/fa79b11539418b02fc5e1897267673ba2c19419c", - "reference": "fa79b11539418b02fc5e1897267673ba2c19419c", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/ad7cc5ec3ab2597b329880e30442d9054526023b", + "reference": "ad7cc5ec3ab2597b329880e30442d9054526023b", "shasum": "" }, "require": { - "php": ">=5.3.3" + "doctrine/instantiator": "^1.2.0", + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xml": "*", + "ext-xmlwriter": "*", + "myclabs/deep-copy": "^1.9.1", + "phar-io/manifest": "^1.0.3", + "phar-io/version": "^2.0.1", + "php": "^7.3", + "phpspec/prophecy": "^1.8.1", + "phpunit/php-code-coverage": "^8.0.1", + "phpunit/php-file-iterator": "^3.0", + "phpunit/php-invoker": "^3.0", + "phpunit/php-text-template": "^2.0", + "phpunit/php-timer": "^5.0", + "sebastian/code-unit": "^1.0.2", + "sebastian/comparator": "^4.0", + "sebastian/diff": "^4.0", + "sebastian/environment": "^5.0.1", + "sebastian/exporter": "^4.0", + "sebastian/global-state": "^4.0", + "sebastian/object-enumerator": "^4.0", + "sebastian/resource-operations": "^3.0", + "sebastian/type": "^2.1", + "sebastian/version": "^3.0" + }, + "require-dev": { + "ext-pdo": "*", + "phpspec/prophecy-phpunit": "^2.0" }, "suggest": { - "ext-mbstring": "For best performance" + "ext-soap": "*", + "ext-xdebug": "*" }, + "bin": [ + "phpunit" + ], "type": "library", "extra": { "branch-alias": { - "dev-master": "1.17-dev" + "dev-master": "9.2-dev" } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - }, + "classmap": [ + "src/" + ], "files": [ - "bootstrap.php" + "src/Framework/Assert/Functions.php" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Symfony polyfill for the Mbstring extension", - "homepage": "https://symfony.com", + "description": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", "keywords": [ - "compatibility", - "mbstring", - "polyfill", - "portable", - "shim" + "phpunit", + "testing", + "xunit" ], - "time": "2020-05-12T16:47:27+00:00" + "funding": [ + { + "url": "https://phpunit.de/donate.html", + "type": "custom" + }, + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-06-22T07:10:55+00:00" }, { - "name": "symfony/polyfill-php72", - "version": "v1.17.0", + "name": "psr/container", + "version": "1.0.0", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "f048e612a3905f34931127360bdd2def19a5e582" + "url": "https://github.com/php-fig/container.git", + "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/f048e612a3905f34931127360bdd2def19a5e582", - "reference": "f048e612a3905f34931127360bdd2def19a5e582", + "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f", + "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=5.3.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.17-dev" + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" } }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php72\\": "" - }, - "files": [ - "bootstrap.php" - ] - }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" } ], - "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", - "homepage": "https://symfony.com", + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" ], - "time": "2020-05-12T16:47:27+00:00" + "time": "2017-02-14T16:28:37+00:00" }, { - "name": "symfony/polyfill-php73", - "version": "v1.17.0", + "name": "psr/http-message", + "version": "1.0.1", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "a760d8964ff79ab9bf057613a5808284ec852ccc" + "url": "https://github.com/php-fig/http-message.git", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/a760d8964ff79ab9bf057613a5808284ec852ccc", - "reference": "a760d8964ff79ab9bf057613a5808284ec852ccc", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=5.3.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.17-dev" + "dev-master": "1.0.x-dev" } }, "autoload": { "psr-4": { - "Symfony\\Polyfill\\Php73\\": "" - }, - "files": [ - "bootstrap.php" - ], - "classmap": [ - "Resources/stubs" - ] + "Psr\\Http\\Message\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -4161,54 +4211,49 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" } ], - "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", - "homepage": "https://symfony.com", + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" ], - "time": "2020-05-12T16:47:27+00:00" + "time": "2016-08-06T14:39:51+00:00" }, { - "name": "symfony/process", - "version": "v4.4.8", + "name": "psr/log", + "version": "1.1.3", "source": { "type": "git", - "url": "https://github.com/symfony/process.git", - "reference": "4b6a9a4013baa65d409153cbb5a895bf093dc7f4" + "url": "https://github.com/php-fig/log.git", + "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/4b6a9a4013baa65d409153cbb5a895bf093dc7f4", - "reference": "4b6a9a4013baa65d409153cbb5a895bf093dc7f4", + "url": "https://api.github.com/repos/php-fig/log/zipball/0f73288fd15629204f9d42b7055f72dacbe811fc", + "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc", "shasum": "" }, "require": { - "php": "^7.1.3" + "php": ">=5.3.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.4-dev" + "dev-master": "1.1.x-dev" } }, "autoload": { "psr-4": { - "Symfony\\Component\\Process\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "Psr\\Log\\": "Psr/Log/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -4216,48 +4261,45 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" } ], - "description": "Symfony Process Component", - "homepage": "https://symfony.com", - "time": "2020-04-15T15:56:18+00:00" + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "time": "2020-03-23T09:12:05+00:00" }, { - "name": "symfony/service-contracts", - "version": "v2.0.1", + "name": "psr/simple-cache", + "version": "1.0.1", "source": { "type": "git", - "url": "https://github.com/symfony/service-contracts.git", - "reference": "144c5e51266b281231e947b51223ba14acf1a749" + "url": "https://github.com/php-fig/simple-cache.git", + "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/144c5e51266b281231e947b51223ba14acf1a749", - "reference": "144c5e51266b281231e947b51223ba14acf1a749", + "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", + "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", "shasum": "" }, "require": { - "php": "^7.2.5", - "psr/container": "^1.0" - }, - "suggest": { - "symfony/service-implementation": "" + "php": ">=5.3.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-master": "1.0.x-dev" } }, "autoload": { "psr-4": { - "Symfony\\Contracts\\Service\\": "" + "Psr\\SimpleCache\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -4266,132 +4308,100 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" } ], - "description": "Generic abstractions related to writing services", - "homepage": "https://symfony.com", + "description": "Common interfaces for simple caching", "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" + "cache", + "caching", + "psr", + "psr-16", + "simple-cache" ], - "time": "2019-11-18T17:27:11+00:00" + "time": "2017-10-23T01:57:42+00:00" }, { - "name": "symfony/translation", - "version": "v4.4.8", + "name": "pusher/pusher-php-server", + "version": "v3.3.1", "source": { "type": "git", - "url": "https://github.com/symfony/translation.git", - "reference": "8272bbd2b7e220ef812eba2a2b30068a5c64b191" + "url": "https://github.com/pusher/pusher-http-php.git", + "reference": "2279bcd21a608a76f9be1fe0675aa2dd1efb2fa0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/8272bbd2b7e220ef812eba2a2b30068a5c64b191", - "reference": "8272bbd2b7e220ef812eba2a2b30068a5c64b191", + "url": "https://api.github.com/repos/pusher/pusher-http-php/zipball/2279bcd21a608a76f9be1fe0675aa2dd1efb2fa0", + "reference": "2279bcd21a608a76f9be1fe0675aa2dd1efb2fa0", "shasum": "" }, "require": { - "php": "^7.1.3", - "symfony/polyfill-mbstring": "~1.0", - "symfony/translation-contracts": "^1.1.6|^2" - }, - "conflict": { - "symfony/config": "<3.4", - "symfony/dependency-injection": "<3.4", - "symfony/http-kernel": "<4.4", - "symfony/yaml": "<3.4" - }, - "provide": { - "symfony/translation-implementation": "1.0" + "ext-curl": "*", + "paragonie/sodium_compat": "^1.6", + "php": "^5.4 || ^7.0", + "psr/log": "^1.0" }, "require-dev": { - "psr/log": "~1.0", - "symfony/config": "^3.4|^4.0|^5.0", - "symfony/console": "^3.4|^4.0|^5.0", - "symfony/dependency-injection": "^3.4|^4.0|^5.0", - "symfony/finder": "~2.8|~3.0|~4.0|^5.0", - "symfony/http-kernel": "^4.4", - "symfony/intl": "^3.4|^4.0|^5.0", - "symfony/service-contracts": "^1.1.2|^2", - "symfony/yaml": "^3.4|^4.0|^5.0" - }, - "suggest": { - "psr/log-implementation": "To use logging capability in translator", - "symfony/config": "", - "symfony/yaml": "" + "phpunit/phpunit": "^4.8.35 || ^5.7" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.4-dev" + "dev-master": "3.0-dev" } }, "autoload": { "psr-4": { - "Symfony\\Component\\Translation\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "Pusher\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } + "description": "Library for interacting with the Pusher REST API", + "keywords": [ + "events", + "messaging", + "php-pusher-server", + "publish", + "push", + "pusher", + "real time", + "real-time", + "realtime", + "rest", + "trigger" ], - "description": "Symfony Translation Component", - "homepage": "https://symfony.com", - "time": "2020-04-12T16:45:36+00:00" + "time": "2019-01-18T12:10:21+00:00" }, { - "name": "symfony/translation-contracts", - "version": "v2.0.1", + "name": "ralouphie/getallheaders", + "version": "3.0.3", "source": { "type": "git", - "url": "https://github.com/symfony/translation-contracts.git", - "reference": "8cc682ac458d75557203b2f2f14b0b92e1c744ed" + "url": "https://github.com/ralouphie/getallheaders.git", + "reference": "120b605dfeb996808c31b6477290a714d356e822" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/8cc682ac458d75557203b2f2f14b0b92e1c744ed", - "reference": "8cc682ac458d75557203b2f2f14b0b92e1c744ed", + "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", + "reference": "120b605dfeb996808c31b6477290a714d356e822", "shasum": "" }, "require": { - "php": "^7.2.5" + "php": ">=5.6" }, - "suggest": { - "symfony/translation-implementation": "" + "require-dev": { + "php-coveralls/php-coveralls": "^2.1", + "phpunit/phpunit": "^5 || ^6.5" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, "autoload": { - "psr-4": { - "Symfony\\Contracts\\Translation\\": "" - } + "files": [ + "src/getallheaders.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -4399,78 +4409,40 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Ralph Khattar", + "email": "ralph.khattar@gmail.com" } ], - "description": "Generic abstractions related to translation", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "time": "2019-11-18T17:27:11+00:00" + "description": "A polyfill for getallheaders.", + "time": "2019-03-08T08:55:37+00:00" }, { - "name": "symfony/var-dumper", - "version": "v4.4.8", + "name": "react/promise", + "version": "v2.8.0", "source": { "type": "git", - "url": "https://github.com/symfony/var-dumper.git", - "reference": "c587e04ce5d1aa62d534a038f574d9a709e814cf" + "url": "https://github.com/reactphp/promise.git", + "reference": "f3cff96a19736714524ca0dd1d4130de73dbbbc4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/c587e04ce5d1aa62d534a038f574d9a709e814cf", - "reference": "c587e04ce5d1aa62d534a038f574d9a709e814cf", + "url": "https://api.github.com/repos/reactphp/promise/zipball/f3cff96a19736714524ca0dd1d4130de73dbbbc4", + "reference": "f3cff96a19736714524ca0dd1d4130de73dbbbc4", "shasum": "" }, "require": { - "php": "^7.1.3", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php72": "~1.5" - }, - "conflict": { - "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", - "symfony/console": "<3.4" + "php": ">=5.4.0" }, "require-dev": { - "ext-iconv": "*", - "symfony/console": "^3.4|^4.0|^5.0", - "symfony/process": "^4.4|^5.0", - "twig/twig": "^1.34|^2.4|^3.0" - }, - "suggest": { - "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", - "ext-intl": "To show region name in time zone dump", - "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script" + "phpunit/phpunit": "^7.0 || ^6.5 || ^5.7 || ^4.8.36" }, - "bin": [ - "Resources/bin/var-dump-server" - ], "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { - "files": [ - "Resources/functions/dump.php" - ], "psr-4": { - "Symfony\\Component\\VarDumper\\": "" + "React\\Promise\\": "src/" }, - "exclude-from-classmap": [ - "/Tests/" + "files": [ + "src/functions_include.php" ] }, "notification-url": "https://packagist.org/downloads/", @@ -4479,62 +4451,45 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Jan Sorgalla", + "email": "jsorgalla@gmail.com" } ], - "description": "Symfony mechanism for exploring and dumping PHP variables", - "homepage": "https://symfony.com", + "description": "A lightweight implementation of CommonJS Promises/A for PHP", "keywords": [ - "debug", - "dump" + "promise", + "promises" ], - "time": "2020-04-12T16:14:02+00:00" + "time": "2020-05-12T15:16:56+00:00" }, { - "name": "symfony/yaml", - "version": "v4.4.8", + "name": "riimu/kit-phpencoder", + "version": "v2.4.0", "source": { "type": "git", - "url": "https://github.com/symfony/yaml.git", - "reference": "b385dce1c0e9f839b384af90188638819433e252" + "url": "https://github.com/Riimu/Kit-PHPEncoder.git", + "reference": "7e876d25019c3f6c23321ab5ac1a55c72fcd0933" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/b385dce1c0e9f839b384af90188638819433e252", - "reference": "b385dce1c0e9f839b384af90188638819433e252", + "url": "https://api.github.com/repos/Riimu/Kit-PHPEncoder/zipball/7e876d25019c3f6c23321ab5ac1a55c72fcd0933", + "reference": "7e876d25019c3f6c23321ab5ac1a55c72fcd0933", "shasum": "" }, "require": { - "php": "^7.1.3", - "symfony/polyfill-ctype": "~1.8" - }, - "conflict": { - "symfony/console": "<3.4" + "php": ">=5.6.0" }, "require-dev": { - "symfony/console": "^3.4|^4.0|^5.0" + "phpunit/phpunit": "^7.2 || ^6.5 || ^5.7" }, "suggest": { - "symfony/console": "For validating YAML files using the lint command" + "ext-gmp": "To convert GMP numbers into PHP code" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { - "Symfony\\Component\\Yaml\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "Riimu\\Kit\\PHPEncoder\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -4542,859 +4497,945 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Riikka Kalliomäki", + "email": "riikka.kalliomaki@gmail.com", + "homepage": "http://riimu.net" } ], - "description": "Symfony Yaml Component", - "homepage": "https://symfony.com", - "time": "2020-04-28T17:55:16+00:00" + "description": "Highly customizable alternative to var_export for PHP code generation", + "homepage": "http://kit.riimu.net", + "keywords": [ + "code", + "encoder", + "export", + "generator", + "variable" + ], + "time": "2018-07-03T12:46:23+00:00" }, { - "name": "vlucas/phpdotenv", - "version": "v2.6.4", + "name": "robmorgan/phinx", + "version": "0.12.3", "source": { "type": "git", - "url": "https://github.com/vlucas/phpdotenv.git", - "reference": "67d472b1794c986381a8950e4958e1adb779d561" + "url": "https://github.com/cakephp/phinx.git", + "reference": "c63dcecbad83ae5723498e8b78163a4988d118f6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/67d472b1794c986381a8950e4958e1adb779d561", - "reference": "67d472b1794c986381a8950e4958e1adb779d561", + "url": "https://api.github.com/repos/cakephp/phinx/zipball/c63dcecbad83ae5723498e8b78163a4988d118f6", + "reference": "c63dcecbad83ae5723498e8b78163a4988d118f6", "shasum": "" }, "require": { - "php": "^5.3.9 || ^7.0 || ^8.0", - "symfony/polyfill-ctype": "^1.9" + "cakephp/collection": "^4.0", + "cakephp/database": "^4.0", + "php": ">=7.2", + "psr/container": "^1.0", + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/console": "^3.4|^4.0|^5.0" }, "require-dev": { - "ext-filter": "*", - "ext-pcre": "*", - "phpunit/phpunit": "^4.8.35 || ^5.0" + "cakephp/cakephp-codesniffer": "^3.0", + "ext-json": "*", + "ext-pdo": "*", + "phpunit/phpunit": "^8.5", + "sebastian/comparator": ">=1.2.3", + "symfony/yaml": "^3.4|^4.0|^5.0" }, "suggest": { - "ext-filter": "Required to use the boolean validator.", - "ext-pcre": "Required to use most of the library." + "ext-json": "Install if using JSON configuration format", + "ext-pdo": "PDO extension is needed", + "symfony/yaml": "Install if using YAML configuration format" }, + "bin": [ + "bin/phinx" + ], "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.6-dev" - } - }, "autoload": { "psr-4": { - "Dotenv\\": "src/" + "Phinx\\": "src/Phinx/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Graham Campbell", - "email": "graham@alt-three.com", - "homepage": "https://gjcampbell.co.uk/" + "name": "Rob Morgan", + "email": "robbym@gmail.com", + "homepage": "https://robmorgan.id.au", + "role": "Lead Developer" }, { - "name": "Vance Lucas", - "email": "vance@vancelucas.com", - "homepage": "https://vancelucas.com/" + "name": "Woody Gilk", + "email": "woody.gilk@gmail.com", + "homepage": "https://shadowhand.me", + "role": "Developer" + }, + { + "name": "Richard Quadling", + "email": "rquadling@gmail.com", + "role": "Developer" + }, + { + "name": "CakePHP Community", + "homepage": "https://github.com/cakephp/phinx/graphs/contributors", + "role": "Developer" } ], - "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.", + "description": "Phinx makes it ridiculously easy to manage the database migrations for your PHP app.", + "homepage": "https://phinx.org", "keywords": [ - "dotenv", - "env", - "environment" + "database", + "database migrations", + "db", + "migrations", + "phinx" ], - "time": "2020-05-02T13:38:00+00:00" + "time": "2020-06-25T23:01:19+00:00" }, { - "name": "zendframework/zend-escaper", - "version": "2.6.1", + "name": "sebastian/code-unit", + "version": "1.0.5", "source": { "type": "git", - "url": "https://github.com/zendframework/zend-escaper.git", - "reference": "3801caa21b0ca6aca57fa1c42b08d35c395ebd5f" + "url": "https://github.com/sebastianbergmann/code-unit.git", + "reference": "c1e2df332c905079980b119c4db103117e5e5c90" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-escaper/zipball/3801caa21b0ca6aca57fa1c42b08d35c395ebd5f", - "reference": "3801caa21b0ca6aca57fa1c42b08d35c395ebd5f", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/c1e2df332c905079980b119c4db103117e5e5c90", + "reference": "c1e2df332c905079980b119c4db103117e5e5c90", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0" + "php": "^7.3 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.2", - "zendframework/zend-coding-standard": "~1.0.0" + "phpunit/phpunit": "^9.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.6.x-dev", - "dev-develop": "2.7.x-dev" + "dev-master": "1.0-dev" } }, "autoload": { - "psr-4": { - "Zend\\Escaper\\": "src/" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "description": "Securely and safely escape HTML, HTML attributes, JavaScript, CSS, and URLs", - "keywords": [ - "ZendFramework", - "escaper", - "zf" + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } ], - "abandoned": "laminas/laminas-escaper", - "time": "2019-09-05T20:03:20+00:00" + "description": "Collection of value objects that represent the PHP code units", + "homepage": "https://github.com/sebastianbergmann/code-unit", + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-06-26T12:50:45+00:00" }, { - "name": "zendframework/zend-http", - "version": "2.11.2", + "name": "sebastian/code-unit-reverse-lookup", + "version": "2.0.2", "source": { "type": "git", - "url": "https://github.com/zendframework/zend-http.git", - "reference": "e15e0ce45a2a4f642cd0b7b4f4d4d0366b729a1a" + "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", + "reference": "ee51f9bb0c6d8a43337055db3120829fa14da819" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-http/zipball/e15e0ce45a2a4f642cd0b7b4f4d4d0366b729a1a", - "reference": "e15e0ce45a2a4f642cd0b7b4f4d4d0366b729a1a", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ee51f9bb0c6d8a43337055db3120829fa14da819", + "reference": "ee51f9bb0c6d8a43337055db3120829fa14da819", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0", - "zendframework/zend-loader": "^2.5.1", - "zendframework/zend-stdlib": "^3.2.1", - "zendframework/zend-uri": "^2.5.2", - "zendframework/zend-validator": "^2.10.1" + "php": "^7.3 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.3", - "zendframework/zend-coding-standard": "~1.0.0", - "zendframework/zend-config": "^3.1 || ^2.6" - }, - "suggest": { - "paragonie/certainty": "For automated management of cacert.pem" + "phpunit/phpunit": "^9.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.11.x-dev", - "dev-develop": "2.12.x-dev" + "dev-master": "2.0-dev" } }, "autoload": { - "psr-4": { - "Zend\\Http\\": "src/" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "description": "Provides an easy interface for performing Hyper-Text Transfer Protocol (HTTP) requests", - "keywords": [ - "ZendFramework", - "http", - "http client", - "zend", - "zf" + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } ], - "abandoned": "laminas/laminas-http", - "time": "2019-12-30T20:47:33+00:00" + "description": "Looks up which function or method a line of code belongs to", + "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-06-26T12:04:00+00:00" }, { - "name": "zendframework/zend-json", - "version": "3.1.2", + "name": "sebastian/comparator", + "version": "4.0.3", "source": { "type": "git", - "url": "https://github.com/zendframework/zend-json.git", - "reference": "e9ddb1192d93fe7fff846ac895249c39db75132b" + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "dcc580eadfaa4e7f9d2cf9ae1922134ea962e14f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-json/zipball/e9ddb1192d93fe7fff846ac895249c39db75132b", - "reference": "e9ddb1192d93fe7fff846ac895249c39db75132b", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/dcc580eadfaa4e7f9d2cf9ae1922134ea962e14f", + "reference": "dcc580eadfaa4e7f9d2cf9ae1922134ea962e14f", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0" + "php": "^7.3 || ^8.0", + "sebastian/diff": "^4.0", + "sebastian/exporter": "^4.0" }, "require-dev": { - "phpunit/phpunit": "^5.7.23 || ^6.4.3", - "zendframework/zend-coding-standard": "~1.0.0", - "zendframework/zend-stdlib": "^2.7.7 || ^3.1" - }, - "suggest": { - "zendframework/zend-json-server": "For implementing JSON-RPC servers", - "zendframework/zend-xml2json": "For converting XML documents to JSON" + "phpunit/phpunit": "^9.0" }, "type": "library", "extra": { - "branch-alias": { - "dev-master": "3.1.x-dev", - "dev-develop": "3.2.x-dev" + "branch-alias": { + "dev-master": "4.0-dev" } }, "autoload": { - "psr-4": { - "Zend\\Json\\": "src/" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "description": "provides convenience methods for serializing native PHP to JSON and decoding JSON to native PHP", + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + } + ], + "description": "Provides the functionality to compare PHP values for equality", + "homepage": "https://github.com/sebastianbergmann/comparator", "keywords": [ - "ZendFramework", - "json", - "zf" + "comparator", + "compare", + "equality" ], - "abandoned": "laminas/laminas-json", - "time": "2019-10-09T13:56:13+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-06-26T12:05:46+00:00" }, { - "name": "zendframework/zend-loader", - "version": "2.6.1", + "name": "sebastian/diff", + "version": "4.0.2", "source": { "type": "git", - "url": "https://github.com/zendframework/zend-loader.git", - "reference": "91da574d29b58547385b2298c020b257310898c6" + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "1e90b4cf905a7d06c420b1d2e9d11a4dc8a13113" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-loader/zipball/91da574d29b58547385b2298c020b257310898c6", - "reference": "91da574d29b58547385b2298c020b257310898c6", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/1e90b4cf905a7d06c420b1d2e9d11a4dc8a13113", + "reference": "1e90b4cf905a7d06c420b1d2e9d11a4dc8a13113", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0" + "php": "^7.3 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.4", - "zendframework/zend-coding-standard": "~1.0.0" + "phpunit/phpunit": "^9.0", + "symfony/process": "^4.2 || ^5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.6.x-dev", - "dev-develop": "2.7.x-dev" + "dev-master": "4.0-dev" } }, "autoload": { - "psr-4": { - "Zend\\Loader\\": "src/" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "description": "Autoloading and plugin loading strategies", + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + } + ], + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", "keywords": [ - "ZendFramework", - "loader", - "zf" + "diff", + "udiff", + "unidiff", + "unified diff" ], - "abandoned": "laminas/laminas-loader", - "time": "2019-09-04T19:38:14+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-06-30T04:46:02+00:00" }, { - "name": "zendframework/zend-stdlib", - "version": "3.2.1", + "name": "sebastian/environment", + "version": "5.1.2", "source": { "type": "git", - "url": "https://github.com/zendframework/zend-stdlib.git", - "reference": "66536006722aff9e62d1b331025089b7ec71c065" + "url": "https://github.com/sebastianbergmann/environment.git", + "reference": "0a757cab9d5b7ef49a619f1143e6c9c1bc0fe9d2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-stdlib/zipball/66536006722aff9e62d1b331025089b7ec71c065", - "reference": "66536006722aff9e62d1b331025089b7ec71c065", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/0a757cab9d5b7ef49a619f1143e6c9c1bc0fe9d2", + "reference": "0a757cab9d5b7ef49a619f1143e6c9c1bc0fe9d2", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0" + "php": "^7.3 || ^8.0" }, "require-dev": { - "phpbench/phpbench": "^0.13", - "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.2", - "zendframework/zend-coding-standard": "~1.0.0" + "phpunit/phpunit": "^9.0" + }, + "suggest": { + "ext-posix": "*" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2.x-dev", - "dev-develop": "3.3.x-dev" + "dev-master": "5.0-dev" } }, "autoload": { - "psr-4": { - "Zend\\Stdlib\\": "src/" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "description": "SPL extensions, array utilities, error handlers, and more", + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides functionality to handle HHVM/PHP environments", + "homepage": "http://www.github.com/sebastianbergmann/environment", "keywords": [ - "ZendFramework", - "stdlib", - "zf" + "Xdebug", + "environment", + "hhvm" ], - "abandoned": "laminas/laminas-stdlib", - "time": "2018-08-28T21:34:05+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-06-26T12:07:24+00:00" }, { - "name": "zendframework/zend-uri", - "version": "2.7.1", + "name": "sebastian/exporter", + "version": "4.0.2", "source": { "type": "git", - "url": "https://github.com/zendframework/zend-uri.git", - "reference": "bfc4a5b9a309711e968d7c72afae4ac50c650083" + "url": "https://github.com/sebastianbergmann/exporter.git", + "reference": "571d721db4aec847a0e59690b954af33ebf9f023" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-uri/zipball/bfc4a5b9a309711e968d7c72afae4ac50c650083", - "reference": "bfc4a5b9a309711e968d7c72afae4ac50c650083", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/571d721db4aec847a0e59690b954af33ebf9f023", + "reference": "571d721db4aec847a0e59690b954af33ebf9f023", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0", - "zendframework/zend-escaper": "^2.5", - "zendframework/zend-validator": "^2.10" + "php": "^7.3 || ^8.0", + "sebastian/recursion-context": "^4.0" }, "require-dev": { - "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.4", - "zendframework/zend-coding-standard": "~1.0.0" + "ext-mbstring": "*", + "phpunit/phpunit": "^9.2" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.7.x-dev", - "dev-develop": "2.8.x-dev" + "dev-master": "4.0-dev" } }, "autoload": { - "psr-4": { - "Zend\\Uri\\": "src/" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "description": "A component that aids in manipulating and validating » Uniform Resource Identifiers (URIs)", + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Provides the functionality to export PHP variables for visualization", + "homepage": "http://www.github.com/sebastianbergmann/exporter", "keywords": [ - "ZendFramework", - "uri", - "zf" + "export", + "exporter" ], - "abandoned": "laminas/laminas-uri", - "time": "2019-10-07T13:35:33+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-06-26T12:08:55+00:00" }, { - "name": "zendframework/zend-validator", - "version": "2.13.0", + "name": "sebastian/global-state", + "version": "4.0.0", "source": { "type": "git", - "url": "https://github.com/zendframework/zend-validator.git", - "reference": "b54acef1f407741c5347f2a97f899ab21f2229ef" + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "bdb1e7c79e592b8c82cb1699be3c8743119b8a72" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-validator/zipball/b54acef1f407741c5347f2a97f899ab21f2229ef", - "reference": "b54acef1f407741c5347f2a97f899ab21f2229ef", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bdb1e7c79e592b8c82cb1699be3c8743119b8a72", + "reference": "bdb1e7c79e592b8c82cb1699be3c8743119b8a72", "shasum": "" }, "require": { - "container-interop/container-interop": "^1.1", - "php": "^7.1", - "zendframework/zend-stdlib": "^3.2.1" + "php": "^7.3", + "sebastian/object-reflector": "^2.0", + "sebastian/recursion-context": "^4.0" }, "require-dev": { - "phpunit/phpunit": "^6.0.8 || ^5.7.15", - "psr/http-client": "^1.0", - "psr/http-factory": "^1.0", - "psr/http-message": "^1.0", - "zendframework/zend-cache": "^2.6.1", - "zendframework/zend-coding-standard": "~1.0.0", - "zendframework/zend-config": "^2.6", - "zendframework/zend-db": "^2.7", - "zendframework/zend-filter": "^2.6", - "zendframework/zend-http": "^2.5.4", - "zendframework/zend-i18n": "^2.6", - "zendframework/zend-math": "^2.6", - "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3", - "zendframework/zend-session": "^2.8", - "zendframework/zend-uri": "^2.5" + "ext-dom": "*", + "phpunit/phpunit": "^9.0" }, "suggest": { - "psr/http-message": "psr/http-message, required when validating PSR-7 UploadedFileInterface instances via the Upload and UploadFile validators", - "zendframework/zend-db": "Zend\\Db component, required by the (No)RecordExists validator", - "zendframework/zend-filter": "Zend\\Filter component, required by the Digits validator", - "zendframework/zend-i18n": "Zend\\I18n component to allow translation of validation error messages", - "zendframework/zend-i18n-resources": "Translations of validator messages", - "zendframework/zend-math": "Zend\\Math component, required by the Csrf validator", - "zendframework/zend-servicemanager": "Zend\\ServiceManager component to allow using the ValidatorPluginManager and validator chains", - "zendframework/zend-session": "Zend\\Session component, ^2.8; required by the Csrf validator", - "zendframework/zend-uri": "Zend\\Uri component, required by the Uri and Sitemap\\Loc validators" + "ext-uopz": "*" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.13.x-dev", - "dev-develop": "2.14.x-dev" - }, - "zf": { - "component": "Zend\\Validator", - "config-provider": "Zend\\Validator\\ConfigProvider" + "dev-master": "4.0-dev" } }, "autoload": { - "psr-4": { - "Zend\\Validator\\": "src/" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "description": "Validation classes for a wide range of domains, and the ability to chain validators to create complex validation criteria", + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Snapshotting of global state", + "homepage": "http://www.github.com/sebastianbergmann/global-state", "keywords": [ - "ZendFramework", - "validator", - "zf" + "global state" ], - "abandoned": "laminas/laminas-validator", - "time": "2019-12-28T04:07:18+00:00" + "time": "2020-02-07T06:11:37+00:00" }, { - "name": "zendframework/zendservice-apple-apns", - "version": "1.4.1", + "name": "sebastian/object-enumerator", + "version": "4.0.2", "source": { "type": "git", - "url": "https://github.com/zendframework/ZendService_Apple_Apns.git", - "reference": "a8919519edf9ac4658e7f61cb39c4dfe65b5bd49" + "url": "https://github.com/sebastianbergmann/object-enumerator.git", + "reference": "074fed2d0a6d08e1677dd8ce9d32aecb384917b8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/ZendService_Apple_Apns/zipball/a8919519edf9ac4658e7f61cb39c4dfe65b5bd49", - "reference": "a8919519edf9ac4658e7f61cb39c4dfe65b5bd49", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/074fed2d0a6d08e1677dd8ce9d32aecb384917b8", + "reference": "074fed2d0a6d08e1677dd8ce9d32aecb384917b8", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0", - "zendframework/zend-json": "^2.0 || ^3.0" + "php": "^7.3 || ^8.0", + "sebastian/object-reflector": "^2.0", + "sebastian/recursion-context": "^4.0" }, - "require-dev": { - "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.5", - "zendframework/zend-coding-standard": "~1.0.0" + "require-dev": { + "phpunit/phpunit": "^9.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.4.x-dev", - "dev-develop": "1.5.x-dev" + "dev-master": "4.0-dev" } }, "autoload": { - "psr-4": { - "ZendService\\Apple\\": "src/" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "description": "OOP Zend Framework wrapper for Apple Push Notification Service", - "keywords": [ - "ZendFramework", - "apns", - "apple", - "notification", - "push", - "zf" + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } ], - "abandoned": true, - "time": "2019-03-14T17:18:26+00:00" + "description": "Traverses array structures and object graphs to enumerate all referenced objects", + "homepage": "https://github.com/sebastianbergmann/object-enumerator/", + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-06-26T12:11:32+00:00" }, { - "name": "zendframework/zendservice-google-gcm", - "version": "2.1.1", + "name": "sebastian/object-reflector", + "version": "2.0.2", "source": { "type": "git", - "url": "https://github.com/zendframework/ZendService_Google_Gcm.git", - "reference": "141ac74b4a76656dac48bb97c7be4fc336d075ae" + "url": "https://github.com/sebastianbergmann/object-reflector.git", + "reference": "127a46f6b057441b201253526f81d5406d6c7840" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/ZendService_Google_Gcm/zipball/141ac74b4a76656dac48bb97c7be4fc336d075ae", - "reference": "141ac74b4a76656dac48bb97c7be4fc336d075ae", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/127a46f6b057441b201253526f81d5406d6c7840", + "reference": "127a46f6b057441b201253526f81d5406d6c7840", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0", - "zendframework/zend-http": "^2.0", - "zendframework/zend-json": "^2.0 || ^3.0" + "php": "^7.3 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.5", - "zendframework/zend-coding-standard": "~1.0.0" + "phpunit/phpunit": "^9.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.1.x-dev", - "dev-develop": "2.2.x-dev" + "dev-master": "2.0-dev" } }, "autoload": { - "psr-4": { - "ZendService\\Google\\": "src/" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "description": "OOP wrapper for Google Cloud Messaging", - "keywords": [ - "ZendFramework", - "gcm", - "google", - "notification", - "push", - "zf" + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } ], - "abandoned": true, - "time": "2019-02-07T18:01:00+00:00" - } - ], - "packages-dev": [ + "description": "Allows reflection of object attributes, including inherited and non-public ones", + "homepage": "https://github.com/sebastianbergmann/object-reflector/", + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-06-26T12:12:55+00:00" + }, { - "name": "behat/gherkin", - "version": "v4.6.2", + "name": "sebastian/recursion-context", + "version": "4.0.2", "source": { "type": "git", - "url": "https://github.com/Behat/Gherkin.git", - "reference": "51ac4500c4dc30cbaaabcd2f25694299df666a31" + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "062231bf61d2b9448c4fa5a7643b5e1829c11d63" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Behat/Gherkin/zipball/51ac4500c4dc30cbaaabcd2f25694299df666a31", - "reference": "51ac4500c4dc30cbaaabcd2f25694299df666a31", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/062231bf61d2b9448c4fa5a7643b5e1829c11d63", + "reference": "062231bf61d2b9448c4fa5a7643b5e1829c11d63", "shasum": "" }, "require": { - "php": ">=5.3.1" + "php": "^7.3 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "~4.5|~5", - "symfony/phpunit-bridge": "~2.7|~3|~4", - "symfony/yaml": "~2.3|~3|~4" - }, - "suggest": { - "symfony/yaml": "If you want to parse features, represented in YAML files" + "phpunit/phpunit": "^9.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.4-dev" + "dev-master": "4.0-dev" } }, "autoload": { - "psr-0": { - "Behat\\Gherkin": "src/" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" } ], - "description": "Gherkin DSL parser for PHP 5.3", - "homepage": "http://behat.org/", - "keywords": [ - "BDD", - "Behat", - "Cucumber", - "DSL", - "gherkin", - "parser" + "description": "Provides functionality to recursively process PHP variables", + "homepage": "http://www.github.com/sebastianbergmann/recursion-context", + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } ], - "time": "2020-03-17T14:03:26+00:00" + "time": "2020-06-26T12:14:17+00:00" }, { - "name": "codeception/codeception", - "version": "2.4.0", + "name": "sebastian/resource-operations", + "version": "3.0.2", "source": { "type": "git", - "url": "https://github.com/Codeception/Codeception.git", - "reference": "c50789a9a62cc0eefc0252e88a5f04f8c47b55f4" + "url": "https://github.com/sebastianbergmann/resource-operations.git", + "reference": "0653718a5a629b065e91f774595267f8dc32e213" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/Codeception/zipball/c50789a9a62cc0eefc0252e88a5f04f8c47b55f4", - "reference": "c50789a9a62cc0eefc0252e88a5f04f8c47b55f4", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0653718a5a629b065e91f774595267f8dc32e213", + "reference": "0653718a5a629b065e91f774595267f8dc32e213", "shasum": "" }, "require": { - "behat/gherkin": "^4.4.0", - "codeception/phpunit-wrapper": "^6.0|^7.0", - "codeception/stub": "^1.0", - "ext-json": "*", - "ext-mbstring": "*", - "facebook/webdriver": ">=1.1.3 <2.0", - "guzzlehttp/guzzle": ">=4.1.4 <7.0", - "guzzlehttp/psr7": "~1.0", - "php": ">=5.4.0 <8.0", - "symfony/browser-kit": ">=2.7 <5.0", - "symfony/console": ">=2.7 <5.0", - "symfony/css-selector": ">=2.7 <5.0", - "symfony/dom-crawler": ">=2.7 <5.0", - "symfony/event-dispatcher": ">=2.7 <5.0", - "symfony/finder": ">=2.7 <5.0", - "symfony/yaml": ">=2.7 <5.0" + "php": "^7.3 || ^8.0" }, "require-dev": { - "codeception/specify": "~0.3", - "facebook/graph-sdk": "~5.3", - "flow/jsonpath": "~0.2", - "monolog/monolog": "~1.8", - "pda/pheanstalk": "~3.0", - "php-amqplib/php-amqplib": "~2.4", - "predis/predis": "^1.0", - "squizlabs/php_codesniffer": "~2.0", - "symfony/process": ">=2.7 <5.0", - "vlucas/phpdotenv": "^2.4.0" - }, - "suggest": { - "aws/aws-sdk-php": "For using AWS Auth in REST module and Queue module", - "codeception/phpbuiltinserver": "Start and stop PHP built-in web server for your tests", - "codeception/specify": "BDD-style code blocks", - "codeception/verify": "BDD-style assertions", - "flow/jsonpath": "For using JSONPath in REST module", - "league/factory-muffin": "For DataFactory module", - "league/factory-muffin-faker": "For Faker support in DataFactory module", - "phpseclib/phpseclib": "for SFTP option in FTP Module", - "stecman/symfony-console-completion": "For BASH autocompletion", - "symfony/phpunit-bridge": "For phpunit-bridge support" + "phpunit/phpunit": "^9.0" }, - "bin": [ - "codecept" - ], "type": "library", "extra": { - "branch-alias": [] + "branch-alias": { + "dev-master": "3.0-dev" + } }, "autoload": { - "psr-4": { - "Codeception\\": "src\\Codeception", - "Codeception\\Extension\\": "ext" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Michael Bodnarchuk", - "email": "davert@mail.ua", - "homepage": "http://codegyre.com" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" } ], - "description": "BDD-style testing framework", - "homepage": "http://codeception.com/", - "keywords": [ - "BDD", - "TDD", - "acceptance testing", - "functional testing", - "unit testing" + "description": "Provides a list of PHP built-in functions that operate on resources", + "homepage": "https://www.github.com/sebastianbergmann/resource-operations", + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } ], - "time": "2018-02-27T00:09:12+00:00" + "time": "2020-06-26T12:16:22+00:00" }, { - "name": "codeception/phpunit-wrapper", - "version": "6.8.1", + "name": "sebastian/type", + "version": "2.1.1", "source": { "type": "git", - "url": "https://github.com/Codeception/phpunit-wrapper.git", - "reference": "ca6e94c6dadc19db05698d4e0d84214e570ce045" + "url": "https://github.com/sebastianbergmann/type.git", + "reference": "56b3ba194e0cbaaf3de7ccd353c289d7a84ed022" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/phpunit-wrapper/zipball/ca6e94c6dadc19db05698d4e0d84214e570ce045", - "reference": "ca6e94c6dadc19db05698d4e0d84214e570ce045", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/56b3ba194e0cbaaf3de7ccd353c289d7a84ed022", + "reference": "56b3ba194e0cbaaf3de7ccd353c289d7a84ed022", "shasum": "" }, "require": { - "phpunit/php-code-coverage": ">=4.0.4 <6.0", - "phpunit/phpunit": ">=6.5.13 <7.0", - "sebastian/comparator": ">=1.2.4 <3.0", - "sebastian/diff": ">=1.4 <4.0" - }, - "replace": { - "codeception/phpunit-wrapper": "*" + "php": "^7.3 || ^8.0" }, "require-dev": { - "codeception/specify": "*", - "vlucas/phpdotenv": "^3.0" + "phpunit/phpunit": "^9.2" }, "type": "library", - "autoload": { - "psr-4": { - "Codeception\\PHPUnit\\": "src/" + "extra": { + "branch-alias": { + "dev-master": "2.1-dev" } }, + "autoload": { + "classmap": [ + "src/" + ] + }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Davert", - "email": "davert.php@resend.cc" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "PHPUnit classes used by Codeception", - "time": "2020-03-20T08:05:05+00:00" + "description": "Collection of value objects that represent the types of the PHP type system", + "homepage": "https://github.com/sebastianbergmann/type", + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-06-26T12:17:54+00:00" }, { - "name": "codeception/stub", - "version": "1.0.4", + "name": "sebastian/version", + "version": "3.0.1", "source": { "type": "git", - "url": "https://github.com/Codeception/Stub.git", - "reference": "681b62348837a5ef07d10d8a226f5bc358cc8805" + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "626586115d0ed31cb71483be55beb759b5af5a3c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/Stub/zipball/681b62348837a5ef07d10d8a226f5bc358cc8805", - "reference": "681b62348837a5ef07d10d8a226f5bc358cc8805", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/626586115d0ed31cb71483be55beb759b5af5a3c", + "reference": "626586115d0ed31cb71483be55beb759b5af5a3c", "shasum": "" }, "require": { - "phpunit/phpunit-mock-objects": ">2.3 <7.0" - }, - "require-dev": { - "phpunit/phpunit": ">=4.8 <8.0" + "php": "^7.3 || ^8.0" }, "type": "library", - "autoload": { - "psr-4": { - "Codeception\\": "src/" + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" } }, + "autoload": { + "classmap": [ + "src/" + ] + }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], - "description": "Flexible Stub wrapper for PHPUnit's Mock Builder", - "time": "2018-05-17T09:31:08+00:00" + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that helps with managing the version number of Git-hosted PHP projects", + "homepage": "https://github.com/sebastianbergmann/version", + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-06-26T12:18:43+00:00" }, { - "name": "codeception/verify", - "version": "1.3.0", + "name": "sentry/sentry", + "version": "1.11.0", "source": { "type": "git", - "url": "https://github.com/Codeception/Verify.git", - "reference": "4a4f006faac9f8e34495882ce578e1cde4b027cb" + "url": "https://github.com/getsentry/sentry-php.git", + "reference": "159eeaa02bb2ef8a8ec669f3c88e4bff7e6a7ffe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/Verify/zipball/4a4f006faac9f8e34495882ce578e1cde4b027cb", - "reference": "4a4f006faac9f8e34495882ce578e1cde4b027cb", + "url": "https://api.github.com/repos/getsentry/sentry-php/zipball/159eeaa02bb2ef8a8ec669f3c88e4bff7e6a7ffe", + "reference": "159eeaa02bb2ef8a8ec669f3c88e4bff7e6a7ffe", "shasum": "" }, - "require": { - "codeception/phpunit-wrapper": ">6.0.16 <6.1.0 | ^6.7.0 | ^7.7.1 | ^8.0.4 | ^9.0.0", - "php": ">= 7.0", - "phpunit/phpunit": "> 6.0" + "require": { + "ext-curl": "*", + "php": "^5.3|^7.0" + }, + "conflict": { + "raven/raven": "*" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^1.8.0", + "monolog/monolog": "^1.0", + "phpunit/phpunit": "^4.8.35 || ^5.7" + }, + "suggest": { + "ext-hash": "*", + "ext-json": "*", + "ext-mbstring": "*", + "monolog/monolog": "Automatically capture Monolog events as breadcrumbs" }, + "bin": [ + "bin/sentry" + ], "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.11.x-dev" + } + }, "autoload": { - "files": [ - "src/Codeception/function.php" - ], - "psr-4": { - "Codeception\\": "src\\Codeception" + "psr-0": { + "Raven_": "lib/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Michael Bodnarchuk", - "email": "davert@codeception.com" + "name": "David Cramer", + "email": "dcramer@gmail.com" } ], - "description": "BDD assertion library for PHPUnit", - "time": "2020-02-15T23:17:35+00:00" + "description": "A PHP client for Sentry (http://getsentry.com)", + "homepage": "http://getsentry.com", + "keywords": [ + "log", + "logging" + ], + "time": "2020-02-12T18:38:11+00:00" }, { - "name": "composer/package-versions-deprecated", - "version": "1.8.0", + "name": "sly/notification-pusher", + "version": "v2.3.7", "source": { "type": "git", - "url": "https://github.com/composer/package-versions-deprecated.git", - "reference": "98df7f1b293c0550bd5b1ce6b60b59bdda23aa47" + "url": "https://github.com/Ph3nol/NotificationPusher.git", + "reference": "9faecc6b1bcacfcd36fba59191fdd5f5a08589ee" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/98df7f1b293c0550bd5b1ce6b60b59bdda23aa47", - "reference": "98df7f1b293c0550bd5b1ce6b60b59bdda23aa47", + "url": "https://api.github.com/repos/Ph3nol/NotificationPusher/zipball/9faecc6b1bcacfcd36fba59191fdd5f5a08589ee", + "reference": "9faecc6b1bcacfcd36fba59191fdd5f5a08589ee", "shasum": "" }, "require": { - "composer-plugin-api": "^1.1.0 || ^2.0", - "php": "^7" - }, - "replace": { - "ocramius/package-versions": "1.2 - 1.8.99" + "doctrine/inflector": "~1.1", + "ext-ctype": "*", + "php": ">=5.6", + "symfony/console": ">=2.3,<5", + "symfony/debug": ">=2.3,<5", + "symfony/filesystem": ">=2.3,<5", + "symfony/options-resolver": ">=2.3,<5", + "symfony/process": ">=2.3,<5", + "zendframework/zend-validator": "^2.12", + "zendframework/zendservice-apple-apns": "~1.4", + "zendframework/zendservice-google-gcm": "~2.1" }, "require-dev": { - "composer/composer": "^1.9.3 || ^2.0@dev", - "ext-zip": "^1.13", - "phpunit/phpunit": "^6.5 || ^7" - }, - "type": "composer-plugin", - "extra": { - "class": "PackageVersions\\Installer", - "branch-alias": { - "dev-master": "1.x-dev" - } + "atoum/atoum": "^3.1", + "atoum/stubs": "^2.5", + "atoum/visibility-extension": "^1.3", + "symfony/var-dumper": ">=2.3,<5" }, + "bin": [ + "np" + ], + "type": "standalone", "autoload": { "psr-4": { - "PackageVersions\\": "src/PackageVersions" + "Sly\\": "src/Sly/" } }, "notification-url": "https://packagist.org/downloads/", @@ -5403,165 +5444,181 @@ ], "authors": [ { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com" + "name": "Cédric Dugat", + "email": "cedric@dugat.me" }, { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be" + "name": "Contributors", + "homepage": "https://github.com/Ph3nol/NotificationPusher/contributors" } ], - "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)", - "time": "2020-04-23T11:49:37+00:00" + "description": "Standalone PHP library for easy devices notifications push.", + "homepage": "https://github.com/Ph3nol/NotificationPusher", + "keywords": [ + "android", + "apns", + "apple", + "gcm", + "iphone", + "message", + "notification", + "push", + "pusher" + ], + "funding": [ + { + "url": "https://paypal.me/ph3nol", + "type": "custom" + } + ], + "time": "2020-05-26T08:55:21+00:00" }, { - "name": "doctrine/instantiator", - "version": "1.3.0", + "name": "squizlabs/php_codesniffer", + "version": "3.5.5", "source": { "type": "git", - "url": "https://github.com/doctrine/instantiator.git", - "reference": "ae466f726242e637cebdd526a7d991b9433bacf1" + "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", + "reference": "73e2e7f57d958e7228fce50dc0c61f58f017f9f6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/ae466f726242e637cebdd526a7d991b9433bacf1", - "reference": "ae466f726242e637cebdd526a7d991b9433bacf1", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/73e2e7f57d958e7228fce50dc0c61f58f017f9f6", + "reference": "73e2e7f57d958e7228fce50dc0c61f58f017f9f6", "shasum": "" }, "require": { - "php": "^7.1" + "ext-simplexml": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": ">=5.4.0" }, "require-dev": { - "doctrine/coding-standard": "^6.0", - "ext-pdo": "*", - "ext-phar": "*", - "phpbench/phpbench": "^0.13", - "phpstan/phpstan-phpunit": "^0.11", - "phpstan/phpstan-shim": "^0.11", - "phpunit/phpunit": "^7.0" + "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" }, + "bin": [ + "bin/phpcs", + "bin/phpcbf" + ], "type": "library", "extra": { "branch-alias": { - "dev-master": "1.2.x-dev" - } - }, - "autoload": { - "psr-4": { - "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" + "dev-master": "3.x-dev" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "homepage": "http://ocramius.github.com/" + "name": "Greg Sherwood", + "role": "lead" } ], - "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", - "homepage": "https://www.doctrine-project.org/projects/instantiator.html", + "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", + "homepage": "https://github.com/squizlabs/PHP_CodeSniffer", "keywords": [ - "constructor", - "instantiate" + "phpcs", + "standards" ], - "time": "2019-10-21T16:45:58+00:00" + "time": "2020-04-17T01:09:41+00:00" }, { - "name": "facebook/webdriver", - "version": "1.7.1", + "name": "stripe/stripe-php", + "version": "v6.43.1", "source": { "type": "git", - "url": "https://github.com/php-webdriver/php-webdriver-archive.git", - "reference": "e43de70f3c7166169d0f14a374505392734160e5" + "url": "https://github.com/stripe/stripe-php.git", + "reference": "42fcdaf99c44bb26937223f8eae1f263491d5ab8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-webdriver/php-webdriver-archive/zipball/e43de70f3c7166169d0f14a374505392734160e5", - "reference": "e43de70f3c7166169d0f14a374505392734160e5", + "url": "https://api.github.com/repos/stripe/stripe-php/zipball/42fcdaf99c44bb26937223f8eae1f263491d5ab8", + "reference": "42fcdaf99c44bb26937223f8eae1f263491d5ab8", "shasum": "" }, "require": { "ext-curl": "*", "ext-json": "*", "ext-mbstring": "*", - "ext-zip": "*", - "php": "^5.6 || ~7.0", - "symfony/process": "^2.8 || ^3.1 || ^4.0" + "php": ">=5.4.0" }, "require-dev": { - "friendsofphp/php-cs-fixer": "^2.0", - "jakub-onderka/php-parallel-lint": "^0.9.2", - "php-coveralls/php-coveralls": "^2.0", - "php-mock/php-mock-phpunit": "^1.1", - "phpunit/phpunit": "^5.7", - "sebastian/environment": "^1.3.4 || ^2.0 || ^3.0", - "squizlabs/php_codesniffer": "^2.6", - "symfony/var-dumper": "^3.3 || ^4.0" - }, - "suggest": { - "ext-SimpleXML": "For Firefox profile creation" + "php-coveralls/php-coveralls": "1.*", + "phpunit/phpunit": "~4.0", + "squizlabs/php_codesniffer": "~2.0", + "symfony/process": "~2.8" }, "type": "library", "extra": { "branch-alias": { - "dev-community": "1.5-dev" + "dev-master": "2.0-dev" } }, "autoload": { "psr-4": { - "Facebook\\WebDriver\\": "lib/" + "Stripe\\": "lib/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "Apache-2.0" + "MIT" + ], + "authors": [ + { + "name": "Stripe and contributors", + "homepage": "https://github.com/stripe/stripe-php/contributors" + } ], - "description": "A PHP client for Selenium WebDriver", - "homepage": "https://github.com/facebook/php-webdriver", + "description": "Stripe PHP Library", + "homepage": "https://stripe.com/", "keywords": [ - "facebook", - "php", - "selenium", - "webdriver" + "api", + "payment processing", + "stripe" ], - "abandoned": "php-webdriver/webdriver", - "time": "2019-06-13T08:02:18+00:00" + "time": "2019-08-29T16:56:12+00:00" }, { - "name": "jean85/pretty-package-versions", - "version": "1.3.0", + "name": "swiftmailer/swiftmailer", + "version": "v6.2.3", "source": { "type": "git", - "url": "https://github.com/Jean85/pretty-package-versions.git", - "reference": "e3517fb11b67e798239354fe8213927d012ad8f9" + "url": "https://github.com/swiftmailer/swiftmailer.git", + "reference": "149cfdf118b169f7840bbe3ef0d4bc795d1780c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Jean85/pretty-package-versions/zipball/e3517fb11b67e798239354fe8213927d012ad8f9", - "reference": "e3517fb11b67e798239354fe8213927d012ad8f9", + "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/149cfdf118b169f7840bbe3ef0d4bc795d1780c9", + "reference": "149cfdf118b169f7840bbe3ef0d4bc795d1780c9", "shasum": "" }, "require": { - "composer/package-versions-deprecated": "^1.8.0", - "php": "^7.0" + "egulias/email-validator": "~2.0", + "php": ">=7.0.0", + "symfony/polyfill-iconv": "^1.0", + "symfony/polyfill-intl-idn": "^1.10", + "symfony/polyfill-mbstring": "^1.0" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "mockery/mockery": "~0.9.1", + "symfony/phpunit-bridge": "^3.4.19|^4.1.8" + }, + "suggest": { + "ext-intl": "Needed to support internationalized email addresses", + "true/punycode": "Needed to support internationalized email addresses, if ext-intl is not installed" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.x-dev" + "dev-master": "6.2-dev" } }, "autoload": { - "psr-4": { - "Jean85\\": "src/" - } + "files": [ + "lib/swift_required.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -5569,827 +5626,874 @@ ], "authors": [ { - "name": "Alessandro Lai", - "email": "alessandro.lai85@gmail.com" + "name": "Chris Corbyn" + }, + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" } ], - "description": "A wrapper for ocramius/package-versions to get pretty versions strings", + "description": "Swiftmailer, free feature-rich PHP mailer", + "homepage": "https://swiftmailer.symfony.com", "keywords": [ - "composer", - "package", - "release", - "versions" + "email", + "mail", + "mailer" ], - "time": "2020-04-24T14:19:45+00:00" + "time": "2019-11-12T09:31:26+00:00" }, { - "name": "myclabs/deep-copy", - "version": "1.9.5", + "name": "symfony/browser-kit", + "version": "v3.4.0", "source": { "type": "git", - "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "b2c28789e80a97badd14145fda39b545d83ca3ef" + "url": "https://github.com/symfony/browser-kit.git", + "reference": "179522b5f0b5e6d00bb60f38a4d6b29962e4b61b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/b2c28789e80a97badd14145fda39b545d83ca3ef", - "reference": "b2c28789e80a97badd14145fda39b545d83ca3ef", + "url": "https://api.github.com/repos/symfony/browser-kit/zipball/179522b5f0b5e6d00bb60f38a4d6b29962e4b61b", + "reference": "179522b5f0b5e6d00bb60f38a4d6b29962e4b61b", "shasum": "" }, "require": { - "php": "^7.1" - }, - "replace": { - "myclabs/deep-copy": "self.version" + "php": "^5.5.9|>=7.0.8", + "symfony/dom-crawler": "~2.8|~3.0|~4.0" }, "require-dev": { - "doctrine/collections": "^1.0", - "doctrine/common": "^2.6", - "phpunit/phpunit": "^7.1" + "symfony/css-selector": "~2.8|~3.0|~4.0", + "symfony/process": "~2.8|~3.0|~4.0" + }, + "suggest": { + "symfony/process": "" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, "autoload": { "psr-4": { - "DeepCopy\\": "src/DeepCopy/" + "Symfony\\Component\\BrowserKit\\": "" }, - "files": [ - "src/DeepCopy/deep_copy.php" + "exclude-from-classmap": [ + "/Tests/" ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Create deep copies (clones) of your objects", - "keywords": [ - "clone", - "copy", - "duplicate", - "object", - "object graph" + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } ], - "time": "2020-01-17T21:11:47+00:00" + "description": "Symfony BrowserKit Component", + "homepage": "https://symfony.com", + "time": "2017-11-07T14:20:24+00:00" }, { - "name": "nette/bootstrap", - "version": "v3.0.1", + "name": "symfony/config", + "version": "v3.4.0", "source": { "type": "git", - "url": "https://github.com/nette/bootstrap.git", - "reference": "b45a1e33b6a44beb307756522396551e5a9ff249" + "url": "https://github.com/symfony/config.git", + "reference": "1de51a6c76359897ab32c309934b93d036bccb60" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/bootstrap/zipball/b45a1e33b6a44beb307756522396551e5a9ff249", - "reference": "b45a1e33b6a44beb307756522396551e5a9ff249", + "url": "https://api.github.com/repos/symfony/config/zipball/1de51a6c76359897ab32c309934b93d036bccb60", + "reference": "1de51a6c76359897ab32c309934b93d036bccb60", "shasum": "" }, "require": { - "nette/di": "^3.0", - "nette/utils": "^3.0", - "php": ">=7.1" + "php": "^5.5.9|>=7.0.8", + "symfony/filesystem": "~2.8|~3.0|~4.0" }, "conflict": { - "tracy/tracy": "<2.6" + "symfony/dependency-injection": "<3.3", + "symfony/finder": "<3.3" }, "require-dev": { - "latte/latte": "^2.2", - "nette/application": "^3.0", - "nette/caching": "^3.0", - "nette/database": "^3.0", - "nette/forms": "^3.0", - "nette/http": "^3.0", - "nette/mail": "^3.0", - "nette/robot-loader": "^3.0", - "nette/safe-stream": "^2.2", - "nette/security": "^3.0", - "nette/tester": "^2.0", - "tracy/tracy": "^2.6" + "symfony/dependency-injection": "~3.3|~4.0", + "symfony/finder": "~3.3|~4.0", + "symfony/yaml": "~3.0|~4.0" }, "suggest": { - "nette/robot-loader": "to use Configurator::createRobotLoader()", - "tracy/tracy": "to use Configurator::enableTracy()" + "symfony/yaml": "To use the yaml reference dumper" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "3.4-dev" } }, "autoload": { - "classmap": [ - "src/" + "psr-4": { + "Symfony\\Component\\Config\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause", - "GPL-2.0", - "GPL-3.0" + "MIT" ], "authors": [ { - "name": "David Grudl", - "homepage": "https://davidgrudl.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { - "name": "Nette Community", - "homepage": "https://nette.org/contributors" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "🅱 Nette Bootstrap: the simple way to configure and bootstrap your Nette application.", - "homepage": "https://nette.org", - "keywords": [ - "bootstrapping", - "configurator", - "nette" - ], - "time": "2019-09-30T08:19:38+00:00" + "description": "Symfony Config Component", + "homepage": "https://symfony.com", + "time": "2017-11-19T20:09:36+00:00" }, { - "name": "nette/di", - "version": "v3.0.3", + "name": "symfony/console", + "version": "v3.4.0", "source": { "type": "git", - "url": "https://github.com/nette/di.git", - "reference": "77d69061cbf8f9cfb7363dd983136f51213d3e41" + "url": "https://github.com/symfony/console.git", + "reference": "9468ad3fba3a5e1f0dc12a96e50e84cddb923cf0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/di/zipball/77d69061cbf8f9cfb7363dd983136f51213d3e41", - "reference": "77d69061cbf8f9cfb7363dd983136f51213d3e41", + "url": "https://api.github.com/repos/symfony/console/zipball/9468ad3fba3a5e1f0dc12a96e50e84cddb923cf0", + "reference": "9468ad3fba3a5e1f0dc12a96e50e84cddb923cf0", "shasum": "" }, "require": { - "ext-tokenizer": "*", - "nette/neon": "^3.0", - "nette/php-generator": "^3.3.3", - "nette/robot-loader": "^3.2", - "nette/schema": "^1.0", - "nette/utils": "^3.1", - "php": ">=7.1" + "php": "^5.5.9|>=7.0.8", + "symfony/debug": "~2.8|~3.0|~4.0", + "symfony/polyfill-mbstring": "~1.0" }, "conflict": { - "nette/bootstrap": "<3.0" + "symfony/dependency-injection": "<3.4", + "symfony/process": "<3.3" }, "require-dev": { - "nette/tester": "^2.2", - "phpstan/phpstan": "^0.12", - "tracy/tracy": "^2.3" + "psr/log": "~1.0", + "symfony/config": "~3.3|~4.0", + "symfony/dependency-injection": "~3.4|~4.0", + "symfony/event-dispatcher": "~2.8|~3.0|~4.0", + "symfony/lock": "~3.4|~4.0", + "symfony/process": "~3.3|~4.0" + }, + "suggest": { + "psr/log": "For using the console logger", + "symfony/event-dispatcher": "", + "symfony/lock": "", + "symfony/process": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "3.4-dev" } }, "autoload": { - "classmap": [ - "src/" + "psr-4": { + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause", - "GPL-2.0-only", - "GPL-3.0-only" + "MIT" ], "authors": [ { - "name": "David Grudl", - "homepage": "https://davidgrudl.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { - "name": "Nette Community", - "homepage": "https://nette.org/contributors" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "💎 Nette Dependency Injection Container: Flexible, compiled and full-featured DIC with perfectly usable autowiring and support for all new PHP 7.1 features.", - "homepage": "https://nette.org", - "keywords": [ - "compiled", - "di", - "dic", - "factory", - "ioc", - "nette", - "static" - ], - "time": "2020-01-20T12:14:54+00:00" + "description": "Symfony Console Component", + "homepage": "https://symfony.com", + "time": "2017-11-29T13:28:14+00:00" }, { - "name": "nette/finder", - "version": "v2.5.2", + "name": "symfony/css-selector", + "version": "v3.4.0", "source": { "type": "git", - "url": "https://github.com/nette/finder.git", - "reference": "4ad2c298eb8c687dd0e74ae84206a4186eeaed50" + "url": "https://github.com/symfony/css-selector.git", + "reference": "7134b93e90ea7e7881fcb2da006d21b4c5f31908" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/finder/zipball/4ad2c298eb8c687dd0e74ae84206a4186eeaed50", - "reference": "4ad2c298eb8c687dd0e74ae84206a4186eeaed50", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/7134b93e90ea7e7881fcb2da006d21b4c5f31908", + "reference": "7134b93e90ea7e7881fcb2da006d21b4c5f31908", "shasum": "" }, "require": { - "nette/utils": "^2.4 || ^3.0", - "php": ">=7.1" - }, - "conflict": { - "nette/nette": "<2.2" - }, - "require-dev": { - "nette/tester": "^2.0", - "phpstan/phpstan": "^0.12", - "tracy/tracy": "^2.3" + "php": "^5.5.9|>=7.0.8" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.5-dev" + "dev-master": "3.4-dev" } }, "autoload": { - "classmap": [ - "src/" + "psr-4": { + "Symfony\\Component\\CssSelector\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause", - "GPL-2.0", - "GPL-3.0" + "MIT" ], "authors": [ { - "name": "David Grudl", - "homepage": "https://davidgrudl.com" + "name": "Jean-François Simon", + "email": "jeanfrancois.simon@sensiolabs.com" }, { - "name": "Nette Community", - "homepage": "https://nette.org/contributors" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "🔍 Nette Finder: find files and directories with an intuitive API.", - "homepage": "https://nette.org", - "keywords": [ - "filesystem", - "glob", - "iterator", - "nette" - ], - "time": "2020-01-03T20:35:40+00:00" + "description": "Symfony CssSelector Component", + "homepage": "https://symfony.com", + "time": "2017-11-05T16:10:10+00:00" }, { - "name": "nette/neon", - "version": "v3.1.2", + "name": "symfony/debug", + "version": "v3.4.0", "source": { "type": "git", - "url": "https://github.com/nette/neon.git", - "reference": "3c3dcbc6bf6c80dc97b1fc4ba9a22ae67930fc0e" + "url": "https://github.com/symfony/debug.git", + "reference": "fb2001e5d85f95d8b6ab94ae3be5d2672df128fd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/neon/zipball/3c3dcbc6bf6c80dc97b1fc4ba9a22ae67930fc0e", - "reference": "3c3dcbc6bf6c80dc97b1fc4ba9a22ae67930fc0e", + "url": "https://api.github.com/repos/symfony/debug/zipball/fb2001e5d85f95d8b6ab94ae3be5d2672df128fd", + "reference": "fb2001e5d85f95d8b6ab94ae3be5d2672df128fd", "shasum": "" }, "require": { - "ext-iconv": "*", - "ext-json": "*", - "php": ">=7.1" + "php": "^5.5.9|>=7.0.8", + "psr/log": "~1.0" + }, + "conflict": { + "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2" }, "require-dev": { - "nette/tester": "^2.0", - "phpstan/phpstan": "^0.12", - "tracy/tracy": "^2.3" + "symfony/http-kernel": "~2.8|~3.0|~4.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1-dev" + "dev-master": "3.4-dev" } }, "autoload": { - "classmap": [ - "src/" + "psr-4": { + "Symfony\\Component\\Debug\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause", - "GPL-2.0-only", - "GPL-3.0-only" + "MIT" ], "authors": [ { - "name": "David Grudl", - "homepage": "https://davidgrudl.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { - "name": "Nette Community", - "homepage": "https://nette.org/contributors" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "🍸 Nette NEON: encodes and decodes NEON file format.", - "homepage": "https://ne-on.org", - "keywords": [ - "export", - "import", - "neon", - "nette", - "yaml" - ], - "time": "2020-03-04T11:47:04+00:00" + "description": "Symfony Debug Component", + "homepage": "https://symfony.com", + "time": "2017-11-21T09:01:46+00:00" }, { - "name": "nette/php-generator", - "version": "v3.3.4", + "name": "symfony/dom-crawler", + "version": "v3.4.0", "source": { "type": "git", - "url": "https://github.com/nette/php-generator.git", - "reference": "8fe7e699dca7db186f56d75800cb1ec32e39c856" + "url": "https://github.com/symfony/dom-crawler.git", + "reference": "7bf68716e400997a291ad42c9f9fe7972e6656d2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/php-generator/zipball/8fe7e699dca7db186f56d75800cb1ec32e39c856", - "reference": "8fe7e699dca7db186f56d75800cb1ec32e39c856", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/7bf68716e400997a291ad42c9f9fe7972e6656d2", + "reference": "7bf68716e400997a291ad42c9f9fe7972e6656d2", "shasum": "" }, "require": { - "nette/utils": "^2.4.2 || ^3.0", - "php": ">=7.1" + "php": "^5.5.9|>=7.0.8", + "symfony/polyfill-mbstring": "~1.0" }, "require-dev": { - "nette/tester": "^2.0", - "phpstan/phpstan": "^0.12", - "tracy/tracy": "^2.3" + "symfony/css-selector": "~2.8|~3.0|~4.0" + }, + "suggest": { + "symfony/css-selector": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.3-dev" + "dev-master": "3.4-dev" } }, "autoload": { - "classmap": [ - "src/" + "psr-4": { + "Symfony\\Component\\DomCrawler\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause", - "GPL-2.0-only", - "GPL-3.0-only" + "MIT" ], "authors": [ { - "name": "David Grudl", - "homepage": "https://davidgrudl.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { - "name": "Nette Community", - "homepage": "https://nette.org/contributors" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "🐘 Nette PHP Generator: generates neat PHP code for you. Supports new PHP 7.4 features.", - "homepage": "https://nette.org", - "keywords": [ - "code", - "nette", - "php", - "scaffolding" - ], - "time": "2020-02-09T14:39:09+00:00" + "description": "Symfony DomCrawler Component", + "homepage": "https://symfony.com", + "time": "2017-11-05T16:10:10+00:00" }, { - "name": "nette/robot-loader", - "version": "v3.2.3", + "name": "symfony/event-dispatcher", + "version": "v3.4.0", "source": { "type": "git", - "url": "https://github.com/nette/robot-loader.git", - "reference": "726c462e73e739e965ec654a667407074cfe83c0" + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "ca20b8f9ef149f40ff656d52965f240d85f7a8e4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/robot-loader/zipball/726c462e73e739e965ec654a667407074cfe83c0", - "reference": "726c462e73e739e965ec654a667407074cfe83c0", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/ca20b8f9ef149f40ff656d52965f240d85f7a8e4", + "reference": "ca20b8f9ef149f40ff656d52965f240d85f7a8e4", "shasum": "" }, "require": { - "ext-tokenizer": "*", - "nette/finder": "^2.5 || ^3.0", - "nette/utils": "^3.0", - "php": ">=7.1" + "php": "^5.5.9|>=7.0.8" + }, + "conflict": { + "symfony/dependency-injection": "<3.3" }, "require-dev": { - "nette/tester": "^2.0", - "phpstan/phpstan": "^0.12", - "tracy/tracy": "^2.3" + "psr/log": "~1.0", + "symfony/config": "~2.8|~3.0|~4.0", + "symfony/dependency-injection": "~3.3|~4.0", + "symfony/expression-language": "~2.8|~3.0|~4.0", + "symfony/stopwatch": "~2.8|~3.0|~4.0" + }, + "suggest": { + "symfony/dependency-injection": "", + "symfony/http-kernel": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-master": "3.4-dev" } }, "autoload": { - "classmap": [ - "src/" + "psr-4": { + "Symfony\\Component\\EventDispatcher\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause", - "GPL-2.0-only", - "GPL-3.0-only" + "MIT" ], "authors": [ { - "name": "David Grudl", - "homepage": "https://davidgrudl.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { - "name": "Nette Community", - "homepage": "https://nette.org/contributors" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "🍀 Nette RobotLoader: high performance and comfortable autoloader that will search and autoload classes within your application.", - "homepage": "https://nette.org", - "keywords": [ - "autoload", - "class", - "interface", - "nette", - "trait" - ], - "time": "2020-02-28T13:10:07+00:00" + "description": "Symfony EventDispatcher Component", + "homepage": "https://symfony.com", + "time": "2017-11-09T14:14:31+00:00" }, { - "name": "nette/schema", - "version": "v1.0.2", + "name": "symfony/filesystem", + "version": "v3.4.0", "source": { "type": "git", - "url": "https://github.com/nette/schema.git", - "reference": "febf71fb4052c824046f5a33f4f769a6e7fa0cb4" + "url": "https://github.com/symfony/filesystem.git", + "reference": "de56eee71e0a128d8c54ccc1909cdefd574bad0f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/schema/zipball/febf71fb4052c824046f5a33f4f769a6e7fa0cb4", - "reference": "febf71fb4052c824046f5a33f4f769a6e7fa0cb4", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/de56eee71e0a128d8c54ccc1909cdefd574bad0f", + "reference": "de56eee71e0a128d8c54ccc1909cdefd574bad0f", "shasum": "" }, "require": { - "nette/utils": "^3.1", - "php": ">=7.1" - }, - "require-dev": { - "nette/tester": "^2.2", - "phpstan/phpstan-nette": "^0.12", - "tracy/tracy": "^2.3" + "php": "^5.5.9|>=7.0.8" }, "type": "library", "extra": { - "branch-alias": [] + "branch-alias": { + "dev-master": "3.4-dev" + } }, "autoload": { - "classmap": [ - "src/" + "psr-4": { + "Symfony\\Component\\Filesystem\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause", - "GPL-2.0", - "GPL-3.0" + "MIT" ], "authors": [ { - "name": "David Grudl", - "homepage": "https://davidgrudl.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { - "name": "Nette Community", - "homepage": "https://nette.org/contributors" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "📐 Nette Schema: validating data structures against a given Schema.", - "homepage": "https://nette.org", - "keywords": [ - "config", - "nette" - ], - "time": "2020-01-06T22:52:48+00:00" + "description": "Symfony Filesystem Component", + "homepage": "https://symfony.com", + "time": "2017-11-19T18:59:05+00:00" }, { - "name": "nette/utils", - "version": "v3.1.1", + "name": "symfony/finder", + "version": "v3.4.0", "source": { "type": "git", - "url": "https://github.com/nette/utils.git", - "reference": "2c17d16d8887579ae1c0898ff94a3668997fd3eb" + "url": "https://github.com/symfony/finder.git", + "reference": "dac8d7db537bac7ad8143eb11360a8c2231f251a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/utils/zipball/2c17d16d8887579ae1c0898ff94a3668997fd3eb", - "reference": "2c17d16d8887579ae1c0898ff94a3668997fd3eb", + "url": "https://api.github.com/repos/symfony/finder/zipball/dac8d7db537bac7ad8143eb11360a8c2231f251a", + "reference": "dac8d7db537bac7ad8143eb11360a8c2231f251a", "shasum": "" }, "require": { - "php": ">=7.1" - }, - "require-dev": { - "nette/tester": "~2.0", - "phpstan/phpstan": "^0.12", - "tracy/tracy": "^2.3" - }, - "suggest": { - "ext-gd": "to use Image", - "ext-iconv": "to use Strings::webalize() and toAscii()", - "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()", - "ext-json": "to use Nette\\Utils\\Json", - "ext-mbstring": "to use Strings::lower() etc...", - "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()", - "ext-xml": "to use Strings::length() etc. when mbstring is not available" + "php": "^5.5.9|>=7.0.8" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1-dev" + "dev-master": "3.4-dev" } }, "autoload": { - "classmap": [ - "src/" + "psr-4": { + "Symfony\\Component\\Finder\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause", - "GPL-2.0-only", - "GPL-3.0-only" + "MIT" ], "authors": [ { - "name": "David Grudl", - "homepage": "https://davidgrudl.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { - "name": "Nette Community", - "homepage": "https://nette.org/contributors" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "🛠 Nette Utils: lightweight utilities for string & array manipulation, image handling, safe JSON encoding/decoding, validation, slug or strong password generating etc.", - "homepage": "https://nette.org", - "keywords": [ - "array", - "core", - "datetime", - "images", - "json", - "nette", - "paginator", - "password", - "slugify", - "string", - "unicode", - "utf-8", - "utility", - "validation" - ], - "time": "2020-02-09T14:10:55+00:00" + "description": "Symfony Finder Component", + "homepage": "https://symfony.com", + "time": "2017-11-05T16:10:10+00:00" }, { - "name": "nikic/php-parser", - "version": "v3.1.5", + "name": "symfony/options-resolver", + "version": "v4.4.10", "source": { "type": "git", - "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "bb87e28e7d7b8d9a7fda231d37457c9210faf6ce" + "url": "https://github.com/symfony/options-resolver.git", + "reference": "73e1d0fe11ffceb7b7d4ca55b7381cd7ce0bac05" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/bb87e28e7d7b8d9a7fda231d37457c9210faf6ce", - "reference": "bb87e28e7d7b8d9a7fda231d37457c9210faf6ce", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/73e1d0fe11ffceb7b7d4ca55b7381cd7ce0bac05", + "reference": "73e1d0fe11ffceb7b7d4ca55b7381cd7ce0bac05", "shasum": "" }, "require": { - "ext-tokenizer": "*", - "php": ">=5.5" - }, - "require-dev": { - "phpunit/phpunit": "~4.0|~5.0" + "php": "^7.1.3" }, - "bin": [ - "bin/php-parse" - ], "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "4.4-dev" } }, "autoload": { "psr-4": { - "PhpParser\\": "lib/PhpParser" - } + "Symfony\\Component\\OptionsResolver\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Nikita Popov" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "A PHP parser written in PHP", + "description": "Symfony OptionsResolver Component", + "homepage": "https://symfony.com", "keywords": [ - "parser", - "php" + "config", + "configuration", + "options" ], - "time": "2018-02-28T20:30:58+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-05-23T12:09:32+00:00" }, { - "name": "odan/phinx-migrations-generator", - "version": "4.6.1", + "name": "symfony/polyfill-ctype", + "version": "v1.17.1", "source": { "type": "git", - "url": "https://github.com/odan/phinx-migrations-generator.git", - "reference": "7a8afe501520e322452bae2e3188756eafc7194a" + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "2edd75b8b35d62fd3eeabba73b26b8f1f60ce13d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/odan/phinx-migrations-generator/zipball/7a8afe501520e322452bae2e3188756eafc7194a", - "reference": "7a8afe501520e322452bae2e3188756eafc7194a", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/2edd75b8b35d62fd3eeabba73b26b8f1f60ce13d", + "reference": "2edd75b8b35d62fd3eeabba73b26b8f1f60ce13d", "shasum": "" }, "require": { - "php": "^7.1", - "riimu/kit-phpencoder": "^2.4", - "robmorgan/phinx": "^0.11", - "symfony/console": "^2.8|^3.0|^4.0|^5.0" + "php": ">=5.3.3" }, - "require-dev": { - "overtrue/phplint": "^1.1", - "phpstan/phpstan-shim": "^0.11", - "phpunit/phpunit": "^7.0", - "squizlabs/php_codesniffer": "^3.4" + "suggest": { + "ext-ctype": "For best performance" }, - "bin": [ - "./bin/phinx-migrations" - ], "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.17-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, "autoload": { "psr-4": { - "Odan\\Migration\\": "src/Migration/" - } + "Symfony\\Polyfill\\Ctype\\": "" + }, + "files": [ + "bootstrap.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "description": "Migration generator for Phinx", - "homepage": "https://github.com/odan/phinx-migrations-generator", + "authors": [ + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", "keywords": [ - "database", - "generator", - "migration", - "migrations", - "mysql", - "phinx" + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } ], - "time": "2020-01-08T08:33:14+00:00" + "time": "2020-06-06T08:46:27+00:00" }, { - "name": "phar-io/manifest", - "version": "1.0.1", + "name": "symfony/polyfill-iconv", + "version": "v1.17.1", "source": { "type": "git", - "url": "https://github.com/phar-io/manifest.git", - "reference": "2df402786ab5368a0169091f61a7c1e0eb6852d0" + "url": "https://github.com/symfony/polyfill-iconv.git", + "reference": "ba6c9c18db36235b859cc29b8372d1c01298c035" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/2df402786ab5368a0169091f61a7c1e0eb6852d0", - "reference": "2df402786ab5368a0169091f61a7c1e0eb6852d0", + "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/ba6c9c18db36235b859cc29b8372d1c01298c035", + "reference": "ba6c9c18db36235b859cc29b8372d1c01298c035", "shasum": "" }, "require": { - "ext-dom": "*", - "ext-phar": "*", - "phar-io/version": "^1.0.1", - "php": "^5.6 || ^7.0" + "php": ">=5.3.3" + }, + "suggest": { + "ext-iconv": "For best performance" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "1.17-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { - "classmap": [ - "src/" + "psr-4": { + "Symfony\\Polyfill\\Iconv\\": "" + }, + "files": [ + "bootstrap.php" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" }, { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Iconv extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "iconv", + "polyfill", + "portable", + "shim" + ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" }, { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" } ], - "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", - "time": "2017-03-05T18:14:27+00:00" + "time": "2020-06-06T08:46:27+00:00" }, { - "name": "phar-io/version", - "version": "1.0.1", + "name": "symfony/polyfill-intl-idn", + "version": "v1.17.1", "source": { "type": "git", - "url": "https://github.com/phar-io/version.git", - "reference": "a70c0ced4be299a63d32fa96d9281d03e94041df" + "url": "https://github.com/symfony/polyfill-intl-idn.git", + "reference": "a57f8161502549a742a63c09f0a604997bf47027" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/version/zipball/a70c0ced4be299a63d32fa96d9281d03e94041df", - "reference": "a70c0ced4be299a63d32fa96d9281d03e94041df", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/a57f8161502549a742a63c09f0a604997bf47027", + "reference": "a57f8161502549a742a63c09f0a604997bf47027", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0" + "php": ">=5.3.3", + "symfony/polyfill-mbstring": "^1.3", + "symfony/polyfill-php72": "^1.10" + }, + "suggest": { + "ext-intl": "For best performance" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.17-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, "autoload": { - "classmap": [ - "src/" + "psr-4": { + "Symfony\\Polyfill\\Intl\\Idn\\": "" + }, + "files": [ + "bootstrap.php" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" + "name": "Laurent Bassin", + "email": "laurent@bassin.info" }, { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "idn", + "intl", + "polyfill", + "portable", + "shim" + ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" }, { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" } ], - "description": "Library for handling version information and constraints", - "time": "2017-03-05T17:38:23+00:00" + "time": "2020-06-06T08:46:27+00:00" }, { - "name": "phpdocumentor/reflection-common", - "version": "2.1.0", + "name": "symfony/polyfill-mbstring", + "version": "v1.17.1", "source": { "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionCommon.git", - "reference": "6568f4687e5b41b054365f9ae03fcb1ed5f2069b" + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "7110338d81ce1cbc3e273136e4574663627037a7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/6568f4687e5b41b054365f9ae03fcb1ed5f2069b", - "reference": "6568f4687e5b41b054365f9ae03fcb1ed5f2069b", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/7110338d81ce1cbc3e273136e4574663627037a7", + "reference": "7110338d81ce1cbc3e273136e4574663627037a7", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=5.3.3" + }, + "suggest": { + "ext-mbstring": "For best performance" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.x-dev" + "dev-master": "1.17-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { "psr-4": { - "phpDocumentor\\Reflection\\": "src/" - } + "Symfony\\Polyfill\\Mbstring\\": "" + }, + "files": [ + "bootstrap.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -6397,56 +6501,69 @@ ], "authors": [ { - "name": "Jaap van Otterdijk", - "email": "opensource@ijaap.nl" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Common reflection classes used by phpdocumentor to reflect the code structure", - "homepage": "http://www.phpdoc.org", + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", "keywords": [ - "FQSEN", - "phpDocumentor", - "phpdoc", - "reflection", - "static analysis" + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } ], - "time": "2020-04-27T09:25:28+00:00" + "time": "2020-06-06T08:46:27+00:00" }, { - "name": "phpdocumentor/reflection-docblock", - "version": "5.1.0", + "name": "symfony/polyfill-php72", + "version": "v1.17.0", "source": { "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "cd72d394ca794d3466a3b2fc09d5a6c1dc86b47e" + "url": "https://github.com/symfony/polyfill-php72.git", + "reference": "f048e612a3905f34931127360bdd2def19a5e582" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/cd72d394ca794d3466a3b2fc09d5a6c1dc86b47e", - "reference": "cd72d394ca794d3466a3b2fc09d5a6c1dc86b47e", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/f048e612a3905f34931127360bdd2def19a5e582", + "reference": "f048e612a3905f34931127360bdd2def19a5e582", "shasum": "" }, "require": { - "ext-filter": "^7.1", - "php": "^7.2", - "phpdocumentor/reflection-common": "^2.0", - "phpdocumentor/type-resolver": "^1.0", - "webmozart/assert": "^1" - }, - "require-dev": { - "doctrine/instantiator": "^1", - "mockery/mockery": "^1" + "php": ">=5.3.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "5.x-dev" + "dev-master": "1.17-dev" } }, "autoload": { "psr-4": { - "phpDocumentor\\Reflection\\": "src" - } + "Symfony\\Polyfill\\Php72\\": "" + }, + "files": [ + "bootstrap.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -6454,49 +6571,68 @@ ], "authors": [ { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" }, { - "name": "Jaap van Otterdijk", - "email": "account@ijaap.nl" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "time": "2020-02-22T12:28:44+00:00" + "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-05-12T16:47:27+00:00" }, { - "name": "phpdocumentor/type-resolver", - "version": "1.1.0", + "name": "symfony/process", + "version": "v3.4.0", "source": { "type": "git", - "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "7462d5f123dfc080dfdf26897032a6513644fc95" + "url": "https://github.com/symfony/process.git", + "reference": "db25e810fd5e124085e3777257d0cf4ae533d0ea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/7462d5f123dfc080dfdf26897032a6513644fc95", - "reference": "7462d5f123dfc080dfdf26897032a6513644fc95", + "url": "https://api.github.com/repos/symfony/process/zipball/db25e810fd5e124085e3777257d0cf4ae533d0ea", + "reference": "db25e810fd5e124085e3777257d0cf4ae533d0ea", "shasum": "" }, - "require": { - "php": "^7.2", - "phpdocumentor/reflection-common": "^2.0" - }, - "require-dev": { - "ext-tokenizer": "^7.2", - "mockery/mockery": "~1" + "require": { + "php": "^5.5.9|>=7.0.8" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.x-dev" + "dev-master": "3.4-dev" } }, "autoload": { "psr-4": { - "phpDocumentor\\Reflection\\": "src" - } + "Symfony\\Component\\Process\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -6504,48 +6640,75 @@ ], "authors": [ { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", - "time": "2020-02-18T18:59:58+00:00" + "description": "Symfony Process Component", + "homepage": "https://symfony.com", + "time": "2017-11-22T12:18:49+00:00" }, { - "name": "phpspec/prophecy", - "version": "v1.10.3", + "name": "symfony/translation", + "version": "v4.4.10", "source": { "type": "git", - "url": "https://github.com/phpspec/prophecy.git", - "reference": "451c3cd1418cf640de218914901e51b064abb093" + "url": "https://github.com/symfony/translation.git", + "reference": "79d3ef9096a6a6047dbc69218b68c7b7f63193af" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/451c3cd1418cf640de218914901e51b064abb093", - "reference": "451c3cd1418cf640de218914901e51b064abb093", + "url": "https://api.github.com/repos/symfony/translation/zipball/79d3ef9096a6a6047dbc69218b68c7b7f63193af", + "reference": "79d3ef9096a6a6047dbc69218b68c7b7f63193af", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.0.2", - "php": "^5.3|^7.0", - "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0|^5.0", - "sebastian/comparator": "^1.2.3|^2.0|^3.0|^4.0", - "sebastian/recursion-context": "^1.0|^2.0|^3.0|^4.0" + "php": ">=7.1.3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/translation-contracts": "^1.1.6|^2" + }, + "conflict": { + "symfony/config": "<3.4", + "symfony/dependency-injection": "<3.4", + "symfony/http-kernel": "<4.4", + "symfony/yaml": "<3.4" + }, + "provide": { + "symfony/translation-implementation": "1.0" }, "require-dev": { - "phpspec/phpspec": "^2.5 || ^3.2", - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1" + "psr/log": "~1.0", + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/console": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/finder": "~2.8|~3.0|~4.0|^5.0", + "symfony/http-kernel": "^4.4", + "symfony/intl": "^3.4|^4.0|^5.0", + "symfony/service-contracts": "^1.1.2|^2", + "symfony/yaml": "^3.4|^4.0|^5.0" + }, + "suggest": { + "psr/log-implementation": "To use logging capability in translator", + "symfony/config": "", + "symfony/yaml": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.10.x-dev" + "dev-master": "4.4-dev" } }, "autoload": { "psr-4": { - "Prophecy\\": "src/Prophecy" - } + "Symfony\\Component\\Translation\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -6553,173 +6716,182 @@ ], "authors": [ { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { - "name": "Marcello Duarte", - "email": "marcello.duarte@gmail.com" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Highly opinionated mocking framework for PHP 5.3+", - "homepage": "https://github.com/phpspec/prophecy", - "keywords": [ - "Double", - "Dummy", - "fake", - "mock", - "spy", - "stub" + "description": "Symfony Translation Component", + "homepage": "https://symfony.com", + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } ], - "time": "2020-03-05T15:02:03+00:00" + "time": "2020-05-30T20:06:45+00:00" }, { - "name": "phpstan/phpdoc-parser", - "version": "0.2", + "name": "symfony/translation-contracts", + "version": "v2.1.2", "source": { "type": "git", - "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "02f909f134fe06f0cd4790d8627ee24efbe84d6a" + "url": "https://github.com/symfony/translation-contracts.git", + "reference": "e5ca07c8f817f865f618aa072c2fe8e0e637340e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/02f909f134fe06f0cd4790d8627ee24efbe84d6a", - "reference": "02f909f134fe06f0cd4790d8627ee24efbe84d6a", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/e5ca07c8f817f865f618aa072c2fe8e0e637340e", + "reference": "e5ca07c8f817f865f618aa072c2fe8e0e637340e", "shasum": "" }, "require": { - "php": "~7.0" + "php": ">=7.2.5" }, - "require-dev": { - "consistence/coding-standard": "^2.0.0", - "jakub-onderka/php-parallel-lint": "^0.9.2", - "phing/phing": "^2.16.0", - "phpstan/phpstan": "^0.9", - "phpunit/phpunit": "^6.3", - "slevomat/coding-standard": "^3.3.0" + "suggest": { + "symfony/translation-implementation": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "0.1-dev" + "dev-master": "2.1-dev" } }, "autoload": { "psr-4": { - "PHPStan\\PhpDocParser\\": [ - "src/" - ] + "Symfony\\Contracts\\Translation\\": "" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "description": "PHPDoc parser with support for nullable, intersection and generic types", - "time": "2018-01-13T18:19:41+00:00" + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to translation", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-05-20T17:43:50+00:00" }, { - "name": "phpstan/phpstan", - "version": "0.9.3", + "name": "symfony/yaml", + "version": "v3.4.0", "source": { "type": "git", - "url": "https://github.com/phpstan/phpstan.git", - "reference": "884091282ad055da6ba86b5455be2d043922d882" + "url": "https://github.com/symfony/yaml.git", + "reference": "b3d0c9c11be3831b84825967dc6b52b5a7b84e04" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/884091282ad055da6ba86b5455be2d043922d882", - "reference": "884091282ad055da6ba86b5455be2d043922d882", + "url": "https://api.github.com/repos/symfony/yaml/zipball/b3d0c9c11be3831b84825967dc6b52b5a7b84e04", + "reference": "b3d0c9c11be3831b84825967dc6b52b5a7b84e04", "shasum": "" }, "require": { - "jean85/pretty-package-versions": "^1.0.3", - "nette/bootstrap": "^2.4 || ^3.0", - "nette/di": "^2.4.7 || ^3.0", - "nette/robot-loader": "^3.0.1", - "nette/utils": "^2.4.5 || ^3.0", - "nikic/php-parser": "^3.1", - "php": "~7.0", - "phpstan/phpdoc-parser": "^0.2", - "symfony/console": "~3.2 || ~4.0", - "symfony/finder": "~3.2 || ~4.0" + "php": "^5.5.9|>=7.0.8" + }, + "conflict": { + "symfony/console": "<3.4" }, "require-dev": { - "consistence/coding-standard": "2.2.1", - "ext-gd": "*", - "ext-intl": "*", - "ext-mysqli": "*", - "jakub-onderka/php-parallel-lint": "^0.9.2", - "phing/phing": "^2.16.0", - "phpstan/phpstan-php-parser": "^0.9", - "phpstan/phpstan-phpunit": "^0.9.3", - "phpstan/phpstan-strict-rules": "^0.9", - "phpunit/phpunit": "^6.5.4", - "slevomat/coding-standard": "4.0.0" + "symfony/console": "~3.4|~4.0" + }, + "suggest": { + "symfony/console": "For validating YAML files using the lint command" }, - "bin": [ - "bin/phpstan" - ], "type": "library", "extra": { "branch-alias": { - "dev-master": "0.9-dev" + "dev-master": "3.4-dev" } }, "autoload": { "psr-4": { - "PHPStan\\": [ - "src/", - "build/PHPStan" - ] - } + "Symfony\\Component\\Yaml\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "description": "PHPStan - PHP Static Analysis Tool", - "time": "2020-01-07T15:01:00+00:00" + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Yaml Component", + "homepage": "https://symfony.com", + "time": "2017-11-29T13:28:14+00:00" }, { - "name": "phpunit/php-code-coverage", - "version": "5.3.2", + "name": "theseer/tokenizer", + "version": "1.1.3", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "c89677919c5dd6d3b3852f230a663118762218ac" + "url": "https://github.com/theseer/tokenizer.git", + "reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/c89677919c5dd6d3b3852f230a663118762218ac", - "reference": "c89677919c5dd6d3b3852f230a663118762218ac", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/11336f6f84e16a720dae9d8e6ed5019efa85a0f9", + "reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9", "shasum": "" }, "require": { "ext-dom": "*", + "ext-tokenizer": "*", "ext-xmlwriter": "*", - "php": "^7.0", - "phpunit/php-file-iterator": "^1.4.2", - "phpunit/php-text-template": "^1.2.1", - "phpunit/php-token-stream": "^2.0.1", - "sebastian/code-unit-reverse-lookup": "^1.0.1", - "sebastian/environment": "^3.0", - "sebastian/version": "^2.0.1", - "theseer/tokenizer": "^1.1" - }, - "require-dev": { - "phpunit/phpunit": "^6.0" - }, - "suggest": { - "ext-xdebug": "^2.5.5" + "php": "^7.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.3.x-dev" - } - }, "autoload": { "classmap": [ "src/" @@ -6731,47 +6903,53 @@ ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" } ], - "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", - "homepage": "https://github.com/sebastianbergmann/php-code-coverage", - "keywords": [ - "coverage", - "testing", - "xunit" - ], - "time": "2018-04-06T15:36:58+00:00" + "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", + "time": "2019-06-13T22:48:21+00:00" }, { - "name": "phpunit/php-file-iterator", - "version": "1.4.5", + "name": "vlucas/phpdotenv", + "version": "v4.1.7", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4" + "url": "https://github.com/vlucas/phpdotenv.git", + "reference": "db63b2ea280fdcf13c4ca392121b0b2450b51193" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/730b01bc3e867237eaac355e06a36b85dd93a8b4", - "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4", + "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/db63b2ea280fdcf13c4ca392121b0b2450b51193", + "reference": "db63b2ea280fdcf13c4ca392121b0b2450b51193", "shasum": "" }, - "require": { - "php": ">=5.3.3" + "require": { + "php": "^5.5.9 || ^7.0 || ^8.0", + "phpoption/phpoption": "^1.7.3", + "symfony/polyfill-ctype": "^1.16" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.4.1", + "ext-filter": "*", + "ext-pcre": "*", + "phpunit/phpunit": "^4.8.35 || ^5.7.27 || ^6.5.6 || ^7.0" + }, + "suggest": { + "ext-filter": "Required to use the boolean validator.", + "ext-pcre": "Required to use most of the library." }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.4.x-dev" + "dev-master": "4.1-dev" } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Dotenv\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -6779,710 +6957,724 @@ ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", - "role": "lead" + "name": "Graham Campbell", + "email": "graham@alt-three.com", + "homepage": "https://gjcampbell.co.uk/" + }, + { + "name": "Vance Lucas", + "email": "vance@vancelucas.com", + "homepage": "https://vancelucas.com/" } ], - "description": "FilterIterator implementation that filters files based on a list of suffixes.", - "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.", "keywords": [ - "filesystem", - "iterator" + "dotenv", + "env", + "environment" + ], + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/vlucas/phpdotenv", + "type": "tidelift" + } ], - "time": "2017-11-27T13:52:08+00:00" + "time": "2020-06-07T18:25:35+00:00" }, { - "name": "phpunit/php-text-template", - "version": "1.2.1", + "name": "webmozart/assert", + "version": "1.8.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" + "url": "https://github.com/webmozart/assert.git", + "reference": "ab2cb0b3b559010b75981b1bdce728da3ee90ad6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "url": "https://api.github.com/repos/webmozart/assert/zipball/ab2cb0b3b559010b75981b1bdce728da3ee90ad6", + "reference": "ab2cb0b3b559010b75981b1bdce728da3ee90ad6", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": "^5.3.3 || ^7.0", + "symfony/polyfill-ctype": "^1.8" + }, + "conflict": { + "vimeo/psalm": "<3.9.1" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.36 || ^7.5.13" }, "type": "library", "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Webmozart\\Assert\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" } ], - "description": "Simple template engine.", - "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "description": "Assertions to validate method input/output with nice error messages.", "keywords": [ - "template" + "assert", + "check", + "validate" ], - "time": "2015-06-21T13:50:34+00:00" + "time": "2020-04-18T12:12:48+00:00" }, { - "name": "phpunit/php-timer", - "version": "1.0.9", + "name": "zendframework/zend-escaper", + "version": "2.6.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f" + "url": "https://github.com/zendframework/zend-escaper.git", + "reference": "3801caa21b0ca6aca57fa1c42b08d35c395ebd5f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", - "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", + "url": "https://api.github.com/repos/zendframework/zend-escaper/zipball/3801caa21b0ca6aca57fa1c42b08d35c395ebd5f", + "reference": "3801caa21b0ca6aca57fa1c42b08d35c395ebd5f", "shasum": "" }, "require": { - "php": "^5.3.3 || ^7.0" + "php": "^5.6 || ^7.0" }, "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" + "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.2", + "zendframework/zend-coding-standard": "~1.0.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-master": "2.6.x-dev", + "dev-develop": "2.7.x-dev" } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Zend\\Escaper\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", - "role": "lead" - } - ], - "description": "Utility class for timing", - "homepage": "https://github.com/sebastianbergmann/php-timer/", + "description": "Securely and safely escape HTML, HTML attributes, JavaScript, CSS, and URLs", "keywords": [ - "timer" + "ZendFramework", + "escaper", + "zf" ], - "time": "2017-02-26T11:10:40+00:00" + "abandoned": "laminas/laminas-escaper", + "time": "2019-09-05T20:03:20+00:00" }, { - "name": "phpunit/php-token-stream", - "version": "2.0.2", + "name": "zendframework/zend-http", + "version": "2.11.2", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "791198a2c6254db10131eecfe8c06670700904db" + "url": "https://github.com/zendframework/zend-http.git", + "reference": "e15e0ce45a2a4f642cd0b7b4f4d4d0366b729a1a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/791198a2c6254db10131eecfe8c06670700904db", - "reference": "791198a2c6254db10131eecfe8c06670700904db", + "url": "https://api.github.com/repos/zendframework/zend-http/zipball/e15e0ce45a2a4f642cd0b7b4f4d4d0366b729a1a", + "reference": "e15e0ce45a2a4f642cd0b7b4f4d4d0366b729a1a", "shasum": "" }, "require": { - "ext-tokenizer": "*", - "php": "^7.0" + "php": "^5.6 || ^7.0", + "zendframework/zend-loader": "^2.5.1", + "zendframework/zend-stdlib": "^3.2.1", + "zendframework/zend-uri": "^2.5.2", + "zendframework/zend-validator": "^2.10.1" }, "require-dev": { - "phpunit/phpunit": "^6.2.4" + "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.3", + "zendframework/zend-coding-standard": "~1.0.0", + "zendframework/zend-config": "^3.1 || ^2.6" + }, + "suggest": { + "paragonie/certainty": "For automated management of cacert.pem" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-master": "2.11.x-dev", + "dev-develop": "2.12.x-dev" } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Zend\\Http\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Wrapper around PHP's tokenizer extension.", - "homepage": "https://github.com/sebastianbergmann/php-token-stream/", + "description": "Provides an easy interface for performing Hyper-Text Transfer Protocol (HTTP) requests", "keywords": [ - "tokenizer" + "ZendFramework", + "http", + "http client", + "zend", + "zf" ], - "time": "2017-11-27T05:48:46+00:00" + "abandoned": "laminas/laminas-http", + "time": "2019-12-30T20:47:33+00:00" }, { - "name": "phpunit/phpunit", - "version": "6.5.14", + "name": "zendframework/zend-json", + "version": "3.1.2", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "bac23fe7ff13dbdb461481f706f0e9fe746334b7" + "url": "https://github.com/zendframework/zend-json.git", + "reference": "e9ddb1192d93fe7fff846ac895249c39db75132b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/bac23fe7ff13dbdb461481f706f0e9fe746334b7", - "reference": "bac23fe7ff13dbdb461481f706f0e9fe746334b7", + "url": "https://api.github.com/repos/zendframework/zend-json/zipball/e9ddb1192d93fe7fff846ac895249c39db75132b", + "reference": "e9ddb1192d93fe7fff846ac895249c39db75132b", "shasum": "" }, "require": { - "ext-dom": "*", - "ext-json": "*", - "ext-libxml": "*", - "ext-mbstring": "*", - "ext-xml": "*", - "myclabs/deep-copy": "^1.6.1", - "phar-io/manifest": "^1.0.1", - "phar-io/version": "^1.0", - "php": "^7.0", - "phpspec/prophecy": "^1.7", - "phpunit/php-code-coverage": "^5.3", - "phpunit/php-file-iterator": "^1.4.3", - "phpunit/php-text-template": "^1.2.1", - "phpunit/php-timer": "^1.0.9", - "phpunit/phpunit-mock-objects": "^5.0.9", - "sebastian/comparator": "^2.1", - "sebastian/diff": "^2.0", - "sebastian/environment": "^3.1", - "sebastian/exporter": "^3.1", - "sebastian/global-state": "^2.0", - "sebastian/object-enumerator": "^3.0.3", - "sebastian/resource-operations": "^1.0", - "sebastian/version": "^2.0.1" - }, - "conflict": { - "phpdocumentor/reflection-docblock": "3.0.2", - "phpunit/dbunit": "<3.0" + "php": "^5.6 || ^7.0" }, "require-dev": { - "ext-pdo": "*" + "phpunit/phpunit": "^5.7.23 || ^6.4.3", + "zendframework/zend-coding-standard": "~1.0.0", + "zendframework/zend-stdlib": "^2.7.7 || ^3.1" }, "suggest": { - "ext-xdebug": "*", - "phpunit/php-invoker": "^1.1" + "zendframework/zend-json-server": "For implementing JSON-RPC servers", + "zendframework/zend-xml2json": "For converting XML documents to JSON" }, - "bin": [ - "phpunit" - ], "type": "library", "extra": { "branch-alias": { - "dev-master": "6.5.x-dev" + "dev-master": "3.1.x-dev", + "dev-develop": "3.2.x-dev" } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Zend\\Json\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "The PHP Unit Testing framework.", - "homepage": "https://phpunit.de/", + "description": "provides convenience methods for serializing native PHP to JSON and decoding JSON to native PHP", "keywords": [ - "phpunit", - "testing", - "xunit" + "ZendFramework", + "json", + "zf" ], - "time": "2019-02-01T05:22:47+00:00" + "abandoned": "laminas/laminas-json", + "time": "2019-10-09T13:56:13+00:00" }, { - "name": "phpunit/phpunit-mock-objects", - "version": "5.0.10", + "name": "zendframework/zend-loader", + "version": "2.6.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", - "reference": "cd1cf05c553ecfec36b170070573e540b67d3f1f" + "url": "https://github.com/zendframework/zend-loader.git", + "reference": "91da574d29b58547385b2298c020b257310898c6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/cd1cf05c553ecfec36b170070573e540b67d3f1f", - "reference": "cd1cf05c553ecfec36b170070573e540b67d3f1f", + "url": "https://api.github.com/repos/zendframework/zend-loader/zipball/91da574d29b58547385b2298c020b257310898c6", + "reference": "91da574d29b58547385b2298c020b257310898c6", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.0.5", - "php": "^7.0", - "phpunit/php-text-template": "^1.2.1", - "sebastian/exporter": "^3.1" - }, - "conflict": { - "phpunit/phpunit": "<6.0" + "php": "^5.6 || ^7.0" }, "require-dev": { - "phpunit/phpunit": "^6.5.11" - }, - "suggest": { - "ext-soap": "*" + "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.4", + "zendframework/zend-coding-standard": "~1.0.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "5.0.x-dev" + "dev-master": "2.6.x-dev", + "dev-develop": "2.7.x-dev" } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Zend\\Loader\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Mock Object library for PHPUnit", - "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/", + "description": "Autoloading and plugin loading strategies", "keywords": [ - "mock", - "xunit" + "ZendFramework", + "loader", + "zf" ], - "abandoned": true, - "time": "2018-08-09T05:50:03+00:00" + "abandoned": "laminas/laminas-loader", + "time": "2019-09-04T19:38:14+00:00" }, { - "name": "riimu/kit-phpencoder", - "version": "v2.4.0", + "name": "zendframework/zend-stdlib", + "version": "3.2.1", "source": { "type": "git", - "url": "https://github.com/Riimu/Kit-PHPEncoder.git", - "reference": "7e876d25019c3f6c23321ab5ac1a55c72fcd0933" + "url": "https://github.com/zendframework/zend-stdlib.git", + "reference": "66536006722aff9e62d1b331025089b7ec71c065" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Riimu/Kit-PHPEncoder/zipball/7e876d25019c3f6c23321ab5ac1a55c72fcd0933", - "reference": "7e876d25019c3f6c23321ab5ac1a55c72fcd0933", + "url": "https://api.github.com/repos/zendframework/zend-stdlib/zipball/66536006722aff9e62d1b331025089b7ec71c065", + "reference": "66536006722aff9e62d1b331025089b7ec71c065", "shasum": "" }, "require": { - "php": ">=5.6.0" + "php": "^5.6 || ^7.0" }, "require-dev": { - "phpunit/phpunit": "^7.2 || ^6.5 || ^5.7" - }, - "suggest": { - "ext-gmp": "To convert GMP numbers into PHP code" + "phpbench/phpbench": "^0.13", + "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.2", + "zendframework/zend-coding-standard": "~1.0.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.2.x-dev", + "dev-develop": "3.3.x-dev" + } + }, "autoload": { "psr-4": { - "Riimu\\Kit\\PHPEncoder\\": "src/" + "Zend\\Stdlib\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" - ], - "authors": [ - { - "name": "Riikka Kalliomäki", - "email": "riikka.kalliomaki@gmail.com", - "homepage": "http://riimu.net" - } + "BSD-3-Clause" ], - "description": "Highly customizable alternative to var_export for PHP code generation", - "homepage": "http://kit.riimu.net", + "description": "SPL extensions, array utilities, error handlers, and more", "keywords": [ - "code", - "encoder", - "export", - "generator", - "variable" + "ZendFramework", + "stdlib", + "zf" ], - "time": "2018-07-03T12:46:23+00:00" + "abandoned": "laminas/laminas-stdlib", + "time": "2018-08-28T21:34:05+00:00" }, { - "name": "sebastian/code-unit-reverse-lookup", - "version": "1.0.1", + "name": "zendframework/zend-uri", + "version": "2.7.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18" + "url": "https://github.com/zendframework/zend-uri.git", + "reference": "bfc4a5b9a309711e968d7c72afae4ac50c650083" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", - "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", + "url": "https://api.github.com/repos/zendframework/zend-uri/zipball/bfc4a5b9a309711e968d7c72afae4ac50c650083", + "reference": "bfc4a5b9a309711e968d7c72afae4ac50c650083", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0" + "php": "^5.6 || ^7.0", + "zendframework/zend-escaper": "^2.5", + "zendframework/zend-validator": "^2.10" }, "require-dev": { - "phpunit/phpunit": "^5.7 || ^6.0" + "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.4", + "zendframework/zend-coding-standard": "~1.0.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "2.7.x-dev", + "dev-develop": "2.8.x-dev" } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Zend\\Uri\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } + "description": "A component that aids in manipulating and validating » Uniform Resource Identifiers (URIs)", + "keywords": [ + "ZendFramework", + "uri", + "zf" ], - "description": "Looks up which function or method a line of code belongs to", - "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", - "time": "2017-03-04T06:30:41+00:00" + "abandoned": "laminas/laminas-uri", + "time": "2019-10-07T13:35:33+00:00" }, { - "name": "sebastian/comparator", - "version": "2.1.3", + "name": "zendframework/zend-validator", + "version": "2.13.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "34369daee48eafb2651bea869b4b15d75ccc35f9" + "url": "https://github.com/zendframework/zend-validator.git", + "reference": "b54acef1f407741c5347f2a97f899ab21f2229ef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/34369daee48eafb2651bea869b4b15d75ccc35f9", - "reference": "34369daee48eafb2651bea869b4b15d75ccc35f9", + "url": "https://api.github.com/repos/zendframework/zend-validator/zipball/b54acef1f407741c5347f2a97f899ab21f2229ef", + "reference": "b54acef1f407741c5347f2a97f899ab21f2229ef", "shasum": "" }, "require": { - "php": "^7.0", - "sebastian/diff": "^2.0 || ^3.0", - "sebastian/exporter": "^3.1" + "container-interop/container-interop": "^1.1", + "php": "^7.1", + "zendframework/zend-stdlib": "^3.2.1" }, "require-dev": { - "phpunit/phpunit": "^6.4" + "phpunit/phpunit": "^6.0.8 || ^5.7.15", + "psr/http-client": "^1.0", + "psr/http-factory": "^1.0", + "psr/http-message": "^1.0", + "zendframework/zend-cache": "^2.6.1", + "zendframework/zend-coding-standard": "~1.0.0", + "zendframework/zend-config": "^2.6", + "zendframework/zend-db": "^2.7", + "zendframework/zend-filter": "^2.6", + "zendframework/zend-http": "^2.5.4", + "zendframework/zend-i18n": "^2.6", + "zendframework/zend-math": "^2.6", + "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3", + "zendframework/zend-session": "^2.8", + "zendframework/zend-uri": "^2.5" + }, + "suggest": { + "psr/http-message": "psr/http-message, required when validating PSR-7 UploadedFileInterface instances via the Upload and UploadFile validators", + "zendframework/zend-db": "Zend\\Db component, required by the (No)RecordExists validator", + "zendframework/zend-filter": "Zend\\Filter component, required by the Digits validator", + "zendframework/zend-i18n": "Zend\\I18n component to allow translation of validation error messages", + "zendframework/zend-i18n-resources": "Translations of validator messages", + "zendframework/zend-math": "Zend\\Math component, required by the Csrf validator", + "zendframework/zend-servicemanager": "Zend\\ServiceManager component to allow using the ValidatorPluginManager and validator chains", + "zendframework/zend-session": "Zend\\Session component, ^2.8; required by the Csrf validator", + "zendframework/zend-uri": "Zend\\Uri component, required by the Uri and Sitemap\\Loc validators" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.1.x-dev" + "dev-master": "2.13.x-dev", + "dev-develop": "2.14.x-dev" + }, + "zf": { + "component": "Zend\\Validator", + "config-provider": "Zend\\Validator\\ConfigProvider" } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Zend\\Validator\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "authors": [ - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides the functionality to compare PHP values for equality", - "homepage": "https://github.com/sebastianbergmann/comparator", + "description": "Validation classes for a wide range of domains, and the ability to chain validators to create complex validation criteria", "keywords": [ - "comparator", - "compare", - "equality" + "ZendFramework", + "validator", + "zf" ], - "time": "2018-02-01T13:46:46+00:00" + "abandoned": "laminas/laminas-validator", + "time": "2019-12-28T04:07:18+00:00" }, { - "name": "sebastian/diff", - "version": "2.0.1", + "name": "zendframework/zendservice-apple-apns", + "version": "1.4.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "347c1d8b49c5c3ee30c7040ea6fc446790e6bddd" + "url": "https://github.com/zendframework/ZendService_Apple_Apns.git", + "reference": "a8919519edf9ac4658e7f61cb39c4dfe65b5bd49" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/347c1d8b49c5c3ee30c7040ea6fc446790e6bddd", - "reference": "347c1d8b49c5c3ee30c7040ea6fc446790e6bddd", + "url": "https://api.github.com/repos/zendframework/ZendService_Apple_Apns/zipball/a8919519edf9ac4658e7f61cb39c4dfe65b5bd49", + "reference": "a8919519edf9ac4658e7f61cb39c4dfe65b5bd49", "shasum": "" }, "require": { - "php": "^7.0" + "php": "^5.6 || ^7.0", + "zendframework/zend-json": "^2.0 || ^3.0" }, "require-dev": { - "phpunit/phpunit": "^6.2" + "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.5", + "zendframework/zend-coding-standard": "~1.0.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-master": "1.4.x-dev", + "dev-develop": "1.5.x-dev" } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "ZendService\\Apple\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "authors": [ - { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Diff implementation", - "homepage": "https://github.com/sebastianbergmann/diff", + "description": "OOP Zend Framework wrapper for Apple Push Notification Service", "keywords": [ - "diff" + "ZendFramework", + "apns", + "apple", + "notification", + "push", + "zf" ], - "time": "2017-08-03T08:09:46+00:00" + "abandoned": true, + "time": "2019-03-14T17:18:26+00:00" }, { - "name": "sebastian/environment", - "version": "3.1.0", + "name": "zendframework/zendservice-google-gcm", + "version": "2.1.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5" + "url": "https://github.com/zendframework/ZendService_Google_Gcm.git", + "reference": "141ac74b4a76656dac48bb97c7be4fc336d075ae" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/cd0871b3975fb7fc44d11314fd1ee20925fce4f5", - "reference": "cd0871b3975fb7fc44d11314fd1ee20925fce4f5", + "url": "https://api.github.com/repos/zendframework/ZendService_Google_Gcm/zipball/141ac74b4a76656dac48bb97c7be4fc336d075ae", + "reference": "141ac74b4a76656dac48bb97c7be4fc336d075ae", "shasum": "" }, "require": { - "php": "^7.0" + "php": "^5.6 || ^7.0", + "zendframework/zend-http": "^2.0", + "zendframework/zend-json": "^2.0 || ^3.0" }, "require-dev": { - "phpunit/phpunit": "^6.1" + "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.5", + "zendframework/zend-coding-standard": "~1.0.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1.x-dev" + "dev-master": "2.1.x-dev", + "dev-develop": "2.2.x-dev" } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "ZendService\\Google\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides functionality to handle HHVM/PHP environments", - "homepage": "http://www.github.com/sebastianbergmann/environment", + "description": "OOP wrapper for Google Cloud Messaging", "keywords": [ - "Xdebug", - "environment", - "hhvm" + "ZendFramework", + "gcm", + "google", + "notification", + "push", + "zf" ], - "time": "2017-07-01T08:51:00+00:00" - }, + "abandoned": true, + "time": "2019-02-07T18:01:00+00:00" + } + ], + "packages-dev": [ { - "name": "sebastian/exporter", - "version": "3.1.2", + "name": "behat/gherkin", + "version": "v4.6.2", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e" + "url": "https://github.com/Behat/Gherkin.git", + "reference": "51ac4500c4dc30cbaaabcd2f25694299df666a31" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/68609e1261d215ea5b21b7987539cbfbe156ec3e", - "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e", + "url": "https://api.github.com/repos/Behat/Gherkin/zipball/51ac4500c4dc30cbaaabcd2f25694299df666a31", + "reference": "51ac4500c4dc30cbaaabcd2f25694299df666a31", "shasum": "" }, "require": { - "php": "^7.0", - "sebastian/recursion-context": "^3.0" + "php": ">=5.3.1" }, "require-dev": { - "ext-mbstring": "*", - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "~4.5|~5", + "symfony/phpunit-bridge": "~2.7|~3|~4", + "symfony/yaml": "~2.3|~3|~4" + }, + "suggest": { + "symfony/yaml": "If you want to parse features, represented in YAML files" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1.x-dev" + "dev-master": "4.4-dev" } }, "autoload": { - "classmap": [ - "src/" - ] + "psr-0": { + "Behat\\Gherkin": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" } ], - "description": "Provides the functionality to export PHP variables for visualization", - "homepage": "http://www.github.com/sebastianbergmann/exporter", + "description": "Gherkin DSL parser for PHP 5.3", + "homepage": "http://behat.org/", "keywords": [ - "export", - "exporter" + "BDD", + "Behat", + "Cucumber", + "DSL", + "gherkin", + "parser" ], - "time": "2019-09-14T09:02:43+00:00" + "time": "2020-03-17T14:03:26+00:00" }, { - "name": "sebastian/global-state", - "version": "2.0.0", + "name": "codeception/codeception", + "version": "4.1.6", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4" + "url": "https://github.com/Codeception/Codeception.git", + "reference": "5515b6a6c6f1e1c909aaff2e5f3a15c177dfd1a9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", - "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", + "url": "https://api.github.com/repos/Codeception/Codeception/zipball/5515b6a6c6f1e1c909aaff2e5f3a15c177dfd1a9", + "reference": "5515b6a6c6f1e1c909aaff2e5f3a15c177dfd1a9", "shasum": "" }, "require": { - "php": "^7.0" + "behat/gherkin": "^4.4.0", + "codeception/lib-asserts": "^1.0", + "codeception/phpunit-wrapper": ">6.0.15 <6.1.0 | ^6.6.1 | ^7.7.1 | ^8.1.1 | ^9.0", + "codeception/stub": "^2.0 | ^3.0", + "ext-curl": "*", + "ext-json": "*", + "ext-mbstring": "*", + "guzzlehttp/psr7": "~1.4", + "php": ">=5.6.0 <8.0", + "symfony/console": ">=2.7 <6.0", + "symfony/css-selector": ">=2.7 <6.0", + "symfony/event-dispatcher": ">=2.7 <6.0", + "symfony/finder": ">=2.7 <6.0", + "symfony/yaml": ">=2.7 <6.0" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "codeception/module-asserts": "*@dev", + "codeception/module-cli": "*@dev", + "codeception/module-db": "*@dev", + "codeception/module-filesystem": "*@dev", + "codeception/module-phpbrowser": "*@dev", + "codeception/specify": "~0.3", + "codeception/util-universalframework": "*@dev", + "monolog/monolog": "~1.8", + "squizlabs/php_codesniffer": "~2.0", + "symfony/process": ">=2.7 <6.0", + "vlucas/phpdotenv": "^2.0 | ^3.0 | ^4.0" }, "suggest": { - "ext-uopz": "*" + "codeception/specify": "BDD-style code blocks", + "codeception/verify": "BDD-style assertions", + "hoa/console": "For interactive console functionality", + "stecman/symfony-console-completion": "For BASH autocompletion", + "symfony/phpunit-bridge": "For phpunit-bridge support" }, + "bin": [ + "codecept" + ], "type": "library", "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } + "branch-alias": [] }, "autoload": { - "classmap": [ - "src/" - ] + "psr-4": { + "Codeception\\": "src/Codeception", + "Codeception\\Extension\\": "ext" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "name": "Michael Bodnarchuk", + "email": "davert@mail.ua", + "homepage": "http://codegyre.com" } ], - "description": "Snapshotting of global state", - "homepage": "http://www.github.com/sebastianbergmann/global-state", + "description": "BDD-style testing framework", + "homepage": "http://codeception.com/", "keywords": [ - "global state" + "BDD", + "TDD", + "acceptance testing", + "functional testing", + "unit testing" + ], + "funding": [ + { + "url": "https://opencollective.com/codeception", + "type": "open_collective" + } ], - "time": "2017-04-27T15:39:26+00:00" + "time": "2020-06-07T16:31:51+00:00" }, { - "name": "sebastian/object-enumerator", - "version": "3.0.3", + "name": "codeception/lib-asserts", + "version": "1.12.0", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5" + "url": "https://github.com/Codeception/lib-asserts.git", + "reference": "acd0dc8b394595a74b58dcc889f72569ff7d8e71" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5", - "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5", + "url": "https://api.github.com/repos/Codeception/lib-asserts/zipball/acd0dc8b394595a74b58dcc889f72569ff7d8e71", + "reference": "acd0dc8b394595a74b58dcc889f72569ff7d8e71", "shasum": "" }, "require": { - "php": "^7.0", - "sebastian/object-reflector": "^1.1.1", - "sebastian/recursion-context": "^3.0" - }, - "require-dev": { - "phpunit/phpunit": "^6.0" + "codeception/phpunit-wrapper": ">6.0.15 <6.1.0 | ^6.6.1 | ^7.7.1 | ^8.0.3 | ^9.0", + "php": ">=5.6.0 <8.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0.x-dev" - } - }, "autoload": { "classmap": [ "src/" @@ -7490,44 +7682,52 @@ }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "name": "Michael Bodnarchuk", + "email": "davert@mail.ua", + "homepage": "http://codegyre.com" + }, + { + "name": "Gintautas Miselis" } ], - "description": "Traverses array structures and object graphs to enumerate all referenced objects", - "homepage": "https://github.com/sebastianbergmann/object-enumerator/", - "time": "2017-08-03T12:35:26+00:00" + "description": "Assertion methods used by Codeception core and Asserts module", + "homepage": "http://codeception.com/", + "keywords": [ + "codeception" + ], + "time": "2020-04-17T18:20:46+00:00" }, { - "name": "sebastian/object-reflector", - "version": "1.1.1", + "name": "codeception/lib-innerbrowser", + "version": "1.3.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "773f97c67f28de00d397be301821b06708fca0be" + "url": "https://github.com/Codeception/lib-innerbrowser.git", + "reference": "2123542b1325cc349ac68868abe74638bcb32ab6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be", - "reference": "773f97c67f28de00d397be301821b06708fca0be", + "url": "https://api.github.com/repos/Codeception/lib-innerbrowser/zipball/2123542b1325cc349ac68868abe74638bcb32ab6", + "reference": "2123542b1325cc349ac68868abe74638bcb32ab6", "shasum": "" }, "require": { - "php": "^7.0" + "codeception/codeception": "*@dev", + "php": ">=5.6.0 <8.0", + "symfony/browser-kit": ">=2.7 <6.0", + "symfony/dom-crawler": ">=2.7 <6.0" + }, + "conflict": { + "codeception/codeception": "<4.0" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "codeception/util-universalframework": "dev-master" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1-dev" - } - }, "autoload": { "classmap": [ "src/" @@ -7535,44 +7735,51 @@ }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "name": "Michael Bodnarchuk", + "email": "davert@mail.ua", + "homepage": "http://codegyre.com" + }, + { + "name": "Gintautas Miselis" } ], - "description": "Allows reflection of object attributes, including inherited and non-public ones", - "homepage": "https://github.com/sebastianbergmann/object-reflector/", - "time": "2017-03-29T09:07:27+00:00" + "description": "Parent library for all Codeception framework modules and PhpBrowser", + "homepage": "http://codeception.com/", + "keywords": [ + "codeception" + ], + "time": "2020-02-20T14:46:50+00:00" }, { - "name": "sebastian/recursion-context", - "version": "3.0.0", + "name": "codeception/module-asserts", + "version": "1.2.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8" + "url": "https://github.com/Codeception/module-asserts.git", + "reference": "79f13d05b63f2fceba4d0e78044bab668c9b2a6b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", - "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", + "url": "https://api.github.com/repos/Codeception/module-asserts/zipball/79f13d05b63f2fceba4d0e78044bab668c9b2a6b", + "reference": "79f13d05b63f2fceba4d0e78044bab668c9b2a6b", "shasum": "" }, "require": { - "php": "^7.0" + "codeception/codeception": "*@dev", + "codeception/lib-asserts": "^1.12.0", + "php": ">=5.6.0 <8.0" + }, + "conflict": { + "codeception/codeception": "<4.0" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "codeception/util-robohelpers": "dev-master" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0.x-dev" - } - }, "autoload": { "classmap": [ "src/" @@ -7580,49 +7787,50 @@ }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "name": "Michael Bodnarchuk" }, { - "name": "Adam Harvey", - "email": "aharvey@php.net" + "name": "Gintautas Miselis" } ], - "description": "Provides functionality to recursively process PHP variables", - "homepage": "http://www.github.com/sebastianbergmann/recursion-context", - "time": "2017-03-03T06:23:57+00:00" + "description": "Codeception module containing various assertions", + "homepage": "http://codeception.com/", + "keywords": [ + "assertions", + "asserts", + "codeception" + ], + "time": "2020-04-20T07:26:11+00:00" }, { - "name": "sebastian/resource-operations", - "version": "1.0.0", + "name": "codeception/module-cli", + "version": "1.0.2", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52" + "url": "https://github.com/Codeception/module-cli.git", + "reference": "ca35844de0392356b413e93dba52423aaf1a67a6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", - "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", + "url": "https://api.github.com/repos/Codeception/module-cli/zipball/ca35844de0392356b413e93dba52423aaf1a67a6", + "reference": "ca35844de0392356b413e93dba52423aaf1a67a6", "shasum": "" }, "require": { - "php": ">=5.6.0" + "codeception/codeception": "*@dev", + "php": ">=5.6.0 <8.0" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } + "conflict": { + "codeception/codeception": "<4.0" + }, + "require-dev": { + "codeception/util-robohelpers": "dev-master" }, + "type": "library", "autoload": { "classmap": [ "src/" @@ -7630,41 +7838,45 @@ }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "name": "Michael Bodnarchuk" } ], - "description": "Provides a list of PHP built-in functions that operate on resources", - "homepage": "https://www.github.com/sebastianbergmann/resource-operations", - "time": "2015-07-28T20:34:47+00:00" + "description": "Codeception module for testing basic shell commands and shell output", + "homepage": "http://codeception.com/", + "keywords": [ + "codeception" + ], + "time": "2020-02-07T17:34:13+00:00" }, { - "name": "sebastian/version", - "version": "2.0.1", + "name": "codeception/module-db", + "version": "1.0.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/version.git", - "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" + "url": "https://github.com/Codeception/module-db.git", + "reference": "13a2b86206d09c50ab2e5375b261df35b650e58f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", - "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", + "url": "https://api.github.com/repos/Codeception/module-db/zipball/13a2b86206d09c50ab2e5375b261df35b650e58f", + "reference": "13a2b86206d09c50ab2e5375b261df35b650e58f", "shasum": "" }, "require": { - "php": ">=5.6" + "codeception/codeception": "*@dev", + "php": ">=5.6.0 <8.0" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } + "conflict": { + "codeception/codeception": "<4.0" + }, + "require-dev": { + "codeception/util-robohelpers": "dev-master" }, + "type": "library", "autoload": { "classmap": [ "src/" @@ -7672,109 +7884,104 @@ }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "name": "Michael Bodnarchuk" + }, + { + "name": "Gintautas Miselis" } ], - "description": "Library that helps with managing the version number of Git-hosted PHP projects", - "homepage": "https://github.com/sebastianbergmann/version", - "time": "2016-10-03T07:35:21+00:00" + "description": "WebDriver module for Codeception", + "homepage": "http://codeception.com/", + "keywords": [ + "acceptance-testing", + "browser-testing", + "codeception" + ], + "time": "2019-12-08T17:56:49+00:00" }, { - "name": "squizlabs/php_codesniffer", - "version": "3.5.5", + "name": "codeception/module-filesystem", + "version": "1.0.2", "source": { "type": "git", - "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", - "reference": "73e2e7f57d958e7228fce50dc0c61f58f017f9f6" + "url": "https://github.com/Codeception/module-filesystem.git", + "reference": "fe3c352479924ec0aaf6a6c3d6825dc14242b81e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/73e2e7f57d958e7228fce50dc0c61f58f017f9f6", - "reference": "73e2e7f57d958e7228fce50dc0c61f58f017f9f6", + "url": "https://api.github.com/repos/Codeception/module-filesystem/zipball/fe3c352479924ec0aaf6a6c3d6825dc14242b81e", + "reference": "fe3c352479924ec0aaf6a6c3d6825dc14242b81e", "shasum": "" }, "require": { - "ext-simplexml": "*", - "ext-tokenizer": "*", - "ext-xmlwriter": "*", - "php": ">=5.4.0" + "codeception/codeception": "*@dev", + "php": ">=5.6.0 <8.0", + "symfony/finder": ">=2.7 <6.0" + }, + "conflict": { + "codeception/codeception": "<4.0" }, "require-dev": { - "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" + "codeception/util-robohelpers": "dev-master" }, - "bin": [ - "bin/phpcs", - "bin/phpcbf" - ], "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.x-dev" - } + "autoload": { + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Greg Sherwood", - "role": "lead" + "name": "Michael Bodnarchuk" + }, + { + "name": "Gintautas Miselis" } ], - "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", - "homepage": "https://github.com/squizlabs/PHP_CodeSniffer", + "description": "Codeception module for testing local filesystem", + "homepage": "http://codeception.com/", "keywords": [ - "phpcs", - "standards" + "codeception", + "filesystem" ], - "time": "2020-04-17T01:09:41+00:00" + "time": "2019-12-04T17:13:39+00:00" }, { - "name": "symfony/browser-kit", - "version": "v4.4.8", + "name": "codeception/module-phalcon", + "version": "1.0.0", "source": { "type": "git", - "url": "https://github.com/symfony/browser-kit.git", - "reference": "e4b0dc1b100bf75b5717c5b451397f230a618a42" + "url": "https://github.com/Codeception/module-phalcon.git", + "reference": "b472d53a2a554fb628033781950389d89c0afc0e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/browser-kit/zipball/e4b0dc1b100bf75b5717c5b451397f230a618a42", - "reference": "e4b0dc1b100bf75b5717c5b451397f230a618a42", + "url": "https://api.github.com/repos/Codeception/module-phalcon/zipball/b472d53a2a554fb628033781950389d89c0afc0e", + "reference": "b472d53a2a554fb628033781950389d89c0afc0e", "shasum": "" }, "require": { - "php": "^7.1.3", - "symfony/dom-crawler": "^3.4|^4.0|^5.0" + "codeception/codeception": "4.0.x-dev | ^4.0", + "codeception/lib-innerbrowser": "dev-master | ^1.0", + "php": ">=5.6.0 <8.0" }, "require-dev": { - "symfony/css-selector": "^3.4|^4.0|^5.0", - "symfony/http-client": "^4.3|^5.0", - "symfony/mime": "^4.3|^5.0", - "symfony/process": "^3.4|^4.0|^5.0" - }, - "suggest": { - "symfony/process": "" + "codeception/module-asserts": "dev-master | ^1.0", + "codeception/module-phpbrowser": "dev-master | ^1.0", + "codeception/util-robohelpers": "dev-master" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { - "psr-4": { - "Symfony\\Component\\BrowserKit\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -7783,47 +7990,50 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Serghei Iakovlev" } ], - "description": "Symfony BrowserKit Component", - "homepage": "https://symfony.com", - "time": "2020-03-28T10:15:50+00:00" + "description": "Codeception module for Phalcon framework", + "homepage": "http://codeception.com/", + "keywords": [ + "codeception", + "phalcon" + ], + "time": "2019-10-19T15:01:29+00:00" }, { - "name": "symfony/css-selector", - "version": "v4.4.8", + "name": "codeception/module-phalcon4", + "version": "1.0.3", "source": { "type": "git", - "url": "https://github.com/symfony/css-selector.git", - "reference": "afc26133a6fbdd4f8842e38893e0ee4685c7c94b" + "url": "https://github.com/Codeception/module-phalcon4.git", + "reference": "3d18c5c83d1f2efdb08848bd01ea3d5aa7fa3dde" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/afc26133a6fbdd4f8842e38893e0ee4685c7c94b", - "reference": "afc26133a6fbdd4f8842e38893e0ee4685c7c94b", + "url": "https://api.github.com/repos/Codeception/module-phalcon4/zipball/3d18c5c83d1f2efdb08848bd01ea3d5aa7fa3dde", + "reference": "3d18c5c83d1f2efdb08848bd01ea3d5aa7fa3dde", "shasum": "" }, "require": { - "php": "^7.1.3" + "codeception/codeception": "^4.0", + "codeception/lib-innerbrowser": "^1.0", + "codeception/module-asserts": "^1.0", + "codeception/module-db": "^1.0", + "codeception/module-phpbrowser": "^1.0", + "ext-phalcon": ">=4", + "php": ">=7.2.0 <8.0" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } + "require-dev": { + "codeception/util-robohelpers": "dev-master", + "squizlabs/php_codesniffer": "^3.4", + "vimeo/psalm": "^3.6", + "vlucas/phpdotenv": "^4.1" }, + "type": "library", "autoload": { - "psr-4": { - "Symfony\\Component\\CssSelector\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -7832,63 +8042,56 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Jean-François Simon", - "email": "jeanfrancois.simon@sensiolabs.com" + "name": "Phalcon Team", + "email": "team@phalcon.io", + "homepage": "https://phalcon.io/en/team" }, { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Codeception Team", + "email": "team@codeception.com", + "homepage": "http://codeception.com/" } ], - "description": "Symfony CssSelector Component", - "homepage": "https://symfony.com", - "time": "2020-03-27T16:54:36+00:00" + "description": "Codeception module for Phalcon 4 framework", + "homepage": "https://codeception.com/", + "keywords": [ + "codeception", + "phalcon", + "phalcon4" + ], + "time": "2020-01-11T16:59:43+00:00" }, { - "name": "symfony/dom-crawler", - "version": "v4.4.8", + "name": "codeception/module-phpbrowser", + "version": "1.0.0", "source": { "type": "git", - "url": "https://github.com/symfony/dom-crawler.git", - "reference": "4d0fb3374324071ecdd94898367a3fa4b5563162" + "url": "https://github.com/Codeception/module-phpbrowser.git", + "reference": "fbf585c8562e4e4875f351f5392bcb2b1a633cbe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/4d0fb3374324071ecdd94898367a3fa4b5563162", - "reference": "4d0fb3374324071ecdd94898367a3fa4b5563162", + "url": "https://api.github.com/repos/Codeception/module-phpbrowser/zipball/fbf585c8562e4e4875f351f5392bcb2b1a633cbe", + "reference": "fbf585c8562e4e4875f351f5392bcb2b1a633cbe", "shasum": "" }, "require": { - "php": "^7.1.3", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-mbstring": "~1.0" - }, - "conflict": { - "masterminds/html5": "<2.6" + "codeception/codeception": "4.0.x-dev | ^4.0", + "codeception/lib-innerbrowser": "^1.0", + "guzzlehttp/guzzle": "^6.3.0", + "php": ">=5.6.0 <8.0" }, "require-dev": { - "masterminds/html5": "^2.6", - "symfony/css-selector": "^3.4|^4.0|^5.0" + "codeception/module-rest": "dev-master | ^1.0", + "codeception/util-robohelpers": "dev-master" }, "suggest": { - "symfony/css-selector": "" + "codeception/phpbuiltinserver": "Start and stop PHP built-in web server for your tests" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { - "psr-4": { - "Symfony\\Component\\DomCrawler\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -7897,68 +8100,53 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Michael Bodnarchuk" }, { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Gintautas Miselis" } ], - "description": "Symfony DomCrawler Component", - "homepage": "https://symfony.com", - "time": "2020-03-29T19:12:22+00:00" + "description": "Codeception module for testing web application over HTTP", + "homepage": "http://codeception.com/", + "keywords": [ + "codeception", + "functional-testing", + "http" + ], + "time": "2019-10-10T14:25:59+00:00" }, { - "name": "symfony/event-dispatcher", - "version": "v4.4.8", + "name": "codeception/module-rest", + "version": "1.2.0", "source": { "type": "git", - "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "abc8e3618bfdb55e44c8c6a00abd333f831bbfed" + "url": "https://github.com/Codeception/module-rest.git", + "reference": "c86417af517bb1fb5b88550455d823a7c9fc167e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/abc8e3618bfdb55e44c8c6a00abd333f831bbfed", - "reference": "abc8e3618bfdb55e44c8c6a00abd333f831bbfed", + "url": "https://api.github.com/repos/Codeception/module-rest/zipball/c86417af517bb1fb5b88550455d823a7c9fc167e", + "reference": "c86417af517bb1fb5b88550455d823a7c9fc167e", "shasum": "" }, "require": { - "php": "^7.1.3", - "symfony/event-dispatcher-contracts": "^1.1" - }, - "conflict": { - "symfony/dependency-injection": "<3.4" - }, - "provide": { - "psr/event-dispatcher-implementation": "1.0", - "symfony/event-dispatcher-implementation": "1.1" + "codeception/codeception": "^4.0", + "flow/jsonpath": "^0.5", + "justinrainbow/json-schema": "^5.2.9", + "php": ">=5.6.0 <8.0" }, "require-dev": { - "psr/log": "~1.0", - "symfony/config": "^3.4|^4.0|^5.0", - "symfony/dependency-injection": "^3.4|^4.0|^5.0", - "symfony/expression-language": "^3.4|^4.0|^5.0", - "symfony/http-foundation": "^3.4|^4.0|^5.0", - "symfony/service-contracts": "^1.1|^2", - "symfony/stopwatch": "^3.4|^4.0|^5.0" + "codeception/lib-innerbrowser": "^1.0", + "codeception/util-robohelpers": "dev-master", + "codeception/util-universalframework": "^1.0" }, "suggest": { - "symfony/dependency-injection": "", - "symfony/http-kernel": "" + "aws/aws-sdk-php": "For using AWS Auth" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { - "psr-4": { - "Symfony\\Component\\EventDispatcher\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -7967,48 +8155,43 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Gintautas Miselis" } ], - "description": "Symfony EventDispatcher Component", - "homepage": "https://symfony.com", - "time": "2020-03-27T16:54:36+00:00" + "description": "REST module for Codeception", + "homepage": "http://codeception.com/", + "keywords": [ + "codeception", + "rest" + ], + "time": "2020-02-01T19:23:56+00:00" }, { - "name": "symfony/event-dispatcher-contracts", - "version": "v1.1.7", + "name": "codeception/phpunit-wrapper", + "version": "9.0.2", "source": { "type": "git", - "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "c43ab685673fb6c8d84220c77897b1d6cdbe1d18" + "url": "https://github.com/Codeception/phpunit-wrapper.git", + "reference": "eb27243d8edde68593bf8d9ef5e9074734777931" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/c43ab685673fb6c8d84220c77897b1d6cdbe1d18", - "reference": "c43ab685673fb6c8d84220c77897b1d6cdbe1d18", + "url": "https://api.github.com/repos/Codeception/phpunit-wrapper/zipball/eb27243d8edde68593bf8d9ef5e9074734777931", + "reference": "eb27243d8edde68593bf8d9ef5e9074734777931", "shasum": "" }, "require": { - "php": "^7.1.3" + "php": ">=7.2", + "phpunit/phpunit": "^9.0" }, - "suggest": { - "psr/event-dispatcher": "", - "symfony/event-dispatcher-implementation": "" + "require-dev": { + "codeception/specify": "*", + "vlucas/phpdotenv": "^3.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1-dev" - } - }, "autoload": { "psr-4": { - "Symfony\\Contracts\\EventDispatcher\\": "" + "Codeception\\PHPUnit\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -8017,143 +8200,121 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" + "name": "Davert", + "email": "davert.php@resend.cc" }, { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Naktibalda" } ], - "description": "Generic abstractions related to dispatching event", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "time": "2019-09-17T09:54:03+00:00" + "description": "PHPUnit classes used by Codeception", + "time": "2020-04-17T18:16:31+00:00" }, { - "name": "symfony/finder", - "version": "v4.4.8", + "name": "codeception/stub", + "version": "3.6.1", "source": { "type": "git", - "url": "https://github.com/symfony/finder.git", - "reference": "5729f943f9854c5781984ed4907bbb817735776b" + "url": "https://github.com/Codeception/Stub.git", + "reference": "a3ba01414cbee76a1bced9f9b6b169cc8d203880" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/5729f943f9854c5781984ed4907bbb817735776b", - "reference": "5729f943f9854c5781984ed4907bbb817735776b", + "url": "https://api.github.com/repos/Codeception/Stub/zipball/a3ba01414cbee76a1bced9f9b6b169cc8d203880", + "reference": "a3ba01414cbee76a1bced9f9b6b169cc8d203880", "shasum": "" }, "require": { - "php": "^7.1.3" + "phpunit/phpunit": "^8.4 | ^9.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { - "Symfony\\Component\\Finder\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "Codeception\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Finder Component", - "homepage": "https://symfony.com", - "time": "2020-03-27T16:54:36+00:00" + "description": "Flexible Stub wrapper for PHPUnit's Mock Builder", + "time": "2020-02-07T18:42:28+00:00" }, { - "name": "theseer/tokenizer", - "version": "1.1.3", + "name": "flow/jsonpath", + "version": "0.5.0", "source": { "type": "git", - "url": "https://github.com/theseer/tokenizer.git", - "reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9" + "url": "https://github.com/FlowCommunications/JSONPath.git", + "reference": "b9738858c75d008c1211612b973e9510f8b7f8ea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/11336f6f84e16a720dae9d8e6ed5019efa85a0f9", - "reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9", + "url": "https://api.github.com/repos/FlowCommunications/JSONPath/zipball/b9738858c75d008c1211612b973e9510f8b7f8ea", + "reference": "b9738858c75d008c1211612b973e9510f8b7f8ea", "shasum": "" }, "require": { - "ext-dom": "*", - "ext-tokenizer": "*", - "ext-xmlwriter": "*", - "php": "^7.0" + "php": ">=5.4.0" + }, + "require-dev": { + "peekmo/jsonpath": "dev-master", + "phpunit/phpunit": "^7.0" }, "type": "library", "autoload": { - "classmap": [ - "src/" - ] + "psr-0": { + "Flow\\JSONPath": "src/", + "Flow\\JSONPath\\Test": "tests/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" + "name": "Stephen Frank", + "email": "stephen@flowsa.com" } ], - "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", - "time": "2019-06-13T22:48:21+00:00" + "description": "JSONPath implementation for parsing, searching and flattening arrays", + "time": "2019-07-15T17:23:22+00:00" }, { - "name": "webmozart/assert", - "version": "1.8.0", + "name": "justinrainbow/json-schema", + "version": "5.2.10", "source": { "type": "git", - "url": "https://github.com/webmozart/assert.git", - "reference": "ab2cb0b3b559010b75981b1bdce728da3ee90ad6" + "url": "https://github.com/justinrainbow/json-schema.git", + "reference": "2ba9c8c862ecd5510ed16c6340aa9f6eadb4f31b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozart/assert/zipball/ab2cb0b3b559010b75981b1bdce728da3ee90ad6", - "reference": "ab2cb0b3b559010b75981b1bdce728da3ee90ad6", + "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/2ba9c8c862ecd5510ed16c6340aa9f6eadb4f31b", + "reference": "2ba9c8c862ecd5510ed16c6340aa9f6eadb4f31b", "shasum": "" }, "require": { - "php": "^5.3.3 || ^7.0", - "symfony/polyfill-ctype": "^1.8" - }, - "conflict": { - "vimeo/psalm": "<3.9.1" + "php": ">=5.3.3" }, "require-dev": { - "phpunit/phpunit": "^4.8.36 || ^7.5.13" + "friendsofphp/php-cs-fixer": "~2.2.20||~2.15.1", + "json-schema/json-schema-test-suite": "1.2.0", + "phpunit/phpunit": "^4.8.35" }, + "bin": [ + "bin/validate-json" + ], "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0.x-dev" + } + }, "autoload": { "psr-4": { - "Webmozart\\Assert\\": "src/" + "JsonSchema\\": "src/JsonSchema/" } }, "notification-url": "https://packagist.org/downloads/", @@ -8162,31 +8323,46 @@ ], "authors": [ { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" + "name": "Bruno Prieto Reis", + "email": "bruno.p.reis@gmail.com" + }, + { + "name": "Justin Rainbow", + "email": "justin.rainbow@gmail.com" + }, + { + "name": "Igor Wiedler", + "email": "igor@wiedler.ch" + }, + { + "name": "Robert Schönthal", + "email": "seroscho@googlemail.com" } ], - "description": "Assertions to validate method input/output with nice error messages.", + "description": "A library to validate a json schema.", + "homepage": "https://github.com/justinrainbow/json-schema", "keywords": [ - "assert", - "check", - "validate" + "json", + "schema" ], - "time": "2020-04-18T12:12:48+00:00" + "time": "2020-05-27T16:41:55+00:00" } ], "aliases": [], "minimum-stability": "stable", "stability-flags": { - "dmkit/phalcon-jwt-auth": 20, + "fzaninotto/faker": 20, "hybridauth/hybridauth": 20, - "mark-gerarts/auto-mapper-plus": 15 + "mark-gerarts/auto-mapper-plus": 15, + "phalcon/incubator": 20, + "phalcon/incubator-acl": 15 }, "prefer-stable": true, "prefer-lowest": false, "platform": { - "php": ">=7.2", - "ext-phalcon": ">=3.4" + "php": ">=7.4", + "ext-phalcon": ">=4" }, - "platform-dev": [] + "platform-dev": [], + "plugin-api-version": "1.1.0" } From f32a490e323e73716e23d22f73fa56ce51da7ebc Mon Sep 17 00:00:00 2001 From: Rafael White Date: Thu, 2 Jul 2020 11:15:04 -0400 Subject: [PATCH 25/26] Updated composer json --- composer.json | 4 ++-- composer.lock | 57 ++++++++++++++++++++++++++++----------------------- 2 files changed, 33 insertions(+), 28 deletions(-) diff --git a/composer.json b/composer.json index 6f2e5920..1fed8c05 100644 --- a/composer.json +++ b/composer.json @@ -19,7 +19,7 @@ "league/flysystem-aws-s3-v3": "^1.0", "league/fractal": "^0.17.0", "mark-gerarts/auto-mapper-plus": "2.0.0-alpha1", - "monolog/monolog": "^1.23", + "monolog/monolog": "^2.1", "namshi/notificator": " 1.0.*", "nesbot/carbon": "^2.3", "odan/phinx-migrations-generator": "^5", @@ -35,7 +35,7 @@ "sentry/sentry": "^1.9", "sly/notification-pusher": "2.x", "squizlabs/php_codesniffer": "^3.2", - "stripe/stripe-php": "~6.0", + "stripe/stripe-php": "^7.36", "swiftmailer/swiftmailer": "^6", "symfony/browser-kit": "3.4", "symfony/config": "3.4", diff --git a/composer.lock b/composer.lock index 6b33067d..9879d5df 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "f74f13270583f3da014dbe4a7a9563ee", + "content-hash": "c8c3cf9c4504606846eca41ff00a6a50", "packages": [ { "name": "aws/aws-sdk-php", @@ -1649,21 +1649,21 @@ }, { "name": "monolog/monolog", - "version": "1.25.4", + "version": "2.1.0", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "3022efff205e2448b560c833c6fbbf91c3139168" + "reference": "38914429aac460e8e4616c8cb486ecb40ec90bb1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/3022efff205e2448b560c833c6fbbf91c3139168", - "reference": "3022efff205e2448b560c833c6fbbf91c3139168", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/38914429aac460e8e4616c8cb486ecb40ec90bb1", + "reference": "38914429aac460e8e4616c8cb486ecb40ec90bb1", "shasum": "" }, "require": { - "php": ">=5.3.0", - "psr/log": "~1.0" + "php": ">=7.2", + "psr/log": "^1.0.1" }, "provide": { "psr/log-implementation": "1.0.0" @@ -1671,32 +1671,36 @@ "require-dev": { "aws/aws-sdk-php": "^2.4.9 || ^3.0", "doctrine/couchdb": "~1.0@dev", - "graylog2/gelf-php": "~1.0", + "elasticsearch/elasticsearch": "^6.0", + "graylog2/gelf-php": "^1.4.2", "php-amqplib/php-amqplib": "~2.4", "php-console/php-console": "^3.1.3", "php-parallel-lint/php-parallel-lint": "^1.0", - "phpunit/phpunit": "~4.5", + "phpspec/prophecy": "^1.6.1", + "phpunit/phpunit": "^8.5", + "predis/predis": "^1.1", + "rollbar/rollbar": "^1.3", "ruflin/elastica": ">=0.90 <3.0", - "sentry/sentry": "^0.13", "swiftmailer/swiftmailer": "^5.3|^6.0" }, "suggest": { "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", "doctrine/couchdb": "Allow sending log messages to a CouchDB server", + "elasticsearch/elasticsearch": "Allow sending log messages to an Elasticsearch server via official client", "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", - "ext-mongo": "Allow sending log messages to a MongoDB server", + "ext-mbstring": "Allow to work properly with unicode symbols", + "ext-mongodb": "Allow sending log messages to a MongoDB server (via driver)", "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", - "mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver", + "mongodb/mongodb": "Allow sending log messages to a MongoDB server (via library)", "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", "php-console/php-console": "Allow sending log messages to Google Chrome", "rollbar/rollbar": "Allow sending log messages to Rollbar", - "ruflin/elastica": "Allow sending log messages to an Elastic Search server", - "sentry/sentry": "Allow sending log messages to a Sentry server" + "ruflin/elastica": "Allow sending log messages to an Elastic Search server" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "2.x-dev" } }, "autoload": { @@ -1732,7 +1736,7 @@ "type": "tidelift" } ], - "time": "2020-05-22T07:31:27+00:00" + "time": "2020-05-22T08:12:19+00:00" }, { "name": "mtdowling/jmespath.php", @@ -5526,29 +5530,30 @@ }, { "name": "stripe/stripe-php", - "version": "v6.43.1", + "version": "v7.39.0", "source": { "type": "git", "url": "https://github.com/stripe/stripe-php.git", - "reference": "42fcdaf99c44bb26937223f8eae1f263491d5ab8" + "reference": "350e4f4db026bd0627925885b30c09d054777b68" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/stripe/stripe-php/zipball/42fcdaf99c44bb26937223f8eae1f263491d5ab8", - "reference": "42fcdaf99c44bb26937223f8eae1f263491d5ab8", + "url": "https://api.github.com/repos/stripe/stripe-php/zipball/350e4f4db026bd0627925885b30c09d054777b68", + "reference": "350e4f4db026bd0627925885b30c09d054777b68", "shasum": "" }, "require": { "ext-curl": "*", "ext-json": "*", "ext-mbstring": "*", - "php": ">=5.4.0" + "php": ">=5.6.0" }, "require-dev": { - "php-coveralls/php-coveralls": "1.*", - "phpunit/phpunit": "~4.0", - "squizlabs/php_codesniffer": "~2.0", - "symfony/process": "~2.8" + "friendsofphp/php-cs-fixer": "2.16.1", + "php-coveralls/php-coveralls": "^2.1", + "phpunit/phpunit": "^5.7", + "squizlabs/php_codesniffer": "^3.3", + "symfony/process": "~3.4" }, "type": "library", "extra": { @@ -5578,7 +5583,7 @@ "payment processing", "stripe" ], - "time": "2019-08-29T16:56:12+00:00" + "time": "2020-06-25T23:56:19+00:00" }, { "name": "swiftmailer/swiftmailer", From e388669b128c862e4036d549bb61c11927d34d1f Mon Sep 17 00:00:00 2001 From: Rafael White Date: Fri, 3 Jul 2020 09:51:32 -0400 Subject: [PATCH 26/26] Add baka 0.6 --- composer.json | 1 + 1 file changed, 1 insertion(+) diff --git a/composer.json b/composer.json index 1fed8c05..1ced6fc0 100644 --- a/composer.json +++ b/composer.json @@ -9,6 +9,7 @@ "require": { "php": ">=7.4", "ext-phalcon": ">=4", + "baka/baka": "^0.6", "dariuszp/cli-progress-bar": "^1.0", "elasticsearch/elasticsearch": "^7.5", "firebase/php-jwt": "^5.0",