From 7ab62d1cdd5e5e0122e2d91c536bf25eb1d32ad6 Mon Sep 17 00:00:00 2001 From: ffflabs Date: Fri, 11 Sep 2020 04:41:16 -0300 Subject: wrapping wrongly types AdoDB wrapping wrongly types AdoDB --- package.json | 10 +- src/classes/ADORecordSet.php | 10 + src/classes/ArrayRecordSet.php | 17 +- src/classes/Connection.php | 150 +++-- src/classes/ContainerUtils.php | 13 +- src/classes/Misc.php | 2 +- src/classes/ViewManager.php | 34 +- src/controllers/AggregatesController.php | 12 +- src/controllers/AlldbController.php | 4 +- src/controllers/BaseController.php | 34 +- src/controllers/ColpropertiesController.php | 6 +- src/controllers/DataexportController.php | 2 +- src/controllers/DisplayController.php | 2 +- src/controllers/DomainsController.php | 18 +- src/controllers/FulltextController.php | 30 +- src/controllers/FunctionsController.php | 10 +- src/controllers/GroupsController.php | 2 +- src/controllers/IndexesController.php | 6 +- src/controllers/IntroController.php | 8 +- src/controllers/LoginController.php | 8 +- .../MaterializedviewpropertiesController.php | 14 +- src/controllers/MaterializedviewsController.php | 6 +- src/controllers/OperatorsController.php | 6 +- src/controllers/RolesController.php | 12 +- src/controllers/RulesController.php | 4 +- src/controllers/SchemasController.php | 12 +- src/controllers/SequencesController.php | 14 +- src/controllers/ServersController.php | 6 +- src/controllers/TablesController.php | 119 ++-- src/controllers/TablespacesController.php | 4 +- src/controllers/TblpropertiesController.php | 31 +- src/controllers/TriggersController.php | 18 +- src/controllers/TypesController.php | 20 +- src/controllers/UsersController.php | 6 +- src/controllers/ViewpropertiesController.php | 12 +- src/controllers/ViewsController.php | 6 +- src/database/ADOdbBase.php | 94 ++- src/database/Connection.php | 177 +++++ src/database/Postgres.php | 53 +- src/database/Postgres10.php | 8 + src/database/Postgres11.php | 8 + src/database/Postgres12.php | 8 + src/database/Postgres13.php | 8 + src/database/Postgres90.php | 8 + src/database/Postgres91.php | 8 + src/database/Postgres92.php | 8 + src/database/Postgres93.php | 8 + src/database/Postgres94.php | 8 + src/database/Postgres95.php | 8 + src/database/Postgres96.php | 8 + src/database/databasetraits/HasTrait.php | 5 + src/database/databasetraits/TableTrait.php | 186 +++--- src/decorators/CallbackDecorator.php | 2 +- src/decorators/Decorator.php | 10 +- src/help/PostgresDoc.php | 207 ++++++ src/help/PostgresDoc74.php | 179 ----- src/help/PostgresDoc80.php | 35 - src/help/PostgresDoc81.php | 25 - src/help/PostgresDoc82.php | 20 - src/help/PostgresDoc83.php | 35 - src/help/PostgresDoc84.php | 20 - src/help/PostgresDoc90.php | 2 +- src/help/PostgresDoc92.php | 2 +- src/help/PostgresDoc93.php | 12 +- src/lib.inc.php | 24 +- src/router.php | 11 +- src/traits/AdminTrait.php | 6 +- src/traits/HelperTrait.php | 4 +- src/traits/MiscTrait.php | 8 +- src/traits/ViewsMatviewsTrait.php | 6 +- yarn.lock | 743 +++++++++------------ 71 files changed, 1394 insertions(+), 1228 deletions(-) create mode 100644 src/database/Connection.php create mode 100644 src/help/PostgresDoc.php delete mode 100644 src/help/PostgresDoc74.php delete mode 100644 src/help/PostgresDoc80.php delete mode 100644 src/help/PostgresDoc81.php delete mode 100644 src/help/PostgresDoc82.php delete mode 100644 src/help/PostgresDoc83.php delete mode 100644 src/help/PostgresDoc84.php diff --git a/package.json b/package.json index 1d6a718a..92f92bd6 100644 --- a/package.json +++ b/package.json @@ -6,10 +6,10 @@ "author": "ffflabs ", "license": "MIT", "devDependencies": { - "babel-eslint": "^10.0.3", - "eslint": "^6.8.0", - "eslint-config-prettier": "^6.10.0", - "eslint-plugin-prettier": "^3.1.2", - "prettier": "^1.19.1" + "babel-eslint": "^10.1.0", + "eslint": "^7.8.1", + "eslint-config-prettier": "^6.11.0", + "eslint-plugin-prettier": "^3.1.4", + "prettier": "^2.1.1" } } diff --git a/src/classes/ADORecordSet.php b/src/classes/ADORecordSet.php index cb3cd9df..74c3f989 100644 --- a/src/classes/ADORecordSet.php +++ b/src/classes/ADORecordSet.php @@ -24,6 +24,16 @@ class ADORecordSet extends \ADORecordSet implements \Countable return $this->NumRows(); } + /** + * synonyms RecordCount and RowCount. + * + * @return int number of rows or -1 if this is not supported + */ + public function recordCount() + { + return $this->count(); + } + /** * Returns the recordCount. * diff --git a/src/classes/ArrayRecordSet.php b/src/classes/ArrayRecordSet.php index 692d8236..23a3e84a 100644 --- a/src/classes/ArrayRecordSet.php +++ b/src/classes/ArrayRecordSet.php @@ -6,6 +6,8 @@ namespace PHPPgAdmin; +use Countable; + /** * @file * Really simple RecordSet to allow printTable of arrays. @@ -19,7 +21,7 @@ namespace PHPPgAdmin; * * Id: ArrayRecordSet.php,v 1.3 2007/01/10 01:46:28 soranzo Exp $ */ -class ArrayRecordSet +class ArrayRecordSet implements Countable { public $EOF = false; @@ -27,8 +29,6 @@ class ArrayRecordSet private $_array; - private $_count; - /** * Constructor. * @@ -37,7 +37,6 @@ class ArrayRecordSet public function __construct($data) { $this->_array = $data; - $this->_count = \count($this->_array); $this->fields = \reset($this->_array); if (false === $this->fields) { @@ -45,6 +44,14 @@ class ArrayRecordSet } } + /** + * Returns the recordCount. + */ + public function count(): int + { + return \count($this->_array); + } + /** * Counts the records in the instance array. * @@ -52,7 +59,7 @@ class ArrayRecordSet */ public function recordCount() { - return $this->_count; + return $this->count(); } /** diff --git a/src/classes/Connection.php b/src/classes/Connection.php index 1fdf7c0a..c63ffe21 100644 --- a/src/classes/Connection.php +++ b/src/classes/Connection.php @@ -6,8 +6,6 @@ namespace PHPPgAdmin; -use ADODB2_postgres; - /** * @file * Class to represent a database connection @@ -21,8 +19,11 @@ class Connection public $conn; public $platform = 'UNKNOWN'; - /** @var string */ - private $pgVersion; + + /** + * @var string + */ + public $driver; protected $container; @@ -42,11 +43,18 @@ class Connection '9.1' => 'Postgres91', '9.0' => 'Postgres90', ]; -private $adodb_driver='postgres9'; // or pdo + + /** + * @var string + */ + private $pgVersion; + + private $adodb_driver = 'postgres9'; + + // or pdo // The backend platform. Set to UNKNOWN by default. private $_connection_result; - /** @var string */ - public $driver; + /** * Creates a new connection. Will actually make a database connection. * @@ -73,8 +81,6 @@ private $adodb_driver='postgres9'; // or pdo $this->conn->setFetchMode($fetchMode); // PDO Approach - - /*try { $this->_connection_result = $this->conn->connect($pghost, $user, $password, $database); @@ -83,67 +89,17 @@ private $adodb_driver='postgres9'; // or pdo $this->prtrace(['message' => $e->getMessage(), 'trace' => $e->getTraceAsString()]); */ try { - $connectionResult = $this->adodb_driver === 'pdo' ? - $this->getPDOConnection($host,$port,$sslmode,$database,$user,$password,$fetchMode): - $this->getPG9Connection($host,$port,$sslmode,$database,$user,$password,$fetchMode); + $connectionResult = 'pdo' === $this->adodb_driver ? + $this->getPDOConnection($host, $port, $sslmode, $database, $user, $password, $fetchMode) : + $this->getPG9Connection($host, $port, $sslmode, $database, $user, $password, $fetchMode); //$this->prtrace($this->conn); } catch (\Exception $e) { //dump($dsnString, $this->adodb_driver); - $this->prtrace($e->getMessage(), array_slice($e->getTrace(), 0, 10)); - } - } - - private function getPG9Connection( - string $host,int $port=5432,string $sslmode='prefer', - ?string $database, - - ?string $user, - - ?string $password, - int $fetchMode = \ADODB_FETCH_ASSOC) : \ADODB_postgres9{ - $this->conn = ADONewConnection('postgres9'); - $this->conn->setFetchMode($fetchMode); - // Ignore host if null - if (null === $host || '' === $host) { - if (null !== $port && '' !== $port) { - $pghost = ':' . $port; - } else { - $pghost = ''; - } - } else { - $pghost = "{$host}:{$port}"; + $this->prtrace($e->getMessage(), \array_slice($e->getTrace(), 0, 10)); } - - // Add sslmode to $pghost as needed - if (('disable' === $sslmode) || ('allow' === $sslmode) || ('prefer' === $sslmode) || ('require' === $sslmode)) { - $pghost .= ':' . $sslmode; - } elseif ('legacy' === $sslmode) { - $pghost .= ' requiressl=1'; - } - - - $this->conn->connect($pghost, $user, $password, $database); - - return $this->conn; - } - private function getPDOConnection( - string $host,int $port=5432,string $sslmode='prefer', - ?string $database, - - ?string $user, - ?string $password, - int $fetchMode = \ADODB_FETCH_ASSOC) : \ADODB_pdo { - $this->conn = ADONewConnection('pdo'); - $this->conn->setFetchMode($fetchMode); - $dsnString = sprintf('pgsql:host=%s;port=%d;dbname=%s;sslmode=%s;application_name=PHPPgAdmin6', $host, $port, $database, $sslmode); - $this->conn->connect($dsnString, $user, $password) ; - return $this->conn; - - } - public function getConnectionResult() { return $this->_connection_result; @@ -153,6 +109,7 @@ private $adodb_driver='postgres9'; // or pdo { return $this->pgVersion; } + /** * Gets the name of the correct database driver to use. As a side effect, * sets the platform. @@ -163,11 +120,11 @@ private $adodb_driver='postgres9'; // or pdo */ public function getDriver(&$description) { - if(!$this->conn->IsConnected()) { + if (!$this->conn->IsConnected()) { return null; } - $serverInfo=$this->conn->ServerInfo(); - $this->pgVersion =$serverInfo['version']; + $serverInfo = $this->conn->ServerInfo(); + $this->pgVersion = $serverInfo['version']; $description = "PostgreSQL {$this->pgVersion}"; $version_parts = \explode('.', $this->pgVersion); @@ -177,10 +134,11 @@ private $adodb_driver='postgres9'; // or pdo } else { $major_version = \implode('.', [$version_parts[0], $version_parts[1]]); } - + // if major version is less than 9 return null, we don't support it - if (9 > (float) $major_version) { + if (9 > (float) $major_version) { $this->driver = null; + return null; } @@ -191,7 +149,6 @@ private $adodb_driver='postgres9'; // or pdo $this->driver = $this->version_dictionary[$major_version]; } - // If unknown version, then default to latest driver return $this->driver; } @@ -203,8 +160,59 @@ private $adodb_driver='postgres9'; // or pdo */ public function getLastError() { - return $this->conn->ErrorMsg(); - + } + + private function getPG9Connection( + string $host, + int $port, + string $sslmode, + ?string $database, + ?string $user, + ?string $password, + int $fetchMode = \ADODB_FETCH_ASSOC + ): \ADODB_postgres9 + { + $this->conn = ADONewConnection('postgres9'); + $this->conn->setFetchMode($fetchMode); + // Ignore host if null + if (null === $host || '' === $host) { + if (null !== $port && '' !== $port) { + $pghost = ':' . $port; + } else { + $pghost = ''; + } + } else { + $pghost = "{$host}:{$port}"; + } + + // Add sslmode to $pghost as needed + if (('disable' === $sslmode) || ('allow' === $sslmode) || ('prefer' === $sslmode) || ('require' === $sslmode)) { + $pghost .= ':' . $sslmode; + } elseif ('legacy' === $sslmode) { + $pghost .= ' requiressl=1'; + } + + $this->conn->connect($pghost, $user, $password, $database); + + return $this->conn; + } + + private function getPDOConnection( + string $host, + int $port, + string $sslmode, + ?string $database, + ?string $user, + ?string $password, + int $fetchMode = \ADODB_FETCH_ASSOC + ): \ADODB_pdo + { + $this->conn = ADONewConnection('pdo'); + $this->conn->setFetchMode($fetchMode); + $dsnString = \sprintf('pgsql:host=%s;port=%d;dbname=%s;sslmode=%s;application_name=PHPPgAdmin6', $host, $port, $database, $sslmode); + $this->conn->connect($dsnString, $user, $password); + + return $this->conn; } } diff --git a/src/classes/ContainerUtils.php b/src/classes/ContainerUtils.php index d028c5f8..008214ff 100644 --- a/src/classes/ContainerUtils.php +++ b/src/classes/ContainerUtils.php @@ -40,7 +40,7 @@ class ContainerUtils const THEME_PATH = THEME_PATH; /** - * @var\Psr\Container\ContainerInterface + * @var \Slim\Container */ protected $container; @@ -124,7 +124,7 @@ class ContainerUtils * * @throws \Exception (description) * - * @return\Psr\Container\ContainerInterface the container instance + * @return \Slim\Container the container instance */ public static function getContainerInstance() { @@ -139,13 +139,12 @@ class ContainerUtils /** * Gets the instance. - * - */ - public static function getInstance():self + */ + public static function getInstance(): self { - if (!$_instance=self::$_instance) { + if (!$_instance = self::$_instance) { self::$_instance = new self(); - $_instance=self::$_instance; + $_instance = self::$_instance; } return $_instance; diff --git a/src/classes/Misc.php b/src/classes/Misc.php index c1462d74..fbb4b161 100644 --- a/src/classes/Misc.php +++ b/src/classes/Misc.php @@ -206,7 +206,7 @@ class Misc } /** - * @return string|null + * @return null|string */ public function serverToSha() { diff --git a/src/classes/ViewManager.php b/src/classes/ViewManager.php index ef27b4ae..246448b8 100644 --- a/src/classes/ViewManager.php +++ b/src/classes/ViewManager.php @@ -93,32 +93,46 @@ class ViewManager extends \Slim\Views\Twig * @var \PHPPgAdmin\Misc */ public $misc; - /** + + /** * @var \Slim\Container */ protected $container; private $_connection; -/** @var bool */ + + /** + * @var bool + */ private $_no_db_connection = false; -/** @var bool */ + + /** + * @var bool + */ private $_reload_browser = false; private $_data; private $_database; -/** @var string */ + + /** + * @var string + */ private $_server_id; private $_server_info; - /** @var string */ + + /** + * @var string + */ private $_error_msg = ''; + /** - * Undocumented variable + * Undocumented variable. * * @var self */ - private static $instance ; + private static $instance; /** * @param \Slim\Container $container The container @@ -161,7 +175,7 @@ class ViewManager extends \Slim\Views\Twig } } - public function maybeRenderIframes(ResponseInterface $response, string $subject,string $query_string):ResponseInterface + public function maybeRenderIframes(ResponseInterface $response, string $subject, string $query_string): ResponseInterface { $c = $this->getContainer(); @@ -352,8 +366,8 @@ class ViewManager extends \Slim\Views\Twig * * @return class-string */ - private static function getControllerClassName(string $subject):string - { + private static function getControllerClassName(string $subject): string + { return '\PHPPgAdmin\Controller\\' . \ucfirst($subject) . 'Controller'; } diff --git a/src/controllers/AggregatesController.php b/src/controllers/AggregatesController.php index 68190890..2fa97293 100644 --- a/src/controllers/AggregatesController.php +++ b/src/controllers/AggregatesController.php @@ -34,7 +34,7 @@ class AggregatesController extends BaseController break; case 'save_create': - if (isset($_POST['cancel'])) { + if (null !== $this->getPostParam('cancel')) { $this->doDefault(); } else { $this->doSaveCreate(); @@ -46,7 +46,7 @@ class AggregatesController extends BaseController break; case 'save_alter': - if (isset($_POST['alter'])) { + if (null !== $this->getPostParam('alter')) { $this->doSaveAlter(); } else { $this->doProperties(); @@ -54,7 +54,7 @@ class AggregatesController extends BaseController break; case 'drop': - if (isset($_POST['drop'])) { + if (null !== $this->getPostParam('drop')) { $this->doDrop(false); } else { $this->doDefault(); @@ -307,7 +307,7 @@ class AggregatesController extends BaseController echo '

' . \PHP_EOL; echo $this->view->form; echo "lang['strcreate']}\" />" . \PHP_EOL; - echo sprintf('

%s',$this->lang['strcancel'], \PHP_EOL); + echo \sprintf('

%s', $this->lang['strcancel'], \PHP_EOL); echo '' . \PHP_EOL; } @@ -385,7 +385,7 @@ class AggregatesController extends BaseController echo '' . \PHP_EOL; echo '' . \PHP_EOL; echo "lang['stralter']}\" />" . \PHP_EOL; - echo sprintf('

%s',$this->lang['strcancel'], \PHP_EOL); + echo \sprintf('

%s', $this->lang['strcancel'], \PHP_EOL); } else { echo "

{$this->lang['strnodata']}

" . \PHP_EOL; echo "lang['strback']}\" />

