Merge branch 'QA_5_2'
Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
This commit is contained in:
commit
c0941401c1
@ -38,6 +38,9 @@ phpMyAdmin - ChangeLog
|
||||
- issue #16769 Fix create index form accepting too many columns
|
||||
- issue #16816 Disable editing to system schemas
|
||||
- issue #16853 Add better error handling when IndexedDB is not working
|
||||
- issue Fixed incorrect escaping of special MySQL characters on some pages
|
||||
- issue #17188 Fix GIS visualization with an edited query
|
||||
- issue #17418 Remove the use of the deprecated `strftime` function in OpenDocument exports
|
||||
|
||||
5.1.3 (2022-02-10)
|
||||
- issue #17308 Fix broken pagination links in the navigation sidebar
|
||||
|
||||
@ -93,7 +93,7 @@
|
||||
"php-webdriver/webdriver": "^1.11",
|
||||
"phpmyadmin/coding-standard": "^3.0.0",
|
||||
"phpstan/extension-installer": "^1.1",
|
||||
"phpstan/phpstan": "^1.4.5",
|
||||
"phpstan/phpstan": "^1.4.8",
|
||||
"phpstan/phpstan-phpunit": "^1.0",
|
||||
"phpstan/phpstan-webmozart-assert": "^1.0",
|
||||
"phpunit/phpunit": "^8.5 || ^9.5",
|
||||
@ -102,7 +102,7 @@
|
||||
"roave/security-advisories": "dev-latest",
|
||||
"symfony/console": "^5.2.3",
|
||||
"tecnickcom/tcpdf": "^6.4.4",
|
||||
"vimeo/psalm": "^4.19"
|
||||
"vimeo/psalm": "^4.22"
|
||||
},
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
@ -110,19 +110,22 @@
|
||||
}
|
||||
},
|
||||
"scripts": {
|
||||
"phpcbf": "phpcbf",
|
||||
"phpcs": "phpcs",
|
||||
"phpstan": "phpstan analyse",
|
||||
"psalm": "psalm --no-diff",
|
||||
"phpunit": "phpunit --color=always",
|
||||
"phpcbf": "@php phpcbf",
|
||||
"phpcs": "@php phpcs",
|
||||
"phpstan": "@php phpstan analyse",
|
||||
"psalm": "@php psalm --no-diff",
|
||||
"phpunit": "@php phpunit --color=always",
|
||||
"test": [
|
||||
"@phpcs",
|
||||
"@phpstan",
|
||||
"@psalm",
|
||||
"@phpunit"
|
||||
],
|
||||
"update:baselines": "phpstan analyse --generate-baseline && psalm --set-baseline=psalm-baseline.xml",
|
||||
"twig-lint": "php scripts/console lint:twig --ansi --show-deprecations"
|
||||
"update:baselines": [
|
||||
"@php phpstan analyse --generate-baseline",
|
||||
"@php psalm --set-baseline=psalm-baseline.xml"
|
||||
],
|
||||
"twig-lint": "@php scripts/console lint:twig --ansi --show-deprecations"
|
||||
},
|
||||
"config":{
|
||||
"sort-packages": true,
|
||||
|
||||
@ -10,7 +10,6 @@ namespace PhpMyAdmin\Config;
|
||||
use PhpMyAdmin\Sanitize;
|
||||
|
||||
use function __;
|
||||
use function htmlspecialchars;
|
||||
use function sprintf;
|
||||
use function str_replace;
|
||||
|
||||
@ -653,10 +652,7 @@ class Descriptions
|
||||
'DisplayServersList_name' => __('Display servers as a list'),
|
||||
'DisableMultiTableMaintenance_name' => __('Disable multi table maintenance'),
|
||||
'ExecTimeLimit_name' => __('Maximum execution time'),
|
||||
'Export_lock_tables_name' => sprintf(
|
||||
__('Use %s statement'),
|
||||
htmlspecialchars('<code>LOCK TABLES</code>')
|
||||
),
|
||||
'Export_lock_tables_name' => __('Use [code]LOCK TABLES[/code] statement'),
|
||||
'Export_asfile_name' => __('Save as file'),
|
||||
'Export_charset_name' => __('Character set of the file'),
|
||||
'Export_codegen_format_name' => __('Format'),
|
||||
|
||||
@ -54,6 +54,7 @@ use function stripos;
|
||||
use function strlen;
|
||||
use function strtolower;
|
||||
use function strtoupper;
|
||||
use function strtr;
|
||||
use function substr;
|
||||
use function syslog;
|
||||
use function trigger_error;
|
||||
@ -505,9 +506,7 @@ class DatabaseInterface implements DbalInterface
|
||||
) . '\')';
|
||||
} else {
|
||||
$sql .= " `Name` LIKE '"
|
||||
. Util::escapeMysqlWildcards(
|
||||
$this->escapeString($table, $link)
|
||||
)
|
||||
. $this->escapeMysqlLikeString($table, $link)
|
||||
. "%'";
|
||||
}
|
||||
|
||||
@ -904,7 +903,7 @@ class DatabaseInterface implements DbalInterface
|
||||
$sql = QueryGenerator::getColumnsSql(
|
||||
$database,
|
||||
$table,
|
||||
Util::escapeMysqlWildcards($this->escapeString($column)),
|
||||
$this->escapeMysqlLikeString($column),
|
||||
$full
|
||||
);
|
||||
/** @var array<string, array> $fields */
|
||||
@ -2132,6 +2131,19 @@ class DatabaseInterface implements DbalInterface
|
||||
return $this->extension->escapeString($this->links[$link], $str);
|
||||
}
|
||||
|
||||
/**
|
||||
* returns properly escaped string for use in MySQL LIKE clauses
|
||||
*
|
||||
* @param string $str string to be escaped
|
||||
* @param int $link optional database link to use
|
||||
*
|
||||
* @return string a MySQL escaped LIKE string
|
||||
*/
|
||||
public function escapeMysqlLikeString(string $str, int $link = self::CONNECT_USER)
|
||||
{
|
||||
return $this->escapeString(strtr($str, ['\\' => '\\\\', '_' => '\\_', '%' => '\\%']), $link);
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if this database server is running on Amazon RDS.
|
||||
*/
|
||||
|
||||
@ -634,6 +634,16 @@ interface DbalInterface
|
||||
*/
|
||||
public function escapeString(string $str, $link = DatabaseInterface::CONNECT_USER);
|
||||
|
||||
/**
|
||||
* returns properly escaped string for use in MySQL LIKE clauses
|
||||
*
|
||||
* @param string $str string to be escaped
|
||||
* @param int $link optional database link to use
|
||||
*
|
||||
* @return string a MySQL escaped LIKE string
|
||||
*/
|
||||
public function escapeMysqlLikeString(string $str, int $link = DatabaseInterface::CONNECT_USER);
|
||||
|
||||
/**
|
||||
* Checks if this database server is running on Amazon RDS.
|
||||
*/
|
||||
|
||||
@ -25,6 +25,7 @@ use function mb_strtolower;
|
||||
use function mb_substr;
|
||||
use function ob_get_clean;
|
||||
use function ob_start;
|
||||
use function rtrim;
|
||||
|
||||
use const PNG_ALL_FILTERS;
|
||||
|
||||
@ -220,7 +221,7 @@ class GisVisualization
|
||||
. ') AS ' . Util::backquote('srid') . ' ';
|
||||
|
||||
// Append the original query as the inner query
|
||||
$modified_query .= 'FROM (' . $sql_query . ') AS '
|
||||
$modified_query .= 'FROM (' . rtrim($sql_query, ';') . ') AS '
|
||||
. Util::backquote('temp_gis');
|
||||
|
||||
// LIMIT clause
|
||||
|
||||
@ -7,10 +7,12 @@ declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin;
|
||||
|
||||
use function date;
|
||||
use DateTime;
|
||||
|
||||
use const DATE_W3C;
|
||||
|
||||
/**
|
||||
* Simplfied OpenDocument creator class
|
||||
* Simplified OpenDocument creator class
|
||||
*/
|
||||
class OpenDocument
|
||||
{
|
||||
@ -33,6 +35,9 @@ EOT;
|
||||
*/
|
||||
public static function create($mime, $data)
|
||||
{
|
||||
// Use the same date method as other PHP libs
|
||||
// https://github.com/PHPOffice/PhpSpreadsheet/blob/1.22.0/src/PhpSpreadsheet/Writer/Ods/Meta.php#L49
|
||||
$dateTimeCreation = (new DateTime())->format(DATE_W3C);
|
||||
$data = [
|
||||
$mime,
|
||||
$data,
|
||||
@ -45,7 +50,7 @@ EOT;
|
||||
. '<meta:generator>phpMyAdmin ' . Version::VERSION . '</meta:generator>'
|
||||
. '<meta:initial-creator>phpMyAdmin ' . Version::VERSION
|
||||
. '</meta:initial-creator>'
|
||||
. '<meta:creation-date>' . date('Y-m-d\TH:i:s')
|
||||
. '<meta:creation-date>' . $dateTimeCreation
|
||||
. '</meta:creation-date>'
|
||||
. '</office:meta>'
|
||||
. '</office:document-meta>',
|
||||
|
||||
@ -3348,9 +3348,7 @@ class Privileges
|
||||
if ($createDb1) {
|
||||
// Create database with same name and grant all privileges
|
||||
$query = 'CREATE DATABASE IF NOT EXISTS '
|
||||
. Util::backquote(
|
||||
$this->dbi->escapeString($username)
|
||||
) . ';';
|
||||
. Util::backquote($username) . ';';
|
||||
$sqlQuery .= $query;
|
||||
if (! $this->dbi->tryQuery($query)) {
|
||||
$message = Message::rawError($this->dbi->getError());
|
||||
@ -3364,9 +3362,7 @@ class Privileges
|
||||
|
||||
$query = 'GRANT ALL PRIVILEGES ON '
|
||||
. Util::backquote(
|
||||
Util::escapeMysqlWildcards(
|
||||
$this->dbi->escapeString($username)
|
||||
)
|
||||
Util::escapeMysqlWildcards($username)
|
||||
) . '.* TO \''
|
||||
. $this->dbi->escapeString($username)
|
||||
. '\'@\'' . $this->dbi->escapeString($hostname) . '\';';
|
||||
@ -3380,9 +3376,7 @@ class Privileges
|
||||
// Grant all privileges on wildcard name (username\_%)
|
||||
$query = 'GRANT ALL PRIVILEGES ON '
|
||||
. Util::backquote(
|
||||
Util::escapeMysqlWildcards(
|
||||
$this->dbi->escapeString($username)
|
||||
) . '\_%'
|
||||
Util::escapeMysqlWildcards($username) . '\_%'
|
||||
) . '.* TO \''
|
||||
. $this->dbi->escapeString($username)
|
||||
. '\'@\'' . $this->dbi->escapeString($hostname) . '\';';
|
||||
|
||||
@ -2274,8 +2274,8 @@ class Util
|
||||
&& is_scalar($_REQUEST['tbl_group'])
|
||||
&& strlen((string) $_REQUEST['tbl_group']) > 0
|
||||
) {
|
||||
$group = self::escapeMysqlWildcards((string) $_REQUEST['tbl_group']);
|
||||
$groupWithSeparator = self::escapeMysqlWildcards(
|
||||
$group = $GLOBALS['dbi']->escapeMysqlLikeString((string) $_REQUEST['tbl_group']);
|
||||
$groupWithSeparator = $GLOBALS['dbi']->escapeMysqlLikeString(
|
||||
$_REQUEST['tbl_group']
|
||||
. $GLOBALS['cfg']['NavigationTreeTableSeparator']
|
||||
);
|
||||
|
||||
@ -18,6 +18,7 @@
|
||||
<exclude-pattern>*/tmp/*</exclude-pattern>
|
||||
<exclude-pattern>*/twig-templates/*</exclude-pattern>
|
||||
<exclude-pattern>*/vendor/*</exclude-pattern>
|
||||
<exclude-pattern>*/.git/*</exclude-pattern>
|
||||
|
||||
<rule ref="PhpMyAdmin"/>
|
||||
|
||||
|
||||
@ -2590,6 +2590,11 @@ parameters:
|
||||
count: 2
|
||||
path: libraries/classes/DatabaseInterface.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#2 \\$link of method PhpMyAdmin\\\\DatabaseInterface\\:\\:escapeMysqlLikeString\\(\\) expects int, mixed given\\.$#"
|
||||
count: 1
|
||||
path: libraries/classes/DatabaseInterface.php
|
||||
|
||||
-
|
||||
message: "#^Parameter \\#2 \\$table of method PhpMyAdmin\\\\Query\\\\Cache\\:\\:cacheTableData\\(\\) expects bool\\|string, array\\|string given\\.$#"
|
||||
count: 1
|
||||
|
||||
@ -5763,7 +5763,7 @@
|
||||
<InvalidReturnType occurrences="1">
|
||||
<code>int|bool</code>
|
||||
</InvalidReturnType>
|
||||
<MixedArgument occurrences="50">
|
||||
<MixedArgument occurrences="51">
|
||||
<code>$_SERVER['SCRIPT_NAME']</code>
|
||||
<code>$a</code>
|
||||
<code>$arrayKeys</code>
|
||||
@ -5786,6 +5786,7 @@
|
||||
<code>$link</code>
|
||||
<code>$link</code>
|
||||
<code>$link</code>
|
||||
<code>$link</code>
|
||||
<code>$oneDatabaseTables</code>
|
||||
<code>$oneDatabaseTables</code>
|
||||
<code>$oneTableName</code>
|
||||
@ -15689,12 +15690,16 @@
|
||||
</NonInvariantDocblockPropertyType>
|
||||
</file>
|
||||
<file src="test/classes/Gis/GisVisualizationTest.php">
|
||||
<MixedAssignment occurrences="5">
|
||||
<MixedAssignment occurrences="9">
|
||||
<code>$dataSet</code>
|
||||
<code>$queryString</code>
|
||||
<code>$queryString</code>
|
||||
<code>$queryString</code>
|
||||
<code>$queryString</code>
|
||||
<code>$queryString</code>
|
||||
<code>$queryString</code>
|
||||
<code>$queryString</code>
|
||||
<code>$queryString</code>
|
||||
</MixedAssignment>
|
||||
</file>
|
||||
<file src="test/classes/GitTest.php">
|
||||
@ -16003,6 +16008,14 @@
|
||||
<code>assertIsArray</code>
|
||||
</RedundantConditionGivenDocblockType>
|
||||
</file>
|
||||
<file src="test/classes/OpenDocumentTest.php">
|
||||
<MixedArgument occurrences="1">
|
||||
<code>$zipExtension->getContents($tmpFile, '/meta\.xml/')['data']</code>
|
||||
</MixedArgument>
|
||||
<RedundantConditionGivenDocblockType occurrences="1">
|
||||
<code>assertNotFalse</code>
|
||||
</RedundantConditionGivenDocblockType>
|
||||
</file>
|
||||
<file src="test/classes/PdfTest.php">
|
||||
<MixedArgument occurrences="3">
|
||||
<code>$arr->getPDFData()</code>
|
||||
|
||||
@ -188,6 +188,7 @@ cleanup_composer_vendors() {
|
||||
vendor/twig/twig/.editorconfig \
|
||||
vendor/twig/twig/.php_cs.dist \
|
||||
vendor/twig/twig/drupal_test.sh \
|
||||
vendor/twig/twig/.php-cs-fixer.dist.php \
|
||||
vendor/webmozart/assert/.editorconfig \
|
||||
vendor/webmozart/assert/.github/ \
|
||||
vendor/webmozart/assert/.php_cs \
|
||||
|
||||
@ -131,6 +131,106 @@ class GisVisualizationTest extends AbstractTestCase
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Modify the query for an MySQL 8.0 version and trim the SQL end character
|
||||
*/
|
||||
public function testModifyQueryTrimSqlEnd(): void
|
||||
{
|
||||
$queryString = $this->callFunction(
|
||||
GisVisualization::getByData([], [
|
||||
'mysqlVersion' => 80000,
|
||||
'spatialColumn' => 'abc',
|
||||
'isMariaDB' => false,
|
||||
]),
|
||||
GisVisualization::class,
|
||||
'modifySqlQuery',
|
||||
[
|
||||
'SELECT 1 FROM foo;',
|
||||
0,
|
||||
0,
|
||||
]
|
||||
);
|
||||
|
||||
$this->assertEquals(
|
||||
'SELECT ST_ASTEXT(`abc`) AS `abc`, ST_SRID(`abc`) AS `srid` FROM (SELECT 1 FROM foo) AS `temp_gis`',
|
||||
$queryString
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Modify the query for an MySQL 8.0 version using a label column
|
||||
*/
|
||||
public function testModifyQueryLabelColumn(): void
|
||||
{
|
||||
$queryString = $this->callFunction(
|
||||
GisVisualization::getByData([], [
|
||||
'mysqlVersion' => 80000,
|
||||
'spatialColumn' => 'country_geom',
|
||||
'labelColumn' => 'country name',
|
||||
'isMariaDB' => false,
|
||||
]),
|
||||
GisVisualization::class,
|
||||
'modifySqlQuery',
|
||||
[
|
||||
'',
|
||||
0,
|
||||
0,
|
||||
]
|
||||
);
|
||||
|
||||
$this->assertEquals(
|
||||
'SELECT `country name`, ST_ASTEXT(`country_geom`) AS `country_geom`,'
|
||||
. ' ST_SRID(`country_geom`) AS `srid` FROM () AS `temp_gis`',
|
||||
$queryString
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Modify the query for an MySQL 8.0 version adding a LIMIT statement
|
||||
*/
|
||||
public function testModifyQueryWithLimit(): void
|
||||
{
|
||||
$queryString = $this->callFunction(
|
||||
GisVisualization::getByData([], [
|
||||
'mysqlVersion' => 80000,
|
||||
'spatialColumn' => 'abc',
|
||||
'isMariaDB' => false,
|
||||
]),
|
||||
GisVisualization::class,
|
||||
'modifySqlQuery',
|
||||
[
|
||||
'',
|
||||
10,// 10 rows
|
||||
0,
|
||||
]
|
||||
);
|
||||
|
||||
$this->assertEquals(
|
||||
'SELECT ST_ASTEXT(`abc`) AS `abc`, ST_SRID(`abc`) AS `srid` FROM () AS `temp_gis` LIMIT 0, 10',
|
||||
$queryString
|
||||
);
|
||||
|
||||
$queryString = $this->callFunction(
|
||||
GisVisualization::getByData([], [
|
||||
'mysqlVersion' => 80000,
|
||||
'spatialColumn' => 'abc',
|
||||
'isMariaDB' => false,
|
||||
]),
|
||||
GisVisualization::class,
|
||||
'modifySqlQuery',
|
||||
[
|
||||
'',
|
||||
15,// 15 rows
|
||||
10,// position 10
|
||||
]
|
||||
);
|
||||
|
||||
$this->assertEquals(
|
||||
'SELECT ST_ASTEXT(`abc`) AS `abc`, ST_SRID(`abc`) AS `srid` FROM () AS `temp_gis` LIMIT 10, 15',
|
||||
$queryString
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Modify the query for an MySQL 8.0.1 version
|
||||
*/
|
||||
|
||||
53
test/classes/OpenDocumentTest.php
Normal file
53
test/classes/OpenDocumentTest.php
Normal file
@ -0,0 +1,53 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Tests;
|
||||
|
||||
use DateTime;
|
||||
use PhpMyAdmin\OpenDocument;
|
||||
use PhpMyAdmin\ZipExtension;
|
||||
use ZipArchive;
|
||||
|
||||
use function file_put_contents;
|
||||
use function tempnam;
|
||||
use function unlink;
|
||||
|
||||
/**
|
||||
* @requires extension zip
|
||||
*/
|
||||
class OpenDocumentTest extends AbstractTestCase
|
||||
{
|
||||
public function testCreateDocument(): void
|
||||
{
|
||||
$document = OpenDocument::create(
|
||||
'application/vnd.oasis.opendocument.text',
|
||||
'<data>'
|
||||
);
|
||||
$this->assertNotFalse($document);
|
||||
|
||||
$tmpFile = (string) tempnam('./', 'open-document-test');
|
||||
$this->assertNotFalse(file_put_contents($tmpFile, $document), 'The temp file should be written');
|
||||
|
||||
$zipExtension = new ZipExtension(new ZipArchive());
|
||||
$this->assertSame([
|
||||
'error' => '',
|
||||
'data' => 'application/vnd.oasis.opendocument.text',
|
||||
], $zipExtension->getContents($tmpFile));
|
||||
|
||||
$this->assertSame([
|
||||
'error' => '',
|
||||
'data' => '<data>',
|
||||
], $zipExtension->getContents($tmpFile, '/content\.xml/'));
|
||||
|
||||
$dateTimeCreation = (new DateTime())->format('Y-m-d\TH:i');
|
||||
$this->assertStringContainsString(
|
||||
// Do not use a full version or seconds could be out of sync and cause flaky test failures
|
||||
'<meta:creation-date>' . $dateTimeCreation,
|
||||
$zipExtension->getContents($tmpFile, '/meta\.xml/')['data']
|
||||
);
|
||||
|
||||
$this->assertSame(5, $zipExtension->getNumberOfFiles($tmpFile));
|
||||
$this->assertTrue(unlink($tmpFile));
|
||||
}
|
||||
}
|
||||
@ -1766,7 +1766,7 @@ class DbiDummy implements DbiExtension
|
||||
'result' => [],
|
||||
],
|
||||
[
|
||||
'query' => "SHOW TABLE STATUS FROM `my_dataset` WHERE `Name` LIKE 'company\_users%'",
|
||||
'query' => "SHOW TABLE STATUS FROM `my_dataset` WHERE `Name` LIKE 'company\\\\_users%'",
|
||||
'result' => [],
|
||||
],
|
||||
[
|
||||
@ -2387,7 +2387,7 @@ class DbiDummy implements DbiExtension
|
||||
'result' => [['1']],
|
||||
],
|
||||
[
|
||||
'query' => 'SHOW TABLE STATUS FROM `PMA_db` WHERE `Name` LIKE \'PMA\_table%\'',
|
||||
'query' => 'SHOW TABLE STATUS FROM `PMA_db` WHERE `Name` LIKE \'PMA\\\\_table%\'',
|
||||
'columns' => ['Name', 'Engine'],
|
||||
'result' => [['PMA_table', 'InnoDB']],
|
||||
],
|
||||
@ -2441,7 +2441,7 @@ class DbiDummy implements DbiExtension
|
||||
],
|
||||
],
|
||||
[
|
||||
'query' => 'SHOW FULL COLUMNS FROM `testdb`.`mytable` LIKE \'\_id\'',
|
||||
'query' => 'SHOW FULL COLUMNS FROM `testdb`.`mytable` LIKE \'\\\\_id\'',
|
||||
'columns' => ['Field', 'Type', 'Collation', 'Null', 'Key', 'Default', 'Extra', 'Privileges', 'Comment'],
|
||||
'result' => [
|
||||
[
|
||||
@ -2546,7 +2546,7 @@ class DbiDummy implements DbiExtension
|
||||
],
|
||||
],
|
||||
[
|
||||
'query' => 'SHOW TABLE STATUS FROM `test_db` WHERE `Name` LIKE \'test\_table%\'',
|
||||
'query' => 'SHOW TABLE STATUS FROM `test_db` WHERE `Name` LIKE \'test\\\\_table%\'',
|
||||
'columns' => ['Name', 'Engine', 'Rows'],
|
||||
'result' => [['test_table', 'InnoDB', '3']],
|
||||
],
|
||||
@ -2711,7 +2711,7 @@ class DbiDummy implements DbiExtension
|
||||
'result' => [],
|
||||
],
|
||||
[
|
||||
'query' => 'SHOW TABLE STATUS FROM `my_db` WHERE `Name` LIKE \'test\_tbl%\'',
|
||||
'query' => 'SHOW TABLE STATUS FROM `my_db` WHERE `Name` LIKE \'test\\\\_tbl%\'',
|
||||
'result' => [],
|
||||
],
|
||||
[
|
||||
|
||||
94
yarn.lock
94
yarn.lock
@ -946,9 +946,9 @@
|
||||
integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
|
||||
|
||||
"@discoveryjs/json-ext@^0.5.0":
|
||||
version "0.5.6"
|
||||
resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.6.tgz#d5e0706cf8c6acd8c6032f8d54070af261bbbb2f"
|
||||
integrity sha512-ws57AidsDvREKrZKYffXddNkyaF14iHNHm8VQnZH6t99E8gczjNN0GpvcGny0imC80yQ0tHz1xVUKk/KFQSUyA==
|
||||
version "0.5.7"
|
||||
resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70"
|
||||
integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==
|
||||
|
||||
"@eslint/eslintrc@^0.4.3":
|
||||
version "0.4.3"
|
||||
@ -1243,9 +1243,9 @@
|
||||
fastq "^1.6.0"
|
||||
|
||||
"@petamoriken/float16@^3.4.7":
|
||||
version "3.6.2"
|
||||
resolved "https://registry.yarnpkg.com/@petamoriken/float16/-/float16-3.6.2.tgz#a4c986305718d22d0f92f0b89722f6ef6b3fc18e"
|
||||
integrity sha512-zZnksXtFBqvONcXWuAtSWrl3YXaDbU2ArRCCuzM42mP0GBJclD6e0GC3zEemmrjiMSOHcLPyRC4vOnAsnomJIw==
|
||||
version "3.6.3"
|
||||
resolved "https://registry.yarnpkg.com/@petamoriken/float16/-/float16-3.6.3.tgz#7ed8f2ae05ea4096f0ccdf2c2655d04aca545d33"
|
||||
integrity sha512-Yx6Z93kmz3JVPYoPPRFJXnt2/G4kfaxRROcZVVHsE4zOClJXvkOVidv/JfvP6hWn16lykbKYKVzUsId6mqXdGg==
|
||||
|
||||
"@popperjs/core@^2.10.2":
|
||||
version "2.11.2"
|
||||
@ -1440,9 +1440,9 @@
|
||||
integrity sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==
|
||||
|
||||
"@types/yargs-parser@*":
|
||||
version "20.2.1"
|
||||
resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.1.tgz#3b9ce2489919d9e4fea439b76916abc34b2df129"
|
||||
integrity sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==
|
||||
version "21.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b"
|
||||
integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==
|
||||
|
||||
"@types/yargs@^16.0.0":
|
||||
version "16.0.4"
|
||||
@ -1976,12 +1976,12 @@ browser-process-hrtime@^1.0.0:
|
||||
integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==
|
||||
|
||||
browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.16.8, browserslist@^4.17.5, browserslist@^4.19.1:
|
||||
version "4.19.3"
|
||||
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.19.3.tgz#29b7caad327ecf2859485f696f9604214bedd383"
|
||||
integrity sha512-XK3X4xtKJ+Txj8G5c30B4gsm71s69lqXlkYui4s6EkKxuv49qjYlY6oVd+IFJ73d4YymtM3+djvvt/R/iJwwDg==
|
||||
version "4.20.0"
|
||||
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.0.tgz#35951e3541078c125d36df76056e94738a52ebe9"
|
||||
integrity sha512-bnpOoa+DownbciXj0jVGENf8VYQnE2LNWomhYuCsMmmx9Jd9lwq0WXODuwpSsp8AVdKM2/HorrzxAfbKvWTByQ==
|
||||
dependencies:
|
||||
caniuse-lite "^1.0.30001312"
|
||||
electron-to-chromium "^1.4.71"
|
||||
caniuse-lite "^1.0.30001313"
|
||||
electron-to-chromium "^1.4.76"
|
||||
escalade "^3.1.1"
|
||||
node-releases "^2.0.2"
|
||||
picocolors "^1.0.0"
|
||||
@ -2059,10 +2059,10 @@ caniuse-api@^3.0.0:
|
||||
lodash.memoize "^4.1.2"
|
||||
lodash.uniq "^4.5.0"
|
||||
|
||||
caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001251, caniuse-lite@^1.0.30001297, caniuse-lite@^1.0.30001312:
|
||||
version "1.0.30001312"
|
||||
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001312.tgz#e11eba4b87e24d22697dae05455d5aea28550d5f"
|
||||
integrity sha512-Wiz1Psk2MEK0pX3rUzWaunLTZzqS2JYZFzNKqAiJGiuxIjRPLgV6+VDPOg6lQOUxmDwhTlh198JsTTi8Hzw6aQ==
|
||||
caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001251, caniuse-lite@^1.0.30001297, caniuse-lite@^1.0.30001313:
|
||||
version "1.0.30001314"
|
||||
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001314.tgz#65c7f9fb7e4594fca0a333bec1d8939662377596"
|
||||
integrity sha512-0zaSO+TnCHtHJIbpLroX7nsD+vYuOVjl3uzFbJO1wMVbuveJA0RK2WcQA9ZUIOiO0/ArMiMgHJLxfEZhQiC0kw==
|
||||
|
||||
chalk@^1.1.3:
|
||||
version "1.1.3"
|
||||
@ -2354,12 +2354,12 @@ css-declaration-sorter@^4.0.1:
|
||||
timsort "^0.3.0"
|
||||
|
||||
css-loader@^6.6.0:
|
||||
version "6.6.0"
|
||||
resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.6.0.tgz#c792ad5510bd1712618b49381bd0310574fafbd3"
|
||||
integrity sha512-FK7H2lisOixPT406s5gZM1S3l8GrfhEBT3ZiL2UX1Ng1XWs0y2GPllz/OTyvbaHe12VgQrIXIzuEGVlbUhodqg==
|
||||
version "6.7.1"
|
||||
resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.7.1.tgz#e98106f154f6e1baf3fc3bc455cb9981c1d5fd2e"
|
||||
integrity sha512-yB5CNFa14MbPJcomwNh3wLThtkZgcNyI2bNMRt8iE5Z8Vwl7f8vQXFAzn2HDOJvtDq2NTZBUGMSUNNyrv3/+cw==
|
||||
dependencies:
|
||||
icss-utils "^5.1.0"
|
||||
postcss "^8.4.5"
|
||||
postcss "^8.4.7"
|
||||
postcss-modules-extract-imports "^3.0.0"
|
||||
postcss-modules-local-by-default "^4.0.0"
|
||||
postcss-modules-scope "^3.0.0"
|
||||
@ -2642,10 +2642,10 @@ dot-prop@^5.2.0:
|
||||
dependencies:
|
||||
is-obj "^2.0.0"
|
||||
|
||||
electron-to-chromium@^1.4.71:
|
||||
version "1.4.75"
|
||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.75.tgz#d1ad9bb46f2f1bf432118c2be21d27ffeae82fdd"
|
||||
integrity sha512-LxgUNeu3BVU7sXaKjUDD9xivocQLxFtq6wgERrutdY/yIOps3ODOZExK1jg8DTEg4U8TUCb5MLGeWFOYuxjF3Q==
|
||||
electron-to-chromium@^1.4.76:
|
||||
version "1.4.81"
|
||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.81.tgz#a9ce8997232fb9fb0ec53de8931a85b18c0a7383"
|
||||
integrity sha512-Gs7xVpIZ7tYYSDA+WgpzwpPvfGwUk3KSIjJ0akuj5XQHFdyQnsUoM76EA4CIHXNLPiVwTwOFay9RMb0ChG3OBw==
|
||||
|
||||
emittery@^0.8.1:
|
||||
version "0.8.1"
|
||||
@ -2662,10 +2662,10 @@ emojis-list@^3.0.0:
|
||||
resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78"
|
||||
integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==
|
||||
|
||||
enhanced-resolve@^5.8.3:
|
||||
version "5.9.1"
|
||||
resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.9.1.tgz#e898cea44d9199fd92137496cff5691b910fb43e"
|
||||
integrity sha512-jdyZMwCQ5Oj4c5+BTnkxPgDZO/BJzh/ADDmKebayyzNwjVX1AFCeGkOfxNx0mHi2+8BKC5VxUYiw3TIvoT7vhw==
|
||||
enhanced-resolve@^5.9.2:
|
||||
version "5.9.2"
|
||||
resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.9.2.tgz#0224dcd6a43389ebfb2d55efee517e5466772dd9"
|
||||
integrity sha512-GIm3fQfwLJ8YZx2smuHpBKkXC1yOk+OBEmKckVyL0i/ea8mqDEykK3ld5dgH1QYPNyT/lIllxV2LULnxCHaHkA==
|
||||
dependencies:
|
||||
graceful-fs "^4.2.4"
|
||||
tapable "^2.2.0"
|
||||
@ -3071,9 +3071,9 @@ form-data@^3.0.0:
|
||||
mime-types "^2.1.12"
|
||||
|
||||
fraction.js@^4.1.2:
|
||||
version "4.1.3"
|
||||
resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.1.3.tgz#be65b0f20762ef27e1e793860bc2dfb716e99e65"
|
||||
integrity sha512-pUHWWt6vHzZZiQJcM6S/0PXfS+g6FM4BF5rj9wZyreivhQPdsh5PpE25VtSNxq80wHS5RfY51Ii+8Z0Zl/pmzg==
|
||||
version "4.2.0"
|
||||
resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.2.0.tgz#448e5109a313a3527f5a3ab2119ec4cf0e0e2950"
|
||||
integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==
|
||||
|
||||
fs-extra@^10.0.0:
|
||||
version "10.0.1"
|
||||
@ -3316,9 +3316,9 @@ has-flag@^4.0.0:
|
||||
integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
|
||||
|
||||
has-symbols@^1.0.1, has-symbols@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423"
|
||||
integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8"
|
||||
integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==
|
||||
|
||||
has-tostringtag@^1.0.0:
|
||||
version "1.0.0"
|
||||
@ -4659,9 +4659,9 @@ min-indent@^1.0.0:
|
||||
integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==
|
||||
|
||||
mini-css-extract-plugin@^2.5.3:
|
||||
version "2.5.3"
|
||||
resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.5.3.tgz#c5c79f9b22ce9b4f164e9492267358dbe35376d9"
|
||||
integrity sha512-YseMB8cs8U/KCaAGQoqYmfUuhhGW0a9p9XvWXrxVOkE3/IiISTLw4ALNt7JR5B2eYauFM+PQGSbXMDmVbR7Tfw==
|
||||
version "2.6.0"
|
||||
resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.6.0.tgz#578aebc7fc14d32c0ad304c2c34f08af44673f5e"
|
||||
integrity sha512-ndG8nxCEnAemsg4FSgS+yNyHKgkTB4nPKqCOgh65j3/30qqC5RaSQQXMm++Y6sb6E1zRSxPkztj9fqxhS1Eo6w==
|
||||
dependencies:
|
||||
schema-utils "^4.0.0"
|
||||
|
||||
@ -5464,10 +5464,10 @@ postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.2, postcss@^7.0.21
|
||||
picocolors "^0.2.1"
|
||||
source-map "^0.6.1"
|
||||
|
||||
postcss@^8.3.11, postcss@^8.3.8, postcss@^8.4.5:
|
||||
version "8.4.7"
|
||||
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.7.tgz#f99862069ec4541de386bf57f5660a6c7a0875a8"
|
||||
integrity sha512-L9Ye3r6hkkCeOETQX6iOaWZgjp3LL6Lpqm6EtgbKrgqGGteRMNb9vzBfRL96YOSu8o7x3MfIH9Mo5cPJFGrW6A==
|
||||
postcss@^8.3.11, postcss@^8.3.8, postcss@^8.4.7:
|
||||
version "8.4.8"
|
||||
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.8.tgz#dad963a76e82c081a0657d3a2f3602ce10c2e032"
|
||||
integrity sha512-2tXEqGxrjvAO6U+CJzDL2Fk2kPHTv1jQsYkSoMeOis2SsYaXRO2COxTdQp99cYvif9JTXaAk9lYGc3VhJt7JPQ==
|
||||
dependencies:
|
||||
nanoid "^3.3.1"
|
||||
picocolors "^1.0.0"
|
||||
@ -6822,9 +6822,9 @@ webpack-sources@^3.2.3:
|
||||
integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==
|
||||
|
||||
webpack@^5.68.0:
|
||||
version "5.69.1"
|
||||
resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.69.1.tgz#8cfd92c192c6a52c99ab00529b5a0d33aa848dc5"
|
||||
integrity sha512-+VyvOSJXZMT2V5vLzOnDuMz5GxEqLk7hKWQ56YxPW/PQRUuKimPqmEIJOx8jHYeyo65pKbapbW464mvsKbaj4A==
|
||||
version "5.70.0"
|
||||
resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.70.0.tgz#3461e6287a72b5e6e2f4872700bc8de0d7500e6d"
|
||||
integrity sha512-ZMWWy8CeuTTjCxbeaQI21xSswseF2oNOwc70QSKNePvmxE7XW36i7vpBMYZFAUHPwQiEbNGCEYIOOlyRbdGmxw==
|
||||
dependencies:
|
||||
"@types/eslint-scope" "^3.7.3"
|
||||
"@types/estree" "^0.0.51"
|
||||
@ -6835,7 +6835,7 @@ webpack@^5.68.0:
|
||||
acorn-import-assertions "^1.7.6"
|
||||
browserslist "^4.14.5"
|
||||
chrome-trace-event "^1.0.2"
|
||||
enhanced-resolve "^5.8.3"
|
||||
enhanced-resolve "^5.9.2"
|
||||
es-module-lexer "^0.9.0"
|
||||
eslint-scope "5.1.1"
|
||||
events "^3.2.0"
|
||||
|
||||
Loading…
Reference in New Issue
Block a user