" . \PHP_EOL; @@ -415,7 +415,7 @@ class AggregatesController extends BaseController echo '' . \PHP_EOL; echo $this->view->form; echo "lang['strdrop']}\" />" . \PHP_EOL; - echo sprintf('

%s',$this->lang['strcancel'], \PHP_EOL); + echo \sprintf('

%s', $this->lang['strcancel'], \PHP_EOL); echo '' . \PHP_EOL; } else { $status = $this->data->dropAggregate($_POST['aggrname'], $_POST['aggrtype'], isset($_POST['cascade'])); diff --git a/src/controllers/AlldbController.php b/src/controllers/AlldbController.php index 105aa7a6..a940a35c 100644 --- a/src/controllers/AlldbController.php +++ b/src/controllers/AlldbController.php @@ -38,7 +38,7 @@ class AlldbController extends BaseController break; case 'save_create': - if (isset($_POST['cancel'])) { + if (null !== $this->getPostParam('cancel')) { $this->doDefault(); } else { $this->doSaveCreate(); @@ -515,7 +515,7 @@ class AlldbController extends BaseController echo '

' . \PHP_EOL; echo $this->view->form; echo "lang['strcreate']}\" />" . \PHP_EOL; - echo sprintf('

%s',$this->lang['strcancel'], \PHP_EOL); + echo \sprintf('

%s', $this->lang['strcancel'], \PHP_EOL); echo '' . \PHP_EOL; } diff --git a/src/controllers/BaseController.php b/src/controllers/BaseController.php index f4c00971..5eec5f66 100644 --- a/src/controllers/BaseController.php +++ b/src/controllers/BaseController.php @@ -67,7 +67,8 @@ class BaseController * @var \PHPPgAdmin\ViewManager */ public $view; - /** + + /** * @var \PHPPgAdmin\Misc */ public $misc; @@ -77,7 +78,10 @@ class BaseController public $phpMinVer; protected $script; - /** @var \Slim\Container */ + + /** + * @var \Slim\Container + */ protected $container; protected $data; @@ -437,36 +441,34 @@ class BaseController } /** - * * @param string $key * @param null|string $default */ public function getRequestParam(string $key, ?string $default = null) { - return $this->container->requestobj->getParam($key, $default); + return \requestInstance()->getParam($key, $default); } /** - * - * @param string $key - * @param bool|null|array|string|int|float $default - * + * @param string $key + * @param null|array|bool|float|int|string $default + * * @return bool| null|array|string|int|float */ public function getPostParam(string $key, $default = null) { - return $this->container->requestobj->getParsedBodyParam($key, $default); + return \requestInstance()->getParsedBodyParam($key, $default); } - /** + + /** + * @param string $key + * @param null|array|float|int|string $default * - * @param string $key - * @param null|array|string|int|float $default - * - * @return null|array|string|int|float + * @return null|array|float|int|string */ - public function getQueryParamstring ($key, $default = null) + public function getQueryParamstring($key, $default = null) { - return $this->container->requestobj->getQueryParam($key, $default); + return \requestInstance()->getQueryParam($key, $default); } /** diff --git a/src/controllers/ColpropertiesController.php b/src/controllers/ColpropertiesController.php index 796798e3..2bd3bc4d 100644 --- a/src/controllers/ColpropertiesController.php +++ b/src/controllers/ColpropertiesController.php @@ -42,7 +42,7 @@ class ColpropertiesController extends BaseController } else { switch ($this->action) { case 'properties': - if (isset($_POST['cancel'])) { + if (null !== $this->getPostParam('cancel')) { $this->doDefault(); } else { $this->doAlter(); @@ -337,7 +337,7 @@ class ColpropertiesController extends BaseController echo '

' . \PHP_EOL; echo '' . \PHP_EOL; echo $this->view->form; - echo sprintf('%s',\htmlspecialchars($_REQUEST['table']), \PHP_EOL); + echo \sprintf('%s', \htmlspecialchars($_REQUEST['table']), \PHP_EOL); echo '' . \PHP_EOL; echo '' . \PHP_EOL; @@ -353,7 +353,7 @@ class ColpropertiesController extends BaseController echo '' . \PHP_EOL; } echo "lang['stralter']}\" />" . \PHP_EOL; - echo sprintf('

%s',$this->lang['strcancel'], \PHP_EOL); + echo \sprintf('

%s', $this->lang['strcancel'], \PHP_EOL); echo '' . \PHP_EOL; echo '" . \PHP_EOL; diff --git a/src/controllers/DataexportController.php b/src/controllers/DataexportController.php index f890531e..01fafcb0 100644 --- a/src/controllers/DataexportController.php +++ b/src/controllers/DataexportController.php @@ -133,7 +133,7 @@ class DataexportController extends BaseController if (isset($_REQUEST['table'])) { echo '' . \PHP_EOL; - echo sprintf('%s',\htmlspecialchars($_REQUEST['table']), \PHP_EOL); + echo \sprintf('%s', \htmlspecialchars($_REQUEST['table']), \PHP_EOL); } else { echo '' . \PHP_EOL; } diff --git a/src/controllers/DisplayController.php b/src/controllers/DisplayController.php index c07ebca3..55f96665 100644 --- a/src/controllers/DisplayController.php +++ b/src/controllers/DisplayController.php @@ -825,7 +825,7 @@ class DisplayController extends BaseController } if (isset($_REQUEST['table'])) { - echo sprintf('%s',\htmlspecialchars($_REQUEST['table']), \PHP_EOL); + echo \sprintf('%s', \htmlspecialchars($_REQUEST['table']), \PHP_EOL); } if (isset($_REQUEST['subject'])) { diff --git a/src/controllers/DomainsController.php b/src/controllers/DomainsController.php index db93107f..48815930 100644 --- a/src/controllers/DomainsController.php +++ b/src/controllers/DomainsController.php @@ -33,7 +33,7 @@ class DomainsController extends BaseController break; case 'save_add_check': - if (isset($_POST['cancel'])) { + if (null !== $this->getPostParam('cancel')) { $this->doProperties(); } else { $this->addCheck(false); @@ -41,7 +41,7 @@ class DomainsController extends BaseController break; case 'drop_con': - if (isset($_POST['drop'])) { + if (null !== $this->getPostParam('drop')) { $this->doDropConstraint(false); } else { $this->doProperties(); @@ -53,7 +53,7 @@ class DomainsController extends BaseController break; case 'save_create': - if (isset($_POST['cancel'])) { + if (null !== $this->getPostParam('cancel')) { $this->doDefault(); } else { $this->doSaveCreate(); @@ -65,7 +65,7 @@ class DomainsController extends BaseController break; case 'drop': - if (isset($_POST['drop'])) { + if (null !== $this->getPostParam('drop')) { $this->doDrop(false); } else { $this->doDefault(); @@ -77,7 +77,7 @@ class DomainsController extends BaseController break; case 'save_alter': - if (isset($_POST['alter'])) { + if (null !== $this->getPostParam('alter')) { $this->doSaveAlter(); } else { $this->doProperties(); @@ -310,7 +310,7 @@ class DomainsController extends BaseController echo '' . \PHP_EOL; echo $this->view->form; echo "lang['stralter']}\" />" . \PHP_EOL; - echo sprintf('

%s',$this->lang['strcancel'], \PHP_EOL); + echo \sprintf('

%s', $this->lang['strcancel'], \PHP_EOL); echo '' . \PHP_EOL; } else { echo "

{$this->lang['strnodata']}

" . \PHP_EOL; @@ -352,7 +352,7 @@ class DomainsController extends BaseController echo '' . \PHP_EOL; echo $this->view->form; echo "lang['stradd']}\" />" . \PHP_EOL; - echo sprintf('

%s',$this->lang['strcancel'], \PHP_EOL); + echo \sprintf('

%s', $this->lang['strcancel'], \PHP_EOL); echo '' . \PHP_EOL; } else { if ('' === \trim($_POST['definition'])) { @@ -566,7 +566,7 @@ class DomainsController extends BaseController echo '' . \PHP_EOL; echo $this->view->form; echo "lang['strdrop']}\" />" . \PHP_EOL; - echo sprintf('

%s',$this->lang['strcancel'], \PHP_EOL); + echo \sprintf('

%s', $this->lang['strcancel'], \PHP_EOL); echo '' . \PHP_EOL; } else { $status = $data->dropDomain($_POST['domain'], isset($_POST['cascade'])); @@ -649,7 +649,7 @@ class DomainsController extends BaseController echo '

' . \PHP_EOL; echo $this->view->form; echo "lang['strcreate']}\" />" . \PHP_EOL; - echo sprintf('

%s',$this->lang['strcancel'], \PHP_EOL); + echo \sprintf('

%s', $this->lang['strcancel'], \PHP_EOL); echo '' . \PHP_EOL; } diff --git a/src/controllers/FulltextController.php b/src/controllers/FulltextController.php index 24b40568..3760dd0f 100644 --- a/src/controllers/FulltextController.php +++ b/src/controllers/FulltextController.php @@ -31,7 +31,7 @@ class FulltextController extends BaseController $this->printHeader(); $this->printBody(); - if (isset($_POST['cancel'])) { + if (null !== $this->getPostParam('cancel')) { if (isset($_POST['prev_action'])) { $this->action = $_POST['prev_action']; } else { @@ -41,7 +41,7 @@ class FulltextController extends BaseController switch ($this->action) { case 'createconfig': - if (isset($_POST['create'])) { + if (null !== $this->getPostParam('create')) { $this->doSaveCreateConfig(); } else { $this->doCreateConfig(); @@ -49,7 +49,7 @@ class FulltextController extends BaseController break; case 'alterconfig': - if (isset($_POST['alter'])) { + if (null !== $this->getPostParam('alter')) { $this->doSaveAlterConfig(); } else { $this->doAlterConfig(); @@ -57,7 +57,7 @@ class FulltextController extends BaseController break; case 'dropconfig': - if (isset($_POST['drop'])) { + if (null !== $this->getPostParam('drop')) { $this->doDropConfig(false); } else { $this->doDropConfig(true); @@ -77,7 +77,7 @@ class FulltextController extends BaseController break; case 'createdict': - if (isset($_POST['create'])) { + if (null !== $this->getPostParam('create')) { $this->doSaveCreateDict(); } else { $this->doCreateDict(); @@ -85,7 +85,7 @@ class FulltextController extends BaseController break; case 'alterdict': - if (isset($_POST['alter'])) { + if (null !== $this->getPostParam('alter')) { $this->doSaveAlterDict(); } else { $this->doAlterDict(); @@ -93,7 +93,7 @@ class FulltextController extends BaseController break; case 'dropdict': - if (isset($_POST['drop'])) { + if (null !== $this->getPostParam('drop')) { $this->doDropDict(false); } else { $this->doDropDict(true); @@ -101,7 +101,7 @@ class FulltextController extends BaseController break; case 'dropmapping': - if (isset($_POST['drop'])) { + if (null !== $this->getPostParam('drop')) { $this->doDropMapping(false); } else { $this->doDropMapping(true); @@ -109,7 +109,7 @@ class FulltextController extends BaseController break; case 'altermapping': - if (isset($_POST['alter'])) { + if (null !== $this->getPostParam('alter')) { $this->doSaveAlterMapping(); } else { $this->doAlterMapping(); @@ -315,7 +315,7 @@ class FulltextController extends BaseController echo '' . \PHP_EOL; echo $this->view->form; echo "lang['strdrop']}\" />" . \PHP_EOL; - echo sprintf('

%s',$this->lang['strcancel'], \PHP_EOL); + echo \sprintf('

%s', $this->lang['strcancel'], \PHP_EOL); echo '' . \PHP_EOL; } else { $status = $data->dropFtsConfiguration($_POST['ftscfg'], isset($_POST['cascade'])); @@ -348,7 +348,7 @@ class FulltextController extends BaseController echo '

' . \PHP_EOL; echo $this->view->form; echo "lang['strdrop']}\" />" . \PHP_EOL; - echo sprintf('

%s',$this->lang['strcancel'], \PHP_EOL); + echo \sprintf('

%s', $this->lang['strcancel'], \PHP_EOL); echo '' . \PHP_EOL; } else { $status = $data->dropFtsDictionary($_POST['ftsdict'], isset($_POST['cascade'])); @@ -552,7 +552,7 @@ class FulltextController extends BaseController echo '' . \PHP_EOL; echo $this->view->form; echo "lang['stralter']}\" />" . \PHP_EOL; - echo sprintf('

%s',$this->lang['strcancel'], \PHP_EOL); + echo \sprintf('

%s', $this->lang['strcancel'], \PHP_EOL); echo '' . \PHP_EOL; } else { echo "

{$this->lang['strnodata']}

" . \PHP_EOL; @@ -988,7 +988,7 @@ class FulltextController extends BaseController echo '

' . \PHP_EOL; echo $this->view->form; echo "lang['stralter']}\" />" . \PHP_EOL; - echo sprintf('

%s',$this->lang['strcancel'], \PHP_EOL); + echo \sprintf('

%s', $this->lang['strcancel'], \PHP_EOL); echo '' . \PHP_EOL; } else { echo "

{$this->lang['strnodata']}

" . \PHP_EOL; @@ -1151,7 +1151,7 @@ class FulltextController extends BaseController echo $this->view->form; echo "lang['stralter']}\" />" . \PHP_EOL; - echo sprintf('

%s',$this->lang['strcancel'], \PHP_EOL); + echo \sprintf('

%s', $this->lang['strcancel'], \PHP_EOL); echo '' . \PHP_EOL; } else { echo "

{$this->lang['strftsnodictionaries']}

" . \PHP_EOL; @@ -1238,7 +1238,7 @@ class FulltextController extends BaseController echo '

' . \PHP_EOL; echo $this->view->form; echo "lang['stradd']}\" />" . \PHP_EOL; - echo sprintf('

%s',$this->lang['strcancel'], \PHP_EOL); + echo \sprintf('

%s', $this->lang['strcancel'], \PHP_EOL); echo '' . \PHP_EOL; } else { echo "

{$this->lang['strftsnodictionaries']}

" . \PHP_EOL; diff --git a/src/controllers/FunctionsController.php b/src/controllers/FunctionsController.php index 726b714c..b5ef9820 100644 --- a/src/controllers/FunctionsController.php +++ b/src/controllers/FunctionsController.php @@ -32,7 +32,7 @@ class FunctionsController extends BaseController switch ($this->action) { case 'save_create': - if (isset($_POST['cancel'])) { + if (null !== $this->getPostParam('cancel')) { $this->doDefault(); } else { $this->doSaveCreate(); @@ -45,7 +45,7 @@ class FunctionsController extends BaseController break; case 'drop': - if (isset($_POST['drop'])) { + if (null !== $this->getPostParam('drop')) { $this->doDrop(false); } else { $this->doDefault(); @@ -57,7 +57,7 @@ class FunctionsController extends BaseController break; case 'save_edit': - if (isset($_POST['cancel'])) { + if (null !== $this->getPostParam('cancel')) { $this->doDefault(); } else { $this->doSaveEdit(); @@ -469,7 +469,7 @@ class FunctionsController extends BaseController echo '' . \PHP_EOL; echo $this->view->form; echo "lang['stralter']}\" />" . \PHP_EOL; - echo sprintf('

%s',$this->lang['strcancel'], \PHP_EOL); + echo \sprintf('

%s', $this->lang['strcancel'], \PHP_EOL); echo '' . \PHP_EOL; } @@ -966,7 +966,7 @@ class FunctionsController extends BaseController echo '

' . \PHP_EOL; echo $this->view->form; echo "lang['strcreate']}\" />" . \PHP_EOL; - echo sprintf('

%s',$this->lang['strcancel'], \PHP_EOL); + echo \sprintf('

%s', $this->lang['strcancel'], \PHP_EOL); echo '' . \PHP_EOL; echo $szJS; } diff --git a/src/controllers/GroupsController.php b/src/controllers/GroupsController.php index c5750ce8..f748d162 100644 --- a/src/controllers/GroupsController.php +++ b/src/controllers/GroupsController.php @@ -353,7 +353,7 @@ class GroupsController extends BaseController echo '' . \PHP_EOL; echo '

' . \PHP_EOL; echo "lang['strcreate']}\" />" . \PHP_EOL; - echo sprintf('

%s',$this->lang['strcancel'], \PHP_EOL); + echo \sprintf('

%s', $this->lang['strcancel'], \PHP_EOL); echo '' . \PHP_EOL; } diff --git a/src/controllers/IndexesController.php b/src/controllers/IndexesController.php index 85a1eacd..c7134d6e 100644 --- a/src/controllers/IndexesController.php +++ b/src/controllers/IndexesController.php @@ -53,7 +53,7 @@ class IndexesController extends BaseController break; case 'save_create_index': - if (isset($_POST['cancel'])) { + if (null !== $this->getPostParam('cancel')) { $this->doDefault(); } else { $this->doSaveCreateIndex(); @@ -65,7 +65,7 @@ class IndexesController extends BaseController break; case 'drop_index': - if (isset($_POST['drop'])) { + if (null !== $this->getPostParam('drop')) { $this->doDropIndex(false); } else { $this->doDefault(); @@ -438,7 +438,7 @@ class IndexesController extends BaseController echo '' . \PHP_EOL; echo '' . \PHP_EOL; echo "lang['strcreate']}\" />" . \PHP_EOL; - echo sprintf('

%s',$this->lang['strcancel'], \PHP_EOL); + echo \sprintf('

%s', $this->lang['strcancel'], \PHP_EOL); echo '' . \PHP_EOL; } diff --git a/src/controllers/IntroController.php b/src/controllers/IntroController.php index c10231f7..3f30a3ee 100644 --- a/src/controllers/IntroController.php +++ b/src/controllers/IntroController.php @@ -18,13 +18,13 @@ class IntroController extends BaseController */ public function render() { - if (null === $this->container->requestobj->getAttribute('route')) { + if (null === \requestInstance()->getAttribute('route')) { echo $this->doDefault(); } else { - $body = $this->container->responseobj->getBody(); + $body = \responseInstance()->getBody(); $body->write($this->doDefault()); - return $this->container->responseobj; + return \responseInstance(); } } @@ -88,7 +88,7 @@ class IntroController extends BaseController //$intro_html .= '
  • ' . $this->lang['strviewfaq'] . '
  • '; $intro_html .= ''; - if ($this->container->requestobj->getQueryParam('language')) { + if (\requestInstance()->getQueryParam('language')) { $this->misc->setReloadBrowser(true); } diff --git a/src/controllers/LoginController.php b/src/controllers/LoginController.php index 9fd9705c..fe7e40ec 100644 --- a/src/controllers/LoginController.php +++ b/src/controllers/LoginController.php @@ -46,13 +46,13 @@ class LoginController extends BaseController */ public function render() { - if (null === $this->container->requestobj->getAttribute('route')) { + if (null === \requestInstance()->getAttribute('route')) { echo $this->doLoginForm(); } else { - $body = $this->container->responseobj->getBody(); + $body = \responseInstance()->getBody(); $body->write($this->doLoginForm()); - return $this->container->responseobj; + return \responseInstance(); } } @@ -60,7 +60,7 @@ class LoginController extends BaseController { $this->misc->setNoDBConnection(true); - $server_id = $this->container->requestobj->getQueryParam('server'); + $server_id = \requestInstance()->getQueryParam('server'); if (null === $server_id) { $this->prtrace('invalid server param'); diff --git a/src/controllers/MaterializedviewpropertiesController.php b/src/controllers/MaterializedviewpropertiesController.php index ef7cbe11..2a4429dd 100644 --- a/src/controllers/MaterializedviewpropertiesController.php +++ b/src/controllers/MaterializedviewpropertiesController.php @@ -32,7 +32,7 @@ class MaterializedviewpropertiesController extends BaseController switch ($this->action) { case 'save_edit': - if (isset($_POST['cancel'])) { + if (null !== $this->getPostParam('cancel')) { $this->doDefinition(); } else { $this->doSaveEdit(); @@ -56,7 +56,7 @@ class MaterializedviewpropertiesController extends BaseController break; case 'properties': - if (isset($_POST['cancel'])) { + if (null !== $this->getPostParam('cancel')) { $this->doDefault(); } else { $this->doProperties(); @@ -64,7 +64,7 @@ class MaterializedviewpropertiesController extends BaseController break; case 'alter': - if (isset($_POST['alter'])) { + if (null !== $this->getPostParam('alter')) { $this->doAlter(false); } else { $this->doDefault(); @@ -76,7 +76,7 @@ class MaterializedviewpropertiesController extends BaseController break; /*case 'drop': - if (isset($_POST['drop'])) { + if($this->getPostParam('drop')!==null){ $this->doDrop(false); } else { $this->doDefault(); @@ -163,7 +163,7 @@ class MaterializedviewpropertiesController extends BaseController echo '' . \PHP_EOL; echo $this->view->form; echo "lang['stralter']}\" />" . \PHP_EOL; - echo sprintf('

    %s',$this->lang['strcancel'], \PHP_EOL); + echo \sprintf('

    %s', $this->lang['strcancel'], \PHP_EOL); echo '' . \PHP_EOL; } else { echo "

    {$this->lang['strnodata']}

    " . \PHP_EOL; @@ -219,7 +219,7 @@ class MaterializedviewpropertiesController extends BaseController echo '' . \PHP_EOL; echo '' . \PHP_EOL; echo "lang['stralter']}\" />" . \PHP_EOL; - echo sprintf('

    %s',$this->lang['strcancel'], \PHP_EOL); + echo \sprintf('

    %s', $this->lang['strcancel'], \PHP_EOL); echo '' . \PHP_EOL; break; @@ -331,7 +331,7 @@ class MaterializedviewpropertiesController extends BaseController echo '' . \PHP_EOL; echo $this->view->form; echo "

    lang['stralter']}\" />" . \PHP_EOL; - echo sprintf('

    %s',$this->lang['strcancel'], \PHP_EOL); + echo \sprintf('

    %s', $this->lang['strcancel'], \PHP_EOL); echo '' . \PHP_EOL; } else { echo "

    {$this->lang['strnodata']}

    " . \PHP_EOL; diff --git a/src/controllers/MaterializedviewsController.php b/src/controllers/MaterializedviewsController.php index 3d58327b..2d765e4e 100644 --- a/src/controllers/MaterializedviewsController.php +++ b/src/controllers/MaterializedviewsController.php @@ -64,7 +64,7 @@ class MaterializedviewsController extends BaseController break; case 'set_params_create': - if (isset($_POST['cancel'])) { + if (null !== $this->getPostParam('cancel')) { $this->doDefault(); } else { $this->doSetParamsCreate(); @@ -84,7 +84,7 @@ class MaterializedviewsController extends BaseController break; case 'drop': - if (isset($_POST['drop'])) { + if (null !== $this->getPostParam('drop')) { $this->doDrop(false); } else { $this->doDefault(); @@ -418,7 +418,7 @@ class MaterializedviewsController extends BaseController echo '

    ' . \PHP_EOL; echo $this->view->form; echo "lang['strcreate']}\" />" . \PHP_EOL; - echo sprintf('

    %s',$this->lang['strcancel'], \PHP_EOL); + echo \sprintf('

    %s', $this->lang['strcancel'], \PHP_EOL); echo '' . \PHP_EOL; } diff --git a/src/controllers/OperatorsController.php b/src/controllers/OperatorsController.php index d1bf39ec..baa78c46 100644 --- a/src/controllers/OperatorsController.php +++ b/src/controllers/OperatorsController.php @@ -29,7 +29,7 @@ class OperatorsController extends BaseController switch ($this->action) { /*case 'save_create': - if (isset($_POST['cancel'])) { + if($this->getPostParam('cancel')!==null){ $this->doDefault(); } else { $this->doSaveCreate(); @@ -41,7 +41,7 @@ class OperatorsController extends BaseController break;*/ case 'drop': - if (isset($_POST['cancel'])) { + if (null !== $this->getPostParam('cancel')) { $this->doDefault(); } else { $this->doDrop(false); @@ -263,7 +263,7 @@ class OperatorsController extends BaseController echo '' . \PHP_EOL; echo $this->view->form; echo "lang['strdrop']}\" />" . \PHP_EOL; - echo sprintf('

    %s',$this->lang['strcancel'], \PHP_EOL); + echo \sprintf('

    %s', $this->lang['strcancel'], \PHP_EOL); echo '' . \PHP_EOL; } else { $status = $data->dropOperator($_POST['operator_oid'], isset($_POST['cascade'])); diff --git a/src/controllers/RolesController.php b/src/controllers/RolesController.php index 9dd3d1ce..2fea45c9 100644 --- a/src/controllers/RolesController.php +++ b/src/controllers/RolesController.php @@ -29,7 +29,7 @@ class RolesController extends BaseController break; case 'save_create': - if (isset($_POST['create'])) { + if (null !== $this->getPostParam('create')) { $this->doSaveCreate(); } else { $this->doDefault(); @@ -41,7 +41,7 @@ class RolesController extends BaseController break; case 'save_alter': - if (isset($_POST['alter'])) { + if (null !== $this->getPostParam('alter')) { $this->doSaveAlter(); } else { $this->doDefault(); @@ -53,7 +53,7 @@ class RolesController extends BaseController break; case 'drop': - if (isset($_POST['drop'])) { + if (null !== $this->getPostParam('drop')) { $this->doDrop(false); } else { $this->doDefault(); @@ -317,7 +317,7 @@ class RolesController extends BaseController echo '

    ' . \PHP_EOL; echo $this->view->form; echo "lang['strcreate']}\" />" . \PHP_EOL; - echo sprintf('

    %s',$this->lang['strcancel'], \PHP_EOL); + echo \sprintf('

    %s', $this->lang['strcancel'], \PHP_EOL); echo '' . \PHP_EOL; } @@ -483,7 +483,7 @@ class RolesController extends BaseController echo '' . \PHP_EOL; echo $this->view->form; echo "lang['stralter']}\" />" . \PHP_EOL; - echo sprintf('

    %s',$this->lang['strcancel'], \PHP_EOL); + echo \sprintf('

    %s', $this->lang['strcancel'], \PHP_EOL); echo '' . \PHP_EOL; } @@ -540,7 +540,7 @@ class RolesController extends BaseController echo '' . \PHP_EOL; echo $this->view->form; echo "lang['strdrop']}\" />" . \PHP_EOL; - echo sprintf('

    %s',$this->lang['strcancel'], \PHP_EOL); + echo \sprintf('

    %s', $this->lang['strcancel'], \PHP_EOL); echo '' . \PHP_EOL; } else { $status = $data->dropRole($_REQUEST['rolename']); diff --git a/src/controllers/RulesController.php b/src/controllers/RulesController.php index 33fed67a..41515c60 100644 --- a/src/controllers/RulesController.php +++ b/src/controllers/RulesController.php @@ -32,7 +32,7 @@ class RulesController extends BaseController break; case 'save_create_rule': - if (isset($_POST['cancel'])) { + if (null !== $this->getPostParam('cancel')) { $this->doDefault(); } else { $this->createRule(false); @@ -204,7 +204,7 @@ class RulesController extends BaseController '" value="', \htmlspecialchars($_REQUEST[$_REQUEST['subject']]), '" />' . \PHP_EOL; echo $this->view->form; echo "

    lang['strcreate']}\" />" . \PHP_EOL; - echo sprintf('

    %s',$this->lang['strcancel'], \PHP_EOL); + echo \sprintf('

    %s', $this->lang['strcancel'], \PHP_EOL); echo '' . \PHP_EOL; } else { if ('' === \trim($_POST['name'])) { diff --git a/src/controllers/SchemasController.php b/src/controllers/SchemasController.php index dbf2b93a..c45a065c 100644 --- a/src/controllers/SchemasController.php +++ b/src/controllers/SchemasController.php @@ -30,7 +30,7 @@ class SchemasController extends BaseController return $this->doSubTree(); } - if (isset($_POST['cancel'])) { + if (null !== $this->getPostParam('cancel')) { $this->action = ''; } @@ -40,7 +40,7 @@ class SchemasController extends BaseController switch ($this->action) { case 'create': - if (isset($_POST['create'])) { + if (null !== $this->getPostParam('create')) { $this->doSaveCreate(); } else { $this->doCreate(); @@ -48,7 +48,7 @@ class SchemasController extends BaseController break; case 'alter': - if (isset($_POST['alter'])) { + if (null !== $this->getPostParam('alter')) { $this->doSaveAlter(); } else { $this->doAlter(); @@ -56,7 +56,7 @@ class SchemasController extends BaseController break; case 'drop': - if (isset($_POST['drop'])) { + if (null !== $this->getPostParam('drop')) { $this->doDrop(false); } else { $this->doDrop(true); @@ -394,7 +394,7 @@ class SchemasController extends BaseController echo '' . \PHP_EOL; echo $this->view->form; echo "lang['stralter']}\" />" . \PHP_EOL; - echo sprintf('

    %s',$this->lang['strcancel'], \PHP_EOL); + echo \sprintf('

    %s', $this->lang['strcancel'], \PHP_EOL); echo '' . \PHP_EOL; } else { echo "

    {$this->lang['strnodata']}

    " . \PHP_EOL; @@ -455,7 +455,7 @@ class SchemasController extends BaseController echo '' . \PHP_EOL; echo $this->view->form; echo "lang['strdrop']}\" />" . \PHP_EOL; - echo sprintf('

    %s',$this->lang['strcancel'], \PHP_EOL); + echo \sprintf('

    %s', $this->lang['strcancel'], \PHP_EOL); echo '' . \PHP_EOL; } else { if (\is_array($_POST['nsp'])) { diff --git a/src/controllers/SequencesController.php b/src/controllers/SequencesController.php index 617c956c..f4dd6ecb 100644 --- a/src/controllers/SequencesController.php +++ b/src/controllers/SequencesController.php @@ -35,7 +35,7 @@ class SequencesController extends BaseController break; case 'save_create_sequence': - if (isset($_POST['create'])) { + if (null !== $this->getPostParam('create')) { $this->doSaveCreateSequence(); } else { $this->doDefault(); @@ -47,7 +47,7 @@ class SequencesController extends BaseController break; case 'drop': - if (isset($_POST['drop'])) { + if (null !== $this->getPostParam('drop')) { $this->doDrop(false); } else { $this->doDefault(); @@ -83,7 +83,7 @@ class SequencesController extends BaseController break; case 'alter': - if (isset($_POST['alter'])) { + if (null !== $this->getPostParam('alter')) { $this->doSaveAlter(); } else { $this->doDefault(); @@ -426,7 +426,7 @@ class SequencesController extends BaseController echo '

    ' . \PHP_EOL; echo $this->view->form; echo "lang['strdrop']}\" />" . \PHP_EOL; - echo sprintf('

    %s',$this->lang['strcancel'], \PHP_EOL); + echo \sprintf('

    %s', $this->lang['strcancel'], \PHP_EOL); echo '' . \PHP_EOL; } else { if (\is_array($_POST['sequence'])) { @@ -528,7 +528,7 @@ class SequencesController extends BaseController echo '

    ' . \PHP_EOL; echo $this->view->form; echo "lang['strcreate']}\" />" . \PHP_EOL; - echo sprintf('

    %s',$this->lang['strcancel'], \PHP_EOL); + echo \sprintf('

    %s', $this->lang['strcancel'], \PHP_EOL); echo '' . \PHP_EOL; } @@ -653,7 +653,7 @@ class SequencesController extends BaseController echo '' . \PHP_EOL; echo $this->view->form; echo "lang['strsetval']}\" />" . \PHP_EOL; - echo sprintf('

    %s',$this->lang['strcancel'], \PHP_EOL); + echo \sprintf('

    %s', $this->lang['strcancel'], \PHP_EOL); echo '' . \PHP_EOL; } else { echo "

    {$this->lang['strnodata']}

    " . \PHP_EOL; @@ -829,7 +829,7 @@ class SequencesController extends BaseController echo $this->view->form; echo '' . \PHP_EOL; echo "lang['stralter']}\" />" . \PHP_EOL; - echo sprintf('

    %s',$this->lang['strcancel'], \PHP_EOL); + echo \sprintf('

    %s', $this->lang['strcancel'], \PHP_EOL); echo '' . \PHP_EOL; } else { echo "

    {$this->lang['strnodata']}

    " . \PHP_EOL; diff --git a/src/controllers/ServersController.php b/src/controllers/ServersController.php index ade0da25..a2f32301 100644 --- a/src/controllers/ServersController.php +++ b/src/controllers/ServersController.php @@ -64,13 +64,13 @@ class ServersController extends BaseController $server_html .= $this->printFooter(false); - if (null === $this->container->requestobj->getAttribute('route')) { + if (null === \requestInstance()->getAttribute('route')) { echo $server_html; } else { - $body = $this->container->responseobj->getBody(); + $body = \responseInstance()->getBody(); $body->write($server_html); - return $this->container->responseobj; + return \responseInstance(); } } diff --git a/src/controllers/TablesController.php b/src/controllers/TablesController.php index a4e766cb..7888b709 100644 --- a/src/controllers/TablesController.php +++ b/src/controllers/TablesController.php @@ -43,7 +43,7 @@ class TablesController extends BaseController switch ($this->action) { case 'create': - if (isset($_POST['cancel'])) { + if (null !== $this->getPostParam('cancel')) { $this->doDefault(); } else { $header_template = 'header_select2.twig'; @@ -57,7 +57,7 @@ class TablesController extends BaseController break; case 'confcreatelike': - if (isset($_POST['cancel'])) { + if (null !== $this->getPostParam('cancel')) { $header_template = 'header_datatables.twig'; $this->doDefault(); } else { @@ -106,7 +106,7 @@ class TablesController extends BaseController break; case 'drop': - if (isset($_POST['drop'])) { + if (null !== $this->getPostParam('drop')) { $this->doDrop(false); } else { $header_template = 'header_datatables.twig'; @@ -160,37 +160,27 @@ class TablesController extends BaseController //\Kint::dump($tables); echo $this->printTable($tables, $columns, $actions, $this->table_place, $this->lang['strnotables']); - + $attr = [ + 'href' => [ + 'url' => 'tables', + 'urlvars' => [ + 'action' => 'createlike', + 'server' => $this->getRequestParam('server'), + 'database' => $this->getRequestParam('database'), + 'schema' => $this->getRequestParam('schema'), + ], + ], + ]; $navlinks = [ 'create' => [ - 'attr' => [ - 'href' => [ - 'url' => 'tables', - 'urlvars' => [ - 'action' => 'create', - 'server' => $_REQUEST['server'], - 'database' => $_REQUEST['database'], - 'schema' => $_REQUEST['schema'], - ], - ], - ], + 'attr' => $attr, 'content' => $this->lang['strcreatetable'], ], ]; if ((0 < $tables->recordCount()) && $data->hasCreateTableLike()) { $navlinks['createlike'] = [ - 'attr' => [ - 'href' => [ - 'url' => 'tables', - 'urlvars' => [ - 'action' => 'createlike', - 'server' => $_REQUEST['server'], - 'database' => $_REQUEST['database'], - 'schema' => $_REQUEST['schema'], - ], - ], - ], + 'attr' => $attr, 'content' => $this->lang['strcreatetablelike'], ]; } @@ -311,10 +301,12 @@ class TablesController extends BaseController echo '' . \PHP_EOL; echo "\t\n\t\t" . \PHP_EOL; echo "\t\t\n\t" . \PHP_EOL; + \htmlspecialchars($_REQUEST['name']), + "\" />\n\t" . \PHP_EOL; echo "\t\n\t\t" . \PHP_EOL; echo "\t\t\n\t" . \PHP_EOL; + \htmlspecialchars($_REQUEST['fields']), + "\" />\n\t" . \PHP_EOL; echo "\t\n\t\t" . \PHP_EOL; echo "\t\t\n\t" . \PHP_EOL; @@ -324,12 +316,14 @@ class TablesController extends BaseController echo "\t\t\n\t" . \PHP_EOL; @@ -337,14 +331,15 @@ class TablesController extends BaseController echo "\t\n\t\t" . \PHP_EOL; echo "\t\t\n\t" . \PHP_EOL; + \htmlspecialchars($_REQUEST['tblcomment']), + "\n\t" . \PHP_EOL; echo '
    {$this->lang['strname']}_maxNameLen}\" value=\"", - \htmlspecialchars($_REQUEST['name']), "\" />
    {$this->lang['strnumcols']}_maxNameLen}\" value=\"", - \htmlspecialchars($_REQUEST['fields']), "\" />
    {$this->lang['stroptions']}
    \n\t\t\t\n\t\t
    {$this->lang['strcomment']}
    ' . \PHP_EOL; echo '

    ' . \PHP_EOL; echo '' . \PHP_EOL; echo $this->view->form; echo "lang['strnext']}\" />" . \PHP_EOL; - echo sprintf('

    %s',$this->lang['strcancel'], \PHP_EOL); + echo \sprintf('

    %s', $this->lang['strcancel'], \PHP_EOL); echo '' . \PHP_EOL; break; @@ -402,14 +397,17 @@ class TablesController extends BaseController echo "\t\n\t\t", $i + 1, '. ' . \PHP_EOL; echo "\t\t_maxNameLen}\" value=\"", - \htmlspecialchars($_REQUEST['field'][$i]), '" />' . \PHP_EOL; + \htmlspecialchars($_REQUEST['field'][$i]), + '" />' . \PHP_EOL; echo "\t\t\n\t\t\t\n\t\t\n"; @@ -440,17 +440,20 @@ class TablesController extends BaseController echo "\t\t\t\n\t\t" . \PHP_EOL; echo "\t\t' . \PHP_EOL; + \htmlspecialchars($_REQUEST['length'][$i]), + '" />' . \PHP_EOL; echo "\t\t' . \PHP_EOL; echo "\t\t' . \PHP_EOL; + . (isset($_REQUEST['uniquekey'][$i]) ? ' checked="checked"' : '') . ' />' . \PHP_EOL; echo "\t\t' . \PHP_EOL; + . (isset($_REQUEST['primarykey'][$i]) ? ' checked="checked"' : '') + . ' />' . \PHP_EOL; echo "\t\t' . \PHP_EOL; + \htmlspecialchars($_REQUEST['default'][$i]), + '" />' . \PHP_EOL; echo "\t\t + \htmlspecialchars($_REQUEST['colcomment'][$i]), + "\" /> \n\t" . \PHP_EOL; } @@ -470,7 +473,7 @@ class TablesController extends BaseController echo '' . \PHP_EOL; } echo "lang['strcreate']}\" />" . \PHP_EOL; - echo sprintf('

    %s',$this->lang['strcancel'], \PHP_EOL); + echo \sprintf('

    %s', $this->lang['strcancel'], \PHP_EOL); echo '' . \PHP_EOL; break; @@ -612,18 +615,18 @@ class TablesController extends BaseController } echo "\t\n\t\t{$this->lang['stroptions']}\n\t\t"; echo '"; if ($data->hasCreateTableLikeWithConstraints()) { echo '
    "; } if ($data->hasCreateTableLikeWithIndexes()) { echo '
    "; } echo "\n\t" . \PHP_EOL; @@ -632,7 +635,7 @@ class TablesController extends BaseController echo '' . \PHP_EOL; echo $this->view->form; echo "

    lang['strcreate']}\" />" . \PHP_EOL; - echo sprintf('

    %s',$this->lang['strcancel'], \PHP_EOL); + echo \sprintf('

    %s', $this->lang['strcancel'], \PHP_EOL); echo '' . \PHP_EOL; } else { if ('' === \trim($_REQUEST['name'])) { @@ -726,7 +729,8 @@ class TablesController extends BaseController echo "" . \PHP_EOL; echo ''; echo 'fields['attname']]) ? ' checked="checked"' : '', ' />'; + isset($_REQUEST['show'][$attrs->fields['attname']]) ? ' checked="checked"' : '', + ' />'; echo '', $this->misc->printVal($attrs->fields['attname']), ''; echo '', $this->misc->printVal($data->formatType($attrs->fields['type'], $attrs->fields['atttypmod'])), ''; echo ''; @@ -734,7 +738,9 @@ class TablesController extends BaseController foreach (\array_keys($data->selectOps) as $v) { echo '' . \PHP_EOL; + '>', + \htmlspecialchars($v), + '' . \PHP_EOL; } echo "\n" . \PHP_EOL; echo '', $data->printField( @@ -754,11 +760,11 @@ class TablesController extends BaseController } echo '

    ' . \PHP_EOL; - echo sprintf('%s',\htmlspecialchars($_REQUEST['table']), \PHP_EOL); + echo \sprintf('%s', \htmlspecialchars($_REQUEST['table']), \PHP_EOL); echo '' . \PHP_EOL; echo $this->view->form; echo "lang['strselect']}\" />" . \PHP_EOL; - echo sprintf('

    %s',$this->lang['strcancel'], \PHP_EOL); + echo \sprintf('

    %s', $this->lang['strcancel'], \PHP_EOL); echo '' . \PHP_EOL; return; @@ -865,7 +871,8 @@ class TablesController extends BaseController ) ); echo "fields['attnum']}]\" value=\"", - \htmlspecialchars($attrs->fields['type']), '" />'; + \htmlspecialchars($attrs->fields['type']), + '" />'; echo '' . \PHP_EOL; echo "' . \PHP_EOL; echo '' . \PHP_EOL; echo '' . \PHP_EOL; - echo sprintf('%s',\htmlspecialchars($_REQUEST['table']), \PHP_EOL); + echo \sprintf('%s', \htmlspecialchars($_REQUEST['table']), \PHP_EOL); echo "

    lang['strinsert']}\" />" . \PHP_EOL; echo "lang['strinsertandrepeat']}\" />" . \PHP_EOL; echo "lang['strcancel']}\" />" . \PHP_EOL; @@ -1016,7 +1023,7 @@ class TablesController extends BaseController echo '

    ' . \PHP_EOL; - echo sprintf('%s',\htmlspecialchars($_REQUEST['table']), \PHP_EOL); + echo \sprintf('%s', \htmlspecialchars($_REQUEST['table']), \PHP_EOL); // END not mutli empty } echo " "; @@ -1092,7 +1099,7 @@ class TablesController extends BaseController echo '

    ', \sprintf($this->lang['strconfdroptable'], $this->misc->printVal($_REQUEST['table'])), '

    ' . \PHP_EOL; echo '' . \PHP_EOL; - echo sprintf('%s',\htmlspecialchars($_REQUEST['table']), \PHP_EOL); + echo \sprintf('%s', \htmlspecialchars($_REQUEST['table']), \PHP_EOL); // END if multi drop } diff --git a/src/controllers/TablespacesController.php b/src/controllers/TablespacesController.php index 98be551e..d14ad956 100644 --- a/src/controllers/TablespacesController.php +++ b/src/controllers/TablespacesController.php @@ -216,7 +216,7 @@ class TablespacesController extends BaseController echo '

    ' . \PHP_EOL; echo '' . \PHP_EOL; echo "lang['stralter']}\" />" . \PHP_EOL; - echo sprintf('

    %s',$this->lang['strcancel'], \PHP_EOL); + echo \sprintf('

    %s', $this->lang['strcancel'], \PHP_EOL); echo '
    ' . \PHP_EOL; } else { echo "

    {$this->lang['strnodata']}

    " . \PHP_EOL; @@ -334,7 +334,7 @@ class TablespacesController extends BaseController echo '' . \PHP_EOL; echo '

    ' . \PHP_EOL; echo "lang['strcreate']}\" />" . \PHP_EOL; - echo sprintf('

    %s',$this->lang['strcancel'], \PHP_EOL); + echo \sprintf('

    %s', $this->lang['strcancel'], \PHP_EOL); echo '' . \PHP_EOL; } diff --git a/src/controllers/TblpropertiesController.php b/src/controllers/TblpropertiesController.php index ab84dd62..81f0db2b 100644 --- a/src/controllers/TblpropertiesController.php +++ b/src/controllers/TblpropertiesController.php @@ -32,7 +32,7 @@ class TblpropertiesController extends BaseController switch ($this->action) { case 'alter': - if (isset($_POST['alter'])) { + if (null !== $this->getPostParam('alter')) { $this->doSaveAlter(); } else { $this->doDefault(); @@ -52,7 +52,7 @@ class TblpropertiesController extends BaseController break; case 'add_column': - if (isset($_POST['cancel'])) { + if (null !== $this->getPostParam('cancel')) { $this->doDefault(); } else { $header_template = 'header_select2.twig'; @@ -61,7 +61,7 @@ class TblpropertiesController extends BaseController break; /*case 'properties': - if (isset($_POST['cancel'])) { + if($this->getPostParam('cancel')!==null){ $this->doDefault(); } else { $this->doProperties(); @@ -69,7 +69,7 @@ class TblpropertiesController extends BaseController break; case 'drop': - if (isset($_POST['drop'])) { + if (null !== $this->getPostParam('drop')) { $this->doDrop(false); } else { $this->doDefault(); @@ -287,7 +287,7 @@ class TblpropertiesController extends BaseController $this->coalesceArr($_POST, 'tablespace', null); $this->coalesceArr($_POST, 'newschema', null); - $with_oids = boolval($this->getPostParam('with_oids', false)); + $with_oids = (bool) ($this->getPostParam('with_oids', false)); $status = $data->alterTable( $this->getPostParam('table'), @@ -316,7 +316,6 @@ class TblpropertiesController extends BaseController } $this->doDefault($this->lang['strtablealtered']); } else { - $this->doAlter($this->lang['strtablealteredbad']); } } @@ -417,22 +416,22 @@ class TblpropertiesController extends BaseController } echo "\t\t\t\n\t\t\n\t" . \PHP_EOL; } - echo " " . \PHP_EOL; + echo ' ' . \PHP_EOL; echo ''; - echo sprintf(' %s', $data->hasObjectID($table->fields['relname']) ? 'checked' : '', ' WITH OIDS'); + echo \sprintf(' %s', $data->hasObjectID($table->fields['relname']) ? 'checked' : '', ' WITH OIDS'); echo ''; echo "{$this->lang['strcomment']}" . \PHP_EOL; echo ''; - echo sprintf('', \htmlspecialchars($_POST['comment'])); - echo sprintf('%s%s', \PHP_EOL, \PHP_EOL); + echo \sprintf('', \htmlspecialchars($_POST['comment'])); + echo \sprintf('%s%s', \PHP_EOL, \PHP_EOL); echo '

    ' . \PHP_EOL; - echo sprintf('%s', \htmlspecialchars($_REQUEST['table']), \PHP_EOL); + echo \sprintf('%s', \htmlspecialchars($_REQUEST['table']), \PHP_EOL); echo $this->view->form; echo "lang['stralter']}\" />" . \PHP_EOL; - echo sprintf('

    %s', $this->lang['strcancel'], \PHP_EOL); + echo \sprintf('

    %s', $this->lang['strcancel'], \PHP_EOL); echo '' . \PHP_EOL; } else { echo "

    {$this->lang['strnodata']}

    " . \PHP_EOL; @@ -505,7 +504,7 @@ class TblpropertiesController extends BaseController echo '' . \PHP_EOL; echo '

    ' . \PHP_EOL; echo $this->view->form; - echo sprintf('%s', \htmlspecialchars($_REQUEST['table']), \PHP_EOL); + echo \sprintf('%s', \htmlspecialchars($_REQUEST['table']), \PHP_EOL); echo "lang['strimport']}\" />

    " . \PHP_EOL; echo '' . \PHP_EOL; } @@ -616,13 +615,13 @@ class TblpropertiesController extends BaseController echo '

    ' . \PHP_EOL; echo '' . \PHP_EOL; echo $this->view->form; - echo sprintf('%s', \htmlspecialchars($_REQUEST['table']), \PHP_EOL); + echo \sprintf('%s', \htmlspecialchars($_REQUEST['table']), \PHP_EOL); if (!$data->hasCreateFieldWithConstraints()) { echo '' . \PHP_EOL; } echo "lang['stradd']}\" />" . \PHP_EOL; - echo sprintf('

    %s', $this->lang['strcancel'], \PHP_EOL); + echo \sprintf('

    %s', $this->lang['strcancel'], \PHP_EOL); echo '' . \PHP_EOL; echo '" . \PHP_EOL; @@ -683,7 +682,7 @@ class TblpropertiesController extends BaseController echo '
    ' . \PHP_EOL; echo '' . \PHP_EOL; - echo sprintf('%s', \htmlspecialchars($_REQUEST['table']), \PHP_EOL); + echo \sprintf('%s', \htmlspecialchars($_REQUEST['table']), \PHP_EOL); echo '' . \PHP_EOL; echo $this->view->form; echo "

    " . \PHP_EOL; diff --git a/src/controllers/TriggersController.php b/src/controllers/TriggersController.php index d7c3d34f..83faeb49 100644 --- a/src/controllers/TriggersController.php +++ b/src/controllers/TriggersController.php @@ -29,7 +29,7 @@ class TriggersController extends BaseController switch ($this->action) { case 'alter': - if (isset($_POST['alter'])) { + if (null !== $this->getPostParam('alter')) { $this->doSaveAlter(); } else { $this->doDefault(); @@ -49,7 +49,7 @@ class TriggersController extends BaseController break; case 'save_create': - if (isset($_POST['cancel'])) { + if (null !== $this->getPostParam('cancel')) { $this->doDefault(); } else { $this->doSaveCreate(); @@ -281,11 +281,11 @@ class TriggersController extends BaseController \htmlspecialchars($_POST['name']), '" />' . \PHP_EOL; echo '' . \PHP_EOL; echo '

    ' . \PHP_EOL; - echo sprintf('%s',\htmlspecialchars($_REQUEST['table']), \PHP_EOL); + echo \sprintf('%s', \htmlspecialchars($_REQUEST['table']), \PHP_EOL); echo '' . \PHP_EOL; echo $this->view->form; echo "lang['strok']}\" />" . \PHP_EOL; - echo sprintf('

    %s',$this->lang['strcancel'], \PHP_EOL); + echo \sprintf('

    %s', $this->lang['strcancel'], \PHP_EOL); echo '
    ' . \PHP_EOL; } else { echo "

    {$this->lang['strnodata']}

    " . \PHP_EOL; @@ -313,7 +313,7 @@ class TriggersController extends BaseController echo '
    ' . \PHP_EOL; echo '' . \PHP_EOL; - echo sprintf('%s',\htmlspecialchars($_REQUEST['table']), \PHP_EOL); + echo \sprintf('%s', \htmlspecialchars($_REQUEST['table']), \PHP_EOL); echo '' . \PHP_EOL; echo $this->view->form; echo "

    " . \PHP_EOL; @@ -352,7 +352,7 @@ class TriggersController extends BaseController echo '' . \PHP_EOL; echo '' . \PHP_EOL; - echo sprintf('%s',\htmlspecialchars($_REQUEST['table']), \PHP_EOL); + echo \sprintf('%s', \htmlspecialchars($_REQUEST['table']), \PHP_EOL); echo '' . \PHP_EOL; echo $this->view->form; echo "lang['stryes']}\" />" . \PHP_EOL; @@ -390,7 +390,7 @@ class TriggersController extends BaseController echo '' . \PHP_EOL; echo '' . \PHP_EOL; - echo sprintf('%s',\htmlspecialchars($_REQUEST['table']), \PHP_EOL); + echo \sprintf('%s', \htmlspecialchars($_REQUEST['table']), \PHP_EOL); echo '' . \PHP_EOL; echo $this->view->form; echo "lang['stryes']}\" />" . \PHP_EOL; @@ -473,9 +473,9 @@ class TriggersController extends BaseController echo '()' . \PHP_EOL; echo '' . \PHP_EOL; echo "

    lang['strcreate']}\" />" . \PHP_EOL; - echo sprintf('

    %s',$this->lang['strcancel'], \PHP_EOL); + echo \sprintf('

    %s', $this->lang['strcancel'], \PHP_EOL); echo '' . \PHP_EOL; - echo sprintf('%s',\htmlspecialchars($_REQUEST['table']), \PHP_EOL); + echo \sprintf('%s', \htmlspecialchars($_REQUEST['table']), \PHP_EOL); echo $this->view->form; echo '
    ' . \PHP_EOL; } diff --git a/src/controllers/TypesController.php b/src/controllers/TypesController.php index f5ea87a2..7c866657 100644 --- a/src/controllers/TypesController.php +++ b/src/controllers/TypesController.php @@ -29,7 +29,7 @@ class TypesController extends BaseController switch ($this->action) { case 'create_comp': - if (isset($_POST['cancel'])) { + if (null !== $this->getPostParam('cancel')) { $this->doDefault(); } else { $this->doCreateComposite(); @@ -37,7 +37,7 @@ class TypesController extends BaseController break; case 'create_enum': - if (isset($_POST['cancel'])) { + if (null !== $this->getPostParam('cancel')) { $this->doDefault(); } else { $this->doCreateEnum(); @@ -45,7 +45,7 @@ class TypesController extends BaseController break; case 'save_create': - if (isset($_POST['cancel'])) { + if (null !== $this->getPostParam('cancel')) { $this->doDefault(); } else { $this->doSaveCreate(); @@ -57,7 +57,7 @@ class TypesController extends BaseController break; case 'drop': - if (isset($_POST['cancel'])) { + if (null !== $this->getPostParam('cancel')) { $this->doDefault(); } else { $this->doDrop(false); @@ -350,7 +350,7 @@ class TypesController extends BaseController echo '' . \PHP_EOL; echo $this->view->form; echo "lang['strdrop']}\" />" . \PHP_EOL; - echo sprintf('

    %s',$this->lang['strcancel'], \PHP_EOL); + echo \sprintf('

    %s', $this->lang['strcancel'], \PHP_EOL); echo '' . \PHP_EOL; } else { $status = $data->dropType($_POST['type'], isset($_POST['cascade'])); @@ -404,7 +404,7 @@ class TypesController extends BaseController echo '' . \PHP_EOL; echo $this->view->form; echo "lang['strnext']}\" />" . \PHP_EOL; - echo sprintf('

    %s',$this->lang['strcancel'], \PHP_EOL); + echo \sprintf('

    %s', $this->lang['strcancel'], \PHP_EOL); echo '' . \PHP_EOL; break; @@ -486,7 +486,7 @@ class TypesController extends BaseController echo '' . \PHP_EOL; echo '' . \PHP_EOL; echo "lang['strcreate']}\" />" . \PHP_EOL; - echo sprintf('

    %s',$this->lang['strcancel'], \PHP_EOL); + echo \sprintf('

    %s', $this->lang['strcancel'], \PHP_EOL); echo '' . \PHP_EOL; break; @@ -581,7 +581,7 @@ class TypesController extends BaseController echo '' . \PHP_EOL; echo $this->view->form; echo "lang['strnext']}\" />" . \PHP_EOL; - echo sprintf('

    %s',$this->lang['strcancel'], \PHP_EOL); + echo \sprintf('

    %s', $this->lang['strcancel'], \PHP_EOL); echo '' . \PHP_EOL; break; @@ -630,7 +630,7 @@ class TypesController extends BaseController echo '' . \PHP_EOL; echo '' . \PHP_EOL; echo "lang['strcreate']}\" />" . \PHP_EOL; - echo sprintf('

    %s',$this->lang['strcancel'], \PHP_EOL); + echo \sprintf('

    %s', $this->lang['strcancel'], \PHP_EOL); echo '' . \PHP_EOL; break; @@ -779,7 +779,7 @@ class TypesController extends BaseController echo '

    ' . \PHP_EOL; echo $this->view->form; echo "lang['strcreate']}\" />" . \PHP_EOL; - echo sprintf('

    %s',$this->lang['strcancel'], \PHP_EOL); + echo \sprintf('

    %s', $this->lang['strcancel'], \PHP_EOL); echo '' . \PHP_EOL; } diff --git a/src/controllers/UsersController.php b/src/controllers/UsersController.php index bffe2104..54034dfe 100644 --- a/src/controllers/UsersController.php +++ b/src/controllers/UsersController.php @@ -351,7 +351,7 @@ class UsersController extends BaseController echo '' . \PHP_EOL; echo $this->view->form; echo "lang['stralter']}\" />" . \PHP_EOL; - echo sprintf('

    %s',$this->lang['strcancel'], \PHP_EOL); + echo \sprintf('

    %s', $this->lang['strcancel'], \PHP_EOL); echo '' . \PHP_EOL; } else { echo "

    {$this->lang['strnodata']}

    " . \PHP_EOL; @@ -405,7 +405,7 @@ class UsersController extends BaseController echo '' . \PHP_EOL; echo $this->view->form; echo "lang['strdrop']}\" />" . \PHP_EOL; - echo sprintf('

    %s',$this->lang['strcancel'], \PHP_EOL); + echo \sprintf('

    %s', $this->lang['strcancel'], \PHP_EOL); echo '' . \PHP_EOL; } else { $status = $data->dropUser($_REQUEST['username']); @@ -459,7 +459,7 @@ class UsersController extends BaseController echo '

    ' . \PHP_EOL; echo $this->view->form; echo "lang['strcreate']}\" />" . \PHP_EOL; - echo sprintf('

    %s',$this->lang['strcancel'], \PHP_EOL); + echo \sprintf('

    %s', $this->lang['strcancel'], \PHP_EOL); echo '' . \PHP_EOL; } diff --git a/src/controllers/ViewpropertiesController.php b/src/controllers/ViewpropertiesController.php index 237b0664..523d5c47 100644 --- a/src/controllers/ViewpropertiesController.php +++ b/src/controllers/ViewpropertiesController.php @@ -35,7 +35,7 @@ class ViewpropertiesController extends BaseController switch ($this->action) { case 'save_edit': - if (isset($_POST['cancel'])) { + if (null !== $this->getPostParam('cancel')) { $this->doDefinition(); } else { $this->doSaveEdit(); @@ -57,7 +57,7 @@ class ViewpropertiesController extends BaseController break; case 'properties': - if (isset($_POST['cancel'])) { + if (null !== $this->getPostParam('cancel')) { $this->doDefault(); } else { $this->doProperties(); @@ -65,7 +65,7 @@ class ViewpropertiesController extends BaseController break; case 'alter': - if (isset($_POST['alter'])) { + if (null !== $this->getPostParam('alter')) { $this->doAlter(false); } else { $this->doDefault(); @@ -77,7 +77,7 @@ class ViewpropertiesController extends BaseController break; /*case 'drop': - if (isset($_POST['drop'])) { + if($this->getPostParam('drop')!==null){ $this->doDrop(false); } else { $this->doDefault(); @@ -233,7 +233,7 @@ EOT; echo '' . \PHP_EOL; echo '' . \PHP_EOL; echo "lang['stralter']}\" />" . \PHP_EOL; - echo sprintf('

    %s',$this->lang['strcancel'], \PHP_EOL); + echo \sprintf('

    %s', $this->lang['strcancel'], \PHP_EOL); echo '' . \PHP_EOL; break; @@ -345,7 +345,7 @@ EOT; echo '' . \PHP_EOL; echo $this->view->form; echo "

    lang['stralter']}\" />" . \PHP_EOL; - echo sprintf('

    %s',$this->lang['strcancel'], \PHP_EOL); + echo \sprintf('

    %s', $this->lang['strcancel'], \PHP_EOL); echo '' . \PHP_EOL; } else { echo "

    {$this->lang['strnodata']}

    " . \PHP_EOL; diff --git a/src/controllers/ViewsController.php b/src/controllers/ViewsController.php index c8212af6..84feea4d 100644 --- a/src/controllers/ViewsController.php +++ b/src/controllers/ViewsController.php @@ -64,7 +64,7 @@ class ViewsController extends BaseController break; case 'set_params_create': - if (isset($_POST['cancel'])) { + if (null !== $this->getPostParam('cancel')) { $this->doDefault(); } else { $this->doSetParamsCreate(); @@ -84,7 +84,7 @@ class ViewsController extends BaseController break; case 'drop': - if (isset($_POST['drop'])) { + if (null !== $this->getPostParam('drop')) { $this->doDrop(false); } else { $this->doDefault(); @@ -418,7 +418,7 @@ class ViewsController extends BaseController echo '

    ' . \PHP_EOL; echo $this->view->form; echo "lang['strcreate']}\" />" . \PHP_EOL; - echo sprintf('

    %s',$this->lang['strcancel'], \PHP_EOL); + echo \sprintf('

    %s', $this->lang['strcancel'], \PHP_EOL); echo '' . \PHP_EOL; } diff --git a/src/database/ADOdbBase.php b/src/database/ADOdbBase.php index 1b23f47e..abd225b6 100644 --- a/src/database/ADOdbBase.php +++ b/src/database/ADOdbBase.php @@ -6,8 +6,6 @@ namespace PHPPgAdmin\Database; -use PHPPgAdmin\ADONewConnection; - /** * @file * Parent class of all ADODB objects. @@ -18,24 +16,45 @@ class ADOdbBase { use \PHPPgAdmin\Traits\HelperTrait; use \PHPPgAdmin\Database\Traits\HasTrait; -/** @var array */ + + /** + * @var array + */ public $lang; -/** @var array */ + + /** + * @var array + */ public $conf; -/** @var \Slim\Container */ + + /** + * @var \ADODB_postgres9 + */ + public $conn; + + /** + * @var \Slim\Container + */ protected $container; -/** @var array */ + + /** + * @var array + */ protected $server_info; - /** @var string */ + + /** + * @var string + */ protected $lastExecutedSql; + /** * Base constructor. * - * @param \ADODB_postgres9|\ADODB_pdo $conn The connection object + * @param \ADODB_postgres9 $conn The connection object * @param mixed $container * @param mixed $server_info */ - public function __construct( &$conn, $container, $server_info) + public function __construct(&$conn, $container, $server_info) { $this->container = $container; $this->server_info = $server_info; @@ -44,9 +63,9 @@ class ADOdbBase $this->conf = $container->get('conf'); $this->prtrace('instanced connection class'); - $this->lastExecutedSql=''; + $this->lastExecutedSql = ''; $this->conn = $conn; - } + } /** * Sets the comment for an object in the database. @@ -120,14 +139,19 @@ class ADOdbBase } else { $sql .= 'NULL;'; } -$this->lastExecutedSql=$sql; + $this->lastExecutedSql = $sql; + return $this->execute($sql); } -public function getLastExecutedSQL():string { - $lastExecutedSql=$this->lastExecutedSql; - $this->lastExecutedSql=''; - return $lastExecutedSql; -} + + public function getLastExecutedSQL(): string + { + $lastExecutedSql = $this->lastExecutedSql; + $this->lastExecutedSql = ''; + + return $lastExecutedSql; + } + /** * Turns on or off query debugging. * @@ -190,7 +214,7 @@ public function getLastExecutedSQL():string { try { $rs = $this->conn->Execute($sql); - return $this->conn->ErrorNo(); + return $this->ErrorNo(); } catch (\Exception $e) { return $e->getCode(); } @@ -222,6 +246,16 @@ public function getLastExecutedSQL():string { } } + public function ErrorNo(): int + { + return $this->conn->ErrorNo(); + } + + public function ErrorMsg(): string + { + return $this->conn->ErrorMsg(); + } + /** * Retrieves a single value from a query. * @@ -239,7 +273,7 @@ public function getLastExecutedSQL():string { // If failure, or no rows returned, return error value if (!$rs) { - return $this->conn->ErrorNo(); + return $this->ErrorNo(); } if (0 === $rs->recordCount()) { @@ -286,7 +320,7 @@ public function getLastExecutedSQL():string { // Check for failures if (!$this->conn->Execute($sql)) { // Check for referential integrity failure - if (\mb_stristr($this->conn->ErrorMsg(), 'referential')) { + if (\mb_stristr($this->ErrorMsg(), 'referential')) { return -1; } } @@ -296,7 +330,7 @@ public function getLastExecutedSQL():string { return -2; } - return $this->conn->ErrorNo(); + return $this->ErrorNo(); } /** @@ -385,16 +419,16 @@ public function getLastExecutedSQL():string { // Check for failures if (!$this->conn->Execute($sql)) { // Check for unique constraint failure - if (\mb_stristr($this->conn->ErrorMsg(), 'unique')) { + if (\mb_stristr($this->ErrorMsg(), 'unique')) { return -1; } - if (\mb_stristr($this->conn->ErrorMsg(), 'referential')) { + if (\mb_stristr($this->ErrorMsg(), 'referential')) { return -2; } // Check for referential integrity failure } - return $this->conn->ErrorNo(); + return $this->ErrorNo(); } /** @@ -456,11 +490,11 @@ public function getLastExecutedSQL():string { // Check for failures if (!$this->conn->Execute($setClause . $whereClause)) { // Check for unique constraint failure - if (\mb_stristr($this->conn->ErrorMsg(), 'unique')) { + if (\mb_stristr($this->ErrorMsg(), 'unique')) { return -1; } - if (\mb_stristr($this->conn->ErrorMsg(), 'referential')) { + if (\mb_stristr($this->ErrorMsg(), 'referential')) { return -2; } // Check for referential integrity failure } @@ -470,7 +504,7 @@ public function getLastExecutedSQL():string { return -3; } - return $this->conn->ErrorNo(); + return $this->ErrorNo(); } /** @@ -480,7 +514,7 @@ public function getLastExecutedSQL():string { */ public function beginTransaction() { - return intval(!$this->conn->BeginTrans()); + return (int) (!$this->conn->BeginTrans()); } /** @@ -490,7 +524,7 @@ public function getLastExecutedSQL():string { */ public function endTransaction() { - return intval(!$this->conn->CommitTrans()); + return (int) (!$this->conn->CommitTrans()); } /** @@ -500,7 +534,7 @@ public function getLastExecutedSQL():string { */ public function rollbackTransaction() { - return intval( !$this->conn->RollbackTrans()); + return (int) (!$this->conn->RollbackTrans()); } /** diff --git a/src/database/Connection.php b/src/database/Connection.php new file mode 100644 index 00000000..db541416 --- /dev/null +++ b/src/database/Connection.php @@ -0,0 +1,177 @@ + 'Postgres13', + '12' => 'Postgres12', + '11' => 'Postgres11', + '10' => 'Postgres10', + '9.7' => 'Postgres96', + '9.6' => 'Postgres96', + '9.5' => 'Postgres95', + '9.4' => 'Postgres94', + '9.3' => 'Postgres93', + '9.2' => 'Postgres92', + '9.1' => 'Postgres91', + '9.0' => 'Postgres90', + ]; + + // The backend platform. Set to UNKNOWN by default. + private $_connection_result; + + /** + * Creates a new connection. Will actually make a database connection. + * + * @param array $server_info + * @param string $database database name + * @param \Slim\Container $container + * @param int $fetchMode Defaults to associative. Override for different behaviour + */ + public function __construct($server_info, $database, $container, $fetchMode = \ADODB_FETCH_ASSOC) + { + $host = $server_info['host']; + $port = $server_info['port']; + $sslmode = $server_info['sslmode']; + $user = $server_info['username']; + $password = $server_info['password']; + + $this->server_info = $server_info; + + $this->container = $container; + + $this->conn = \ADONewConnection('postgres9'); + //$this->conn->debug = true; + $this->conn->setFetchMode($fetchMode); + + // Ignore host if null + if (null === $host || '' === $host) { + if (null !== $port && '' !== $port) { + $pghost = ':' . $port; + } else { + $pghost = ''; + } + } else { + $pghost = "{$host}:{$port}"; + } + + // Add sslmode to $pghost as needed + if (('disable' === $sslmode) || ('allow' === $sslmode) || ('prefer' === $sslmode) || ('require' === $sslmode)) { + $pghost .= ':' . $sslmode; + } elseif ('legacy' === $sslmode) { + $pghost .= ' requiressl=1'; + } + + try { + $this->conn->connect($pghost, $user, $password, $database); + //$this->prtrace($this->conn); + } catch (\Exception $e) { + dump($e); + $this->prtrace($e->getMessage(), $e->getTrace()); + } + } + + public function getConnectionResult() + { + return $this->_connection_result; + } + + /** + * Gets the name of the correct database driver to use. As a side effect, + * sets the platform. + * + * @param string $description A description of the database and version (returns by reference) + * + * @return string The driver. e.g. Postgres96 + */ + public function getDriver(&$description) + { + $version = null; + + if ($this->conn->_connectionID) { + $v = \pg_version($this->conn->_connectionID); + + //\PhpConsole\Handler::getInstance()->debug($v, 'pg_version'); + + if (isset($v['server'])) { + $version = $v['server']; + } + } + // If we didn't manage to get the version without a query, query... + if (!isset($version)) { + $adodb = new ADOdbBase($this->conn, $this->container, $this->server_info); + + $sql = 'SELECT VERSION() AS version'; + $field = $adodb->selectField($sql, 'version'); + + // Check the platform, if it's mingw, set it + if (\preg_match('/ mingw /i', $field)) { + $this->platform = 'MINGW'; + } + + $params = \explode(' ', $field); + + if (!isset($params[1])) { + return null; + } + + $version = $params[1]; // eg. 8.4.4 + } + + $description = "PostgreSQL {$version}"; + + $version_parts = \explode('.', $version); + + if ((int) (10 <= $version_parts[0])) { + $major_version = $version_parts[0]; + } else { + $major_version = \implode('.', [$version_parts[0], $version_parts[1]]); + } + + //$this->prtrace(['pg_version' => pg_version($this->conn->_connectionID), 'version' => $version, 'major_version' => $major_version]); + // Detect version and choose appropriate database driver + if (\array_key_exists($major_version, $this->version_dictionary)) { + return $this->version_dictionary[$major_version]; + } + + // if major version is less than 9 return null, we don't support it + if (9 > (int) \mb_substr($version, 0, 1)) { + return null; + } + + // If unknown version, then default to latest driver + return 'Postgres'; + } + + /** + * Get the last error in the connection. + * + * @return string Error string + */ + public function getLastError() + { + return \pg_last_error($this->conn->_connectionID); + } +} diff --git a/src/database/Postgres.php b/src/database/Postgres.php index d2c31f8a..3d2d8449 100644 --- a/src/database/Postgres.php +++ b/src/database/Postgres.php @@ -36,6 +36,21 @@ class Postgres extends ADOdbBase public $conf; + /** + * @var float + */ + public $major_version = 9.6; + + /** + * @var class-string + */ + public $help_classname = \PHPPgAdmin\Help\PostgresDoc::class; + + /** + * @var \PHPPgAdmin\Help\PostgresDoc + */ + public $help_class; + protected $container; protected $server_info; @@ -49,6 +64,8 @@ class Postgres extends ADOdbBase $this->lang = $container->get('lang'); $this->conf = $container->get('conf'); $this->server_info = $server_info; + $this->help_class = new $this->help_classname($this->conf, $this->major_version); + $this->lastExecutedSql = ''; } /** @@ -60,23 +77,24 @@ class Postgres extends ADOdbBase */ public function getHelp($help) { - $this->getHelpPages(); + $this->help_page = $this->help_class->getHelpTopics(); + $this->help_base = $this->help_class->getHelpBase(); - if (isset($this->help_page[$help])) { - if (\is_array($this->help_page[$help])) { - $urls = []; + if (!$topicResult = $this->help_class->getHelpTopic($help)) { + return null; + } - foreach ($this->help_page[$help] as $link) { - $urls[] = $this->help_base . $link; - } + if (\is_array($topicResult)) { + $urls = []; - return $urls; + foreach ($topicResult as $link) { + $urls[] = $this->help_base . $link; } - return $this->help_base . $this->help_page[$help]; + return $urls; } - return null; + return $this->help_base . $topicResult; } /** @@ -84,15 +102,9 @@ class Postgres extends ADOdbBase * get help page by instancing the corresponding help class * if $this->help_page and $this->help_base are set, this function is a noop. */ - public function getHelpPages(): void + public function getHelpPages(): array { - if (null === $this->help_page || null === $this->help_base) { - $help_classname = '\PHPPgAdmin\Help\PostgresDoc' . \str_replace('.', '', $this->major_version); - - $help_class = new $help_classname($this->conf, $this->major_version); - $this->help_page = $help_class->getHelpPage(); - $this->help_base = $help_class->getHelpBase(); - } + return $this->help_class->getHelpTopics(); } // Formatting functions @@ -144,7 +156,7 @@ class Postgres extends ADOdbBase if (null !== $value) { $value = $this->escapeBytea($value); } - // no break + // no break case 'text': case 'text[]': case 'json': @@ -493,7 +505,8 @@ class Postgres extends ADOdbBase * end of quote if matching non-backslashed character. * backslashes don't count for double quotes, though. */ - if (\mb_substr($line, $i, 1) === $in_quote && + if ( + \mb_substr($line, $i, 1) === $in_quote && (0 === $bslash_count % 2 || '"' === $in_quote) ) { $in_quote = 0; diff --git a/src/database/Postgres10.php b/src/database/Postgres10.php index c14ba493..a076d824 100644 --- a/src/database/Postgres10.php +++ b/src/database/Postgres10.php @@ -20,8 +20,16 @@ namespace PHPPgAdmin\Database; */ class Postgres10 extends Postgres96 { + /** + * @var float + */ public $major_version = 10; + /** + * @var class-string + */ + public $help_classname = \PHPPgAdmin\Help\PostgresDoc10::class; + /** * Return all tables in current database (and schema). * diff --git a/src/database/Postgres11.php b/src/database/Postgres11.php index 850ae822..9dfce029 100644 --- a/src/database/Postgres11.php +++ b/src/database/Postgres11.php @@ -15,8 +15,16 @@ namespace PHPPgAdmin\Database; */ class Postgres11 extends Postgres10 { + /** + * @var float + */ public $major_version = 11; + /** + * @var class-string + */ + public $help_classname = \PHPPgAdmin\Help\PostgresDoc11::class; + /** * Returns a list of all functions in the database. * In PG 11 proagg was replaced with prokind. diff --git a/src/database/Postgres12.php b/src/database/Postgres12.php index d2b63461..aa8495e1 100644 --- a/src/database/Postgres12.php +++ b/src/database/Postgres12.php @@ -15,8 +15,16 @@ namespace PHPPgAdmin\Database; */ class Postgres12 extends Postgres11 { + /** + * @var float + */ public $major_version = 12; + /** + * @var class-string + */ + public $help_classname = \PHPPgAdmin\Help\PostgresDoc12::class; + /** * Checks to see whether or not a table has a unique id column. * diff --git a/src/database/Postgres13.php b/src/database/Postgres13.php index d3528398..853d5b8c 100644 --- a/src/database/Postgres13.php +++ b/src/database/Postgres13.php @@ -16,5 +16,13 @@ namespace PHPPgAdmin\Database; */ class Postgres13 extends Postgres12 { + /** + * @var float + */ public $major_version = 13; + + /** + * @var class-string + */ + public $help_classname = \PHPPgAdmin\Help\PostgresDoc12::class; } diff --git a/src/database/Postgres90.php b/src/database/Postgres90.php index 6315aa6e..2b06faf0 100644 --- a/src/database/Postgres90.php +++ b/src/database/Postgres90.php @@ -14,5 +14,13 @@ namespace PHPPgAdmin\Database; */ class Postgres90 extends Postgres91 { + /** + * @var float + */ public $major_version = 9.0; + + /** + * @var class-string + */ + public $help_classname = \PHPPgAdmin\Help\PostgresDoc90::class; } diff --git a/src/database/Postgres91.php b/src/database/Postgres91.php index e981f240..43fec0ca 100644 --- a/src/database/Postgres91.php +++ b/src/database/Postgres91.php @@ -16,8 +16,16 @@ namespace PHPPgAdmin\Database; */ class Postgres91 extends Postgres92 { + /** + * @var float + */ public $major_version = 9.1; + /** + * @var class-string + */ + public $help_classname = \PHPPgAdmin\Help\PostgresDoc91::class; + // Administration functions /** diff --git a/src/database/Postgres92.php b/src/database/Postgres92.php index cb2ff754..4e78d22c 100644 --- a/src/database/Postgres92.php +++ b/src/database/Postgres92.php @@ -14,8 +14,16 @@ class Postgres92 extends Postgres93 { public $typIndexes = ['BTREE', 'RTREE', 'GIST', 'GIN', 'HASH']; + /** + * @var float + */ public $major_version = 9.2; + /** + * @var class-string + */ + public $help_classname = \PHPPgAdmin\Help\PostgresDoc92::class; + /** * Returns all available process information. * diff --git a/src/database/Postgres93.php b/src/database/Postgres93.php index b2a0747f..f39a3842 100644 --- a/src/database/Postgres93.php +++ b/src/database/Postgres93.php @@ -12,8 +12,16 @@ namespace PHPPgAdmin\Database; */ class Postgres93 extends Postgres94 { + /** + * @var float + */ public $major_version = 9.3; + /** + * @var class-string + */ + public $help_classname = \PHPPgAdmin\Help\PostgresDoc93::class; + /** * Returns a list of all functions in the database. * diff --git a/src/database/Postgres94.php b/src/database/Postgres94.php index 7fe10201..0f23d0a0 100644 --- a/src/database/Postgres94.php +++ b/src/database/Postgres94.php @@ -14,5 +14,13 @@ class Postgres94 extends Postgres95 { public $typIndexes = ['BTREE', 'RTREE', 'GIST', 'GIN', 'HASH', 'SP-GIST']; + /** + * @var class-string + */ + public $help_classname = \PHPPgAdmin\Help\PostgresDoc94::class; + + /** + * @var float + */ public $major_version = 9.4; } diff --git a/src/database/Postgres95.php b/src/database/Postgres95.php index d6f1f93b..023b24d8 100644 --- a/src/database/Postgres95.php +++ b/src/database/Postgres95.php @@ -14,5 +14,13 @@ class Postgres95 extends Postgres96 { public $typIndexes = ['BTREE', 'BRIN', 'RTREE', 'GIST', 'GIN', 'HASH']; + /** + * @var class-string + */ + public $help_classname = \PHPPgAdmin\Help\PostgresDoc95::class; + + /** + * @var float + */ public $major_version = 9.5; } diff --git a/src/database/Postgres96.php b/src/database/Postgres96.php index ef2ad7e5..2f74c9cf 100644 --- a/src/database/Postgres96.php +++ b/src/database/Postgres96.php @@ -14,8 +14,16 @@ class Postgres96 extends Postgres { public $typIndexes = ['BTREE', 'BRIN', 'RTREE', 'GIST', 'GIN', 'HASH', 'SP-GIST']; + /** + * @var float + */ public $major_version = 9.6; + /** + * @var class-string + */ + public $help_classname = \PHPPgAdmin\Help\PostgresDoc96::class; + // Administration functions /** diff --git a/src/database/databasetraits/HasTrait.php b/src/database/databasetraits/HasTrait.php index aabaa1e9..895449e5 100644 --- a/src/database/databasetraits/HasTrait.php +++ b/src/database/databasetraits/HasTrait.php @@ -16,6 +16,11 @@ trait HasTrait // The backend platform. Set to UNKNOWN by default. public $platform = 'UNKNOWN'; + /** @var string */ + + /** + * @var float + */ public $major_version = 9.6; // Max object name length diff --git a/src/database/databasetraits/TableTrait.php b/src/database/databasetraits/TableTrait.php index 6a27be9c..6df728fe 100644 --- a/src/database/databasetraits/TableTrait.php +++ b/src/database/databasetraits/TableTrait.php @@ -187,8 +187,6 @@ trait TableTrait $sql .= ')'; - - // Handle WITHOUT OIDS if ($this->hasObjectID($table)) { $sql .= ' WITH OIDS'; @@ -793,7 +791,8 @@ trait TableTrait * @param string $schema The new schema for the table * @param string $comment The comment on the table * @param string $tablespace The new tablespace for the table ('' means leave as is) - * @param bool $with_oids If set to FALSE, will drop oids column + * @param bool $with_oids If set to FALSE, will drop oids column + * * @return bool|int 0 success */ public function alterTable($table, $name, $owner, $schema, $comment, $tablespace, bool $with_oids = true) @@ -805,16 +804,16 @@ trait TableTrait } $status = $this->beginTransaction(); - dump(['beginTransaction' => $status]); + //dump(['beginTransaction' => $status]); if (0 !== $status) { $this->rollbackTransaction(); return -1; } - $sql_sentence="ALTER TABLE \"{$this->_schema}\".\"{$tblrs->fields['relname']}\" "; - $status = $this->_alterTable($tblrs, $name, $owner, $schema, $comment, $tablespace, !$with_oids,$sql_sentence); - dump(['_alterTable' => [$status, $sql_sentence.$this->getLastExecutedSQL()]]); + $sql_sentence = "ALTER TABLE \"{$this->_schema}\".\"{$tblrs->fields['relname']}\" "; + $status = $this->_alterTable($tblrs, $name, $owner, $schema, $comment, $tablespace, !$with_oids, $sql_sentence); + //dump(['_alterTable' => [$status, $sql_sentence.$this->getLastExecutedSQL()]]); if (0 !== $status) { $this->rollbackTransaction(); @@ -824,88 +823,14 @@ trait TableTrait return $this->endTransaction(); } - /** - * Protected method which alter a table - * SHOULDN'T BE CALLED OUTSIDE OF A TRANSACTION. - * - * @param \PHPPgAdmin\ADORecordSet $tblrs The table recordSet returned by getTable() - * @param string $name The new name for the table - * @param string $owner The new owner for the table - * @param string $schema The new schema for the table - * @param string $comment The comment on the table - * @param string $tablespace The new tablespace for the table ('' means leave as is) - * @param bool $withoutoids If set to TRUE, will drop oids column - * @return int 0 success - */ - protected function _alterTable($tblrs, $name, $owner, $schema, $comment, $tablespace, bool $withoutoids = false ) - { - $this->fieldArrayClean($tblrs->fields); - - // Comment - $status = $this->setComment('TABLE', '', $tblrs->fields['relname'], $comment); - dump(['setComment' => $this->getLastExecutedSQL()]); - - $this->lastExecutedSql=$this->getLastExecutedSQL(); - if (0 !== $status) { - return -4; - } - - // Owner - $this->fieldClean($owner); - [$TableOwnerStatus,$TableOwnerSQL] = $this->alterTableOwner($tblrs, $owner); - $this->lastExecutedSql.=$TableOwnerSQL?sprintf('%s%s',\PHP_EOL,$TableOwnerSQL):''; - //dump(['alterTableOwner' => [$TableOwnerStatus,$TableOwnerSQL]]); - - if (0 !== $TableOwnerStatus) { - return -5; - } - - // Tablespace - $this->fieldClean($tablespace); - [$TableTablespaceStatus,$TableTablespaceSQL] = $this->alterTableTablespace($tblrs, $tablespace); - $this->lastExecutedSql.=$TableTablespaceSQL?sprintf('%s%s',\PHP_EOL,$TableTablespaceSQL):''; - //dump(['alterTableTablespace' => [$TableTablespaceStatus,$TableTablespaceSQL]]); - - if (0 !== $TableTablespaceStatus) { - return -6; - } - - // Rename - $this->fieldClean($name); - [$TableNameStatus,$TableNameSQL] = $this->alterTableName($tblrs, $name); - $this->lastExecutedSql.=$TableNameSQL?sprintf('%s%s',\PHP_EOL,$TableNameSQL):''; - //dump(['alterTableName' => [$TableNameStatus,$TableNameSQL]]); - - if (0 !== $TableNameStatus) { - return -3; - } - - // Schema - $this->fieldClean($schema); - [$TableSchemaStatus,$TableSchemaSQL] = $this->alterTableSchema($tblrs, $schema); - $this->lastExecutedSql.=$TableSchemaSQL?sprintf('%s%s',\PHP_EOL,$TableSchemaSQL):''; - //dump(['alterTableSchema' => [$TableSchemaStatus,$TableSchemaSQL]]); - - if (0 !== $TableSchemaStatus) { - return -7; - } - [$TableOidsStatus,$TableOidsSQL] = $this->alterTableOids($tblrs, $withoutoids); - $this->lastExecutedSql.=$TableOidsSQL?sprintf('%s%s',\PHP_EOL,$TableOidsSQL):''; - //dump(['alterTableOids' => [$TableOidsStatus,$TableOidsSQL]]); - if (0 !== $TableOidsStatus) { - return -7; - } - - - return 0; - } /** * Enables or disables the oid system column to a table a table's owner * /!\ this function is called from _alterTable which take care of escaping fields. * - * @param \PHPPgAdmin\ADORecordSet $tblrs The table RecordSet returned by getTable() + * @param \PHPPgAdmin\ADORecordSet $tblrs The table RecordSet returned by getTable() * @param null|string $owner + * @param bool $withoutoids * * @return array{0:int,1:string} [status:0 if successful, change_sql: changed attribute] */ @@ -914,27 +839,27 @@ trait TableTrait $status = 0; $change_sql = ''; // no changes. Return 0 - if (boolval($this->hasObjectID($tblrs->fields['relname'])) !== !$withoutoids) { - - + if ((bool) ($this->hasObjectID($tblrs->fields['relname'])) !== !$withoutoids) { /* vars cleaned in _alterTable */ $f_schema = $this->_schema; $this->fieldClean($f_schema); $alter_sql = "ALTER TABLE \"{$f_schema}\".\"{$tblrs->fields['relname']}\" "; - $change_sql = " SET "; + $change_sql = ' SET '; + if ($withoutoids) { $change_sql .= ' WITHOUT OIDS'; } else { $change_sql .= ' WITH OIDS'; } - $sql = implode(' ', [$alter_sql, $change_sql]); + $sql = \implode(' ', [$alter_sql, $change_sql]); $status = $this->execute($sql); } return [$status, $change_sql]; } + /** * Alter a table's owner * /!\ this function is called from _alterTable which take care of escaping fields. @@ -957,7 +882,7 @@ trait TableTrait // superuser only function. $alter_sql = "ALTER TABLE \"{$f_schema}\".\"{$tblrs->fields['relname']}\" "; $change_sql = " OWNER TO \"{$owner}\""; - $sql = implode(' ', [$alter_sql, $change_sql]); + $sql = \implode(' ', [$alter_sql, $change_sql]); $status = $this->execute($sql); } @@ -965,7 +890,6 @@ trait TableTrait return [$status, $change_sql]; } - /** * Alter a table's tablespace * /!\ this function is called from _alterTable which take care of escaping fields. @@ -988,7 +912,7 @@ trait TableTrait // don't want to do this unnecessarily. $alter_sql = "ALTER TABLE \"{$f_schema}\".\"{$tblrs->fields['relname']}\" "; $change_sql = " SET TABLESPACE \"{$tablespace}\""; - $sql = implode(' ', [$alter_sql, $change_sql]); + $sql = \implode(' ', [$alter_sql, $change_sql]); $status = $this->execute($sql); } @@ -1017,7 +941,7 @@ trait TableTrait $alter_sql = "ALTER TABLE \"{$f_schema}\".\"{$tblrs->fields['relname']}\" "; $change_sql = " RENAME TO \"{$name}\""; - $sql = implode(' ', [$alter_sql, $change_sql]); + $sql = \implode(' ', [$alter_sql, $change_sql]); $status = $this->execute($sql); if (0 === $status) { @@ -1051,7 +975,7 @@ trait TableTrait // don't want to do this unnecessarily. $alter_sql = "ALTER TABLE \"{$f_schema}\".\"{$tblrs->fields['relname']}\" "; $change_sql = " SET SCHEMA \"{$schema}\""; - $sql = implode(' ', [$alter_sql, $change_sql]); + $sql = \implode(' ', [$alter_sql, $change_sql]); $status = $this->execute($sql); } @@ -1396,6 +1320,82 @@ trait TableTrait abstract public function getAttributeNames($table, $atts); + /** + * Protected method which alter a table + * SHOULDN'T BE CALLED OUTSIDE OF A TRANSACTION. + * + * @param \PHPPgAdmin\ADORecordSet $tblrs The table recordSet returned by getTable() + * @param string $name The new name for the table + * @param string $owner The new owner for the table + * @param string $schema The new schema for the table + * @param string $comment The comment on the table + * @param string $tablespace The new tablespace for the table ('' means leave as is) + * @param bool $withoutoids If set to TRUE, will drop oids column + * + * @return int 0 success + */ + protected function _alterTable($tblrs, $name, $owner, $schema, $comment, $tablespace, bool $withoutoids = false) + { + $this->fieldArrayClean($tblrs->fields); + + // Comment + $status = $this->setComment('TABLE', '', $tblrs->fields['relname'], $comment); + //dump(['setComment' => $this->getLastExecutedSQL()]); + + $this->lastExecutedSql = $this->getLastExecutedSQL(); + + if (0 !== $status) { + return -4; + } + + // Owner + $this->fieldClean($owner); + [$TableOwnerStatus,$TableOwnerSQL] = $this->alterTableOwner($tblrs, $owner); + $this->lastExecutedSql .= $TableOwnerSQL ? \sprintf('%s%s', \PHP_EOL, $TableOwnerSQL) : ''; + //dump(['alterTableOwner' => [$TableOwnerStatus,$TableOwnerSQL]]); + + if (0 !== $TableOwnerStatus) { + return -5; + } + + // Tablespace + $this->fieldClean($tablespace); + [$TableTablespaceStatus,$TableTablespaceSQL] = $this->alterTableTablespace($tblrs, $tablespace); + $this->lastExecutedSql .= $TableTablespaceSQL ? \sprintf('%s%s', \PHP_EOL, $TableTablespaceSQL) : ''; + //dump(['alterTableTablespace' => [$TableTablespaceStatus,$TableTablespaceSQL]]); + + if (0 !== $TableTablespaceStatus) { + return -6; + } + + // Rename + $this->fieldClean($name); + [$TableNameStatus,$TableNameSQL] = $this->alterTableName($tblrs, $name); + $this->lastExecutedSql .= $TableNameSQL ? \sprintf('%s%s', \PHP_EOL, $TableNameSQL) : ''; + //dump(['alterTableName' => [$TableNameStatus,$TableNameSQL]]); + + if (0 !== $TableNameStatus) { + return -3; + } + + // Schema + $this->fieldClean($schema); + [$TableSchemaStatus,$TableSchemaSQL] = $this->alterTableSchema($tblrs, $schema); + $this->lastExecutedSql .= $TableSchemaSQL ? \sprintf('%s%s', \PHP_EOL, $TableSchemaSQL) : ''; + //dump(['alterTableSchema' => [$TableSchemaStatus,$TableSchemaSQL]]); + + if (0 !== $TableSchemaStatus) { + return -7; + } + [$TableOidsStatus,$TableOidsSQL] = $this->alterTableOids($tblrs, $withoutoids); + $this->lastExecutedSql .= $TableOidsSQL ? \sprintf('%s%s', \PHP_EOL, $TableOidsSQL) : ''; + //dump(['alterTableOids' => [$TableOidsStatus,$TableOidsSQL]]); + if (0 !== $TableOidsStatus) { + return -7; + } + + return 0; + } /** * Dumps serial-like columns in the table. diff --git a/src/decorators/CallbackDecorator.php b/src/decorators/CallbackDecorator.php index 57b4b3e4..970370c6 100644 --- a/src/decorators/CallbackDecorator.php +++ b/src/decorators/CallbackDecorator.php @@ -8,7 +8,7 @@ namespace PHPPgAdmin\Decorators; class CallbackDecorator extends Decorator { - public function __construct($callback, $param = null) + public function __construct(\Closure $callback, $param = null) { $this->fn = $callback; $this->p = $param; diff --git a/src/decorators/Decorator.php b/src/decorators/Decorator.php index 73e9324c..07947bdc 100644 --- a/src/decorators/Decorator.php +++ b/src/decorators/Decorator.php @@ -44,7 +44,7 @@ class Decorator */ public static function get_sanitized_value(&$var, array &$fields, ?string $esc = null) { - if (\is_a($var, 'PHPPgAdmin\Decorators\Decorator')) { + if ($var instanceof self) { $val = $var->value($fields); } else { $val = &$var; @@ -71,12 +71,12 @@ class Decorator } /** - * @param \Closure|\Closure|\Closure $callback - * @param (mixed|string)[]|null $params + * @param \Closure $callback + * @param (mixed|string)[]|null $params */ - public static function callback($callback, ?array $params = null) + public static function callback(\Closure $callback, ?array $params = null) { - return new \PHPPgAdmin\Decorators\CallbackDecorator($callback, $params); + return new CallbackDecorator($callback, $params); } /** diff --git a/src/help/PostgresDoc.php b/src/help/PostgresDoc.php new file mode 100644 index 00000000..c25c3938 --- /dev/null +++ b/src/help/PostgresDoc.php @@ -0,0 +1,207 @@ +major_version = $major_version; + $this->conf = $conf; + + // TODO: Check and fix links + $this->help_topics = [ + 'pg.database' => 'managing-databases.html', + 'pg.database.create' => ['sql-createdatabase.html', 'manage-ag-createdb.html'], + 'pg.database.alter' => 'sql-alterdatabase.html', + 'pg.database.drop' => ['sql-dropdatabase.html', 'manage-ag-dropdb.html'], + 'pg.admin.analyze' => 'sql-analyze.html', + 'pg.admin.vacuum' => 'sql-vacuum.html', + 'pg.cast' => ['sql-expressions.html#SQL-SYNTAX-TYPE-CASTS', 'sql-createcast.html'], + 'pg.cast.create' => 'sql-createcast.html', + 'pg.cast.drop' => 'sql-dropcast.html', + 'pg.column.add' => ['ddl-alter.html#AEN2115', 'sql-altertable.html'], + 'pg.column.alter' => ['ddl-alter.html', 'sql-altertable.html'], + 'pg.column.drop' => ['ddl-alter.html#AEN2124', 'sql-altertable.html'], + 'pg.constraint' => 'ddl-constraints.html', + 'pg.constraint.add' => 'ddl-alter.html#AEN2131', + 'pg.constraint.check' => 'ddl-constraints.html#AEN1895', + 'pg.constraint.drop' => 'ddl-alter.html#AEN2140', + 'pg.constraint.foreign_key' => 'ddl-constraints.html#DDL-CONSTRAINTS-FK', + 'pg.constraint.primary_key' => 'ddl-constraints.html#AEN1972', + 'pg.constraint.unique_key' => 'ddl-constraints.html#AEN1950', + + 'pg.conversion' => 'multibyte.html', + 'pg.conversion.alter' => 'sql-alterconversion.html', + 'pg.conversion.create' => 'sql-createconversion.html', + 'pg.conversion.drop' => 'sql-dropconversion.html', + + 'pg.domain' => 'extend-type-system.html#AEN28657', + 'pg.domain.alter' => 'sql-alterdomain.html', + 'pg.domain.create' => 'sql-createdomain.html', + 'pg.domain.drop' => 'sql-dropdomain.html', + + 'pg.function' => ['xfunc.html', 'functions.html', 'sql-expressions.html#AEN1599'], + 'pg.function.alter' => 'sql-alterfunction.html', + 'pg.function.create' => 'sql-createfunction.html', + 'pg.function.create.c' => ['xfunc-c.html', 'sql-createfunction.html'], + 'pg.function.create.internal' => ['xfunc-internal.html', 'sql-createfunction.html'], + 'pg.function.create.pl' => ['xfunc-sql.html', 'xfunc-pl.html', 'sql-createfunction.html'], + 'pg.function.drop' => 'sql-dropfunction.html', + + 'pg.group' => 'groups.html', + 'pg.group.alter' => ['sql-altergroup.html', 'groups.html'], + 'pg.group.create' => 'sql-creategroup.html', + 'pg.group.drop' => 'sql-dropgroup.html', + + 'pg.index' => 'indexes.html', + 'pg.index.cluster' => 'sql-cluster.html', + 'pg.index.drop' => 'sql-dropindex.html', + 'pg.index.create' => 'sql-createindex.html', + 'pg.index.reindex' => 'sql-reindex.html', + + 'pg.language' => 'xplang.html', + 'pg.language.alter' => 'sql-alterlanguage.html', + 'pg.language.create' => 'sql-createlanguage.html', + 'pg.language.drop' => 'sql-droplanguage.html', + + 'pg.opclass' => 'indexes-opclass.html', + 'pg.opclass.alter' => 'sql-alteropclass.html', + 'pg.opclass.create' => 'sql-createopclass.html', + 'pg.opclass.drop' => 'sql-dropopclass.html', + + 'pg.operator' => ['xoper.html', 'functions.html', 'sql-expressions.html#AEN1570'], + 'pg.operator.alter' => 'sql-alteroperator.html', + 'pg.operator.create' => 'sql-createoperator.html', + 'pg.operator.drop' => 'sql-dropoperator.html', + + 'pg.pl' => 'xplang.html', + 'pg.pl.plperl' => 'plperl.html', + 'pg.pl.plpgsql' => 'plpgsql.html', + 'pg.pl.plpython' => 'plpython.html', + 'pg.pl.pltcl' => 'pltcl.html', + + 'pg.privilege' => ['privileges.html', 'ddl-priv.html'], + 'pg.privilege.grant' => 'sql-grant.html', + 'pg.privilege.revoke' => 'sql-revoke.html', + + 'pg.process' => 'monitoring.html', + + 'pg.rule' => 'rules.html', + 'pg.rule.create' => 'sql-createrule.html', + 'pg.rule.drop' => 'sql-droprule.html', + + 'pg.schema' => 'ddl-schemas.html', + 'pg.schema.alter' => 'sql-alterschema.html', + 'pg.schema.create' => ['sql-createschema.html', 'ddl-schemas.html#DDL-SCHEMAS-CREATE'], + 'pg.schema.drop' => 'sql-dropschema.html', + 'pg.schema.search_path' => 'ddl-schemas.html#DDL-SCHEMAS-PATH', + + 'pg.sequence' => 'functions-sequence.html', + 'pg.sequence.alter' => 'sql-altersequence.html', + 'pg.sequence.create' => 'sql-createsequence.html', + 'pg.sequence.drop' => 'sql-dropsequence.html', + + 'pg.sql' => ['sql.html', 'sql-commands.html'], + 'pg.sql.insert' => 'sql-insert.html', + 'pg.sql.select' => 'sql-select.html', + 'pg.sql.update' => 'sql-update.html', + + 'pg.table' => 'ddl.html#DDL-BASICS', + 'pg.table.alter' => 'sql-altertable.html', + 'pg.table.create' => 'sql-createtable.html', + 'pg.table.drop' => 'sql-droptable.html', + 'pg.table.empty' => 'sql-truncate.html', + + 'pg.tablespace' => 'manage-ag-tablespaces.html', + 'pg.tablespace.alter' => 'sql-altertablespace.html', + 'pg.tablespace.create' => 'sql-createtablespace.html', + 'pg.tablespace.drop' => 'sql-droptablespace.html', + + 'pg.trigger' => 'triggers.html', + 'pg.trigger.alter' => 'sql-altertrigger.html', + 'pg.trigger.create' => 'sql-createtrigger.html', + 'pg.trigger.drop' => 'sql-droptrigger.html', + + 'pg.type' => ['xtypes.html', 'datatype.html', 'extend-type-system.html'], + 'pg.type.alter' => 'sql-altertype.html', + 'pg.type.create' => 'sql-createtype.html', + 'pg.type.drop' => 'sql-droptype.html', + + 'pg.user.alter' => ['sql-alteruser.html', 'user-attributes.html'], + 'pg.user.create' => ['sql-createuser.html', 'user-manag.html#DATABASE-USERS'], + 'pg.user.drop' => ['sql-dropuser.html', 'user-manag.html#DATABASE-USERS'], + + 'pg.variable' => 'runtime-config.html', + + 'pg.view' => 'tutorial-views.html', + 'pg.view.alter' => ['sql-createview.html', 'sql-altertable.html'], + 'pg.view.create' => 'sql-createview.html', + 'pg.view.drop' => 'sql-dropview.html', + + 'pg.aggregate' => ['xaggr.html', 'tutorial-agg.html', 'functions-aggregate.html', 'sql-expressions.html#SYNTAX-AGGREGATES'], + 'pg.aggregate.create' => 'sql-createaggregate.html', + 'pg.aggregate.drop' => 'sql-dropaggregate.html', + 'pg.aggregate.alter' => 'sql-alteraggregate.html', + + 'pg.server' => 'admin.html', + + 'pg.user' => 'user-manag.html', + + 'pg.locks' => 'view-pg-locks.html', + ]; + } + + public function getHelpBase() + { + return \sprintf(\str_replace('http://', 'https://', $this->conf['help_base']), (string) ($this->major_version)); + } + + /** + * Undocumented function. + * + * @param null|string $topic + * + * @return null|string|string[] + */ + public function getHelpTopics(?string $topic = null): array + { + return $topic ? $this->help_topics[$topic] ?? null : $this->help_topics; + } + + /** + * Undocumented function. + * + * @param string $topic + * + * @return null|string|string[] + */ + public function getHelpTopic(string $topic) + { + return $this->help_topics[$topic] ?? null; + } +} diff --git a/src/help/PostgresDoc74.php b/src/help/PostgresDoc74.php deleted file mode 100644 index b606df36..00000000 --- a/src/help/PostgresDoc74.php +++ /dev/null @@ -1,179 +0,0 @@ -major_version = $major_version; - $this->conf = $conf; - - // TODO: Check and fix links - $this->help_page = [ - 'pg.database' => 'managing-databases.html', - 'pg.database.create' => ['sql-createdatabase.html', 'manage-ag-createdb.html'], - 'pg.database.alter' => 'sql-alterdatabase.html', - 'pg.database.drop' => ['sql-dropdatabase.html', 'manage-ag-dropdb.html'], - 'pg.admin.analyze' => 'sql-analyze.html', - 'pg.admin.vacuum' => 'sql-vacuum.html', - 'pg.cast' => ['sql-expressions.html#SQL-SYNTAX-TYPE-CASTS', 'sql-createcast.html'], - 'pg.cast.create' => 'sql-createcast.html', - 'pg.cast.drop' => 'sql-dropcast.html', - 'pg.column.add' => ['ddl-alter.html#AEN2115', 'sql-altertable.html'], - 'pg.column.alter' => ['ddl-alter.html', 'sql-altertable.html'], - 'pg.column.drop' => ['ddl-alter.html#AEN2124', 'sql-altertable.html'], - 'pg.constraint' => 'ddl-constraints.html', - 'pg.constraint.add' => 'ddl-alter.html#AEN2131', - 'pg.constraint.check' => 'ddl-constraints.html#AEN1895', - 'pg.constraint.drop' => 'ddl-alter.html#AEN2140', - 'pg.constraint.foreign_key' => 'ddl-constraints.html#DDL-CONSTRAINTS-FK', - 'pg.constraint.primary_key' => 'ddl-constraints.html#AEN1972', - 'pg.constraint.unique_key' => 'ddl-constraints.html#AEN1950', - - 'pg.conversion' => 'multibyte.html', - 'pg.conversion.alter' => 'sql-alterconversion.html', - 'pg.conversion.create' => 'sql-createconversion.html', - 'pg.conversion.drop' => 'sql-dropconversion.html', - - 'pg.domain' => 'extend-type-system.html#AEN28657', - 'pg.domain.alter' => 'sql-alterdomain.html', - 'pg.domain.create' => 'sql-createdomain.html', - 'pg.domain.drop' => 'sql-dropdomain.html', - - 'pg.function' => ['xfunc.html', 'functions.html', 'sql-expressions.html#AEN1599'], - 'pg.function.alter' => 'sql-alterfunction.html', - 'pg.function.create' => 'sql-createfunction.html', - 'pg.function.create.c' => ['xfunc-c.html', 'sql-createfunction.html'], - 'pg.function.create.internal' => ['xfunc-internal.html', 'sql-createfunction.html'], - 'pg.function.create.pl' => ['xfunc-sql.html', 'xfunc-pl.html', 'sql-createfunction.html'], - 'pg.function.drop' => 'sql-dropfunction.html', - - 'pg.group' => 'groups.html', - 'pg.group.alter' => ['sql-altergroup.html', 'groups.html'], - 'pg.group.create' => 'sql-creategroup.html', - 'pg.group.drop' => 'sql-dropgroup.html', - - 'pg.index' => 'indexes.html', - 'pg.index.cluster' => 'sql-cluster.html', - 'pg.index.drop' => 'sql-dropindex.html', - 'pg.index.create' => 'sql-createindex.html', - 'pg.index.reindex' => 'sql-reindex.html', - - 'pg.language' => 'xplang.html', - 'pg.language.alter' => 'sql-alterlanguage.html', - 'pg.language.create' => 'sql-createlanguage.html', - 'pg.language.drop' => 'sql-droplanguage.html', - - 'pg.opclass' => 'indexes-opclass.html', - 'pg.opclass.alter' => 'sql-alteropclass.html', - 'pg.opclass.create' => 'sql-createopclass.html', - 'pg.opclass.drop' => 'sql-dropopclass.html', - - 'pg.operator' => ['xoper.html', 'functions.html', 'sql-expressions.html#AEN1570'], - 'pg.operator.alter' => 'sql-alteroperator.html', - 'pg.operator.create' => 'sql-createoperator.html', - 'pg.operator.drop' => 'sql-dropoperator.html', - - 'pg.pl' => 'xplang.html', - 'pg.pl.plperl' => 'plperl.html', - 'pg.pl.plpgsql' => 'plpgsql.html', - 'pg.pl.plpython' => 'plpython.html', - 'pg.pl.pltcl' => 'pltcl.html', - - 'pg.privilege' => ['privileges.html', 'ddl-priv.html'], - 'pg.privilege.grant' => 'sql-grant.html', - 'pg.privilege.revoke' => 'sql-revoke.html', - - 'pg.process' => 'monitoring.html', - - 'pg.rule' => 'rules.html', - 'pg.rule.create' => 'sql-createrule.html', - 'pg.rule.drop' => 'sql-droprule.html', - - 'pg.schema' => 'ddl-schemas.html', - 'pg.schema.alter' => 'sql-alterschema.html', - 'pg.schema.create' => ['sql-createschema.html', 'ddl-schemas.html#DDL-SCHEMAS-CREATE'], - 'pg.schema.drop' => 'sql-dropschema.html', - 'pg.schema.search_path' => 'ddl-schemas.html#DDL-SCHEMAS-PATH', - - 'pg.sequence' => 'functions-sequence.html', - 'pg.sequence.alter' => 'sql-altersequence.html', - 'pg.sequence.create' => 'sql-createsequence.html', - 'pg.sequence.drop' => 'sql-dropsequence.html', - - 'pg.sql' => ['sql.html', 'sql-commands.html'], - 'pg.sql.insert' => 'sql-insert.html', - 'pg.sql.select' => 'sql-select.html', - 'pg.sql.update' => 'sql-update.html', - - 'pg.table' => 'ddl.html#DDL-BASICS', - 'pg.table.alter' => 'sql-altertable.html', - 'pg.table.create' => 'sql-createtable.html', - 'pg.table.drop' => 'sql-droptable.html', - 'pg.table.empty' => 'sql-truncate.html', - - 'pg.tablespace' => 'manage-ag-tablespaces.html', - 'pg.tablespace.alter' => 'sql-altertablespace.html', - 'pg.tablespace.create' => 'sql-createtablespace.html', - 'pg.tablespace.drop' => 'sql-droptablespace.html', - - 'pg.trigger' => 'triggers.html', - 'pg.trigger.alter' => 'sql-altertrigger.html', - 'pg.trigger.create' => 'sql-createtrigger.html', - 'pg.trigger.drop' => 'sql-droptrigger.html', - - 'pg.type' => ['xtypes.html', 'datatype.html', 'extend-type-system.html'], - 'pg.type.alter' => 'sql-altertype.html', - 'pg.type.create' => 'sql-createtype.html', - 'pg.type.drop' => 'sql-droptype.html', - - 'pg.user.alter' => ['sql-alteruser.html', 'user-attributes.html'], - 'pg.user.create' => ['sql-createuser.html', 'user-manag.html#DATABASE-USERS'], - 'pg.user.drop' => ['sql-dropuser.html', 'user-manag.html#DATABASE-USERS'], - - 'pg.variable' => 'runtime-config.html', - - 'pg.view' => 'tutorial-views.html', - 'pg.view.alter' => ['sql-createview.html', 'sql-altertable.html'], - 'pg.view.create' => 'sql-createview.html', - 'pg.view.drop' => 'sql-dropview.html', - - 'pg.aggregate' => ['xaggr.html', 'tutorial-agg.html', 'functions-aggregate.html', 'sql-expressions.html#SYNTAX-AGGREGATES'], - 'pg.aggregate.create' => 'sql-createaggregate.html', - 'pg.aggregate.drop' => 'sql-dropaggregate.html', - 'pg.aggregate.alter' => 'sql-alteraggregate.html', - - 'pg.server' => 'admin.html', - - 'pg.user' => 'user-manag.html', - - 'pg.locks' => 'view-pg-locks.html', - ]; - } - - public function getHelpBase() - { - return \sprintf(\str_replace('http://', 'https://', $this->conf['help_base']), (string) ($this->major_version)); - } - - public function getHelpPage() - { - return $this->help_page; - } -} diff --git a/src/help/PostgresDoc80.php b/src/help/PostgresDoc80.php deleted file mode 100644 index cbf7f87f..00000000 --- a/src/help/PostgresDoc80.php +++ /dev/null @@ -1,35 +0,0 @@ -help_page['pg.column.add'][0] = 'ddl-alter.html#AEN2217'; - $this->help_page['pg.column.drop'][0] = 'ddl-alter.html#AEN2226'; - - $this->help_page['pg.constraint.add'] = 'ddl-alter.html#AEN2217'; - $this->help_page['pg.constraint.check'] = 'ddl-constraints.html#AEN1978'; - $this->help_page['pg.constraint.drop'] = 'ddl-alter.html#AEN2226'; - $this->help_page['pg.constraint.primary_key'] = 'ddl-constraints.html#AEN2055'; - $this->help_page['pg.constraint.unique_key'] = 'ddl-constraints.html#AEN2033'; - - $this->help_page['pg.domain'] = 'extend-type-system.html#AEN27940'; - - $this->help_page['pg.function'][2] = 'sql-expressions.html#AEN1652'; - - $this->help_page['pg.operator'][2] = 'sql-expressions.html#AEN1623'; - } -} diff --git a/src/help/PostgresDoc81.php b/src/help/PostgresDoc81.php deleted file mode 100644 index b5fe8916..00000000 --- a/src/help/PostgresDoc81.php +++ /dev/null @@ -1,25 +0,0 @@ -help_page['pg.role'] = 'user-manag.html'; - $this->help_page['pg.role.create'] = ['sql-createrole.html', 'user-manag.html#DATABASE-ROLES']; - $this->help_page['pg.role.alter'] = ['sql-alterrole.html', 'role-attributes.html']; - $this->help_page['pg.role.drop'] = ['sql-droprole.html', 'user-manag.html#DATABASE-ROLES']; - } -} diff --git a/src/help/PostgresDoc82.php b/src/help/PostgresDoc82.php deleted file mode 100644 index b5abc90a..00000000 --- a/src/help/PostgresDoc82.php +++ /dev/null @@ -1,20 +0,0 @@ -help_page['pg.fts'] = 'textsearch.html'; - - $this->help_page['pg.ftscfg'] = 'textsearch-intro.html#TEXTSEARCH-INTRO-CONFIGURATIONS'; - $this->help_page['pg.ftscfg.example'] = 'textsearch-configuration.html'; - $this->help_page['pg.ftscfg.drop'] = 'sql-droptsconfig.html'; - $this->help_page['pg.ftscfg.create'] = 'sql-createtsconfig.html'; - $this->help_page['pg.ftscfg.alter'] = 'sql-altertsconfig.html'; - - $this->help_page['pg.ftsdict'] = 'textsearch-dictionaries.html'; - $this->help_page['pg.ftsdict.drop'] = 'sql-droptsdictionary.html'; - $this->help_page['pg.ftsdict.create'] = ['sql-createtsdictionary.html', 'sql-createtstemplate.html']; - $this->help_page['pg.ftsdict.alter'] = 'sql-altertsdictionary.html'; - - $this->help_page['pg.ftsparser'] = 'textsearch-parsers.html'; - } -} diff --git a/src/help/PostgresDoc84.php b/src/help/PostgresDoc84.php deleted file mode 100644 index a9ece52b..00000000 --- a/src/help/PostgresDoc84.php +++ /dev/null @@ -1,20 +0,0 @@ -help_page['pg.rule.view'] = 'rules-views.html'; + $this->help_topics['pg.rule.view'] = 'rules-views.html'; } } diff --git a/src/help/PostgresDoc93.php b/src/help/PostgresDoc93.php index 8fef2fdb..cad85288 100644 --- a/src/help/PostgresDoc93.php +++ b/src/help/PostgresDoc93.php @@ -17,13 +17,13 @@ class PostgresDoc93 extends PostgresDoc92 { parent::__construct($conf, $major_version); - $this->help_page['pg.matview'] = 'sql-creatematerializedview.html'; + $this->help_topics['pg.matview'] = 'sql-creatematerializedview.html'; - $this->help_page['pg.matview.create'] = 'sql-creatematerializedview.html'; - $this->help_page['pg.matview.drop'] = 'sql-dropmaterializedview.html'; - $this->help_page['pg.matview.alter'] = 'sql-altermaterializedview.html'; - $this->help_page['pg.matview.refresh'] = 'sql-refreshmaterializedview.html'; + $this->help_topics['pg.matview.create'] = 'sql-creatematerializedview.html'; + $this->help_topics['pg.matview.drop'] = 'sql-dropmaterializedview.html'; + $this->help_topics['pg.matview.alter'] = 'sql-altermaterializedview.html'; + $this->help_topics['pg.matview.refresh'] = 'sql-refreshmaterializedview.html'; - $this->help_page['pg.rule.matview'] = 'rules-materializedviews.html'; + $this->help_topics['pg.rule.matview'] = 'rules-materializedviews.html'; } } diff --git a/src/lib.inc.php b/src/lib.inc.php index 4dd06496..a2417192 100644 --- a/src/lib.inc.php +++ b/src/lib.inc.php @@ -69,7 +69,7 @@ if (DEBUGMODE) { $conf['register_debuggers'](); } } -define('ADODB_ASSOC_CASE',ADODB_ASSOC_CASE_NATIVE); +\define('ADODB_ASSOC_CASE', ADODB_ASSOC_CASE_NATIVE); // Fetch App and DI Container $app = \PHPPgAdmin\ContainerUtils::createApp($conf); $container = $app->getContainer(); @@ -77,19 +77,21 @@ $container = $app->getContainer(); if (!$container instanceof \Slim\Container) { \trigger_error('App Container must be an instance of \\Slim\\Container', \E_USER_ERROR); } -function container():\Slim\Container { -return \PHPPgAdmin\ContainerUtils::getContainerInstance(); +function containerInstance(): \Slim\Container +{ + return \PHPPgAdmin\ContainerUtils::getContainerInstance(); +} + +function requestInstance(): \Slim\Http\Request +{ + return containerInstance()->request; } - -function request():\Slim\Http\Request { - return container()->request; - } - function response():\Slim\Http\Response { - return container()->response; - } + function responseInstance(): \Slim\Http\Response + { + return containerInstance()->response; + } - // This should be deprecated once we're sure no php scripts are required directly $container->offsetSet('server', $_REQUEST['server'] ?? null); $container->offsetSet('database', $_REQUEST['database'] ?? null); diff --git a/src/router.php b/src/router.php index 144c7248..c3d707c1 100644 --- a/src/router.php +++ b/src/router.php @@ -13,7 +13,8 @@ $app->get('/status', function ( /* @scrutinizer ignore-unused */ array $args ) { - phpinfo(); + \phpinfo(); + return; //dump($this->get('settings')->all()); return $response @@ -131,13 +132,11 @@ $app->get('/{subject:\w+}[/{server_id}]', function ( \Slim\Http\Response $response, /* @scrutinizer ignore-unused */ array $args - ) { - $subject=$args['subject']??'intro'; - $server_id=$args['server_id']??$request->getQueryParam('server'); - //ddd($subject, $server_id); + $subject = $args['subject'] ?? 'intro'; + $server_id = $args['server_id'] ?? $request->getQueryParam('server'); + //ddd($subject, $server_id); $_server_info = $this->misc->getServerInfo(); - //$this->utils->prtrace($_server_info); diff --git a/src/traits/AdminTrait.php b/src/traits/AdminTrait.php index 034ee177..8460eaa3 100644 --- a/src/traits/AdminTrait.php +++ b/src/traits/AdminTrait.php @@ -289,7 +289,7 @@ trait AdminTrait echo '
    " . \PHP_EOL; echo $this->view->form; echo '' . \PHP_EOL; - echo sprintf('%s',\htmlspecialchars($_REQUEST['table']), \PHP_EOL); + echo \sprintf('%s', \htmlspecialchars($_REQUEST['table']), \PHP_EOL); echo "
    \n
    \n" . \PHP_EOL; echo "\t" . \PHP_EOL; @@ -321,7 +321,7 @@ trait AdminTrait echo '
    '; echo '
    '; echo "lang['strsave']}\" />" . \PHP_EOL; - echo sprintf('

    %s',$this->lang['strcancel'], \PHP_EOL); + echo \sprintf('

    %s', $this->lang['strcancel'], \PHP_EOL); echo '' . \PHP_EOL; } @@ -352,7 +352,7 @@ trait AdminTrait echo "" . \PHP_EOL; echo '' . \PHP_EOL; echo $this->view->form; - echo sprintf('%s',\htmlspecialchars($_REQUEST['table']), \PHP_EOL); + echo \sprintf('%s', \htmlspecialchars($_REQUEST['table']), \PHP_EOL); echo '' . \PHP_EOL; echo "lang['stryes']}\" />" . \PHP_EOL; echo "lang['strcancel']}\" />" . \PHP_EOL; diff --git a/src/traits/HelperTrait.php b/src/traits/HelperTrait.php index 347366d1..0728ede1 100644 --- a/src/traits/HelperTrait.php +++ b/src/traits/HelperTrait.php @@ -50,10 +50,10 @@ trait HelperTrait */ public function halt($msg = 'An error has happened'): void { - $body = $this->container->responseobj->getBody(); + $body = \responseInstance()->getBody(); $body->write($msg); - throw new \Slim\Exception\SlimException($this->container->requestobj, $this->container->responseobj); + throw new \Slim\Exception\SlimException(\requestInstance(), \responseInstance()); } public static function getBackTrace($offset = 0) diff --git a/src/traits/MiscTrait.php b/src/traits/MiscTrait.php index 8adb912b..7c5e21b4 100644 --- a/src/traits/MiscTrait.php +++ b/src/traits/MiscTrait.php @@ -287,7 +287,7 @@ trait MiscTrait case 'cid': case 'tid': $align = 'right'; - $out = \nl2br(\htmlspecialchars(\PHPPgAdmin\Traits\HelperTrait::br2ln($str))); + $out = \nl2br(\htmlspecialchars(self::br2ln($str))); break; case 'yesno': @@ -319,7 +319,7 @@ trait MiscTrait break; case 'nbsp': - $out = \nl2br(\str_replace(' ', ' ', \PHPPgAdmin\Traits\HelperTrait::br2ln($str))); + $out = \nl2br(\str_replace(' ', ' ', self::br2ln($str))); break; case 'verbatim': @@ -331,7 +331,7 @@ trait MiscTrait break; case 'prettysize': - $out = \PHPPgAdmin\Traits\HelperTrait::formatSizeUnits($str, $lang); + $out = self::formatSizeUnits($str, $lang); break; @@ -345,7 +345,7 @@ trait MiscTrait $out = \htmlspecialchars($str); } else { //$tag = 'span'; - $out = \nl2br(\htmlspecialchars(\PHPPgAdmin\Traits\HelperTrait::br2ln($str))); + $out = \nl2br(\htmlspecialchars(self::br2ln($str))); } } diff --git a/src/traits/ViewsMatviewsTrait.php b/src/traits/ViewsMatviewsTrait.php index 610dd121..9a35516d 100644 --- a/src/traits/ViewsMatviewsTrait.php +++ b/src/traits/ViewsMatviewsTrait.php @@ -139,7 +139,7 @@ trait ViewsMatviewsTrait echo '' . \PHP_EOL; echo $this->view->form; echo "lang['strselect']}\" />" . \PHP_EOL; - echo sprintf('

    %s',$this->lang['strcancel'], \PHP_EOL); + echo \sprintf('

    %s', $this->lang['strcancel'], \PHP_EOL); echo '' . \PHP_EOL; return; @@ -206,7 +206,7 @@ trait ViewsMatviewsTrait echo '

    ' . \PHP_EOL; echo $this->view->form; echo "lang['strnext']}\" />" . \PHP_EOL; - echo sprintf('

    %s',$this->lang['strcancel'], \PHP_EOL); + echo \sprintf('

    %s', $this->lang['strcancel'], \PHP_EOL); echo '' . \PHP_EOL; } @@ -462,7 +462,7 @@ trait ViewsMatviewsTrait echo $this->view->form; echo "lang['strcreate']}\" />" . \PHP_EOL; - echo sprintf('

    %s',$this->lang['strcancel'], \PHP_EOL); + echo \sprintf('

    %s', $this->lang['strcancel'], \PHP_EOL); echo '' . \PHP_EOL; } diff --git a/yarn.lock b/yarn.lock index bad763d9..ab1fe0cc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,119 +2,142 @@ # yarn lockfile v1 -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e" - integrity sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" + integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg== dependencies: - "@babel/highlight" "^7.8.3" + "@babel/highlight" "^7.10.4" -"@babel/generator@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.8.4.tgz#35bbc74486956fe4251829f9f6c48330e8d0985e" - integrity sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA== +"@babel/generator@^7.11.5": + version "7.11.6" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.11.6.tgz#b868900f81b163b4d464ea24545c61cbac4dc620" + integrity sha512-DWtQ1PV3r+cLbySoHrwn9RWEgKMBLLma4OBQloPRyDYvc5msJM9kvTLo1YnlJd1P/ZuKbdli3ijr5q3FvAF3uA== dependencies: - "@babel/types" "^7.8.3" + "@babel/types" "^7.11.5" jsesc "^2.5.1" - lodash "^4.17.13" source-map "^0.5.0" -"@babel/helper-function-name@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz#eeeb665a01b1f11068e9fb86ad56a1cb1a824cca" - integrity sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA== +"@babel/helper-function-name@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz#d2d3b20c59ad8c47112fa7d2a94bc09d5ef82f1a" + integrity sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ== dependencies: - "@babel/helper-get-function-arity" "^7.8.3" - "@babel/template" "^7.8.3" - "@babel/types" "^7.8.3" + "@babel/helper-get-function-arity" "^7.10.4" + "@babel/template" "^7.10.4" + "@babel/types" "^7.10.4" -"@babel/helper-get-function-arity@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz#b894b947bd004381ce63ea1db9f08547e920abd5" - integrity sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA== +"@babel/helper-get-function-arity@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz#98c1cbea0e2332f33f9a4661b8ce1505b2c19ba2" + integrity sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A== dependencies: - "@babel/types" "^7.8.3" + "@babel/types" "^7.10.4" -"@babel/helper-split-export-declaration@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz#31a9f30070f91368a7182cf05f831781065fc7a9" - integrity sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA== +"@babel/helper-split-export-declaration@^7.11.0": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz#f8a491244acf6a676158ac42072911ba83ad099f" + integrity sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg== dependencies: - "@babel/types" "^7.8.3" + "@babel/types" "^7.11.0" -"@babel/highlight@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.8.3.tgz#28f173d04223eaaa59bc1d439a3836e6d1265797" - integrity sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg== +"@babel/helper-validator-identifier@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" + integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw== + +"@babel/highlight@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143" + integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA== dependencies: + "@babel/helper-validator-identifier" "^7.10.4" chalk "^2.0.0" - esutils "^2.0.2" js-tokens "^4.0.0" -"@babel/parser@^7.0.0", "@babel/parser@^7.8.3", "@babel/parser@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.8.4.tgz#d1dbe64691d60358a974295fa53da074dd2ce8e8" - integrity sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw== - -"@babel/template@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.3.tgz#e02ad04fe262a657809327f578056ca15fd4d1b8" - integrity sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ== - dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/parser" "^7.8.3" - "@babel/types" "^7.8.3" - -"@babel/traverse@^7.0.0": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.8.4.tgz#f0845822365f9d5b0e312ed3959d3f827f869e3c" - integrity sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg== - dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/generator" "^7.8.4" - "@babel/helper-function-name" "^7.8.3" - "@babel/helper-split-export-declaration" "^7.8.3" - "@babel/parser" "^7.8.4" - "@babel/types" "^7.8.3" +"@babel/parser@^7.10.4", "@babel/parser@^7.11.5", "@babel/parser@^7.7.0": + version "7.11.5" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.11.5.tgz#c7ff6303df71080ec7a4f5b8c003c58f1cf51037" + integrity sha512-X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q== + +"@babel/template@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.10.4.tgz#3251996c4200ebc71d1a8fc405fba940f36ba278" + integrity sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/parser" "^7.10.4" + "@babel/types" "^7.10.4" + +"@babel/traverse@^7.7.0": + version "7.11.5" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.11.5.tgz#be777b93b518eb6d76ee2e1ea1d143daa11e61c3" + integrity sha512-EjiPXt+r7LiCZXEfRpSJd+jUMnBd4/9OUv7Nx3+0u9+eimMwJmG0Q98lw4/289JCoxSE8OolDMNZaaF/JZ69WQ== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/generator" "^7.11.5" + "@babel/helper-function-name" "^7.10.4" + "@babel/helper-split-export-declaration" "^7.11.0" + "@babel/parser" "^7.11.5" + "@babel/types" "^7.11.5" debug "^4.1.0" globals "^11.1.0" - lodash "^4.17.13" + lodash "^4.17.19" -"@babel/types@^7.0.0", "@babel/types@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.8.3.tgz#5a383dffa5416db1b73dedffd311ffd0788fb31c" - integrity sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg== +"@babel/types@^7.10.4", "@babel/types@^7.11.0", "@babel/types@^7.11.5", "@babel/types@^7.7.0": + version "7.11.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.11.5.tgz#d9de577d01252d77c6800cee039ee64faf75662d" + integrity sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q== dependencies: - esutils "^2.0.2" - lodash "^4.17.13" + "@babel/helper-validator-identifier" "^7.10.4" + lodash "^4.17.19" to-fast-properties "^2.0.0" -acorn-jsx@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.1.0.tgz#294adb71b57398b0680015f0a38c563ee1db5384" - integrity sha512-tMUqwBWfLFbJbizRmEcWSLw6HnFzfdJs2sOJEOwwtVPMoH/0Ay+E703oZz78VSXZiiDcZrQ5XKjPIUQixhmgVw== +"@eslint/eslintrc@^0.1.3": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.1.3.tgz#7d1a2b2358552cc04834c0979bd4275362e37085" + integrity sha512-4YVwPkANLeNtRjMekzux1ci8hIaH5eGKktGqR0d3LWsKNn5B2X/1Z6Trxy7jQXl9EBGE6Yj02O+t09FMeRllaA== + dependencies: + ajv "^6.12.4" + debug "^4.1.1" + espree "^7.3.0" + globals "^12.1.0" + ignore "^4.0.6" + import-fresh "^3.2.1" + js-yaml "^3.13.1" + lodash "^4.17.19" + minimatch "^3.0.4" + strip-json-comments "^3.1.1" -acorn@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.0.tgz#949d36f2c292535da602283586c2477c57eb2d6c" - integrity sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ== +"@types/color-name@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" + integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== -ajv@^6.10.0, ajv@^6.10.2: - version "6.12.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.0.tgz#06d60b96d87b8454a5adaba86e7854da629db4b7" - integrity sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw== +acorn-jsx@^5.2.0: + version "5.3.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b" + integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng== + +acorn@^7.4.0: + version "7.4.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.0.tgz#e1ad486e6c54501634c6c397c5c121daa383607c" + integrity sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w== + +ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.4: + version "6.12.4" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.4.tgz#0614facc4522127fa713445c6bfd3ebd376e2234" + integrity sha512-eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ== dependencies: fast-deep-equal "^3.1.1" fast-json-stable-stringify "^2.0.0" json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ansi-escapes@^4.2.1: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.0.tgz#a4ce2b33d6b214b7950d8595c212f12ac9cc569d" - integrity sha512-EiYhwo0v255HUL6eDyuLrXEkTi7WwVCLAw+SeOQ7M7qdun1z1pum4DEm/nuqIVbPvi9RPPc9k9LbyBv6H0DwVg== - dependencies: - type-fest "^0.8.1" +ansi-colors@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== ansi-regex@^4.1.0: version "4.1.0" @@ -133,6 +156,14 @@ ansi-styles@^3.2.0, ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" +ansi-styles@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" + integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== + dependencies: + "@types/color-name" "^1.1.1" + color-convert "^2.0.1" + argparse@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" @@ -145,15 +176,15 @@ astral-regex@^1.0.0: resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== -babel-eslint@^10.0.3: - version "10.0.3" - resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.0.3.tgz#81a2c669be0f205e19462fed2482d33e4687a88a" - integrity sha512-z3U7eMY6r/3f3/JB9mTsLjyxrv0Yb1zb8PCWCLpguxfCzBIZUwy23R1t/XKewP+8mEN2Ck8Dtr4q20z6ce6SoA== +babel-eslint@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.1.0.tgz#6968e568a910b78fb3779cdd8b6ac2f479943232" + integrity sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg== dependencies: "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.0.0" - "@babel/traverse" "^7.0.0" - "@babel/types" "^7.0.0" + "@babel/parser" "^7.7.0" + "@babel/traverse" "^7.7.0" + "@babel/types" "^7.7.0" eslint-visitor-keys "^1.0.0" resolve "^1.12.0" @@ -175,7 +206,7 @@ callsites@^3.0.0: resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== -chalk@^2.0.0, chalk@^2.1.0, chalk@^2.4.2: +chalk@^2.0.0: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -184,22 +215,13 @@ chalk@^2.0.0, chalk@^2.1.0, chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chardet@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" - integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== - -cli-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" - integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== +chalk@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" + integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== dependencies: - restore-cursor "^3.1.0" - -cli-width@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" - integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk= + ansi-styles "^4.1.0" + supports-color "^7.1.0" color-convert@^1.9.0: version "1.9.3" @@ -208,35 +230,45 @@ color-convert@^1.9.0: dependencies: color-name "1.1.3" +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + color-name@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -cross-spawn@^6.0.5: - version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== +cross-spawn@^7.0.2: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" -debug@^4.0.1, debug@^4.1.0: +debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== dependencies: ms "^2.1.1" -deep-is@~0.1.3: +deep-is@^0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= @@ -253,66 +285,70 @@ emoji-regex@^7.0.1: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== +enquirer@^2.3.5: + version "2.3.6" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" + integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + dependencies: + ansi-colors "^4.1.1" escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= -eslint-config-prettier@^6.10.0: - version "6.10.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-6.10.0.tgz#7b15e303bf9c956875c948f6b21500e48ded6a7f" - integrity sha512-AtndijGte1rPILInUdHjvKEGbIV06NuvPrqlIEaEaWtbtvJh464mDeyGMdZEQMsGvC0ZVkiex1fSNcC4HAbRGg== +eslint-config-prettier@^6.11.0: + version "6.11.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-6.11.0.tgz#f6d2238c1290d01c859a8b5c1f7d352a0b0da8b1" + integrity sha512-oB8cpLWSAjOVFEJhhyMZh6NOEOtBVziaqdDQ86+qhDHFbZXoRTM7pNSvFRfW/W/L/LrQ38C99J5CGuRBBzBsdA== dependencies: get-stdin "^6.0.0" -eslint-plugin-prettier@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.2.tgz#432e5a667666ab84ce72f945c72f77d996a5c9ba" - integrity sha512-GlolCC9y3XZfv3RQfwGew7NnuFDKsfI4lbvRK+PIIo23SFH+LemGs4cKwzAaRa+Mdb+lQO/STaIayno8T5sJJA== +eslint-plugin-prettier@^3.1.4: + version "3.1.4" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.4.tgz#168ab43154e2ea57db992a2cd097c828171f75c2" + integrity sha512-jZDa8z76klRqo+TdGDTFJSavwbnWK2ZpqGKNZ+VvweMW516pDUMmQ2koXvxEE4JhzNvTv+radye/bWGBmA6jmg== dependencies: prettier-linter-helpers "^1.0.0" -eslint-scope@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.0.0.tgz#e87c8887c73e8d1ec84f1ca591645c358bfc8fb9" - integrity sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw== +eslint-scope@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.0.tgz#d0f971dfe59c69e0cada684b23d49dbf82600ce5" + integrity sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w== dependencies: esrecurse "^4.1.0" estraverse "^4.1.1" -eslint-utils@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f" - integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q== +eslint-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" + integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== dependencies: eslint-visitor-keys "^1.1.0" -eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" - integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A== +eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" + integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== -eslint@^6.8.0: - version "6.8.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb" - integrity sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig== +eslint@^7.8.1: + version "7.8.1" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.8.1.tgz#e59de3573fb6a5be8ff526c791571646d124a8fa" + integrity sha512-/2rX2pfhyUG0y+A123d0ccXtMm7DV7sH1m3lk9nk2DZ2LReq39FXHueR9xZwshE5MdfSf0xunSaMWRqyIA6M1w== dependencies: "@babel/code-frame" "^7.0.0" + "@eslint/eslintrc" "^0.1.3" ajv "^6.10.0" - chalk "^2.1.0" - cross-spawn "^6.0.5" + chalk "^4.0.0" + cross-spawn "^7.0.2" debug "^4.0.1" doctrine "^3.0.0" - eslint-scope "^5.0.0" - eslint-utils "^1.4.3" - eslint-visitor-keys "^1.1.0" - espree "^6.1.2" - esquery "^1.0.1" + enquirer "^2.3.5" + eslint-scope "^5.1.0" + eslint-utils "^2.1.0" + eslint-visitor-keys "^1.3.0" + espree "^7.3.0" + esquery "^1.2.0" esutils "^2.0.2" file-entry-cache "^5.0.1" functional-red-black-tree "^1.0.1" @@ -321,76 +357,70 @@ eslint@^6.8.0: ignore "^4.0.6" import-fresh "^3.0.0" imurmurhash "^0.1.4" - inquirer "^7.0.0" is-glob "^4.0.0" js-yaml "^3.13.1" json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.3.0" - lodash "^4.17.14" + levn "^0.4.1" + lodash "^4.17.19" minimatch "^3.0.4" - mkdirp "^0.5.1" natural-compare "^1.4.0" - optionator "^0.8.3" + optionator "^0.9.1" progress "^2.0.0" - regexpp "^2.0.1" - semver "^6.1.2" - strip-ansi "^5.2.0" - strip-json-comments "^3.0.1" + regexpp "^3.1.0" + semver "^7.2.1" + strip-ansi "^6.0.0" + strip-json-comments "^3.1.0" table "^5.2.3" text-table "^0.2.0" v8-compile-cache "^2.0.3" -espree@^6.1.2: - version "6.1.2" - resolved "https://registry.yarnpkg.com/espree/-/espree-6.1.2.tgz#6c272650932b4f91c3714e5e7b5f5e2ecf47262d" - integrity sha512-2iUPuuPP+yW1PZaMSDM9eyVf8D5P0Hi8h83YtZ5bPc/zHYjII5khoixIUTMO794NOY8F/ThF1Bo8ncZILarUTA== +espree@^7.3.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.0.tgz#dc30437cf67947cf576121ebd780f15eeac72348" + integrity sha512-dksIWsvKCixn1yrEXO8UosNSxaDoSYpq9reEjZSbHLpT5hpaCAKTLBwq0RHtLrIr+c0ByiYzWT8KTMRzoRCNlw== dependencies: - acorn "^7.1.0" - acorn-jsx "^5.1.0" - eslint-visitor-keys "^1.1.0" + acorn "^7.4.0" + acorn-jsx "^5.2.0" + eslint-visitor-keys "^1.3.0" esprima@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -esquery@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.1.0.tgz#c5c0b66f383e7656404f86b31334d72524eddb48" - integrity sha512-MxYW9xKmROWF672KqjO75sszsA8Mxhw06YFeS5VHlB98KDHbOSurm3ArsjO60Eaf3QmGMCP1yn+0JQkNLo/97Q== +esquery@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57" + integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ== dependencies: - estraverse "^4.0.0" + estraverse "^5.1.0" esrecurse@^4.1.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" - integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== dependencies: - estraverse "^4.1.0" + estraverse "^5.2.0" -estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1: +estraverse@^4.1.1: version "4.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" + integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== + esutils@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== -external-editor@^3.0.3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" - integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== - dependencies: - chardet "^0.7.0" - iconv-lite "^0.4.24" - tmp "^0.0.33" - fast-deep-equal@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4" - integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA== + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== fast-diff@^1.1.2: version "1.2.0" @@ -402,18 +432,11 @@ fast-json-stable-stringify@^2.0.0: resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fast-levenshtein@~2.0.6: +fast-levenshtein@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= -figures@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" - integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== - dependencies: - escape-string-regexp "^1.0.5" - file-entry-cache@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" @@ -431,9 +454,9 @@ flat-cache@^2.0.1: write "1.0.3" flatted@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.1.tgz#69e57caa8f0eacbc281d2e2cb458d46fdb449e08" - integrity sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg== + version "2.0.2" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" + integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== fs.realpath@^1.0.0: version "1.0.0" @@ -451,9 +474,9 @@ get-stdin@^6.0.0: integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g== glob-parent@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.0.tgz#5f4c1d1e748d30cd73ad2944b3577a81b081e8c2" - integrity sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw== + version "5.1.1" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" + integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== dependencies: is-glob "^4.0.1" @@ -475,9 +498,9 @@ globals@^11.1.0: integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== globals@^12.1.0: - version "12.3.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-12.3.0.tgz#1e564ee5c4dded2ab098b0f88f24702a3c56be13" - integrity sha512-wAfjdLgFsPZsklLJvOBUBmzYE8/CwhEqSBEMRXA3qxIiNtyqvjYurAtIfDh6chlEPUfmTY3MnZh5Hfh4q0UlIw== + version "12.4.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" + integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== dependencies: type-fest "^0.8.1" @@ -486,19 +509,17 @@ has-flag@^3.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= -iconv-lite@^0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== ignore@^4.0.6: version "4.0.6" resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== -import-fresh@^3.0.0: +import-fresh@^3.0.0, import-fresh@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ== @@ -524,25 +545,6 @@ inherits@2: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -inquirer@^7.0.0: - version "7.0.4" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.0.4.tgz#99af5bde47153abca23f5c7fc30db247f39da703" - integrity sha512-Bu5Td5+j11sCkqfqmUTiwv+tWisMtP0L7Q8WrqA2C/BbBhy1YTdFrvjjlrKq8oagA/tLQBski2Gcx/Sqyi2qSQ== - dependencies: - ansi-escapes "^4.2.1" - chalk "^2.4.2" - cli-cursor "^3.1.0" - cli-width "^2.0.0" - external-editor "^3.0.3" - figures "^3.0.0" - lodash "^4.17.15" - mute-stream "0.0.8" - run-async "^2.2.0" - rxjs "^6.5.3" - string-width "^4.1.0" - strip-ansi "^5.1.0" - through "^2.3.6" - is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" @@ -553,11 +555,6 @@ is-fullwidth-code-point@^2.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - is-glob@^4.0.0, is-glob@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" @@ -565,11 +562,6 @@ is-glob@^4.0.0, is-glob@^4.0.1: dependencies: is-extglob "^2.1.1" -is-promise@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" - integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o= - isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" @@ -581,9 +573,9 @@ js-tokens@^4.0.0: integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== js-yaml@^3.13.1: - version "3.13.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" - integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== + version "3.14.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" + integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A== dependencies: argparse "^1.0.7" esprima "^4.0.0" @@ -603,23 +595,18 @@ json-stable-stringify-without-jsonify@^1.0.1: resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= -levn@^0.3.0, levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - -lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15: - version "4.17.15" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" - integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== + prelude-ls "^1.2.1" + type-check "~0.4.0" -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== +lodash@^4.17.14, lodash@^4.17.19: + version "4.17.20" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" + integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== minimatch@^3.0.4: version "3.0.4" @@ -628,38 +615,28 @@ minimatch@^3.0.4: dependencies: brace-expansion "^1.1.7" -minimist@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" - integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= +minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== mkdirp@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" - integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= + version "0.5.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== dependencies: - minimist "0.0.8" + minimist "^1.2.5" ms@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -mute-stream@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" - integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== - natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== - once@^1.3.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" @@ -667,29 +644,17 @@ once@^1.3.0: dependencies: wrappy "1" -onetime@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz#fff0f3c91617fe62bb50189636e99ac8a6df7be5" - integrity sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q== - dependencies: - mimic-fn "^2.1.0" - -optionator@^0.8.3: - version "0.8.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" - integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.6" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - word-wrap "~1.2.3" - -os-tmpdir@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" parent-module@^1.0.0: version "1.0.1" @@ -703,20 +668,20 @@ path-is-absolute@^1.0.0: resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= -path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== path-parse@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== prettier-linter-helpers@^1.0.0: version "1.0.0" @@ -725,10 +690,10 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" -prettier@^1.19.1: - version "1.19.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" - integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== +prettier@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.1.1.tgz#d9485dd5e499daa6cb547023b87a6cf51bee37d6" + integrity sha512-9bY+5ZWCfqj3ghYBLxApy2zf6m+NJo5GzmLTpr9FsApsfjriNnS2dahWReHMi7qNPhhHl9SYHJs2cHZLgexNIw== progress@^2.0.0: version "2.0.3" @@ -740,10 +705,10 @@ punycode@^2.1.0: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== -regexpp@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" - integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== +regexpp@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" + integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== resolve-from@^4.0.0: version "4.0.0" @@ -751,20 +716,12 @@ resolve-from@^4.0.0: integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== resolve@^1.12.0: - version "1.15.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.15.1.tgz#27bdcdeffeaf2d6244b95bb0f9f4b4653451f3e8" - integrity sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w== + version "1.17.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" + integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== dependencies: path-parse "^1.0.6" -restore-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" - integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== - dependencies: - onetime "^5.1.0" - signal-exit "^3.0.2" - rimraf@2.6.3: version "2.6.3" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" @@ -772,51 +729,22 @@ rimraf@2.6.3: dependencies: glob "^7.1.3" -run-async@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" - integrity sha1-A3GrSuC91yDUFm19/aZP96RFpsA= - dependencies: - is-promise "^2.1.0" - -rxjs@^6.5.3: - version "6.5.4" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.4.tgz#e0777fe0d184cec7872df147f303572d414e211c" - integrity sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q== - dependencies: - tslib "^1.9.0" - -"safer-buffer@>= 2.1.2 < 3": - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -semver@^5.5.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@^6.1.2: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== +semver@^7.2.1: + version "7.3.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" + integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== dependencies: - shebang-regex "^1.0.0" - -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= + shebang-regex "^3.0.0" -signal-exit@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" - integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== slice-ansi@^2.1.0: version "2.1.0" @@ -846,16 +774,7 @@ string-width@^3.0.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" -string-width@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" - integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.0" - -strip-ansi@^5.1.0, strip-ansi@^5.2.0: +strip-ansi@^5.1.0: version "5.2.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== @@ -869,10 +788,10 @@ strip-ansi@^6.0.0: dependencies: ansi-regex "^5.0.0" -strip-json-comments@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.0.1.tgz#85713975a91fb87bf1b305cca77395e40d2a64a7" - integrity sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw== +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== supports-color@^5.3.0: version "5.5.0" @@ -881,6 +800,13 @@ supports-color@^5.3.0: dependencies: has-flag "^3.0.0" +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + table@^5.2.3: version "5.4.6" resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" @@ -896,34 +822,17 @@ text-table@^0.2.0: resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= -through@^2.3.6: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= - -tmp@^0.0.33: - version "0.0.33" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" - integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== - dependencies: - os-tmpdir "~1.0.2" - to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= -tslib@^1.9.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.0.tgz#f1f3528301621a53220d58373ae510ff747a66bc" - integrity sha512-BmndXUtiTn/VDDrJzQE7Mm22Ix3PxgLltW9bSNLoeCY31gnG2OPx0QqJnuc9oMIKioYrz487i6K9o4Pdn0j+Kg== - -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== dependencies: - prelude-ls "~1.1.2" + prelude-ls "^1.2.1" type-fest@^0.8.1: version "0.8.1" @@ -931,25 +840,25 @@ type-fest@^0.8.1: integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== uri-js@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" - integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== + version "4.4.0" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.0.tgz#aa714261de793e8a82347a7bcc9ce74e86f28602" + integrity sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g== dependencies: punycode "^2.1.0" v8-compile-cache@^2.0.3: - version "2.1.0" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz#e14de37b31a6d194f5690d67efc4e7f6fc6ab30e" - integrity sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g== + version "2.1.1" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz#54bc3cdd43317bca91e35dcaf305b1a7237de745" + integrity sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ== -which@^1.2.9: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" -word-wrap@~1.2.3: +word-wrap@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== -- cgit v1.2.3