From dfee93853e9a854ac644e9d836b14008d2bec3f2 Mon Sep 17 00:00:00 2001
From: libraryupgrader <tools.libraryupgrader@tools.wmflabs.org>
Date: Sat, 27 Apr 2024 12:16:52 +0000
Subject: [PATCH] build: Updating dependencies
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
composer:
* mediawiki/mediawiki-codesniffer: 41.0.0 → 43.0.0
The following sniffs are failing and were disabled:
* Generic.CodeAnalysis.AssignmentInCondition.Found
* Generic.NamingConventions.UpperCaseConstantName.ClassConstantNotUpperCase
* MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic
* MediaWiki.Commenting.FunctionComment.MissingParamTag
* MediaWiki.Commenting.FunctionComment.MissingParamType
* MediaWiki.Commenting.FunctionComment.MissingReturnType
* MediaWiki.Commenting.FunctionComment.ParamNameNoMatch
* MediaWiki.Usage.AssignmentInReturn.AssignmentInReturn
* MediaWiki.Usage.SuperGlobalsUsage.SuperGlobals
* MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment
* php-parallel-lint/php-parallel-lint: 1.3.2 → 1.4.0
npm:
* eslint-config-wikimedia: 0.24.0 → 0.27.0
The following rules are failing and were disabled:
* no-fallthrough
* no-console
* no-unused-vars
* no-tabs
* no-alert
* no-redeclare
* no-unused-expressions
* no-unreachable
* compat/compat
* no-sequences
* no-undef
* block-scoped-var
* grunt-eslint: 24.0.0 → 24.3.0
* grunt-stylelint: 0.18.0 → 0.19.0
* stylelint-config-wikimedia: 0.14.0 → 0.16.1
The following rules are failing and were disabled:
* declaration-property-unit-disallowed-list
* selector-max-id
* stylistic/indentation
Change-Id: Ie565b07c85b9de6a73e9b816401ccef9bb3f0d82
---
.eslintrc.json | 14 +-
.phpcs.xml | 10 +
.stylelintrc.json | 7 +-
composer.json | 9 +-
includes/PageEncryption.php | 244 +-
includes/PageEncryptionHooks.php | 93 +-
includes/PageEncryptionRevisionLookup.php | 4 +-
.../api/PageEncryptionApiSetEncryptionKey.php | 8 +-
.../PageEncryptionPermissionsPager.php | 10 +-
.../SpecialPageEncryptionPermissions.php | 16 +-
package-lock.json | 3259 +++++++++++------
package.json | 8 +-
resources/PageEncryptionPassword.js | 374 +-
resources/PageEncryptionPasswordValidator.js | 71 +-
resources/PageEncryptionPermissions.js | 112 +-
resources/style.css | 19 +-
16 files changed, 2651 insertions(+), 1607 deletions(-)
diff --git a/.eslintrc.json b/.eslintrc.json
index 630ef5f..c52a2cb 100644
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -9,6 +9,18 @@
"camelcase": "off",
"no-var": "off",
"no-jquery/no-global-selector": "warn",
- "no-jquery/no-sizzle": "warn"
+ "no-jquery/no-sizzle": "warn",
+ "no-fallthrough": "warn",
+ "no-console": "warn",
+ "no-unused-vars": "warn",
+ "no-tabs": "warn",
+ "no-redeclare": "warn",
+ "no-unused-expressions": "warn",
+ "no-unreachable": "warn",
+ "no-sequences": "warn",
+ "no-undef": "warn",
+ "block-scoped-var": "warn",
+ "compat/compat": "warn",
+ "no-alert": "warn"
}
}
diff --git a/.phpcs.xml b/.phpcs.xml
index 4b70135..0a6a1b2 100644
--- a/.phpcs.xml
+++ b/.phpcs.xml
@@ -1,8 +1,18 @@
<?xml version="1.0"?>
<ruleset>
<rule ref="./vendor/mediawiki/mediawiki-codesniffer/MediaWiki">
+ <exclude name="Generic.CodeAnalysis.AssignmentInCondition.Found" />
<exclude name="Generic.Files.LineLength.TooLong" />
+ <exclude name="Generic.NamingConventions.UpperCaseConstantName.ClassConstantNotUpperCase" />
+ <exclude name="MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic" />
+ <exclude name="MediaWiki.Commenting.FunctionComment.MissingParamTag" />
+ <exclude name="MediaWiki.Commenting.FunctionComment.MissingParamType" />
+ <exclude name="MediaWiki.Commenting.FunctionComment.MissingReturnType" />
+ <exclude name="MediaWiki.Commenting.FunctionComment.ParamNameNoMatch" />
<exclude name="MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName" />
+ <exclude name="MediaWiki.Usage.AssignmentInReturn.AssignmentInReturn" />
+ <exclude name="MediaWiki.Usage.SuperGlobalsUsage.SuperGlobals" />
+ <exclude name="MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment" />
</rule>
<file>.</file>
<arg name="extensions" value="php"/>
diff --git a/.stylelintrc.json b/.stylelintrc.json
index 2c90730..f40fa97 100644
--- a/.stylelintrc.json
+++ b/.stylelintrc.json
@@ -1,3 +1,8 @@
{
- "extends": "stylelint-config-wikimedia"
+ "extends": "stylelint-config-wikimedia",
+ "rules": {
+ "declaration-property-unit-disallowed-list": null,
+ "selector-max-id": null,
+ "stylistic/indentation": null
+ }
}
diff --git a/composer.json b/composer.json
index 0fa7b57..db97a97 100644
--- a/composer.json
+++ b/composer.json
@@ -1,9 +1,9 @@
{
"require-dev": {
- "mediawiki/mediawiki-codesniffer": "41.0.0",
+ "mediawiki/mediawiki-codesniffer": "43.0.0",
"mediawiki/minus-x": "1.1.1",
"php-parallel-lint/php-console-highlighter": "1.0.0",
- "php-parallel-lint/php-parallel-lint": "1.3.2"
+ "php-parallel-lint/php-parallel-lint": "1.4.0"
},
"scripts": {
"test": [
@@ -19,5 +19,10 @@
},
"require": {
"defuse/php-encryption": "^2.3"
+ },
+ "config": {
+ "allow-plugins": {
+ "dealerdirect/phpcodesniffer-composer-installer": true
+ }
}
}
diff --git a/includes/PageEncryption.php b/includes/PageEncryption.php
index b3c1de7..20bdb7e 100644
--- a/includes/PageEncryption.php
+++ b/includes/PageEncryption.php
@@ -21,38 +21,39 @@
* @copyright Copyright ©2023, https://wikisphere.org
*/
use Defuse\Crypto\Crypto;
-use Defuse\Crypto\KeyProtectedByPassword;
use Defuse\Crypto\Key;
+use Defuse\Crypto\KeyProtectedByPassword;
use MediaWiki\MainConfigNames;
use MediaWiki\MediaWikiServices;
-use MediaWiki\Revision\RevisionStore;
use MediaWiki\Revision\MutableRevisionRecord;
+use MediaWiki\Revision\RevisionStore;
use MediaWiki\Revision\RevisionStoreRecord;
-use MediaWiki\Session\SessionManager;
+
class PageEncryption {
/** @var User */
public static $User;
/** @var userGroupManager */
public static $userGroupManager;
-
+
/** @var encryptedNamespace */
public static $encryptedNamespace = 2246;
-
+
/** @var cookieUserKey */
public static $cookieUserKey = 'pageencryption-userkey';
-
+
/** @var cachedMockUpRev */
public static $cachedMockUpRev = [];
/** @const DecryptionFailed */
public const DecryptionFailed = 1;
-
+
/** @const DecryptionFromAccessCode */
public const DecryptionFromAccessCode = 2;
/** @const EncryptedPage */
public const EncryptedPage = 3;
-
+
/** @var decryptionNotice */
public static $decryptionNotice = null;
+
/**
* @param User|null $user
*/
@@ -60,6 +61,7 @@ class PageEncryption {
self::$User = $user;
self::$userGroupManager = MediaWikiServices::getInstance()->getUserGroupManager();
}
+
/**
* @return User|null
*/
@@ -69,6 +71,7 @@ class PageEncryption {
}
return RequestContext::getMain()->getUser();
}
+
/**
* param string $password
* @return string
@@ -77,20 +80,21 @@ class PageEncryption {
// @see https://github.com/defuse/php-encryption/blob/master/docs/Tutorial.md
$protected_key = KeyProtectedByPassword::createRandomPasswordProtectedKey( $password );
$protected_key_encoded = $protected_key->saveToAsciiSafeString();
- $protected_key = KeyProtectedByPassword::loadFromAsciiSafeString( $protected_key_encoded );
-
- // @todo save to database
-
- return $protected_key;
+ $protected_key = KeyProtectedByPassword::loadFromAsciiSafeString( $protected_key_encoded );
+
+ // @todo save to database
+
+ return $protected_key;
}
+
/**
* @return array
*/
public static function getCookieOptions() {
$context = RequestContext::getMain();
$config = $context->getConfig();
-
- list(
+
+ [
$cookieSameSite,
$cookiePrefix,
$cookiePath,
@@ -98,7 +102,7 @@ class PageEncryption {
$cookieSecure,
$forceHTTPS,
$cookieHttpOnly,
- ) = ( class_exists( 'MediaWiki\MainConfigNames' ) ?
+ ] = ( class_exists( 'MediaWiki\MainConfigNames' ) ?
[
MainConfigNames::CookieSameSite,
MainConfigNames::CookiePrefix,
@@ -107,7 +111,7 @@ class PageEncryption {
MainConfigNames::CookieSecure,
MainConfigNames::ForceHTTPS,
MainConfigNames::CookieHttpOnly
- ] :
+ ] :
[
'CookieSameSite',
'CookiePrefix',
@@ -117,8 +121,8 @@ class PageEncryption {
'ForceHTTPS',
'CookieHttpOnly'
]
- );
-
+ );
+
// @codeCoverageIgnoreStart
return [
'prefix' => $config->get( $cookiePrefix ),
@@ -128,52 +132,53 @@ class PageEncryption {
|| $config->get( $forceHTTPS ),
'httpOnly' => $config->get( $cookieHttpOnly ),
'sameSite' => $config->get( $cookieSameSite )
- ];
- }
+ ];
+ }
+
/**
* @param string $cookieValue
- * @return
+ * @return
*/
public static function setCookie( $cookieValue ) {
- // setcookie( 'pageencryption-passwordkey', $protected_key_encoded, array $options = []): bool
- $context = RequestContext::getMain();
- $request = $context->getRequest();
+ // setcookie( 'pageencryption-passwordkey', $protected_key_encoded, array $options = []): bool
+ $context = RequestContext::getMain();
+ $request = $context->getRequest();
$response = $request->response();
- // $session = SessionManager::getGlobalSession();
+ // $session = SessionManager::getGlobalSession();
// $expiration = $session->getProvider()->getRememberUserDuration();
$cookieOptions = self::getCookieOptions();
-
+
$session = $request->getSession();
-
+
$sessionProvider = $session->getProvider();
// !( $session->getProvider() instanceof CookieSessionProvider )
// $info = $sessionProvider->provideSessionInfo( $request );
// $provider = $info->getProvider();
-
+
// @TODO subtract (current time - login time)
$expiryValue = $sessionProvider->getRememberUserDuration() + time();
return $response->setCookie( self::$cookieUserKey, $cookieValue, $expiryValue, $cookieOptions );
}
-
+
/**
- * @return
+ * @return
*/
public static function deleteCookie() {
$context = RequestContext::getMain();
- $request = $context->getRequest();
+ $request = $context->getRequest();
$response = $request->response();
-
+
// @see CookieSessionProvider unpersistSession
$cookies = [
self::$cookieUserKey => false,
];
$cookieOptions = self::getCookieOptions();
-
+
foreach ( $cookies as $key => $value ) {
$response->clearCookie( $key, $cookieOptions );
}
}
-
+
/**
* @param int $pageId
* @param Key $user_key
@@ -203,19 +208,20 @@ class PageEncryption {
try {
$text = Crypto::decrypt( $text, $user_key );
} catch ( Defuse\Crypto\Exception\WrongKeyOrModifiedCiphertextException $ex ) {
- continue;
+ continue;
}
-
+
return $text;
}
return false;
}
+
/**
* @param int $pageId
* @param string $password
* @return string|bool
*/
- public static function decryptFromAccessCode( $pageId, $password ) {
+ public static function decryptFromAccessCode( $pageId, $password ) {
$dbr = wfGetDB( DB_MASTER );
$rows = $dbr->select( 'pageencryption_permissions', '*', [ 'page_id' => $pageId, 'viewed' => null ] );
foreach ( $rows as $row ) {
@@ -223,28 +229,28 @@ class PageEncryption {
try {
$user_key = $protected_key->unlockKey( $password );
} catch ( Defuse\Crypto\Exception\WrongKeyOrModifiedCiphertextException $ex ) {
- continue;
+ continue;
}
$user_key_encoded = $user_key->saveToAsciiSafeString();
$context = RequestContext::getMain();
- $request = $context->getRequest();
- $response = $request->response();
+ $request = $context->getRequest();
+ $response = $request->response();
$cookieOptions = self::getCookieOptions();
$cookieValue = $user_key_encoded;
$expiryValue = 0;
$cookieOptions = self::getCookieOptions();
$cookieKey = self::$cookieUserKey . '-acode-' . $pageId;
$response->setCookie( $cookieKey, $cookieValue, $expiryValue, $cookieOptions );
-
+
// $ret = Key::loadFromAsciiSafeString( $user_key_encoded );
$text = $row->encrypted_content;
try {
$text = Crypto::decrypt( $text, $user_key );
} catch ( Defuse\Crypto\Exception\WrongKeyOrModifiedCiphertextException $ex ) {
- continue;
+ continue;
}
$date = date( 'Y-m-d H:i:s' );
-
+
// allow no-track
$viewed_metadata = ( empty( $_GET['no_track'] ) ? json_encode( [
'ip' => self::getIPAddress(),
@@ -259,10 +265,10 @@ class PageEncryption {
}
return false;
}
-
+
/**
* @param
- * @return
+ * @return
*/
public static function mockUpRevision( $rev ) {
// *** prevents error "Sessions are disabled for load entry point"
@@ -282,7 +288,7 @@ class PageEncryption {
if ( array_key_exists( $cacheKey, self::$cachedMockUpRev ) ) {
return self::$cachedMockUpRev[$cacheKey];
}
-
+
$content = $rev->getSlot( MediaWiki\Revision\SlotRecord::MAIN )->getContent();
if ( !( $content instanceof TextContent ) ) {
@@ -300,7 +306,7 @@ class PageEncryption {
try {
$user_key = Key::loadFromAsciiSafeString( $user_key_encoded );
} catch ( Defuse\Crypto\Exception\WrongKeyOrModifiedCiphertextException $ex ) {
- }
+ }
$text = self::decryptFromAccessCodeSession( $pageId, $user_key );
} elseif ( !empty( $_GET['acode'] ) ) {
$text = self::decryptFromAccessCode( $pageId, $_GET['acode'] );
@@ -327,12 +333,12 @@ class PageEncryption {
// should be instance of text
$contentHandler = $content->getContentHandler();
$modelId = $contentHandler->getModelID();
-
+
$slotContent = ContentHandler::makeContent( $text, $title, $modelId );
$revisionRecord = MutableRevisionRecord::newFromParentRevision( $rev );
$slots = $revisionRecord->getSlots();
$slots->setContent( MediaWiki\Revision\SlotRecord::MAIN, $slotContent );
-
+
$user = $rev->getUser();
$comment = $rev->getComment();
$row = [
@@ -346,24 +352,26 @@ class PageEncryption {
'rev_sha1' => $rev->getSha1(),
'page_latest' => $rev->getId(),
];
- return self::$cachedMockUpRev[$cacheKey] = new RevisionStoreRecord( $title, $user, $comment, (object)$row, $slots );
+ return self::$cachedMockUpRev[$cacheKey] = new RevisionStoreRecord( $title, $user, $comment, (object)$row, $slots );
}
+
/**
* @return string
*/
public static function getUserKey() {
- $context = RequestContext::getMain();
- $request = $context->getRequest();
+ $context = RequestContext::getMain();
+ $request = $context->getRequest();
if ( !$user_key_encoded = $request->getCookie( self::$cookieUserKey ) ) {
return false;
}
try {
$ret = Key::loadFromAsciiSafeString( $user_key_encoded );
} catch ( Defuse\Crypto\Exception\WrongKeyOrModifiedCiphertextException $ex ) {
-
+
}
return $ret;
}
+
/**
* @return false|string
*/
@@ -374,10 +382,11 @@ class PageEncryption {
try {
$text = Crypto::decrypt( $text, $user_key );
} catch ( Defuse\Crypto\Exception\WrongKeyOrModifiedCiphertextException $ex ) {
- return false;
+ return false;
}
return $text;
}
+
/**
* @param string $text
* @param string|null $user_key
@@ -387,14 +396,14 @@ class PageEncryption {
if ( !$user_key && !$user_key = self::getUserKey() ) {
return false;
}
- try {
+ try {
$text = Crypto::encrypt( $text, $user_key );
} catch ( Defuse\Crypto\Exception\WrongKeyOrModifiedCiphertextException $ex ) {
- return false;
+ return false;
}
return $text;
}
-
+
/**
* @return MediaWiki\User\UserGroupManager|null
*/
@@ -404,6 +413,7 @@ class PageEncryption {
}
return MediaWikiServices::getInstance()->getUserGroupManager();
}
+
/**
* @param User $user
* @param Title $title
@@ -423,38 +433,38 @@ class PageEncryption {
}
$row['created_by'] = $user->getId();
$row['page_id'] = $title->getArticleId();
- $wikiPage = \PageEncryption::getWikiPage( $title );
+ $wikiPage = self::getWikiPage( $title );
$revisionRecord = $wikiPage->getRevisionRecord();
$row['revision_id'] = $revisionRecord->getId();
do {
$password = self::random_str( 5 );
$row['encrypted_password'] = self::encryptSymmetric( $password );
-
+
$row_ = $dbr->selectRow(
'pageencryption_permissions',
'*',
[ 'page_id' => $row['page_id'], 'encrypted_password' => $row['encrypted_password'] ],
__METHOD__
);
- } while( $row_ !== false );
+ } while ( $row_ !== false );
$contentHandler = $revisionRecord->getSlot( MediaWiki\Revision\SlotRecord::MAIN )->getContent()->getContentHandler();
$modelId = $contentHandler->getModelID();
-
+
$content = $revisionRecord->getSlot( MediaWiki\Revision\SlotRecord::MAIN )->getContent();
-
+
// should be instance of text
$contentHandler = $content->getContentHandler();
-
+
$text = $content->getText();
$protected_key = KeyProtectedByPassword::createRandomPasswordProtectedKey( $password );
$protected_key_encoded = $protected_key->saveToAsciiSafeString();
$user_key = $protected_key->unlockKey( $password );
$text = self::encryptSymmetric( $text, $user_key );
-
+
$row['protected_key'] = $protected_key_encoded;
$row['encrypted_content'] = $text;
$row['expiration_date'] = null;
-
+
$res = $dbr->insert( 'pageencryption_permissions', $row + [ 'updated_at' => $date, 'created_at' => $date ] );
} else {
unset( $row['access_type'] );
@@ -462,6 +472,7 @@ class PageEncryption {
}
return $res;
}
+
/**
* @param string $protected_key
* @param string $password
@@ -470,7 +481,7 @@ class PageEncryption {
*/
public static function setUserKey( $protected_key, $password, &$message ) {
$protected_key = KeyProtectedByPassword::loadFromAsciiSafeString( $protected_key );
-
+
// @see https://github.com/defuse/php-encryption/blob/master/docs/classes/Crypto.md
try {
$user_key = $protected_key->unlockKey( $password );
@@ -483,22 +494,23 @@ class PageEncryption {
if ( $res === false ) {
$message = wfMessage( 'pageencryption-error-message-cannot-set-cookie' )->text();
}
-
+
return $res;
}
-
+
/**
* @param array $row
* @return bool
*/
public static function disableEncryptionKeyRecord( $row ) {
return $dbr->update(
- 'pageencryption_keys',
- [ 'enabled' => 0 ],
- [ 'id' => $row['id'] ],
- __METHOD__
- );
+ 'pageencryption_keys',
+ [ 'enabled' => 0 ],
+ [ 'id' => $row['id'] ],
+ __METHOD__
+ );
}
+
/**
* @param string $user_id
* @param string $password
@@ -509,22 +521,22 @@ class PageEncryption {
public static function setEncryptionKey( $user_id, $password, &$message, &$protected_key_encoded ) {
$protected_key = KeyProtectedByPassword::createRandomPasswordProtectedKey( $password );
$protected_key_encoded = $protected_key->saveToAsciiSafeString();
-
+
$row = [
'user_id' => $user_id,
'protected_key' => $protected_key_encoded,
];
-
+
$date = date( 'Y-m-d H:i:s' );
-
+
$dbr = wfGetDB( DB_MASTER );
$res = $dbr->insert( 'pageencryption_keys', $row + [ 'updated_at' => $date, 'created_at' => $date ] );
-
+
if ( !$res ) {
$message = wfMessage( 'pageencryption-error-message-cannot-save-encryptionkey' )->text();
return false;
}
-
+
$protected_key = KeyProtectedByPassword::loadFromAsciiSafeString( $protected_key_encoded );
$user_key = $protected_key->unlockKey( $password );
$user_key_encoded = $user_key->saveToAsciiSafeString();
@@ -534,14 +546,15 @@ class PageEncryption {
}
return $res;
}
+
/**
* @param Title $title
* @return bool
*/
public static function isEncryptedNamespace( $title ) {
- return $title->getNamespace() === self::$encryptedNamespace;
+ return $title->getNamespace() === self::$encryptedNamespace;
}
-
+
/**
* @see OutputPage addHelpLink
* @param OutputPage $outputPage
@@ -549,7 +562,7 @@ class PageEncryption {
public static function addIndicator( $outputPage ) {
$to = 'Extension:PageEncryption';
$toUrlencoded = wfUrlencode( str_replace( ' ', '_', $to ) );
- $helpUrl = "https://www.mediawiki.org/wiki/Special:MyLanguage/$toUrlencoded";
+ $helpUrl = "https://www.mediawiki.org/wiki/Special:MyLanguage/$toUrlencoded";
$text = '';
$link = Html::rawElement(
'a',
@@ -560,11 +573,12 @@ class PageEncryption {
],
$text
);
-
+
$outputPage->setIndicators( [
'pageencryption' => $link
] );
}
+
/**
* @param OutputPage $outputPage
* @param Title $title
@@ -583,10 +597,11 @@ class PageEncryption {
// httpOnly cookies cannot be accessed client-side, so we
// set a specific variable
'pageencryption-user-is-editor' => true,
- 'pageencryption-userkey-cookie-isSet' => \PageEncryption::getUserKey() !== false,
- 'pageencryption-protected-key-isSet' => is_array( \PageEncryption::getEncryptionKeyRecord( $user->getId() ) ),
+ 'pageencryption-userkey-cookie-isSet' => self::getUserKey() !== false,
+ 'pageencryption-protected-key-isSet' => is_array( self::getEncryptionKeyRecord( $user->getId() ) ),
] );
}
+
/**
* @param array $conds
* @return void
@@ -601,7 +616,7 @@ class PageEncryption {
);
return $row ? (array)$row : null;
}
-
+
/**
* @param array $conds
* @return void
@@ -609,11 +624,11 @@ class PageEncryption {
public static function deleteEncryptionKey( $conds ) {
$dbw = wfGetDB( DB_PRIMARY );
$dbw->delete(
- 'pageencrption_keys', $conds,
+ 'pageencrption_keys', $conds,
__METHOD__
);
}
-
+
/**
* @param array $conds
* @return void
@@ -621,10 +636,11 @@ class PageEncryption {
public static function deletePermissions( $conds ) {
$dbw = wfGetDB( DB_PRIMARY );
$dbw->delete(
- 'pageencryption_permissions', $conds,
+ 'pageencryption_permissions', $conds,
__METHOD__
);
}
+
/**
* @param OutputPage $outputPage
* @param array $items
@@ -632,7 +648,7 @@ class PageEncryption {
*/
public static function addHeaditem( $outputPage, $items ) {
foreach ( $items as $key => $val ) {
- list( $type, $url ) = $val;
+ [ $type, $url ] = $val;
switch ( $type ) {
case 'stylesheet':
$item = '<link rel="stylesheet" href="' . $url . '" />';
@@ -645,6 +661,7 @@ class PageEncryption {
$outputPage->addHeadItem( 'pageencryption_head_item' . $key, $item );
}
}
+
/**
* @param Title $title
* @param User|null $user
@@ -656,8 +673,8 @@ class PageEncryption {
}
$page = self::getWikiPage( $title );
return $page->getUser() === $user->getId();
- }
-
+ }
+
/**
* @param User $user
* @return bool
@@ -667,12 +684,12 @@ class PageEncryption {
$admins = array_unique( array_merge( $admins, [ 'sysop' ] ) );
return self::matchUsernameOrGroup( $user, $admins );
}
-
+
/**
- * @param User $user
- * @param array $groups
- * @return bool
- */
+ * @param User $user
+ * @param array $groups
+ * @return bool
+ */
public static function matchUsernameOrGroup( $user, $groups ) {
$userGroupManager = self::getUserGroupManager();
// ***the following prevents that an user
@@ -687,6 +704,7 @@ class PageEncryption {
}
return $isAuthorized;
}
+
/**
* @param string $varName
* @return array
@@ -701,6 +719,7 @@ class PageEncryption {
}
return $ret;
}
+
/**
* @param MediaWiki\User\UserGroupManager $userGroupManager
* @param User $user
@@ -719,6 +738,7 @@ class PageEncryption {
}
return $user_groups;
}
+
/**
* @param Title $title
* @return void
@@ -730,35 +750,35 @@ class PageEncryption {
}
return WikiPage::factory( $title );
}
-
+
/**
- * @see https://stackoverflow.com/questions/6101956/generating-a-random-password-in-php
- * @param int $length
+ * @see https://stackoverflow.com/questions/6101956/generating-a-random-password-in-php
+ * @param int $length
* @param string $keyspaceto select from
* @return string
*/
public static function random_str( $length, $keyspace = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' ) {
- $str = '';
- $max = mb_strlen( $keyspace, '8bit' ) - 1;
- if ( $max < 1 ) {
- throw new Exception( '$keyspace must be at least two characters long' );
- }
+ $str = '';
+ $max = mb_strlen( $keyspace, '8bit' ) - 1;
+ if ( $max < 1 ) {
+ throw new Exception( '$keyspace must be at least two characters long' );
+ }
for ( $i = 0; $i < $length; ++$i ) {
$str .= $keyspace[random_int( 0, $max )];
}
return $str;
}
-
+
/**
* @return string
*/
- public static function getIPAddress() {
+ public static function getIPAddress() {
if ( !empty( $_SERVER['HTTP_CLIENT_IP'] ) ) {
- return $_SERVER['HTTP_CLIENT_IP'];
- }
- if ( !empty( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) {
- return $_SERVER['HTTP_X_FORWARDED_FOR'];
+ return $_SERVER['HTTP_CLIENT_IP'];
+ }
+ if ( !empty( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) {
+ return $_SERVER['HTTP_X_FORWARDED_FOR'];
}
- return $_SERVER['REMOTE_ADDR'];
+ return $_SERVER['REMOTE_ADDR'];
}
}
diff --git a/includes/PageEncryptionHooks.php b/includes/PageEncryptionHooks.php
index ab32544..eb1f7f8 100644
--- a/includes/PageEncryptionHooks.php
+++ b/includes/PageEncryptionHooks.php
@@ -21,21 +21,19 @@
* @author thomas-topway-it <support@topway.it>
* @copyright Copyright ©2023, https://wikisphere.org
*/
-
+
if ( is_readable( __DIR__ . '/../vendor/autoload.php' ) ) {
include_once __DIR__ . '/../vendor/autoload.php';
}
-use MediaWiki\DAO\WikiAwareEntity;
-use MediaWiki\MediaWikiServices;
use MediaWiki\Logger\LoggerFactory;
-use Psr\Log\NullLogger;
+use MediaWiki\MediaWikiServices;
class PageEncryptionHooks {
/** @var encryptedNamespace */
public static $encryptedNamespace = 2246;
-
+
/** @var admins */
public static $admins = [ 'sysop', 'bureaucrat', 'interface-admin' ];
@@ -67,7 +65,7 @@ class PageEncryptionHooks {
}
}
}
-
+
/**
* @param MediaWikiServices $services
* @return void
@@ -107,11 +105,11 @@ class PageEncryptionHooks {
);
// MW 1.36 and MW 1.37 have the same interface
- } else if ( version_compare( MW_VERSION, '1.38', '<' ) ) {
+ } elseif ( version_compare( MW_VERSION, '1.38', '<' ) ) {
$actorStoreFactory = $services->getActorStoreFactory();
$pageStoreFactory = $services->getPageStoreFactory();
$titleFactory = $services->getTitleFactory();
-
+
$pageEncryptionRevisionLookup = new PageEncryptionRevisionLookup(
$dbLoadBalancerFactory->getMainLB( $dbDomain ),
$blobStoreFactory->newSqlBlobStore( $dbDomain ),
@@ -128,14 +126,14 @@ class PageEncryptionHooks {
$hookContainer,
$dbDomain
);
-
+
// MW 1.38, 1.39 and 1.40 have the same interface
} else {
$localCache = $services->getLocalServerObjectCache();
$actorStoreFactory = $services->getActorStoreFactory();
$pageStoreFactory = $services->getPageStoreFactory();
$titleFactory = $services->getTitleFactory();
-
+
$pageEncryptionRevisionLookup = new PageEncryptionRevisionLookup(
$dbLoadBalancerFactory->getMainLB( $dbDomain ),
$blobStoreFactory->newSqlBlobStore( $dbDomain ),
@@ -151,18 +149,17 @@ class PageEncryptionHooks {
$pageStoreFactory->getPageStore( $dbDomain ),
$titleFactory,
$hookContainer,
- $dbDomain, // $wikiId = WikiAwareEntity::LOCAL
+ $dbDomain, // $wikiId = WikiAwareEntity::LOCAL
);
}
-
- $services->redefineService( 'RevisionLookup', static function() use( $pageEncryptionRevisionLookup ) {
+
+ $services->redefineService( 'RevisionLookup', static function () use( $pageEncryptionRevisionLookup ) {
return $pageEncryptionRevisionLookup;
} );
-
- $services->redefineService( 'RevisionStore', static function() use( $pageEncryptionRevisionLookup ) {
+
+ $services->redefineService( 'RevisionStore', static function () use( $pageEncryptionRevisionLookup ) {
return $pageEncryptionRevisionLookup;
} );
-
}
/**
@@ -179,7 +176,6 @@ class PageEncryptionHooks {
* @see https://www.mediawiki.org/wiki/Manual:Hooks/getUserPermissionsErrors
*/
public static function onGetUserPermissionsErrors( $title, $user, $action, &$result ) {
-
// if ( \PageEncryption::isAuthorized( $user ) ) {
// return true;
// }
@@ -187,7 +183,7 @@ class PageEncryptionHooks {
if ( !\PageEncryption::isEncryptedNamespace( $title ) ) {
return true;
}
-
+
if ( $action !== 'edit' && $action !== 'create' ) {
return true;
}
@@ -196,7 +192,7 @@ class PageEncryptionHooks {
return true;
}
- if (\PageEncryption::isEditor( $title, $user ) ) {
+ if ( \PageEncryption::isEditor( $title, $user ) ) {
return true;
}
@@ -207,8 +203,9 @@ class PageEncryptionHooks {
/**
* @param EditPage $editpage
*/
- public static function onAlternateEdit( EditPage $editpage ) { }
-
+ public static function onAlternateEdit( EditPage $editpage ) {
+ }
+
/**
* @see https://www.mediawiki.org/wiki/Manual:Hooks/MultiContentSave
* @param RenderedRevision $renderedRevision
@@ -221,7 +218,7 @@ class PageEncryptionHooks {
public static function onMultiContentSave( MediaWiki\Revision\RenderedRevision $renderedRevision, MediaWiki\User\UserIdentity $user, CommentStoreComment $summary, $flags, Status $hookStatus ) {
$revisionRecord = $renderedRevision->getRevision();
$title = $revisionRecord->getPageAsLinkTarget();
-
+
if ( !\PageEncryption::isEncryptedNamespace( $title ) ) {
return;
}
@@ -231,27 +228,27 @@ class PageEncryptionHooks {
$summary->data = [ 'encrypted' => true ];
// or ...
// $summary->text = 'edit encrypted content';
-
+
$content = $revisionRecord->getContent( MediaWiki\Revision\SlotRecord::MAIN );
-
- // @TODO should be instance of text
+
+ // @TODO should be instance of text
$contentHandler = $content->getContentHandler();
$modelId = $contentHandler->getModelID();
-
+
$text = $content->getText();
$encryptedText = \PageEncryption::encryptSymmetric( $text );
-
+
if ( $encryptedText === false ) {
throw new MWException( "Cannot encrypt" );
}
-
+
// $modelId = $slotRoleRegistry->getRoleHandler( $slotName )->getDefaultModel( $title );
$slotContent = ContentHandler::makeContent( $encryptedText, $title, $modelId );
-
+
$slots = $revisionRecord->getSlots();
$slots->setContent( MediaWiki\Revision\SlotRecord::MAIN, $slotContent );
- }
+ }
/**
* *** ignore the cache if a page contains a transcluded page with stored permissions
@@ -263,23 +260,23 @@ class PageEncryptionHooks {
*/
public static function onRejectParserCacheValue( $parserOutput, $wikiPage, $parserOptions ) {
$title = $wikiPage->getTitle();
-
+
if ( \PageEncryption::isEncryptedNamespace( $title ) ) {
return false;
}
}
-
+
/**
* Initialise the 'VisualEditorAvailableNamespaces' setting
*/
public static function onRegistration() {
$GLOBALS['wgVisualEditorAvailableNamespaces'][self::$encryptedNamespace] = true;
}
-
+
public static function onUserLogoutComplete( &$user, &$inject_html, $old_name ) {
\PageEncryption::deleteCookie();
}
-
+
/**
* @param Title &$title
* @param null $unused
@@ -316,11 +313,11 @@ class PageEncryptionHooks {
if ( \PageEncryption::$decryptionNotice === \PageEncryption::DecryptionFromAccessCode ) {
$siteNotice = '<div class="pageencryption-notice">' . wfMessage( 'pageencryption-sitenotice-decryption-from-access-code' )->plain() . '</div>';
return false;
- }
-
+ }
+
return true;
}
-
+
/**
* @param Parser $parser
* @param string &$text
@@ -333,20 +330,20 @@ class PageEncryptionHooks {
return;
}
$revisionRecord = $parser->getRevisionRecordObject();
-
+
if ( !$revisionRecord ) {
return;
}
- switch( \PageEncryption::$decryptionNotice ) {
-
+ switch ( \PageEncryption::$decryptionNotice ) {
+
case \PageEncryption::EncryptedPage:
$text = '<div class="pageencryption-notice">' . wfMessage( 'pageencryption-sitenotice-encrypted-page' )->plain() . '</div>';
- break;
-
+ break;
+
case \PageEncryption::DecryptionFailed:
$text = '<div class="pageencryption-notice">' . wfMessage( 'pageencryption-sitenotice-decryption-failed' )->plain() . '</div>';
- break;
+ break;
}
}
@@ -358,7 +355,7 @@ class PageEncryptionHooks {
*/
public static function onBeforePageDisplay( OutputPage $outputPage, Skin $skin ) {
global $wgResourceBasePath;
-
+
$title = $outputPage->getTitle();
if ( !\PageEncryption::isEncryptedNamespace( $title ) ) {
@@ -374,7 +371,7 @@ class PageEncryptionHooks {
if ( $title->isKnown() ) {
\PageEncryption::addIndicator( $outputPage );
}
-
+
$user = $skin->getUser();
if ( $user->isAllowed( 'pageencryption-cancreateencryption' ) ) {
\PageEncryption::addJsConfigVars( $outputPage, $title, $user );
@@ -398,7 +395,7 @@ class PageEncryptionHooks {
if ( !$title->isKnown() || $title->isSpecialPage() ) {
return;
}
-
+
if ( !\PageEncryption::isEncryptedNamespace( $title ) ) {
return;
}
@@ -408,7 +405,7 @@ class PageEncryptionHooks {
}
$url = SpecialPage::getTitleFor( 'PageEncryptionPermissions', $title )->getLocalURL();
- $links[ 'actions' ][] = [ 'text' => wfMessage( 'pageencryption-navigation' )->text(), 'href' => $url ];
+ $links[ 'actions' ][] = [ 'text' => wfMessage( 'pageencryption-navigation' )->text(), 'href' => $url ];
}
/**
@@ -431,7 +428,5 @@ class PageEncryptionHooks {
if ( !$user || !$user->isRegistered() ) {
return;
}
-
}
}
-
diff --git a/includes/PageEncryptionRevisionLookup.php b/includes/PageEncryptionRevisionLookup.php
index b2872ab..c2c14eb 100644
--- a/includes/PageEncryptionRevisionLookup.php
+++ b/includes/PageEncryptionRevisionLookup.php
@@ -21,9 +21,8 @@
* @author thomas-topway-it <support@topway.it>
* @copyright Copyright ©2023, https://wikisphere.org
*/
-
+
use MediaWiki\Revision\RevisionStore;
-use MediaWiki\Page\PageIdentity;
class PageEncryptionRevisionLookup extends RevisionStore {
@@ -43,4 +42,3 @@ class PageEncryptionRevisionLookup extends RevisionStore {
}
}
-
diff --git a/includes/api/PageEncryptionApiSetEncryptionKey.php b/includes/api/PageEncryptionApiSetEncryptionKey.php
index 02e67f6..438e1f3 100644
--- a/includes/api/PageEncryptionApiSetEncryptionKey.php
+++ b/includes/api/PageEncryptionApiSetEncryptionKey.php
@@ -41,7 +41,7 @@ class PageEncryptionApiSetEncryptionKey extends ApiBase {
/**
* @inheritDoc
*/
- public function execute() {
+ public function execute() {
$user = $this->getUser();
if ( !$user->isAllowed( 'pageencryption-cancreateencryption' ) ) {
@@ -53,9 +53,9 @@ class PageEncryptionApiSetEncryptionKey extends ApiBase {
$result = $this->getResult();
$params = $this->extractRequestParams();
-
+
$row = \PageEncryption::getEncryptionKeyRecord( $user->getId() );
-
+
if ( $row ) {
if ( !$params['reset-key'] ) {
$message = null;
@@ -76,7 +76,7 @@ class PageEncryptionApiSetEncryptionKey extends ApiBase {
$result->addValue( [ $this->getModuleName() ], 'action', 'new-record' );
$result->addValue( [ $this->getModuleName() ], 'message', $message );
-
+
// return the resulting protected key, for backup purpose,
// since it is not password-deterministic
$result->addValue( [ $this->getModuleName() ], 'protected-key', $protected_key_encoded );
diff --git a/includes/specials/PageEncryptionPermissionsPager.php b/includes/specials/PageEncryptionPermissionsPager.php
index e583ed2..7361caa 100644
--- a/includes/specials/PageEncryptionPermissionsPager.php
+++ b/includes/specials/PageEncryptionPermissionsPager.php
@@ -94,11 +94,11 @@ class PageEncryptionPermissionsPager extends TablePager {
* @return string HTML
* @throws MWException
*/
- public function formatValue( $field, $value ) {
+ public function formatValue( $field, $value ) {
/** @var object $row */
$row = $this->mCurrentRow;
$linkRenderer = $this->getLinkRenderer();
-
+
$formatted = '';
switch ( $field ) {
case 'created_by':
@@ -117,7 +117,7 @@ class PageEncryptionPermissionsPager extends TablePager {
$title = Title::newFromID( $row->page_id );
$wikiPage = \PageEncryption::getWikiPage( $title );
$revisionRecord = $wikiPage->getRevisionRecord();
-
+
// @see HistoryPager
$formatted = ChangesList::revDateLink( $revisionRecord, $this->parentClass->getUser(), $this->parentClass->getLanguage(),
$this->title );
@@ -128,7 +128,7 @@ class PageEncryptionPermissionsPager extends TablePager {
break;
case 'password':
- if ( (int)$row->created_by === $this->parentClass->getUser()->getId() ) {
+ if ( (int)$row->created_by === $this->parentClass->getUser()->getId() ) {
$title = Title::newFromID( $row->page_id );
$password = \PageEncryption::decryptSymmetric( $row->encrypted_password );
$formatted = Html::rawElement(
@@ -153,7 +153,7 @@ class PageEncryptionPermissionsPager extends TablePager {
case 'expiration_date':
$formatted = $row->expiration_date;
break;
-
+
case 'viewed':
$formatted = $row->viewed;
break;
diff --git a/includes/specials/SpecialPageEncryptionPermissions.php b/includes/specials/SpecialPageEncryptionPermissions.php
index db4ad95..d5db604 100644
--- a/includes/specials/SpecialPageEncryptionPermissions.php
+++ b/includes/specials/SpecialPageEncryptionPermissions.php
@@ -24,9 +24,6 @@
require_once __DIR__ . '/PageEncryptionPermissionsPager.php';
-use MediaWiki\MediaWikiServices;
-use Wikimedia\IPUtils;
-
/**
* A special page that lists protected pages
*
@@ -39,7 +36,7 @@ class SpecialPageEncryptionPermissions extends SpecialPage {
/** @var localTitle */
public $localTitle;
-
+
/** @var isAuthorized */
public $isAuthorized;
@@ -50,7 +47,7 @@ class SpecialPageEncryptionPermissions extends SpecialPage {
private $request;
/** @var latest_id */
- private $latest_id;
+ private $latest_id;
/**
* @inheritDoc
@@ -130,7 +127,7 @@ class SpecialPageEncryptionPermissions extends SpecialPage {
// $out->addWikiMsg( 'pageencryption-managepermissions-description-' . ( $this->title ? 'specific' : 'generic' ),
// !$this->title || !$user->isAllowed( 'pageencryption-canmanagepermissions' ) ? '' : $this->msg( 'pageencryption-managepermissions-description-manage-all-permissions' )->text() );
-
+
$out->addWikiMsg( 'pageencryption-managepermissions-form-preamble' );
$out->addHTML( '<br />' );
@@ -215,7 +212,7 @@ class SpecialPageEncryptionPermissions extends SpecialPage {
$out->addHTML( '<br />' );
return;
}
-
+
$row = [
'created_by' => null,
'page_id' => null,
@@ -351,7 +348,7 @@ $this->username = '';
$id = $request->getVal( 'edit' );
$new = ( $id && $id === 'new' );
-
+
$row = [
'access_type' => $data['access_type'],
'expiration_date' => $data['expiration_date']
@@ -385,7 +382,7 @@ $this->username = '';
*/
protected function showOptions( $request ) {
$formDescriptor = [];
-
+
if ( $this->isAuthorized ) {
$created_by = $request->getVal( 'created_by' );
@@ -428,4 +425,3 @@ $this->username = '';
return 'pageencryption';
}
}
-
diff --git a/package-lock.json b/package-lock.json
index 935be47..b653ad3 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -6,43 +6,45 @@
"": {
"name": "PageEncryption",
"devDependencies": {
- "eslint-config-wikimedia": "0.24.0",
+ "eslint-config-wikimedia": "0.27.0",
"grunt": "1.6.1",
- "grunt-eslint": "24.0.0",
- "grunt-stylelint": "0.18.0",
- "stylelint-config-wikimedia": "0.14.0"
+ "grunt-eslint": "24.3.0",
+ "grunt-stylelint": "0.19.0",
+ "stylelint-config-wikimedia": "0.16.1"
}
},
"node_modules/@babel/code-frame": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz",
- "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==",
+ "version": "7.24.2",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz",
+ "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==",
"dev": true,
"dependencies": {
- "@babel/highlight": "^7.18.6"
+ "@babel/highlight": "^7.24.2",
+ "picocolors": "^1.0.0"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-validator-identifier": {
- "version": "7.19.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz",
- "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==",
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
+ "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==",
"dev": true,
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/highlight": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz",
- "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
+ "version": "7.24.2",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz",
+ "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==",
"dev": true,
"dependencies": {
- "@babel/helper-validator-identifier": "^7.18.6",
- "chalk": "^2.0.0",
- "js-tokens": "^4.0.0"
+ "@babel/helper-validator-identifier": "^7.22.20",
+ "chalk": "^2.4.2",
+ "js-tokens": "^4.0.0",
+ "picocolors": "^1.0.0"
},
"engines": {
"node": ">=6.9.0"
@@ -119,41 +121,110 @@
"node": ">=4"
}
},
- "node_modules/@csstools/selector-specificity": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.1.1.tgz",
- "integrity": "sha512-jwx+WCqszn53YHOfvFMJJRd/B2GqkCBt+1MJSG6o5/s8+ytHMvDZXsJgUEWLk12UnLd7HYKac4BYU5i/Ron1Cw==",
+ "node_modules/@csstools/css-parser-algorithms": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.6.1.tgz",
+ "integrity": "sha512-ubEkAaTfVZa+WwGhs5jbo5Xfqpeaybr/RvWzvFxRs4jfq16wH8l8Ty/QEEpINxll4xhuGfdMbipRyz5QZh9+FA==",
"dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
"engines": {
"node": "^14 || ^16 || >=18"
},
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
+ "peerDependencies": {
+ "@csstools/css-tokenizer": "^2.2.4"
+ }
+ },
+ "node_modules/@csstools/css-tokenizer": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.2.4.tgz",
+ "integrity": "sha512-PuWRAewQLbDhGeTvFuq2oClaSCKPIBmHyIobCV39JHRYN0byDcUWJl5baPeNUcqrjtdMNqFooE0FGl31I3JOqw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "engines": {
+ "node": "^14 || ^16 || >=18"
+ }
+ },
+ "node_modules/@csstools/media-query-list-parser": {
+ "version": "2.1.9",
+ "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.9.tgz",
+ "integrity": "sha512-qqGuFfbn4rUmyOB0u8CVISIp5FfJ5GAR3mBrZ9/TKndHakdnm6pY0L/fbLcpPnrzwCyyTEZl1nUcXAYHEWneTA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "engines": {
+ "node": "^14 || ^16 || >=18"
},
"peerDependencies": {
- "postcss": "^8.4",
- "postcss-selector-parser": "^6.0.10"
+ "@csstools/css-parser-algorithms": "^2.6.1",
+ "@csstools/css-tokenizer": "^2.2.4"
+ }
+ },
+ "node_modules/@csstools/selector-specificity": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.0.3.tgz",
+ "integrity": "sha512-KEPNw4+WW5AVEIyzC80rTbWEUatTW2lXpN8+8ILC8PiPeWPjwUzrPZDIOZ2wwqDmeqOYTdSGyL3+vE5GC3FB3Q==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "engines": {
+ "node": "^14 || ^16 || >=18"
+ },
+ "peerDependencies": {
+ "postcss-selector-parser": "^6.0.13"
}
},
"node_modules/@es-joy/jsdoccomment": {
- "version": "0.23.6",
- "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.23.6.tgz",
- "integrity": "sha512-cCtumxG+qrYORGeOkDQ58GtSt/bb2XiP9GC0x2YduoUEX2EmBQ48FtoZMUs+8wiIdTDN1izUiRUD2FDu+p+Lvg==",
+ "version": "0.42.0",
+ "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.42.0.tgz",
+ "integrity": "sha512-R1w57YlVA6+YE01wch3GPYn6bCsrOV3YW/5oGGE2tmX6JcL9Nr+b5IikrjMPF+v9CV3ay+obImEdsDhovhJrzw==",
"dev": true,
"dependencies": {
- "comment-parser": "1.3.1",
- "esquery": "^1.4.0",
- "jsdoc-type-pratt-parser": "~2.2.5"
+ "comment-parser": "1.4.1",
+ "esquery": "^1.5.0",
+ "jsdoc-type-pratt-parser": "~4.0.0"
},
"engines": {
- "node": "^12 || ^14 || ^16 || ^17"
+ "node": ">=16"
}
},
"node_modules/@eslint-community/eslint-utils": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.2.0.tgz",
- "integrity": "sha512-gB8T4H4DEfX2IV9zGDJPOBgP1e/DbfCPDTtEqUMckpvzS1OYtva8JdFYBqMwYk7xAQ429WGF/UPqn8uQ//h2vQ==",
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
+ "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
"dev": true,
"dependencies": {
"eslint-visitor-keys": "^3.3.0"
@@ -166,23 +237,23 @@
}
},
"node_modules/@eslint-community/regexpp": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.4.0.tgz",
- "integrity": "sha512-A9983Q0LnDGdLPjxyXQ00sbV+K+O+ko2Dr+CZigbHWtX9pNfxlaBkMR8X1CztI73zuEyEBXTVjx7CE+/VSwDiQ==",
+ "version": "4.10.0",
+ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz",
+ "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==",
"dev": true,
"engines": {
"node": "^12.0.0 || ^14.0.0 || >=16.0.0"
}
},
"node_modules/@eslint/eslintrc": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.1.tgz",
- "integrity": "sha512-eFRmABvW2E5Ho6f5fHLqgena46rOj7r7OKHYfLElqcBfGFHHpjBhivyi5+jOEQuSpdc/1phIZJlbC2te+tZNIw==",
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz",
+ "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==",
"dev": true,
"dependencies": {
"ajv": "^6.12.4",
"debug": "^4.3.2",
- "espree": "^9.5.0",
+ "espree": "^9.6.0",
"globals": "^13.19.0",
"ignore": "^5.2.0",
"import-fresh": "^3.2.1",
@@ -198,22 +269,22 @@
}
},
"node_modules/@eslint/js": {
- "version": "8.36.0",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.36.0.tgz",
- "integrity": "sha512-lxJ9R5ygVm8ZWgYdUweoq5ownDlJ4upvoWmO4eLxBYHdMo+vZ/Rx0EN6MbKWDJOSUGrqJy2Gt+Dyv/VKml0fjg==",
+ "version": "8.57.0",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz",
+ "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==",
"dev": true,
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
}
},
"node_modules/@humanwhocodes/config-array": {
- "version": "0.11.8",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz",
- "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==",
+ "version": "0.11.14",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
+ "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==",
"dev": true,
"dependencies": {
- "@humanwhocodes/object-schema": "^1.2.1",
- "debug": "^4.1.1",
+ "@humanwhocodes/object-schema": "^2.0.2",
+ "debug": "^4.3.1",
"minimatch": "^3.0.5"
},
"engines": {
@@ -234,15 +305,15 @@
}
},
"node_modules/@humanwhocodes/object-schema": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
- "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz",
+ "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==",
"dev": true
},
"node_modules/@mdn/browser-compat-data": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-4.2.1.tgz",
- "integrity": "sha512-EWUguj2kd7ldmrF9F+vI5hUOralPd+sdsUnYbRy33vZTuZkduC1shE9TtEMEjAQwyfyMb4ole5KtjF8MsnQOlA==",
+ "version": "5.5.23",
+ "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-5.5.23.tgz",
+ "integrity": "sha512-nIy38qL3nfNcGOz5J2BJQpBXa7vM9QO1+wbyvqqS89lgNTWE8Q10whLsmE0sTVBooXiEaRc4fVME5IXjCYiHAw==",
"dev": true
},
"node_modules/@nodelib/fs.scandir": {
@@ -280,6 +351,12 @@
"node": ">= 8"
}
},
+ "node_modules/@types/json-schema": {
+ "version": "7.0.15",
+ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
+ "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
+ "dev": true
+ },
"node_modules/@types/minimatch": {
"version": "3.0.5",
"resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz",
@@ -287,21 +364,149 @@
"dev": true
},
"node_modules/@types/minimist": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz",
- "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==",
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz",
+ "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==",
"dev": true
},
"node_modules/@types/normalize-package-data": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz",
- "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==",
+ "version": "2.4.4",
+ "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz",
+ "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==",
"dev": true
},
- "node_modules/@types/parse-json": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz",
- "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==",
+ "node_modules/@types/semver": {
+ "version": "7.5.8",
+ "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz",
+ "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==",
+ "dev": true
+ },
+ "node_modules/@typescript-eslint/scope-manager": {
+ "version": "5.62.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz",
+ "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "5.62.0",
+ "@typescript-eslint/visitor-keys": "5.62.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/types": {
+ "version": "5.62.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz",
+ "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==",
+ "dev": true,
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/typescript-estree": {
+ "version": "5.62.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz",
+ "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "5.62.0",
+ "@typescript-eslint/visitor-keys": "5.62.0",
+ "debug": "^4.3.4",
+ "globby": "^11.1.0",
+ "is-glob": "^4.0.3",
+ "semver": "^7.3.7",
+ "tsutils": "^3.21.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/utils": {
+ "version": "5.62.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz",
+ "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==",
+ "dev": true,
+ "dependencies": {
+ "@eslint-community/eslint-utils": "^4.2.0",
+ "@types/json-schema": "^7.0.9",
+ "@types/semver": "^7.3.12",
+ "@typescript-eslint/scope-manager": "5.62.0",
+ "@typescript-eslint/types": "5.62.0",
+ "@typescript-eslint/typescript-estree": "5.62.0",
+ "eslint-scope": "^5.1.1",
+ "semver": "^7.3.7"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ }
+ },
+ "node_modules/@typescript-eslint/utils/node_modules/eslint-scope": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
+ "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
+ "dev": true,
+ "dependencies": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^4.1.1"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/@typescript-eslint/utils/node_modules/estraverse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+ "dev": true,
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/@typescript-eslint/visitor-keys": {
+ "version": "5.62.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz",
+ "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "5.62.0",
+ "eslint-visitor-keys": "^3.3.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@ungap/structured-clone": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
+ "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==",
"dev": true
},
"node_modules/abbrev": {
@@ -311,9 +516,9 @@
"dev": true
},
"node_modules/acorn": {
- "version": "8.8.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz",
- "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==",
+ "version": "8.11.3",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
+ "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
"dev": true,
"bin": {
"acorn": "bin/acorn"
@@ -371,6 +576,15 @@
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
+ "node_modules/are-docs-informative": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz",
+ "integrity": "sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==",
+ "dev": true,
+ "engines": {
+ "node": ">=14"
+ }
+ },
"node_modules/argparse": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
@@ -423,20 +637,14 @@
}
},
"node_modules/ast-metadata-inferer": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/ast-metadata-inferer/-/ast-metadata-inferer-0.7.0.tgz",
- "integrity": "sha512-OkMLzd8xelb3gmnp6ToFvvsHLtS6CbagTkFQvQ+ZYFe3/AIl9iKikNR9G7pY3GfOR/2Xc222hwBjzI7HLkE76Q==",
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/ast-metadata-inferer/-/ast-metadata-inferer-0.8.0.tgz",
+ "integrity": "sha512-jOMKcHht9LxYIEQu+RVd22vtgrPaVCtDRQ/16IGmurdzxvYbDd5ynxjnyrzLnieG96eTcAyaoj/wN/4/1FyyeA==",
"dev": true,
"dependencies": {
- "@mdn/browser-compat-data": "^3.3.14"
+ "@mdn/browser-compat-data": "^5.2.34"
}
},
- "node_modules/ast-metadata-inferer/node_modules/@mdn/browser-compat-data": {
- "version": "3.3.14",
- "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-3.3.14.tgz",
- "integrity": "sha512-n2RC9d6XatVbWFdHLimzzUJxJ1KY8LdjqrW6YvGPiRmsHkhOUx74/Ct10x5Yo7bC/Jvqx7cDEW8IMPv/+vwEzA==",
- "dev": true
- },
"node_modules/astral-regex": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
@@ -487,9 +695,9 @@
}
},
"node_modules/browserslist": {
- "version": "4.21.4",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz",
- "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==",
+ "version": "4.23.0",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz",
+ "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==",
"dev": true,
"funding": [
{
@@ -499,13 +707,17 @@
{
"type": "tidelift",
"url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
}
],
"dependencies": {
- "caniuse-lite": "^1.0.30001400",
- "electron-to-chromium": "^1.4.251",
- "node-releases": "^2.0.6",
- "update-browserslist-db": "^1.0.9"
+ "caniuse-lite": "^1.0.30001587",
+ "electron-to-chromium": "^1.4.668",
+ "node-releases": "^2.0.14",
+ "update-browserslist-db": "^1.0.13"
},
"bin": {
"browserslist": "cli.js"
@@ -515,9 +727,9 @@
}
},
"node_modules/browserslist-config-wikimedia": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/browserslist-config-wikimedia/-/browserslist-config-wikimedia-0.4.0.tgz",
- "integrity": "sha512-U/fmsaGlCKOqRIjKqXwQ44qFqiStngRTphj1Cf6IHV6J8OK8T0gu9dKc7Ljq4v7bwhnhN+YCCa4fA3nZlPNivQ==",
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/browserslist-config-wikimedia/-/browserslist-config-wikimedia-0.6.1.tgz",
+ "integrity": "sha512-F3O+12ud7ZwBaiB/RZIMGDgz3nEuXz8RhtdPB4Lkd/WVP5Vy77EqBWRMz4vJ64x8LTTH3BOaHCD2ZuUcgShqyQ==",
"dev": true
},
"node_modules/builtin-modules": {
@@ -532,6 +744,15 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/builtins": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.1.0.tgz",
+ "integrity": "sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==",
+ "dev": true,
+ "dependencies": {
+ "semver": "^7.0.0"
+ }
+ },
"node_modules/callsites": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
@@ -542,35 +763,51 @@
}
},
"node_modules/camelcase": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
- "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
+ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
"dev": true,
"engines": {
- "node": ">=6"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/camelcase-keys": {
- "version": "6.2.2",
- "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz",
- "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==",
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-7.0.2.tgz",
+ "integrity": "sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==",
"dev": true,
"dependencies": {
- "camelcase": "^5.3.1",
- "map-obj": "^4.0.0",
- "quick-lru": "^4.0.1"
+ "camelcase": "^6.3.0",
+ "map-obj": "^4.1.0",
+ "quick-lru": "^5.1.1",
+ "type-fest": "^1.2.1"
},
"engines": {
- "node": ">=8"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/camelcase-keys/node_modules/type-fest": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz",
+ "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001423",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001423.tgz",
- "integrity": "sha512-09iwWGOlifvE1XuHokFMP7eR38a0JnajoyL3/i87c8ZjRWRrdKo1fqjNfugfBD0UDBIOz0U+jtNhJ0EPm1VleQ==",
+ "version": "1.0.30001612",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001612.tgz",
+ "integrity": "sha512-lFgnZ07UhaCcsSZgWW0K5j4e69dK1u/ltrL9lTUiFOwNHs12S3UMIEYgBV0Z6C6hRDev7iRnMzzYmKabYdXF9g==",
"dev": true,
"funding": [
{
@@ -580,6 +817,10 @@
{
"type": "tidelift",
"url": "https://tidelift.com/funding/github/npm/caniuse-lite"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
}
]
},
@@ -600,10 +841,19 @@
}
},
"node_modules/ci-info": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.5.0.tgz",
- "integrity": "sha512-yH4RezKOGlOhxkmhbeNuC4eYZKAUsEaGtBuBzDDP1eFUKiccDWzBABxBfOx31IDwDIXMTxWuwAxUGModvkbuVw==",
- "dev": true
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.0.0.tgz",
+ "integrity": "sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "engines": {
+ "node": ">=8"
+ }
},
"node_modules/clean-regexp": {
"version": "1.0.0",
@@ -671,9 +921,9 @@
}
},
"node_modules/comment-parser": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.3.1.tgz",
- "integrity": "sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA==",
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.1.tgz",
+ "integrity": "sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==",
"dev": true,
"engines": {
"node": ">= 12.0.0"
@@ -685,12 +935,14 @@
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
"dev": true
},
- "node_modules/core-js": {
- "version": "3.25.5",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.25.5.tgz",
- "integrity": "sha512-nbm6eZSjm+ZuBQxCUPQKQCoUEfFOXjUZ8dTTyikyKaWrTYmAVbykQfwsKE5dBK88u3QCkCrzsx/PPlKfhsvgpw==",
+ "node_modules/core-js-compat": {
+ "version": "3.37.0",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.0.tgz",
+ "integrity": "sha512-vYq4L+T8aS5UuFg4UwDhc7YNRWVeVZwltad9C/jV3R2LgVOpS9BDr7l/WL6BN0dbV3k1XejPTHqqEzJgsa0frA==",
"dev": true,
- "hasInstallScript": true,
+ "dependencies": {
+ "browserslist": "^4.23.0"
+ },
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/core-js"
@@ -703,19 +955,29 @@
"dev": true
},
"node_modules/cosmiconfig": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz",
- "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==",
+ "version": "8.3.6",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz",
+ "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==",
"dev": true,
"dependencies": {
- "@types/parse-json": "^4.0.0",
- "import-fresh": "^3.2.1",
- "parse-json": "^5.0.0",
- "path-type": "^4.0.0",
- "yaml": "^1.10.0"
+ "import-fresh": "^3.3.0",
+ "js-yaml": "^4.1.0",
+ "parse-json": "^5.2.0",
+ "path-type": "^4.0.0"
},
"engines": {
- "node": ">=10"
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/d-fischer"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.9.5"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
}
},
"node_modules/cross-spawn": {
@@ -733,12 +995,12 @@
}
},
"node_modules/css-functions-list": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.1.0.tgz",
- "integrity": "sha512-/9lCvYZaUbBGvYUgYGFJ4dcYiyqdhSjG7IPVluoV8A1ILjkF7ilmhp1OGUz8n+nmBcu0RNrQAzgD8B6FJbrt2w==",
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.2.tgz",
+ "integrity": "sha512-c+N0v6wbKVxTu5gOBBFkr9BEdBWaqqjQeiJ8QvSRIJOf+UxlJh930m8e6/WNeODIK0mYLFkoONrnj16i2EcvfQ==",
"dev": true,
"engines": {
- "node": ">=12.22"
+ "node": ">=12 || >=16"
}
},
"node_modules/css-rule-stream": {
@@ -788,6 +1050,19 @@
"readable-stream": "^1.0.33"
}
},
+ "node_modules/css-tree": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz",
+ "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==",
+ "dev": true,
+ "dependencies": {
+ "mdn-data": "2.0.30",
+ "source-map-js": "^1.0.1"
+ },
+ "engines": {
+ "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0"
+ }
+ },
"node_modules/cssesc": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
@@ -827,23 +1102,38 @@
}
},
"node_modules/decamelize": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
- "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz",
+ "integrity": "sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==",
"dev": true,
"engines": {
- "node": ">=0.10.0"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/decamelize-keys": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz",
- "integrity": "sha512-ocLWuYzRPoS9bfiSdDd3cxvrzovVMZnRDVEzAs+hWIVXGDbHxWMECij2OBuyB/An0FFW/nLuq6Kv1i/YC5Qfzg==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz",
+ "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==",
"dev": true,
"dependencies": {
"decamelize": "^1.1.0",
"map-obj": "^1.0.0"
},
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/decamelize-keys/node_modules/decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
+ "dev": true,
"engines": {
"node": ">=0.10.0"
}
@@ -985,9 +1275,9 @@
}
},
"node_modules/electron-to-chromium": {
- "version": "1.4.284",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz",
- "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==",
+ "version": "1.4.750",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.750.tgz",
+ "integrity": "sha512-9ItEpeu15hW5m8jKdriL+BQrgwDTXEL9pn4SkillWFu73ZNNNQ2BKKLS+ZHv2vC9UkNhosAeyfxOf/5OSeTCPA==",
"dev": true
},
"node_modules/emoji-regex": {
@@ -1039,27 +1329,28 @@
}
},
"node_modules/eslint": {
- "version": "8.36.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.36.0.tgz",
- "integrity": "sha512-Y956lmS7vDqomxlaaQAHVmeb4tNMp2FWIvU/RnU5BD3IKMD/MJPr76xdyr68P8tV1iNMvN2mRK0yy3c+UjL+bw==",
+ "version": "8.57.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz",
+ "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==",
"dev": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.2.0",
- "@eslint-community/regexpp": "^4.4.0",
- "@eslint/eslintrc": "^2.0.1",
- "@eslint/js": "8.36.0",
- "@humanwhocodes/config-array": "^0.11.8",
+ "@eslint-community/regexpp": "^4.6.1",
+ "@eslint/eslintrc": "^2.1.4",
+ "@eslint/js": "8.57.0",
+ "@humanwhocodes/config-array": "^0.11.14",
"@humanwhocodes/module-importer": "^1.0.1",
"@nodelib/fs.walk": "^1.2.8",
- "ajv": "^6.10.0",
+ "@ungap/structured-clone": "^1.2.0",
+ "ajv": "^6.12.4",
"chalk": "^4.0.0",
"cross-spawn": "^7.0.2",
"debug": "^4.3.2",
"doctrine": "^3.0.0",
"escape-string-regexp": "^4.0.0",
- "eslint-scope": "^7.1.1",
- "eslint-visitor-keys": "^3.3.0",
- "espree": "^9.5.0",
+ "eslint-scope": "^7.2.2",
+ "eslint-visitor-keys": "^3.4.3",
+ "espree": "^9.6.1",
"esquery": "^1.4.2",
"esutils": "^2.0.2",
"fast-deep-equal": "^3.1.3",
@@ -1067,22 +1358,19 @@
"find-up": "^5.0.0",
"glob-parent": "^6.0.2",
"globals": "^13.19.0",
- "grapheme-splitter": "^1.0.4",
+ "graphemer": "^1.4.0",
"ignore": "^5.2.0",
- "import-fresh": "^3.0.0",
"imurmurhash": "^0.1.4",
"is-glob": "^4.0.0",
"is-path-inside": "^3.0.3",
- "js-sdsl": "^4.1.4",
"js-yaml": "^4.1.0",
"json-stable-stringify-without-jsonify": "^1.0.1",
"levn": "^0.4.1",
"lodash.merge": "^4.6.2",
"minimatch": "^3.1.2",
"natural-compare": "^1.4.0",
- "optionator": "^0.9.1",
+ "optionator": "^0.9.3",
"strip-ansi": "^6.0.1",
- "strip-json-comments": "^3.1.0",
"text-table": "^0.2.0"
},
"bin": {
@@ -1095,147 +1383,133 @@
"url": "https://opencollective.com/eslint"
}
},
+ "node_modules/eslint-compat-utils": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.5.0.tgz",
+ "integrity": "sha512-dc6Y8tzEcSYZMHa+CMPLi/hyo1FzNeonbhJL7Ol0ccuKQkwopJcJBA9YL/xmMTLU1eKigXo9vj9nALElWYSowg==",
+ "dev": true,
+ "dependencies": {
+ "semver": "^7.5.4"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "peerDependencies": {
+ "eslint": ">=6.0.0"
+ }
+ },
"node_modules/eslint-config-wikimedia": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/eslint-config-wikimedia/-/eslint-config-wikimedia-0.24.0.tgz",
- "integrity": "sha512-8oH/YhJ87ONSmuRfATgx8U7Jcwz3tBemrh6YOezIfj9f2QfE71ZhaKZrNPdfS7vIklLor/cB9vX7sxN10nz8xw==",
+ "version": "0.27.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-wikimedia/-/eslint-config-wikimedia-0.27.0.tgz",
+ "integrity": "sha512-KkZ54+MUnggz17C/RCEMXQSpiiqZRF7p9fjrz4phaaeKlTrjg0B+QbM5zcDWcjGiAWaJUptHaH17+RZldadkUw==",
"dev": true,
"dependencies": {
- "browserslist-config-wikimedia": "^0.4.0",
- "eslint": "^8.31.0",
- "eslint-plugin-compat": "^4.0.2",
- "eslint-plugin-es-x": "^5.2.1",
- "eslint-plugin-jsdoc": "39.2.2",
+ "browserslist-config-wikimedia": "^0.6.1",
+ "eslint": "^8.57.0",
+ "eslint-plugin-compat": "^4.2.0",
+ "eslint-plugin-es-x": "^7.6.0",
+ "eslint-plugin-jest": "^27.9.0",
+ "eslint-plugin-jsdoc": "48.2.1",
"eslint-plugin-json-es": "^1.5.7",
- "eslint-plugin-mediawiki": "^0.4.0",
- "eslint-plugin-mocha": "^9.0.0",
+ "eslint-plugin-mediawiki": "^0.6.0",
+ "eslint-plugin-mocha": "^10.4.1",
+ "eslint-plugin-n": "^16.6.2",
"eslint-plugin-no-jquery": "^2.7.0",
- "eslint-plugin-node": "^11.1.0",
- "eslint-plugin-qunit": "^7.2.0",
- "eslint-plugin-unicorn": "^42.0.0",
- "eslint-plugin-vue": "^8.7.1",
- "eslint-plugin-wdio": "^7.19.4",
- "eslint-plugin-yml": "^0.14.0"
+ "eslint-plugin-qunit": "^8.1.1",
+ "eslint-plugin-security": "^1.7.1",
+ "eslint-plugin-unicorn": "^51.0.1",
+ "eslint-plugin-vue": "^9.23.0",
+ "eslint-plugin-wdio": "^8.24.12",
+ "eslint-plugin-yml": "^1.13.2"
}
},
"node_modules/eslint-plugin-compat": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/eslint-plugin-compat/-/eslint-plugin-compat-4.0.2.tgz",
- "integrity": "sha512-xqvoO54CLTVaEYGMzhu35Wzwk/As7rCvz/2dqwnFiWi0OJccEtGIn+5qq3zqIu9nboXlpdBN579fZcItC73Ycg==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-compat/-/eslint-plugin-compat-4.2.0.tgz",
+ "integrity": "sha512-RDKSYD0maWy5r7zb5cWQS+uSPc26mgOzdORJ8hxILmWM7S/Ncwky7BcAtXVY5iRbKjBdHsWU8Yg7hfoZjtkv7w==",
"dev": true,
"dependencies": {
- "@mdn/browser-compat-data": "^4.1.5",
- "ast-metadata-inferer": "^0.7.0",
- "browserslist": "^4.16.8",
- "caniuse-lite": "^1.0.30001304",
- "core-js": "^3.16.2",
+ "@mdn/browser-compat-data": "^5.3.13",
+ "ast-metadata-inferer": "^0.8.0",
+ "browserslist": "^4.21.10",
+ "caniuse-lite": "^1.0.30001524",
"find-up": "^5.0.0",
- "lodash.memoize": "4.1.2",
- "semver": "7.3.5"
+ "lodash.memoize": "^4.1.2",
+ "semver": "^7.5.4"
},
"engines": {
- "node": ">=9.x"
+ "node": ">=14.x"
},
"peerDependencies": {
"eslint": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0"
}
},
- "node_modules/eslint-plugin-es": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz",
- "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==",
- "dev": true,
- "dependencies": {
- "eslint-utils": "^2.0.0",
- "regexpp": "^3.0.0"
- },
- "engines": {
- "node": ">=8.10.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/mysticatea"
- },
- "peerDependencies": {
- "eslint": ">=4.19.1"
- }
- },
"node_modules/eslint-plugin-es-x": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-5.3.1.tgz",
- "integrity": "sha512-/WJk23lUi36qmPdiA8GxqjOQAwj+2672WwAOYLVD7j4+O5hd9UiXHZFWBwxxem5AyXA6LKDVJnmBZJp5FJWjog==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.6.0.tgz",
+ "integrity": "sha512-I0AmeNgevgaTR7y2lrVCJmGYF0rjoznpDvqV/kIkZSZbZ8Rw3eu4cGlvBBULScfkSOCzqKbff5LR4CNrV7mZHA==",
"dev": true,
"dependencies": {
- "eslint-utils": "^2.0.0 || ^3.0.0",
- "regexpp": "^3.0.0"
+ "@eslint-community/eslint-utils": "^4.1.2",
+ "@eslint-community/regexpp": "^4.6.0",
+ "eslint-compat-utils": "^0.5.0"
},
"engines": {
- "node": ">=8.10.0"
+ "node": "^14.18.0 || >=16.0.0"
},
"funding": {
"url": "https://github.com/sponsors/ota-meshi"
},
"peerDependencies": {
- "eslint": ">=4.19.1"
+ "eslint": ">=8"
}
},
- "node_modules/eslint-plugin-es/node_modules/eslint-utils": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz",
- "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==",
+ "node_modules/eslint-plugin-jest": {
+ "version": "27.9.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.9.0.tgz",
+ "integrity": "sha512-QIT7FH7fNmd9n4se7FFKHbsLKGQiw885Ds6Y/sxKgCZ6natwCsXdgPOADnYVxN2QrRweF0FZWbJ6S7Rsn7llug==",
"dev": true,
"dependencies": {
- "eslint-visitor-keys": "^1.1.0"
+ "@typescript-eslint/utils": "^5.10.0"
},
"engines": {
- "node": ">=6"
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
},
- "funding": {
- "url": "https://github.com/sponsors/mysticatea"
- }
- },
- "node_modules/eslint-plugin-es/node_modules/eslint-visitor-keys": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
- "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
- "dev": true,
- "engines": {
- "node": ">=4"
+ "peerDependencies": {
+ "@typescript-eslint/eslint-plugin": "^5.0.0 || ^6.0.0 || ^7.0.0",
+ "eslint": "^7.0.0 || ^8.0.0",
+ "jest": "*"
+ },
+ "peerDependenciesMeta": {
+ "@typescript-eslint/eslint-plugin": {
+ "optional": true
+ },
+ "jest": {
+ "optional": true
+ }
}
},
"node_modules/eslint-plugin-jsdoc": {
- "version": "39.2.2",
- "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-39.2.2.tgz",
- "integrity": "sha512-ybkvja0p9JRzHEd2ST9h+Z47DLOuPyXpeb6r18/zKHdMmggPU1J0/zl+F0phea8ze9rMxi42MJVmGXi2NZ7PpA==",
+ "version": "48.2.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-48.2.1.tgz",
+ "integrity": "sha512-iUvbcyDZSO/9xSuRv2HQBw++8VkV/pt3UWtX9cpPH0l7GKPq78QC/6+PmyQHHvNZaTjAce6QVciEbnc6J/zH5g==",
"dev": true,
"dependencies": {
- "@es-joy/jsdoccomment": "~0.23.1",
- "comment-parser": "1.3.1",
+ "@es-joy/jsdoccomment": "~0.42.0",
+ "are-docs-informative": "^0.0.2",
+ "comment-parser": "1.4.1",
"debug": "^4.3.4",
"escape-string-regexp": "^4.0.0",
- "esquery": "^1.4.0",
- "semver": "^7.3.7",
- "spdx-expression-parse": "^3.0.1"
+ "esquery": "^1.5.0",
+ "is-builtin-module": "^3.2.1",
+ "semver": "^7.6.0",
+ "spdx-expression-parse": "^4.0.0"
},
"engines": {
- "node": "^14 || ^16 || ^17"
+ "node": ">=18"
},
"peerDependencies": {
- "eslint": "^7.0.0 || ^8.0.0"
- }
- },
- "node_modules/eslint-plugin-jsdoc/node_modules/semver": {
- "version": "7.3.8",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
- "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
- "dev": true,
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
+ "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0"
}
},
"node_modules/eslint-plugin-json-es": {
@@ -1252,12 +1526,12 @@
}
},
"node_modules/eslint-plugin-mediawiki": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-mediawiki/-/eslint-plugin-mediawiki-0.4.0.tgz",
- "integrity": "sha512-Eufptb8lrElYwIONvgxlMBnPD6PYT4xAFprWlBxV5brCmUh8MZ41+lMxt2TPwEC6C85ngflkVez8BV8tWS9RyQ==",
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-mediawiki/-/eslint-plugin-mediawiki-0.6.0.tgz",
+ "integrity": "sha512-a2Zm18N5nPyflBajM2ZWATxucIpYPEmOSjFzUR1OBH3hAL0GY9fx1mpezEwzqAQ862d+kPkolgQOzktnZe8nKA==",
"dev": true,
"dependencies": {
- "eslint-plugin-vue": "^8.7.1",
+ "eslint-plugin-vue": "^9.23.0",
"upath": "^2.0.1"
},
"peerDependencies": {
@@ -1265,169 +1539,159 @@
}
},
"node_modules/eslint-plugin-mocha": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-9.0.0.tgz",
- "integrity": "sha512-d7knAcQj1jPCzZf3caeBIn3BnW6ikcvfz0kSqQpwPYcVGLoJV5sz0l0OJB2LR8I7dvTDbqq1oV6ylhSgzA10zg==",
+ "version": "10.4.3",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-10.4.3.tgz",
+ "integrity": "sha512-emc4TVjq5Ht0/upR+psftuz6IBG5q279p+1dSRDeHf+NS9aaerBi3lXKo1SEzwC29hFIW21gO89CEWSvRsi8IQ==",
"dev": true,
"dependencies": {
"eslint-utils": "^3.0.0",
- "ramda": "^0.27.1"
+ "globals": "^13.24.0",
+ "rambda": "^7.4.0"
},
"engines": {
- "node": ">=12.0.0"
+ "node": ">=14.0.0"
},
"peerDependencies": {
"eslint": ">=7.0.0"
}
},
- "node_modules/eslint-plugin-no-jquery": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-no-jquery/-/eslint-plugin-no-jquery-2.7.0.tgz",
- "integrity": "sha512-Aeg7dA6GTH1AcWLlBtWNzOU9efK5KpNi7b0EhBO0o0M+awyzguUUo8gF6hXGjQ9n5h8/uRtYv9zOqQkeC5CG0w==",
- "dev": true,
- "peerDependencies": {
- "eslint": ">=2.3.0"
- }
- },
- "node_modules/eslint-plugin-node": {
- "version": "11.1.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz",
- "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==",
- "dev": true,
- "dependencies": {
- "eslint-plugin-es": "^3.0.0",
- "eslint-utils": "^2.0.0",
- "ignore": "^5.1.1",
- "minimatch": "^3.0.4",
- "resolve": "^1.10.1",
- "semver": "^6.1.0"
- },
- "engines": {
- "node": ">=8.10.0"
- },
- "peerDependencies": {
- "eslint": ">=5.16.0"
- }
- },
- "node_modules/eslint-plugin-node/node_modules/eslint-utils": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz",
- "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==",
+ "node_modules/eslint-plugin-n": {
+ "version": "16.6.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-16.6.2.tgz",
+ "integrity": "sha512-6TyDmZ1HXoFQXnhCTUjVFULReoBPOAjpuiKELMkeP40yffI/1ZRO+d9ug/VC6fqISo2WkuIBk3cvuRPALaWlOQ==",
"dev": true,
"dependencies": {
- "eslint-visitor-keys": "^1.1.0"
+ "@eslint-community/eslint-utils": "^4.4.0",
+ "builtins": "^5.0.1",
+ "eslint-plugin-es-x": "^7.5.0",
+ "get-tsconfig": "^4.7.0",
+ "globals": "^13.24.0",
+ "ignore": "^5.2.4",
+ "is-builtin-module": "^3.2.1",
+ "is-core-module": "^2.12.1",
+ "minimatch": "^3.1.2",
+ "resolve": "^1.22.2",
+ "semver": "^7.5.3"
},
"engines": {
- "node": ">=6"
+ "node": ">=16.0.0"
},
"funding": {
"url": "https://github.com/sponsors/mysticatea"
+ },
+ "peerDependencies": {
+ "eslint": ">=7.0.0"
}
},
- "node_modules/eslint-plugin-node/node_modules/eslint-visitor-keys": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
- "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/eslint-plugin-node/node_modules/semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "node_modules/eslint-plugin-no-jquery": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-no-jquery/-/eslint-plugin-no-jquery-2.7.0.tgz",
+ "integrity": "sha512-Aeg7dA6GTH1AcWLlBtWNzOU9efK5KpNi7b0EhBO0o0M+awyzguUUo8gF6hXGjQ9n5h8/uRtYv9zOqQkeC5CG0w==",
"dev": true,
- "bin": {
- "semver": "bin/semver.js"
+ "peerDependencies": {
+ "eslint": ">=2.3.0"
}
},
"node_modules/eslint-plugin-qunit": {
- "version": "7.3.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-qunit/-/eslint-plugin-qunit-7.3.1.tgz",
- "integrity": "sha512-L1yutkLqCgr70ZmMAbBKPvUOUwhKryZ0RaJKOzw72Bmn8no3JNBL9hhbX2aTvfZqYM/wLXIT0nICZiGrV4xVJw==",
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-qunit/-/eslint-plugin-qunit-8.1.1.tgz",
+ "integrity": "sha512-j3xhiAf2Wvr8Dfwl5T6tlJ+F55vqYE9ZdAHUOTzq1lGerYrXzOS46RvK4SSWug2D8sl3ZYr2lA4/hgVXgLloxw==",
"dev": true,
"dependencies": {
"eslint-utils": "^3.0.0",
"requireindex": "^1.2.0"
},
"engines": {
- "node": "12.x || 14.x || >=16.0.0"
+ "node": "^16.0.0 || ^18.0.0 || >=20.0.0"
+ }
+ },
+ "node_modules/eslint-plugin-security": {
+ "version": "1.7.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-security/-/eslint-plugin-security-1.7.1.tgz",
+ "integrity": "sha512-sMStceig8AFglhhT2LqlU5r+/fn9OwsA72O5bBuQVTssPCdQAOQzL+oMn/ZcpeUY6KcNfLJArgcrsSULNjYYdQ==",
+ "dev": true,
+ "dependencies": {
+ "safe-regex": "^2.1.1"
}
},
"node_modules/eslint-plugin-unicorn": {
- "version": "42.0.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-42.0.0.tgz",
- "integrity": "sha512-ixBsbhgWuxVaNlPTT8AyfJMlhyC5flCJFjyK3oKE8TRrwBnaHvUbuIkCM1lqg8ryYrFStL/T557zfKzX4GKSlg==",
+ "version": "51.0.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-51.0.1.tgz",
+ "integrity": "sha512-MuR/+9VuB0fydoI0nIn2RDA5WISRn4AsJyNSaNKLVwie9/ONvQhxOBbkfSICBPnzKrB77Fh6CZZXjgTt/4Latw==",
"dev": true,
"dependencies": {
- "@babel/helper-validator-identifier": "^7.15.7",
- "ci-info": "^3.3.0",
+ "@babel/helper-validator-identifier": "^7.22.20",
+ "@eslint-community/eslint-utils": "^4.4.0",
+ "@eslint/eslintrc": "^2.1.4",
+ "ci-info": "^4.0.0",
"clean-regexp": "^1.0.0",
- "eslint-utils": "^3.0.0",
- "esquery": "^1.4.0",
+ "core-js-compat": "^3.34.0",
+ "esquery": "^1.5.0",
"indent-string": "^4.0.0",
- "is-builtin-module": "^3.1.0",
- "lodash": "^4.17.21",
+ "is-builtin-module": "^3.2.1",
+ "jsesc": "^3.0.2",
"pluralize": "^8.0.0",
"read-pkg-up": "^7.0.1",
- "regexp-tree": "^0.1.24",
- "safe-regex": "^2.1.1",
- "semver": "^7.3.5",
+ "regexp-tree": "^0.1.27",
+ "regjsparser": "^0.10.0",
+ "semver": "^7.5.4",
"strip-indent": "^3.0.0"
},
"engines": {
- "node": ">=12"
+ "node": ">=16"
},
"funding": {
"url": "https://github.com/sindresorhus/eslint-plugin-unicorn?sponsor=1"
},
"peerDependencies": {
- "eslint": ">=8.8.0"
+ "eslint": ">=8.56.0"
}
},
"node_modules/eslint-plugin-vue": {
- "version": "8.7.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-8.7.1.tgz",
- "integrity": "sha512-28sbtm4l4cOzoO1LtzQPxfxhQABararUb1JtqusQqObJpWX2e/gmVyeYVfepizPFne0Q5cILkYGiBoV36L12Wg==",
+ "version": "9.25.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.25.0.tgz",
+ "integrity": "sha512-tDWlx14bVe6Bs+Nnh3IGrD+hb11kf2nukfm6jLsmJIhmiRQ1SUaksvwY9U5MvPB0pcrg0QK0xapQkfITs3RKOA==",
"dev": true,
"dependencies": {
- "eslint-utils": "^3.0.0",
+ "@eslint-community/eslint-utils": "^4.4.0",
+ "globals": "^13.24.0",
"natural-compare": "^1.4.0",
- "nth-check": "^2.0.1",
- "postcss-selector-parser": "^6.0.9",
- "semver": "^7.3.5",
- "vue-eslint-parser": "^8.0.1"
+ "nth-check": "^2.1.1",
+ "postcss-selector-parser": "^6.0.15",
+ "semver": "^7.6.0",
+ "vue-eslint-parser": "^9.4.2",
+ "xml-name-validator": "^4.0.0"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": "^14.17.0 || >=16.0.0"
},
"peerDependencies": {
- "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0"
+ "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0"
}
},
"node_modules/eslint-plugin-wdio": {
- "version": "7.25.3",
- "resolved": "https://registry.npmjs.org/eslint-plugin-wdio/-/eslint-plugin-wdio-7.25.3.tgz",
- "integrity": "sha512-2zbYwV14Md9FNlyhaIILVGPB6w4bu2eJdOTywDUs2Qy4ebcQNwrxB0qCaf7Rm4O+T0Ir+tdYHYBBfbDocSLKng==",
+ "version": "8.24.12",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-wdio/-/eslint-plugin-wdio-8.24.12.tgz",
+ "integrity": "sha512-OmzGteXFOQnJDdkTNnTfksaVa18WlFCyeLjZXHvDpkbomLWAg9wc296Pr0wnTCagqNj8qfEHpy+N2XVew5VCMA==",
"dev": true,
"engines": {
- "node": ">=12.0.0"
+ "node": "^16.13 || >=18"
}
},
"node_modules/eslint-plugin-yml": {
- "version": "0.14.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-0.14.0.tgz",
- "integrity": "sha512-+0+bBV/07txENbxfrHF9olGoLCHez64vmnOmjWOoLwmXOwfdaSRleBSPIi4nWQs7WwX8lm/fSLadOjbVEcsXQQ==",
+ "version": "1.14.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-1.14.0.tgz",
+ "integrity": "sha512-ESUpgYPOcAYQO9czugcX5OqRvn/ydDVwGCPXY4YjPqc09rHaUVUA6IE6HLQys4rXk/S+qx3EwTd1wHCwam/OWQ==",
"dev": true,
"dependencies": {
"debug": "^4.3.2",
+ "eslint-compat-utils": "^0.5.0",
"lodash": "^4.17.21",
"natural-compare": "^1.4.0",
- "yaml-eslint-parser": "^0.5.0"
+ "yaml-eslint-parser": "^1.2.1"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": "^14.17.0 || >=16.0.0"
},
"funding": {
"url": "https://github.com/sponsors/ota-meshi"
@@ -1437,9 +1701,9 @@
}
},
"node_modules/eslint-scope": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz",
- "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==",
+ "version": "7.2.2",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
+ "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
"dev": true,
"dependencies": {
"esrecurse": "^4.3.0",
@@ -1447,6 +1711,9 @@
},
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
}
},
"node_modules/eslint-utils": {
@@ -1477,23 +1744,26 @@
}
},
"node_modules/eslint-visitor-keys": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz",
- "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==",
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
+ "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
"dev": true,
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
}
},
"node_modules/espree": {
- "version": "9.5.0",
- "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.0.tgz",
- "integrity": "sha512-JPbJGhKc47++oo4JkEoTe2wjy4fmMwvFpgJT9cQzmfXKp22Dr6Hf1tdCteLz1h0P3t+mGvWZ+4Uankvh8+c6zw==",
+ "version": "9.6.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
+ "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
"dev": true,
"dependencies": {
- "acorn": "^8.8.0",
+ "acorn": "^8.9.0",
"acorn-jsx": "^5.3.2",
- "eslint-visitor-keys": "^3.3.0"
+ "eslint-visitor-keys": "^3.4.1"
},
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -1597,9 +1867,9 @@
"dev": true
},
"node_modules/fast-glob": {
- "version": "3.2.12",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz",
- "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==",
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
+ "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
"dev": true,
"dependencies": {
"@nodelib/fs.stat": "^2.0.2",
@@ -1735,12 +2005,13 @@
}
},
"node_modules/flat-cache": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
- "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz",
+ "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==",
"dev": true,
"dependencies": {
- "flatted": "^3.1.0",
+ "flatted": "^3.2.9",
+ "keyv": "^4.5.3",
"rimraf": "^3.0.2"
},
"engines": {
@@ -1748,9 +2019,9 @@
}
},
"node_modules/flatted": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz",
- "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==",
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz",
+ "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==",
"dev": true
},
"node_modules/for-in": {
@@ -1781,10 +2052,13 @@
"dev": true
},
"node_modules/function-bind": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
- "dev": true
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
},
"node_modules/get-caller-file": {
"version": "2.0.5",
@@ -1795,6 +2069,18 @@
"node": "6.* || 8.* || >= 10.*"
}
},
+ "node_modules/get-tsconfig": {
+ "version": "4.7.3",
+ "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.3.tgz",
+ "integrity": "sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==",
+ "dev": true,
+ "dependencies": {
+ "resolve-pkg-maps": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1"
+ }
+ },
"node_modules/getobject": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/getobject/-/getobject-1.0.2.tgz",
@@ -1875,9 +2161,9 @@
}
},
"node_modules/globals": {
- "version": "13.20.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz",
- "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==",
+ "version": "13.24.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
+ "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
"dev": true,
"dependencies": {
"type-fest": "^0.20.2"
@@ -1915,10 +2201,10 @@
"integrity": "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==",
"dev": true
},
- "node_modules/grapheme-splitter": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz",
- "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==",
+ "node_modules/graphemer": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
+ "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
"dev": true
},
"node_modules/grunt": {
@@ -1981,13 +2267,13 @@
}
},
"node_modules/grunt-eslint": {
- "version": "24.0.0",
- "resolved": "https://registry.npmjs.org/grunt-eslint/-/grunt-eslint-24.0.0.tgz",
- "integrity": "sha512-WpTeBBFweyhMuPjGwRSQV9JFJ+EczIdlsc7Dd/1g78QVI1aZsk4g/H3e+3S5HEwsS1RKL2YZIrGj8hMLlBfN8w==",
+ "version": "24.3.0",
+ "resolved": "https://registry.npmjs.org/grunt-eslint/-/grunt-eslint-24.3.0.tgz",
+ "integrity": "sha512-dUPiRgX8fhmh4uwTAn9xrzg7HV5j5DhGmZZGJdHfjy/AN9G4jD+5IjfbcAJ209JcIG8m4B7xz3crIhuDSm3siQ==",
"dev": true,
"dependencies": {
"chalk": "^4.1.2",
- "eslint": "^8.0.1"
+ "eslint": "^8.44.0"
},
"engines": {
"node": ">=12"
@@ -2055,18 +2341,18 @@
}
},
"node_modules/grunt-stylelint": {
- "version": "0.18.0",
- "resolved": "https://registry.npmjs.org/grunt-stylelint/-/grunt-stylelint-0.18.0.tgz",
- "integrity": "sha512-Ks5OfRUCA6E1v5PkCQKYaMErHtoec/Ub0Vb1xvZ0CKm/1zzWKuqEu2ZVtFcQVDqrC5UM6AXaLHpsLiocVKAgbg==",
+ "version": "0.19.0",
+ "resolved": "https://registry.npmjs.org/grunt-stylelint/-/grunt-stylelint-0.19.0.tgz",
+ "integrity": "sha512-td+OvkfQ/2bYXNTBAlnpXmfa6sddLSloXRp1zoUONcMScbvEq5S3GSkOZKpCjK90WSjTYR0L7WYFcMVd1TXd+w==",
"dev": true,
"dependencies": {
"chalk": "^4.1.2"
},
"engines": {
- "node": ">=12"
+ "node": ">=16"
},
"peerDependencies": {
- "stylelint": "14.x"
+ "stylelint": "15.x"
}
},
"node_modules/grunt/node_modules/argparse": {
@@ -2118,18 +2404,6 @@
"node": ">=6"
}
},
- "node_modules/has": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
- "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
- "dev": true,
- "dependencies": {
- "function-bind": "^1.1.1"
- },
- "engines": {
- "node": ">= 0.4.0"
- }
- },
"node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
@@ -2139,6 +2413,18 @@
"node": ">=8"
}
},
+ "node_modules/hasown": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+ "dev": true,
+ "dependencies": {
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
"node_modules/homedir-polyfill": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz",
@@ -2167,9 +2453,9 @@
"dev": true
},
"node_modules/html-tags": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.2.0.tgz",
- "integrity": "sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==",
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz",
+ "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==",
"dev": true,
"engines": {
"node": ">=8"
@@ -2309,9 +2595,9 @@
"dev": true
},
"node_modules/is-builtin-module": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.0.tgz",
- "integrity": "sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw==",
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz",
+ "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==",
"dev": true,
"dependencies": {
"builtin-modules": "^3.3.0"
@@ -2324,12 +2610,12 @@
}
},
"node_modules/is-core-module": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz",
- "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==",
+ "version": "2.13.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
+ "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
"dev": true,
"dependencies": {
- "has": "^1.0.3"
+ "hasown": "^2.0.0"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -2458,12 +2744,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/js-sdsl": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.5.tgz",
- "integrity": "sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==",
- "dev": true
- },
"node_modules/js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
@@ -2483,14 +2763,32 @@
}
},
"node_modules/jsdoc-type-pratt-parser": {
- "version": "2.2.5",
- "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-2.2.5.tgz",
- "integrity": "sha512-2a6eRxSxp1BW040hFvaJxhsCMI9lT8QB8t14t+NY5tC5rckIR0U9cr2tjOeaFirmEOy6MHvmJnY7zTBHq431Lw==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.0.0.tgz",
+ "integrity": "sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==",
"dev": true,
"engines": {
"node": ">=12.0.0"
}
},
+ "node_modules/jsesc": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz",
+ "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==",
+ "dev": true,
+ "bin": {
+ "jsesc": "bin/jsesc"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/json-buffer": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
+ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
+ "dev": true
+ },
"node_modules/json-parse-even-better-errors": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
@@ -2509,6 +2807,15 @@
"integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
"dev": true
},
+ "node_modules/keyv": {
+ "version": "4.5.4",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
+ "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
+ "dev": true,
+ "dependencies": {
+ "json-buffer": "3.0.1"
+ }
+ },
"node_modules/kind-of": {
"version": "6.0.3",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
@@ -2519,10 +2826,11 @@
}
},
"node_modules/known-css-properties": {
- "version": "0.26.0",
- "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.26.0.tgz",
- "integrity": "sha512-5FZRzrZzNTBruuurWpvZnvP9pum+fe0HcK8z/ooo+U+Hmp4vtbyp1/QDsqmufirXy4egGzbaH/y2uCZf+6W5Kg==",
- "dev": true
+ "version": "0.29.0",
+ "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.29.0.tgz",
+ "integrity": "sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ==",
+ "dev": true,
+ "peer": true
},
"node_modules/ldjson-stream": {
"version": "1.2.1",
@@ -2703,27 +3011,33 @@
"url": "https://github.com/sponsors/wooorm"
}
},
+ "node_modules/mdn-data": {
+ "version": "2.0.30",
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz",
+ "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==",
+ "dev": true
+ },
"node_modules/meow": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz",
- "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==",
+ "version": "10.1.5",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-10.1.5.tgz",
+ "integrity": "sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==",
"dev": true,
"dependencies": {
- "@types/minimist": "^1.2.0",
- "camelcase-keys": "^6.2.2",
- "decamelize": "^1.2.0",
+ "@types/minimist": "^1.2.2",
+ "camelcase-keys": "^7.0.0",
+ "decamelize": "^5.0.0",
"decamelize-keys": "^1.1.0",
"hard-rejection": "^2.1.0",
"minimist-options": "4.1.0",
- "normalize-package-data": "^3.0.0",
- "read-pkg-up": "^7.0.1",
- "redent": "^3.0.0",
- "trim-newlines": "^3.0.0",
- "type-fest": "^0.18.0",
- "yargs-parser": "^20.2.3"
+ "normalize-package-data": "^3.0.2",
+ "read-pkg-up": "^8.0.0",
+ "redent": "^4.0.0",
+ "trim-newlines": "^4.0.2",
+ "type-fest": "^1.2.2",
+ "yargs-parser": "^20.2.9"
},
"engines": {
- "node": ">=10"
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -2756,10 +3070,45 @@
"node": ">=10"
}
},
+ "node_modules/meow/node_modules/read-pkg": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-6.0.0.tgz",
+ "integrity": "sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==",
+ "dev": true,
+ "dependencies": {
+ "@types/normalize-package-data": "^2.4.0",
+ "normalize-package-data": "^3.0.2",
+ "parse-json": "^5.2.0",
+ "type-fest": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/meow/node_modules/read-pkg-up": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-8.0.0.tgz",
+ "integrity": "sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==",
+ "dev": true,
+ "dependencies": {
+ "find-up": "^5.0.0",
+ "read-pkg": "^6.0.0",
+ "type-fest": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/meow/node_modules/type-fest": {
- "version": "0.18.1",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz",
- "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz",
+ "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==",
"dev": true,
"engines": {
"node": ">=10"
@@ -2860,10 +3209,16 @@
}
},
"node_modules/nanoid": {
- "version": "3.3.4",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
- "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
+ "version": "3.3.7",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
+ "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
"dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
"bin": {
"nanoid": "bin/nanoid.cjs"
},
@@ -2878,9 +3233,9 @@
"dev": true
},
"node_modules/node-releases": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz",
- "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==",
+ "version": "2.0.14",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz",
+ "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==",
"dev": true
},
"node_modules/nopt": {
@@ -2908,9 +3263,9 @@
}
},
"node_modules/normalize-package-data/node_modules/semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
"dev": true,
"bin": {
"semver": "bin/semver"
@@ -2987,9 +3342,9 @@
}
},
"node_modules/optionator": {
- "version": "0.9.1",
- "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
- "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
+ "version": "0.9.4",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz",
+ "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==",
"dev": true,
"dependencies": {
"deep-is": "^0.1.3",
@@ -2997,7 +3352,7 @@
"levn": "^0.4.1",
"prelude-ls": "^1.2.1",
"type-check": "^0.4.0",
- "word-wrap": "^1.2.3"
+ "word-wrap": "^1.2.5"
},
"engines": {
"node": ">= 0.8.0"
@@ -3214,9 +3569,9 @@
}
},
"node_modules/postcss": {
- "version": "8.4.21",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz",
- "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==",
+ "version": "8.4.38",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz",
+ "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==",
"dev": true,
"funding": [
{
@@ -3226,12 +3581,16 @@
{
"type": "tidelift",
"url": "https://tidelift.com/funding/github/npm/postcss"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
}
],
"dependencies": {
- "nanoid": "^3.3.4",
+ "nanoid": "^3.3.7",
"picocolors": "^1.0.0",
- "source-map-js": "^1.0.2"
+ "source-map-js": "^1.2.0"
},
"engines": {
"node": "^10 || ^12 || >=14"
@@ -3299,9 +3658,9 @@
}
},
"node_modules/postcss-selector-parser": {
- "version": "6.0.11",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz",
- "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==",
+ "version": "6.0.16",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz",
+ "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==",
"dev": true,
"dependencies": {
"cssesc": "^3.0.0",
@@ -3356,18 +3715,21 @@
]
},
"node_modules/quick-lru": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz",
- "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==",
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz",
+ "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==",
"dev": true,
"engines": {
- "node": ">=8"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/ramda": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.2.tgz",
- "integrity": "sha512-SbiLPU40JuJniHexQSAgad32hfwd+DRUdwF2PlVuI5RZD0/vahUco7R8vD86J/tcEKKF9vZrUVwgtmGCqlCKyA==",
+ "node_modules/rambda": {
+ "version": "7.5.0",
+ "resolved": "https://registry.npmjs.org/rambda/-/rambda-7.5.0.tgz",
+ "integrity": "sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA==",
"dev": true
},
"node_modules/read-pkg": {
@@ -3497,37 +3859,76 @@
}
},
"node_modules/redent": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz",
- "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/redent/-/redent-4.0.0.tgz",
+ "integrity": "sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==",
"dev": true,
"dependencies": {
- "indent-string": "^4.0.0",
- "strip-indent": "^3.0.0"
+ "indent-string": "^5.0.0",
+ "strip-indent": "^4.0.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/redent/node_modules/indent-string": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz",
+ "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/redent/node_modules/strip-indent": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.0.0.tgz",
+ "integrity": "sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==",
+ "dev": true,
+ "dependencies": {
+ "min-indent": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/regexp-tree": {
- "version": "0.1.24",
- "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.24.tgz",
- "integrity": "sha512-s2aEVuLhvnVJW6s/iPgEGK6R+/xngd2jNQ+xy4bXNDKxZKJH6jpPHY6kVeVv1IeLCHgswRj+Kl3ELaDjG6V1iw==",
+ "version": "0.1.27",
+ "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.27.tgz",
+ "integrity": "sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==",
"dev": true,
"bin": {
"regexp-tree": "bin/regexp-tree"
}
},
- "node_modules/regexpp": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz",
- "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==",
+ "node_modules/regjsparser": {
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.10.0.tgz",
+ "integrity": "sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==",
"dev": true,
- "engines": {
- "node": ">=8"
+ "dependencies": {
+ "jsesc": "~0.5.0"
},
- "funding": {
- "url": "https://github.com/sponsors/mysticatea"
+ "bin": {
+ "regjsparser": "bin/parser"
+ }
+ },
+ "node_modules/regjsparser/node_modules/jsesc": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
+ "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==",
+ "dev": true,
+ "bin": {
+ "jsesc": "bin/jsesc"
}
},
"node_modules/require-directory": {
@@ -3558,12 +3959,12 @@
}
},
"node_modules/resolve": {
- "version": "1.22.1",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
- "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
+ "version": "1.22.8",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
+ "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
"dev": true,
"dependencies": {
- "is-core-module": "^2.9.0",
+ "is-core-module": "^2.13.0",
"path-parse": "^1.0.7",
"supports-preserve-symlinks-flag": "^1.0.0"
},
@@ -3638,6 +4039,15 @@
"node": ">=4"
}
},
+ "node_modules/resolve-pkg-maps": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz",
+ "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1"
+ }
+ },
"node_modules/reusify": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
@@ -3722,9 +4132,9 @@
"dev": true
},
"node_modules/semver": {
- "version": "7.3.5",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
- "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
"dev": true,
"dependencies": {
"lru-cache": "^6.0.0"
@@ -3758,10 +4168,16 @@
}
},
"node_modules/signal-exit": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
- "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
- "dev": true
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
+ "dev": true,
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
},
"node_modules/slash": {
"version": "3.0.0",
@@ -3799,34 +4215,44 @@
}
},
"node_modules/source-map-js": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
- "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz",
+ "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==",
"dev": true,
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/spdx-correct": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz",
- "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz",
+ "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==",
"dev": true,
"dependencies": {
"spdx-expression-parse": "^3.0.0",
"spdx-license-ids": "^3.0.0"
}
},
+ "node_modules/spdx-correct/node_modules/spdx-expression-parse": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
+ "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+ "dev": true,
+ "dependencies": {
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
"node_modules/spdx-exceptions": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz",
- "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==",
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz",
+ "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==",
"dev": true
},
"node_modules/spdx-expression-parse": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
- "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-4.0.0.tgz",
+ "integrity": "sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==",
"dev": true,
"dependencies": {
"spdx-exceptions": "^2.1.0",
@@ -3834,9 +4260,9 @@
}
},
"node_modules/spdx-license-ids": {
- "version": "3.0.12",
- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz",
- "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==",
+ "version": "3.0.17",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz",
+ "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==",
"dev": true
},
"node_modules/split2": {
@@ -3905,121 +4331,222 @@
"ansi-regex": "^5.0.1"
},
"engines": {
- "node": ">=8"
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-indent": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
+ "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==",
+ "dev": true,
+ "dependencies": {
+ "min-indent": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-json-comments": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/style-search": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz",
+ "integrity": "sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==",
+ "dev": true
+ },
+ "node_modules/stylelint": {
+ "version": "15.11.0",
+ "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.11.0.tgz",
+ "integrity": "sha512-78O4c6IswZ9TzpcIiQJIN49K3qNoXTM8zEJzhaTE/xRTCZswaovSEVIa/uwbOltZrk16X4jAxjaOhzz/hTm1Kw==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@csstools/css-parser-algorithms": "^2.3.1",
+ "@csstools/css-tokenizer": "^2.2.0",
+ "@csstools/media-query-list-parser": "^2.1.4",
+ "@csstools/selector-specificity": "^3.0.0",
+ "balanced-match": "^2.0.0",
+ "colord": "^2.9.3",
+ "cosmiconfig": "^8.2.0",
+ "css-functions-list": "^3.2.1",
+ "css-tree": "^2.3.1",
+ "debug": "^4.3.4",
+ "fast-glob": "^3.3.1",
+ "fastest-levenshtein": "^1.0.16",
+ "file-entry-cache": "^7.0.0",
+ "global-modules": "^2.0.0",
+ "globby": "^11.1.0",
+ "globjoin": "^0.1.4",
+ "html-tags": "^3.3.1",
+ "ignore": "^5.2.4",
+ "import-lazy": "^4.0.0",
+ "imurmurhash": "^0.1.4",
+ "is-plain-object": "^5.0.0",
+ "known-css-properties": "^0.29.0",
+ "mathml-tag-names": "^2.1.3",
+ "meow": "^10.1.5",
+ "micromatch": "^4.0.5",
+ "normalize-path": "^3.0.0",
+ "picocolors": "^1.0.0",
+ "postcss": "^8.4.28",
+ "postcss-resolve-nested-selector": "^0.1.1",
+ "postcss-safe-parser": "^6.0.0",
+ "postcss-selector-parser": "^6.0.13",
+ "postcss-value-parser": "^4.2.0",
+ "resolve-from": "^5.0.0",
+ "string-width": "^4.2.3",
+ "strip-ansi": "^6.0.1",
+ "style-search": "^0.1.0",
+ "supports-hyperlinks": "^3.0.0",
+ "svg-tags": "^1.0.0",
+ "table": "^6.8.1",
+ "write-file-atomic": "^5.0.1"
+ },
+ "bin": {
+ "stylelint": "bin/stylelint.mjs"
+ },
+ "engines": {
+ "node": "^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/stylelint"
+ }
+ },
+ "node_modules/stylelint-config-recommended": {
+ "version": "13.0.0",
+ "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-13.0.0.tgz",
+ "integrity": "sha512-EH+yRj6h3GAe/fRiyaoO2F9l9Tgg50AOFhaszyfov9v6ayXJ1IkSHwTxd7lB48FmOeSGDPLjatjO11fJpmarkQ==",
+ "dev": true,
+ "engines": {
+ "node": "^14.13.1 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "stylelint": "^15.10.0"
}
},
- "node_modules/strip-indent": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
- "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==",
+ "node_modules/stylelint-config-wikimedia": {
+ "version": "0.16.1",
+ "resolved": "https://registry.npmjs.org/stylelint-config-wikimedia/-/stylelint-config-wikimedia-0.16.1.tgz",
+ "integrity": "sha512-FDVUyDyCBap2o2HAeJqIobdVdSTur5HFX5FymoKrzfMIYWxIV/55lTpyL1PR71TfVMaroDXJrIftLFW9mXKFhQ==",
"dev": true,
"dependencies": {
- "min-indent": "^1.0.0"
+ "browserslist-config-wikimedia": "0.5.0",
+ "postcss-html": "1.5.0",
+ "postcss-less": "6.0.0",
+ "stylelint": "15.10.1",
+ "stylelint-config-recommended": "13.0.0",
+ "stylelint-no-unsupported-browser-features": "6.1.0",
+ "stylelint-stylistic": "0.4.3"
},
- "engines": {
- "node": ">=8"
+ "peerDependencies": {
+ "postcss-less": "^6.0.0"
}
},
- "node_modules/strip-json-comments": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
- "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+ "node_modules/stylelint-config-wikimedia/node_modules/balanced-match": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz",
+ "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==",
+ "dev": true
+ },
+ "node_modules/stylelint-config-wikimedia/node_modules/browserslist-config-wikimedia": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/browserslist-config-wikimedia/-/browserslist-config-wikimedia-0.5.0.tgz",
+ "integrity": "sha512-t+tvSnTeVhVF2lNRxoAlE51/ZCfUs5SNNZUnWu2N8xXOGMPTMyKk5l4mayvDdm+5L8oqmnALU+TjnN2Z+ZTCTw==",
+ "dev": true
+ },
+ "node_modules/stylelint-config-wikimedia/node_modules/is-plain-object": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
+ "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
"dev": true,
"engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=0.10.0"
}
},
- "node_modules/style-search": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz",
- "integrity": "sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==",
+ "node_modules/stylelint-config-wikimedia/node_modules/known-css-properties": {
+ "version": "0.27.0",
+ "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.27.0.tgz",
+ "integrity": "sha512-uMCj6+hZYDoffuvAJjFAPz56E9uoowFHmTkqRtRq5WyC5Q6Cu/fTZKNQpX/RbzChBYLLl3lo8CjFZBAZXq9qFg==",
"dev": true
},
- "node_modules/stylelint": {
- "version": "14.16.1",
- "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.16.1.tgz",
- "integrity": "sha512-ErlzR/T3hhbV+a925/gbfc3f3Fep9/bnspMiJPorfGEmcBbXdS+oo6LrVtoUZ/w9fqD6o6k7PtUlCOsCRdjX/A==",
+ "node_modules/stylelint-config-wikimedia/node_modules/resolve-from": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/stylelint-config-wikimedia/node_modules/stylelint": {
+ "version": "15.10.1",
+ "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.10.1.tgz",
+ "integrity": "sha512-CYkzYrCFfA/gnOR+u9kJ1PpzwG10WLVnoxHDuBA/JiwGqdM9+yx9+ou6SE/y9YHtfv1mcLo06fdadHTOx4gBZQ==",
"dev": true,
"dependencies": {
- "@csstools/selector-specificity": "^2.0.2",
+ "@csstools/css-parser-algorithms": "^2.3.0",
+ "@csstools/css-tokenizer": "^2.1.1",
+ "@csstools/media-query-list-parser": "^2.1.2",
+ "@csstools/selector-specificity": "^3.0.0",
"balanced-match": "^2.0.0",
"colord": "^2.9.3",
- "cosmiconfig": "^7.1.0",
+ "cosmiconfig": "^8.2.0",
"css-functions-list": "^3.1.0",
+ "css-tree": "^2.3.1",
"debug": "^4.3.4",
- "fast-glob": "^3.2.12",
+ "fast-glob": "^3.3.0",
"fastest-levenshtein": "^1.0.16",
"file-entry-cache": "^6.0.1",
"global-modules": "^2.0.0",
"globby": "^11.1.0",
"globjoin": "^0.1.4",
- "html-tags": "^3.2.0",
- "ignore": "^5.2.1",
+ "html-tags": "^3.3.1",
+ "ignore": "^5.2.4",
"import-lazy": "^4.0.0",
"imurmurhash": "^0.1.4",
"is-plain-object": "^5.0.0",
- "known-css-properties": "^0.26.0",
+ "known-css-properties": "^0.27.0",
"mathml-tag-names": "^2.1.3",
- "meow": "^9.0.0",
+ "meow": "^10.1.5",
"micromatch": "^4.0.5",
"normalize-path": "^3.0.0",
"picocolors": "^1.0.0",
- "postcss": "^8.4.19",
- "postcss-media-query-parser": "^0.2.3",
+ "postcss": "^8.4.24",
"postcss-resolve-nested-selector": "^0.1.1",
"postcss-safe-parser": "^6.0.0",
- "postcss-selector-parser": "^6.0.11",
+ "postcss-selector-parser": "^6.0.13",
"postcss-value-parser": "^4.2.0",
"resolve-from": "^5.0.0",
"string-width": "^4.2.3",
"strip-ansi": "^6.0.1",
"style-search": "^0.1.0",
- "supports-hyperlinks": "^2.3.0",
+ "supports-hyperlinks": "^3.0.0",
"svg-tags": "^1.0.0",
"table": "^6.8.1",
- "v8-compile-cache": "^2.3.0",
- "write-file-atomic": "^4.0.2"
+ "write-file-atomic": "^5.0.1"
},
"bin": {
- "stylelint": "bin/stylelint.js"
+ "stylelint": "bin/stylelint.mjs"
},
"engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ "node": "^14.13.1 || >=16.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/stylelint"
}
},
- "node_modules/stylelint-config-recommended": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-9.0.0.tgz",
- "integrity": "sha512-9YQSrJq4NvvRuTbzDsWX3rrFOzOlYBmZP+o513BJN/yfEmGSr0AxdvrWs0P/ilSpVV/wisamAHu5XSk8Rcf4CQ==",
- "dev": true,
- "peerDependencies": {
- "stylelint": "^14.10.0"
- }
- },
- "node_modules/stylelint-config-wikimedia": {
- "version": "0.14.0",
- "resolved": "https://registry.npmjs.org/stylelint-config-wikimedia/-/stylelint-config-wikimedia-0.14.0.tgz",
- "integrity": "sha512-8gc5fcYsavMU6yBxE4Ium0XX8Ekedg+kcU0Oojjg5di6Jhv74bx3pcdfW+Z4bDYKWx3pg3Glemy/CBRqg+JViQ==",
- "dev": true,
- "dependencies": {
- "browserslist-config-wikimedia": "0.4.0",
- "postcss-html": "1.5.0",
- "postcss-less": "6.0.0",
- "stylelint": "14.16.1",
- "stylelint-config-recommended": "9.0.0",
- "stylelint-no-unsupported-browser-features": "6.1.0"
- },
- "peerDependencies": {
- "postcss-less": "^6.0.0"
- }
- },
"node_modules/stylelint-no-unsupported-browser-features": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/stylelint-no-unsupported-browser-features/-/stylelint-no-unsupported-browser-features-6.1.0.tgz",
@@ -4037,17 +4564,58 @@
"stylelint": "^14.0.0||^15.0.0"
}
},
+ "node_modules/stylelint-stylistic": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/stylelint-stylistic/-/stylelint-stylistic-0.4.3.tgz",
+ "integrity": "sha512-WphmneK3MRrm5ixvRPWy7+c9+EQUh0FPvNMXW/N9VD85vyqtpxUejpD+mxubVVht0fRgidcqBxtW3s3tU2Ujhw==",
+ "deprecated": "This package has been deprecated in favor of @stylistic/stylelint-plugin",
+ "dev": true,
+ "dependencies": {
+ "is-plain-object": "^5.0.0",
+ "postcss": "^8.4.21",
+ "postcss-media-query-parser": "^0.2.3",
+ "postcss-value-parser": "^4.2.0",
+ "style-search": "^0.1.0"
+ },
+ "peerDependencies": {
+ "stylelint": "^15.0.0"
+ }
+ },
+ "node_modules/stylelint-stylistic/node_modules/is-plain-object": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
+ "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/stylelint/node_modules/balanced-match": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz",
"integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==",
- "dev": true
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/stylelint/node_modules/file-entry-cache": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-7.0.2.tgz",
+ "integrity": "sha512-TfW7/1iI4Cy7Y8L6iqNdZQVvdXn0f8B4QcIXmkIbtTIe/Okm/nSlHb4IwGzRVOd3WfSieCgvf5cMzEfySAIl0g==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "flat-cache": "^3.2.0"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ }
},
"node_modules/stylelint/node_modules/is-plain-object": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
"integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
"dev": true,
+ "peer": true,
"engines": {
"node": ">=0.10.0"
}
@@ -4057,6 +4625,7 @@
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
"integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
"dev": true,
+ "peer": true,
"engines": {
"node": ">=8"
}
@@ -4074,16 +4643,16 @@
}
},
"node_modules/supports-hyperlinks": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz",
- "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.0.0.tgz",
+ "integrity": "sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==",
"dev": true,
"dependencies": {
"has-flag": "^4.0.0",
"supports-color": "^7.0.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=14.18"
}
},
"node_modules/supports-preserve-symlinks-flag": {
@@ -4193,12 +4762,36 @@
}
},
"node_modules/trim-newlines": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz",
- "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-4.1.1.tgz",
+ "integrity": "sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==",
"dev": true,
"engines": {
- "node": ">=8"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "dev": true
+ },
+ "node_modules/tsutils": {
+ "version": "3.21.0",
+ "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz",
+ "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==",
+ "dev": true,
+ "dependencies": {
+ "tslib": "^1.8.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ },
+ "peerDependencies": {
+ "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta"
}
},
"node_modules/type-check": {
@@ -4225,6 +4818,20 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/typescript": {
+ "version": "5.4.5",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz",
+ "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==",
+ "dev": true,
+ "peer": true,
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=14.17"
+ }
+ },
"node_modules/unc-path-regex": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz",
@@ -4258,9 +4865,9 @@
}
},
"node_modules/update-browserslist-db": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz",
- "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==",
+ "version": "1.0.13",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz",
+ "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==",
"dev": true,
"funding": [
{
@@ -4270,6 +4877,10 @@
{
"type": "tidelift",
"url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
}
],
"dependencies": {
@@ -4277,7 +4888,7 @@
"picocolors": "^1.0.0"
},
"bin": {
- "browserslist-lint": "cli.js"
+ "update-browserslist-db": "cli.js"
},
"peerDependencies": {
"browserslist": ">= 4.21.0"
@@ -4298,12 +4909,6 @@
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
"dev": true
},
- "node_modules/v8-compile-cache": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz",
- "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==",
- "dev": true
- },
"node_modules/v8flags": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz",
@@ -4326,22 +4931,32 @@
"spdx-expression-parse": "^3.0.0"
}
},
+ "node_modules/validate-npm-package-license/node_modules/spdx-expression-parse": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
+ "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+ "dev": true,
+ "dependencies": {
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
"node_modules/vue-eslint-parser": {
- "version": "8.3.0",
- "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-8.3.0.tgz",
- "integrity": "sha512-dzHGG3+sYwSf6zFBa0Gi9ZDshD7+ad14DGOdTLjruRVgZXe2J+DcZ9iUhyR48z5g1PqRa20yt3Njna/veLJL/g==",
+ "version": "9.4.2",
+ "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.4.2.tgz",
+ "integrity": "sha512-Ry9oiGmCAK91HrKMtCrKFWmSFWvYkpGglCeFAIqDdr9zdXmMMpJOmUJS7WWsW7fX81h6mwHmUZCQQ1E0PkSwYQ==",
"dev": true,
"dependencies": {
- "debug": "^4.3.2",
- "eslint-scope": "^7.0.0",
- "eslint-visitor-keys": "^3.1.0",
- "espree": "^9.0.0",
+ "debug": "^4.3.4",
+ "eslint-scope": "^7.1.1",
+ "eslint-visitor-keys": "^3.3.0",
+ "espree": "^9.3.1",
"esquery": "^1.4.0",
"lodash": "^4.17.21",
- "semver": "^7.3.5"
+ "semver": "^7.3.6"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": "^14.17.0 || >=16.0.0"
},
"funding": {
"url": "https://github.com/sponsors/mysticatea"
@@ -4366,9 +4981,9 @@
}
},
"node_modules/word-wrap": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
- "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
+ "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
"dev": true,
"engines": {
"node": ">=0.10.0"
@@ -4398,16 +5013,25 @@
"dev": true
},
"node_modules/write-file-atomic": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz",
- "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz",
+ "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==",
"dev": true,
"dependencies": {
"imurmurhash": "^0.1.4",
- "signal-exit": "^3.0.7"
+ "signal-exit": "^4.0.1"
},
"engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/xml-name-validator": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz",
+ "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
}
},
"node_modules/xtend": {
@@ -4435,26 +5059,32 @@
"dev": true
},
"node_modules/yaml": {
- "version": "1.10.2",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
- "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.1.tgz",
+ "integrity": "sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==",
"dev": true,
+ "bin": {
+ "yaml": "bin.mjs"
+ },
"engines": {
- "node": ">= 6"
+ "node": ">= 14"
}
},
"node_modules/yaml-eslint-parser": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/yaml-eslint-parser/-/yaml-eslint-parser-0.5.0.tgz",
- "integrity": "sha512-nJeyLA3YHAzhBTZbRAbu3W6xrSCucyxExmA+ZDtEdUFpGllxAZpto2Zxo2IG0r0eiuEiBM4e+wiAdxTziTq94g==",
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/yaml-eslint-parser/-/yaml-eslint-parser-1.2.2.tgz",
+ "integrity": "sha512-pEwzfsKbTrB8G3xc/sN7aw1v6A6c/pKxLAkjclnAyo5g5qOh6eL9WGu0o3cSDQZKrTNk4KL4lQSwZW+nBkANEg==",
"dev": true,
"dependencies": {
"eslint-visitor-keys": "^3.0.0",
"lodash": "^4.17.21",
- "yaml": "^1.10.2"
+ "yaml": "^2.0.0"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": "^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ota-meshi"
}
},
"node_modules/yargs": {
@@ -4499,29 +5129,31 @@
},
"dependencies": {
"@babel/code-frame": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz",
- "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==",
+ "version": "7.24.2",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz",
+ "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==",
"dev": true,
"requires": {
- "@babel/highlight": "^7.18.6"
+ "@babel/highlight": "^7.24.2",
+ "picocolors": "^1.0.0"
}
},
"@babel/helper-validator-identifier": {
- "version": "7.19.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz",
- "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==",
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
+ "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==",
"dev": true
},
"@babel/highlight": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz",
- "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
+ "version": "7.24.2",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz",
+ "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==",
"dev": true,
"requires": {
- "@babel/helper-validator-identifier": "^7.18.6",
- "chalk": "^2.0.0",
- "js-tokens": "^4.0.0"
+ "@babel/helper-validator-identifier": "^7.22.20",
+ "chalk": "^2.4.2",
+ "js-tokens": "^4.0.0",
+ "picocolors": "^1.0.0"
},
"dependencies": {
"ansi-styles": {
@@ -4582,48 +5214,68 @@
}
}
},
+ "@csstools/css-parser-algorithms": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.6.1.tgz",
+ "integrity": "sha512-ubEkAaTfVZa+WwGhs5jbo5Xfqpeaybr/RvWzvFxRs4jfq16wH8l8Ty/QEEpINxll4xhuGfdMbipRyz5QZh9+FA==",
+ "dev": true,
+ "requires": {}
+ },
+ "@csstools/css-tokenizer": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.2.4.tgz",
+ "integrity": "sha512-PuWRAewQLbDhGeTvFuq2oClaSCKPIBmHyIobCV39JHRYN0byDcUWJl5baPeNUcqrjtdMNqFooE0FGl31I3JOqw==",
+ "dev": true
+ },
+ "@csstools/media-query-list-parser": {
+ "version": "2.1.9",
+ "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.9.tgz",
+ "integrity": "sha512-qqGuFfbn4rUmyOB0u8CVISIp5FfJ5GAR3mBrZ9/TKndHakdnm6pY0L/fbLcpPnrzwCyyTEZl1nUcXAYHEWneTA==",
+ "dev": true,
+ "requires": {}
+ },
"@csstools/selector-specificity": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.1.1.tgz",
- "integrity": "sha512-jwx+WCqszn53YHOfvFMJJRd/B2GqkCBt+1MJSG6o5/s8+ytHMvDZXsJgUEWLk12UnLd7HYKac4BYU5i/Ron1Cw==",
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.0.3.tgz",
+ "integrity": "sha512-KEPNw4+WW5AVEIyzC80rTbWEUatTW2lXpN8+8ILC8PiPeWPjwUzrPZDIOZ2wwqDmeqOYTdSGyL3+vE5GC3FB3Q==",
"dev": true,
"requires": {}
},
"@es-joy/jsdoccomment": {
- "version": "0.23.6",
- "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.23.6.tgz",
- "integrity": "sha512-cCtumxG+qrYORGeOkDQ58GtSt/bb2XiP9GC0x2YduoUEX2EmBQ48FtoZMUs+8wiIdTDN1izUiRUD2FDu+p+Lvg==",
+ "version": "0.42.0",
+ "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.42.0.tgz",
+ "integrity": "sha512-R1w57YlVA6+YE01wch3GPYn6bCsrOV3YW/5oGGE2tmX6JcL9Nr+b5IikrjMPF+v9CV3ay+obImEdsDhovhJrzw==",
"dev": true,
"requires": {
- "comment-parser": "1.3.1",
- "esquery": "^1.4.0",
- "jsdoc-type-pratt-parser": "~2.2.5"
+ "comment-parser": "1.4.1",
+ "esquery": "^1.5.0",
+ "jsdoc-type-pratt-parser": "~4.0.0"
}
},
"@eslint-community/eslint-utils": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.2.0.tgz",
- "integrity": "sha512-gB8T4H4DEfX2IV9zGDJPOBgP1e/DbfCPDTtEqUMckpvzS1OYtva8JdFYBqMwYk7xAQ429WGF/UPqn8uQ//h2vQ==",
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
+ "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
"dev": true,
"requires": {
"eslint-visitor-keys": "^3.3.0"
}
},
"@eslint-community/regexpp": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.4.0.tgz",
- "integrity": "sha512-A9983Q0LnDGdLPjxyXQ00sbV+K+O+ko2Dr+CZigbHWtX9pNfxlaBkMR8X1CztI73zuEyEBXTVjx7CE+/VSwDiQ==",
+ "version": "4.10.0",
+ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz",
+ "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==",
"dev": true
},
"@eslint/eslintrc": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.1.tgz",
- "integrity": "sha512-eFRmABvW2E5Ho6f5fHLqgena46rOj7r7OKHYfLElqcBfGFHHpjBhivyi5+jOEQuSpdc/1phIZJlbC2te+tZNIw==",
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz",
+ "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==",
"dev": true,
"requires": {
"ajv": "^6.12.4",
"debug": "^4.3.2",
- "espree": "^9.5.0",
+ "espree": "^9.6.0",
"globals": "^13.19.0",
"ignore": "^5.2.0",
"import-fresh": "^3.2.1",
@@ -4633,19 +5285,19 @@
}
},
"@eslint/js": {
- "version": "8.36.0",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.36.0.tgz",
- "integrity": "sha512-lxJ9R5ygVm8ZWgYdUweoq5ownDlJ4upvoWmO4eLxBYHdMo+vZ/Rx0EN6MbKWDJOSUGrqJy2Gt+Dyv/VKml0fjg==",
+ "version": "8.57.0",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz",
+ "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==",
"dev": true
},
"@humanwhocodes/config-array": {
- "version": "0.11.8",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz",
- "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==",
+ "version": "0.11.14",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
+ "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==",
"dev": true,
"requires": {
- "@humanwhocodes/object-schema": "^1.2.1",
- "debug": "^4.1.1",
+ "@humanwhocodes/object-schema": "^2.0.2",
+ "debug": "^4.3.1",
"minimatch": "^3.0.5"
}
},
@@ -4656,15 +5308,15 @@
"dev": true
},
"@humanwhocodes/object-schema": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
- "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz",
+ "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==",
"dev": true
},
"@mdn/browser-compat-data": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-4.2.1.tgz",
- "integrity": "sha512-EWUguj2kd7ldmrF9F+vI5hUOralPd+sdsUnYbRy33vZTuZkduC1shE9TtEMEjAQwyfyMb4ole5KtjF8MsnQOlA==",
+ "version": "5.5.23",
+ "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-5.5.23.tgz",
+ "integrity": "sha512-nIy38qL3nfNcGOz5J2BJQpBXa7vM9QO1+wbyvqqS89lgNTWE8Q10whLsmE0sTVBooXiEaRc4fVME5IXjCYiHAw==",
"dev": true
},
"@nodelib/fs.scandir": {
@@ -4693,6 +5345,12 @@
"fastq": "^1.6.0"
}
},
+ "@types/json-schema": {
+ "version": "7.0.15",
+ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
+ "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
+ "dev": true
+ },
"@types/minimatch": {
"version": "3.0.5",
"resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz",
@@ -4700,21 +5358,102 @@
"dev": true
},
"@types/minimist": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz",
- "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==",
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz",
+ "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==",
"dev": true
},
"@types/normalize-package-data": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz",
- "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==",
+ "version": "2.4.4",
+ "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz",
+ "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==",
"dev": true
},
- "@types/parse-json": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz",
- "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==",
+ "@types/semver": {
+ "version": "7.5.8",
+ "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz",
+ "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==",
+ "dev": true
+ },
+ "@typescript-eslint/scope-manager": {
+ "version": "5.62.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz",
+ "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "5.62.0",
+ "@typescript-eslint/visitor-keys": "5.62.0"
+ }
+ },
+ "@typescript-eslint/types": {
+ "version": "5.62.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz",
+ "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==",
+ "dev": true
+ },
+ "@typescript-eslint/typescript-estree": {
+ "version": "5.62.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz",
+ "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "5.62.0",
+ "@typescript-eslint/visitor-keys": "5.62.0",
+ "debug": "^4.3.4",
+ "globby": "^11.1.0",
+ "is-glob": "^4.0.3",
+ "semver": "^7.3.7",
+ "tsutils": "^3.21.0"
+ }
+ },
+ "@typescript-eslint/utils": {
+ "version": "5.62.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz",
+ "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==",
+ "dev": true,
+ "requires": {
+ "@eslint-community/eslint-utils": "^4.2.0",
+ "@types/json-schema": "^7.0.9",
+ "@types/semver": "^7.3.12",
+ "@typescript-eslint/scope-manager": "5.62.0",
+ "@typescript-eslint/types": "5.62.0",
+ "@typescript-eslint/typescript-estree": "5.62.0",
+ "eslint-scope": "^5.1.1",
+ "semver": "^7.3.7"
+ },
+ "dependencies": {
+ "eslint-scope": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
+ "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
+ "dev": true,
+ "requires": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^4.1.1"
+ }
+ },
+ "estraverse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+ "dev": true
+ }
+ }
+ },
+ "@typescript-eslint/visitor-keys": {
+ "version": "5.62.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz",
+ "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "5.62.0",
+ "eslint-visitor-keys": "^3.3.0"
+ }
+ },
+ "@ungap/structured-clone": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
+ "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==",
"dev": true
},
"abbrev": {
@@ -4724,9 +5463,9 @@
"dev": true
},
"acorn": {
- "version": "8.8.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz",
- "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==",
+ "version": "8.11.3",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
+ "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
"dev": true
},
"acorn-jsx": {
@@ -4763,6 +5502,12 @@
"color-convert": "^2.0.1"
}
},
+ "are-docs-informative": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz",
+ "integrity": "sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==",
+ "dev": true
+ },
"argparse": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
@@ -4800,20 +5545,12 @@
"dev": true
},
"ast-metadata-inferer": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/ast-metadata-inferer/-/ast-metadata-inferer-0.7.0.tgz",
- "integrity": "sha512-OkMLzd8xelb3gmnp6ToFvvsHLtS6CbagTkFQvQ+ZYFe3/AIl9iKikNR9G7pY3GfOR/2Xc222hwBjzI7HLkE76Q==",
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/ast-metadata-inferer/-/ast-metadata-inferer-0.8.0.tgz",
+ "integrity": "sha512-jOMKcHht9LxYIEQu+RVd22vtgrPaVCtDRQ/16IGmurdzxvYbDd5ynxjnyrzLnieG96eTcAyaoj/wN/4/1FyyeA==",
"dev": true,
"requires": {
- "@mdn/browser-compat-data": "^3.3.14"
- },
- "dependencies": {
- "@mdn/browser-compat-data": {
- "version": "3.3.14",
- "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-3.3.14.tgz",
- "integrity": "sha512-n2RC9d6XatVbWFdHLimzzUJxJ1KY8LdjqrW6YvGPiRmsHkhOUx74/Ct10x5Yo7bC/Jvqx7cDEW8IMPv/+vwEzA==",
- "dev": true
- }
+ "@mdn/browser-compat-data": "^5.2.34"
}
},
"astral-regex": {
@@ -4860,21 +5597,21 @@
}
},
"browserslist": {
- "version": "4.21.4",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz",
- "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==",
+ "version": "4.23.0",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz",
+ "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==",
"dev": true,
"requires": {
- "caniuse-lite": "^1.0.30001400",
- "electron-to-chromium": "^1.4.251",
- "node-releases": "^2.0.6",
- "update-browserslist-db": "^1.0.9"
+ "caniuse-lite": "^1.0.30001587",
+ "electron-to-chromium": "^1.4.668",
+ "node-releases": "^2.0.14",
+ "update-browserslist-db": "^1.0.13"
}
},
"browserslist-config-wikimedia": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/browserslist-config-wikimedia/-/browserslist-config-wikimedia-0.4.0.tgz",
- "integrity": "sha512-U/fmsaGlCKOqRIjKqXwQ44qFqiStngRTphj1Cf6IHV6J8OK8T0gu9dKc7Ljq4v7bwhnhN+YCCa4fA3nZlPNivQ==",
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/browserslist-config-wikimedia/-/browserslist-config-wikimedia-0.6.1.tgz",
+ "integrity": "sha512-F3O+12ud7ZwBaiB/RZIMGDgz3nEuXz8RhtdPB4Lkd/WVP5Vy77EqBWRMz4vJ64x8LTTH3BOaHCD2ZuUcgShqyQ==",
"dev": true
},
"builtin-modules": {
@@ -4883,6 +5620,15 @@
"integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==",
"dev": true
},
+ "builtins": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.1.0.tgz",
+ "integrity": "sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==",
+ "dev": true,
+ "requires": {
+ "semver": "^7.0.0"
+ }
+ },
"callsites": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
@@ -4890,26 +5636,35 @@
"dev": true
},
"camelcase": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
- "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
+ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
"dev": true
},
"camelcase-keys": {
- "version": "6.2.2",
- "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz",
- "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==",
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-7.0.2.tgz",
+ "integrity": "sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==",
"dev": true,
"requires": {
- "camelcase": "^5.3.1",
- "map-obj": "^4.0.0",
- "quick-lru": "^4.0.1"
+ "camelcase": "^6.3.0",
+ "map-obj": "^4.1.0",
+ "quick-lru": "^5.1.1",
+ "type-fest": "^1.2.1"
+ },
+ "dependencies": {
+ "type-fest": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz",
+ "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==",
+ "dev": true
+ }
}
},
"caniuse-lite": {
- "version": "1.0.30001423",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001423.tgz",
- "integrity": "sha512-09iwWGOlifvE1XuHokFMP7eR38a0JnajoyL3/i87c8ZjRWRrdKo1fqjNfugfBD0UDBIOz0U+jtNhJ0EPm1VleQ==",
+ "version": "1.0.30001612",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001612.tgz",
+ "integrity": "sha512-lFgnZ07UhaCcsSZgWW0K5j4e69dK1u/ltrL9lTUiFOwNHs12S3UMIEYgBV0Z6C6hRDev7iRnMzzYmKabYdXF9g==",
"dev": true
},
"chalk": {
@@ -4923,9 +5678,9 @@
}
},
"ci-info": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.5.0.tgz",
- "integrity": "sha512-yH4RezKOGlOhxkmhbeNuC4eYZKAUsEaGtBuBzDDP1eFUKiccDWzBABxBfOx31IDwDIXMTxWuwAxUGModvkbuVw==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.0.0.tgz",
+ "integrity": "sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==",
"dev": true
},
"clean-regexp": {
@@ -4984,9 +5739,9 @@
"dev": true
},
"comment-parser": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.3.1.tgz",
- "integrity": "sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA==",
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.1.tgz",
+ "integrity": "sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==",
"dev": true
},
"concat-map": {
@@ -4995,11 +5750,14 @@
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
"dev": true
},
- "core-js": {
- "version": "3.25.5",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.25.5.tgz",
- "integrity": "sha512-nbm6eZSjm+ZuBQxCUPQKQCoUEfFOXjUZ8dTTyikyKaWrTYmAVbykQfwsKE5dBK88u3QCkCrzsx/PPlKfhsvgpw==",
- "dev": true
+ "core-js-compat": {
+ "version": "3.37.0",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.0.tgz",
+ "integrity": "sha512-vYq4L+T8aS5UuFg4UwDhc7YNRWVeVZwltad9C/jV3R2LgVOpS9BDr7l/WL6BN0dbV3k1XejPTHqqEzJgsa0frA==",
+ "dev": true,
+ "requires": {
+ "browserslist": "^4.23.0"
+ }
},
"core-util-is": {
"version": "1.0.3",
@@ -5008,16 +5766,15 @@
"dev": true
},
"cosmiconfig": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz",
- "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==",
+ "version": "8.3.6",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz",
+ "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==",
"dev": true,
"requires": {
- "@types/parse-json": "^4.0.0",
- "import-fresh": "^3.2.1",
- "parse-json": "^5.0.0",
- "path-type": "^4.0.0",
- "yaml": "^1.10.0"
+ "import-fresh": "^3.3.0",
+ "js-yaml": "^4.1.0",
+ "parse-json": "^5.2.0",
+ "path-type": "^4.0.0"
}
},
"cross-spawn": {
@@ -5032,9 +5789,9 @@
}
},
"css-functions-list": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.1.0.tgz",
- "integrity": "sha512-/9lCvYZaUbBGvYUgYGFJ4dcYiyqdhSjG7IPVluoV8A1ILjkF7ilmhp1OGUz8n+nmBcu0RNrQAzgD8B6FJbrt2w==",
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.2.tgz",
+ "integrity": "sha512-c+N0v6wbKVxTu5gOBBFkr9BEdBWaqqjQeiJ8QvSRIJOf+UxlJh930m8e6/WNeODIK0mYLFkoONrnj16i2EcvfQ==",
"dev": true
},
"css-rule-stream": {
@@ -5083,6 +5840,16 @@
"readable-stream": "^1.0.33"
}
},
+ "css-tree": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz",
+ "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==",
+ "dev": true,
+ "requires": {
+ "mdn-data": "2.0.30",
+ "source-map-js": "^1.0.1"
+ }
+ },
"cssesc": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
@@ -5105,21 +5872,27 @@
}
},
"decamelize": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
- "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz",
+ "integrity": "sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==",
"dev": true
},
"decamelize-keys": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz",
- "integrity": "sha512-ocLWuYzRPoS9bfiSdDd3cxvrzovVMZnRDVEzAs+hWIVXGDbHxWMECij2OBuyB/An0FFW/nLuq6Kv1i/YC5Qfzg==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz",
+ "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==",
"dev": true,
"requires": {
"decamelize": "^1.1.0",
"map-obj": "^1.0.0"
},
"dependencies": {
+ "decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
+ "dev": true
+ },
"map-obj": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
@@ -5223,9 +5996,9 @@
}
},
"electron-to-chromium": {
- "version": "1.4.284",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz",
- "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==",
+ "version": "1.4.750",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.750.tgz",
+ "integrity": "sha512-9ItEpeu15hW5m8jKdriL+BQrgwDTXEL9pn4SkillWFu73ZNNNQ2BKKLS+ZHv2vC9UkNhosAeyfxOf/5OSeTCPA==",
"dev": true
},
"emoji-regex": {
@@ -5262,27 +6035,28 @@
"dev": true
},
"eslint": {
- "version": "8.36.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.36.0.tgz",
- "integrity": "sha512-Y956lmS7vDqomxlaaQAHVmeb4tNMp2FWIvU/RnU5BD3IKMD/MJPr76xdyr68P8tV1iNMvN2mRK0yy3c+UjL+bw==",
+ "version": "8.57.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz",
+ "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==",
"dev": true,
"requires": {
"@eslint-community/eslint-utils": "^4.2.0",
- "@eslint-community/regexpp": "^4.4.0",
- "@eslint/eslintrc": "^2.0.1",
- "@eslint/js": "8.36.0",
- "@humanwhocodes/config-array": "^0.11.8",
+ "@eslint-community/regexpp": "^4.6.1",
+ "@eslint/eslintrc": "^2.1.4",
+ "@eslint/js": "8.57.0",
+ "@humanwhocodes/config-array": "^0.11.14",
"@humanwhocodes/module-importer": "^1.0.1",
"@nodelib/fs.walk": "^1.2.8",
- "ajv": "^6.10.0",
+ "@ungap/structured-clone": "^1.2.0",
+ "ajv": "^6.12.4",
"chalk": "^4.0.0",
"cross-spawn": "^7.0.2",
"debug": "^4.3.2",
"doctrine": "^3.0.0",
"escape-string-regexp": "^4.0.0",
- "eslint-scope": "^7.1.1",
- "eslint-visitor-keys": "^3.3.0",
- "espree": "^9.5.0",
+ "eslint-scope": "^7.2.2",
+ "eslint-visitor-keys": "^3.4.3",
+ "espree": "^9.6.1",
"esquery": "^1.4.2",
"esutils": "^2.0.2",
"fast-deep-equal": "^3.1.3",
@@ -5290,125 +6064,106 @@
"find-up": "^5.0.0",
"glob-parent": "^6.0.2",
"globals": "^13.19.0",
- "grapheme-splitter": "^1.0.4",
+ "graphemer": "^1.4.0",
"ignore": "^5.2.0",
- "import-fresh": "^3.0.0",
"imurmurhash": "^0.1.4",
"is-glob": "^4.0.0",
"is-path-inside": "^3.0.3",
- "js-sdsl": "^4.1.4",
"js-yaml": "^4.1.0",
"json-stable-stringify-without-jsonify": "^1.0.1",
"levn": "^0.4.1",
"lodash.merge": "^4.6.2",
"minimatch": "^3.1.2",
"natural-compare": "^1.4.0",
- "optionator": "^0.9.1",
+ "optionator": "^0.9.3",
"strip-ansi": "^6.0.1",
- "strip-json-comments": "^3.1.0",
"text-table": "^0.2.0"
}
},
+ "eslint-compat-utils": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.5.0.tgz",
+ "integrity": "sha512-dc6Y8tzEcSYZMHa+CMPLi/hyo1FzNeonbhJL7Ol0ccuKQkwopJcJBA9YL/xmMTLU1eKigXo9vj9nALElWYSowg==",
+ "dev": true,
+ "requires": {
+ "semver": "^7.5.4"
+ }
+ },
"eslint-config-wikimedia": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/eslint-config-wikimedia/-/eslint-config-wikimedia-0.24.0.tgz",
- "integrity": "sha512-8oH/YhJ87ONSmuRfATgx8U7Jcwz3tBemrh6YOezIfj9f2QfE71ZhaKZrNPdfS7vIklLor/cB9vX7sxN10nz8xw==",
+ "version": "0.27.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-wikimedia/-/eslint-config-wikimedia-0.27.0.tgz",
+ "integrity": "sha512-KkZ54+MUnggz17C/RCEMXQSpiiqZRF7p9fjrz4phaaeKlTrjg0B+QbM5zcDWcjGiAWaJUptHaH17+RZldadkUw==",
"dev": true,
"requires": {
- "browserslist-config-wikimedia": "^0.4.0",
- "eslint": "^8.31.0",
- "eslint-plugin-compat": "^4.0.2",
- "eslint-plugin-es-x": "^5.2.1",
- "eslint-plugin-jsdoc": "39.2.2",
+ "browserslist-config-wikimedia": "^0.6.1",
+ "eslint": "^8.57.0",
+ "eslint-plugin-compat": "^4.2.0",
+ "eslint-plugin-es-x": "^7.6.0",
+ "eslint-plugin-jest": "^27.9.0",
+ "eslint-plugin-jsdoc": "48.2.1",
"eslint-plugin-json-es": "^1.5.7",
- "eslint-plugin-mediawiki": "^0.4.0",
- "eslint-plugin-mocha": "^9.0.0",
+ "eslint-plugin-mediawiki": "^0.6.0",
+ "eslint-plugin-mocha": "^10.4.1",
+ "eslint-plugin-n": "^16.6.2",
"eslint-plugin-no-jquery": "^2.7.0",
- "eslint-plugin-node": "^11.1.0",
- "eslint-plugin-qunit": "^7.2.0",
- "eslint-plugin-unicorn": "^42.0.0",
- "eslint-plugin-vue": "^8.7.1",
- "eslint-plugin-wdio": "^7.19.4",
- "eslint-plugin-yml": "^0.14.0"
+ "eslint-plugin-qunit": "^8.1.1",
+ "eslint-plugin-security": "^1.7.1",
+ "eslint-plugin-unicorn": "^51.0.1",
+ "eslint-plugin-vue": "^9.23.0",
+ "eslint-plugin-wdio": "^8.24.12",
+ "eslint-plugin-yml": "^1.13.2"
}
},
"eslint-plugin-compat": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/eslint-plugin-compat/-/eslint-plugin-compat-4.0.2.tgz",
- "integrity": "sha512-xqvoO54CLTVaEYGMzhu35Wzwk/As7rCvz/2dqwnFiWi0OJccEtGIn+5qq3zqIu9nboXlpdBN579fZcItC73Ycg==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-compat/-/eslint-plugin-compat-4.2.0.tgz",
+ "integrity": "sha512-RDKSYD0maWy5r7zb5cWQS+uSPc26mgOzdORJ8hxILmWM7S/Ncwky7BcAtXVY5iRbKjBdHsWU8Yg7hfoZjtkv7w==",
"dev": true,
"requires": {
- "@mdn/browser-compat-data": "^4.1.5",
- "ast-metadata-inferer": "^0.7.0",
- "browserslist": "^4.16.8",
- "caniuse-lite": "^1.0.30001304",
- "core-js": "^3.16.2",
+ "@mdn/browser-compat-data": "^5.3.13",
+ "ast-metadata-inferer": "^0.8.0",
+ "browserslist": "^4.21.10",
+ "caniuse-lite": "^1.0.30001524",
"find-up": "^5.0.0",
- "lodash.memoize": "4.1.2",
- "semver": "7.3.5"
+ "lodash.memoize": "^4.1.2",
+ "semver": "^7.5.4"
}
},
- "eslint-plugin-es": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz",
- "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==",
+ "eslint-plugin-es-x": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.6.0.tgz",
+ "integrity": "sha512-I0AmeNgevgaTR7y2lrVCJmGYF0rjoznpDvqV/kIkZSZbZ8Rw3eu4cGlvBBULScfkSOCzqKbff5LR4CNrV7mZHA==",
"dev": true,
"requires": {
- "eslint-utils": "^2.0.0",
- "regexpp": "^3.0.0"
- },
- "dependencies": {
- "eslint-utils": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz",
- "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==",
- "dev": true,
- "requires": {
- "eslint-visitor-keys": "^1.1.0"
- }
- },
- "eslint-visitor-keys": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
- "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
- "dev": true
- }
+ "@eslint-community/eslint-utils": "^4.1.2",
+ "@eslint-community/regexpp": "^4.6.0",
+ "eslint-compat-utils": "^0.5.0"
}
},
- "eslint-plugin-es-x": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-5.3.1.tgz",
- "integrity": "sha512-/WJk23lUi36qmPdiA8GxqjOQAwj+2672WwAOYLVD7j4+O5hd9UiXHZFWBwxxem5AyXA6LKDVJnmBZJp5FJWjog==",
+ "eslint-plugin-jest": {
+ "version": "27.9.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.9.0.tgz",
+ "integrity": "sha512-QIT7FH7fNmd9n4se7FFKHbsLKGQiw885Ds6Y/sxKgCZ6natwCsXdgPOADnYVxN2QrRweF0FZWbJ6S7Rsn7llug==",
"dev": true,
"requires": {
- "eslint-utils": "^2.0.0 || ^3.0.0",
- "regexpp": "^3.0.0"
+ "@typescript-eslint/utils": "^5.10.0"
}
},
"eslint-plugin-jsdoc": {
- "version": "39.2.2",
- "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-39.2.2.tgz",
- "integrity": "sha512-ybkvja0p9JRzHEd2ST9h+Z47DLOuPyXpeb6r18/zKHdMmggPU1J0/zl+F0phea8ze9rMxi42MJVmGXi2NZ7PpA==",
+ "version": "48.2.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-48.2.1.tgz",
+ "integrity": "sha512-iUvbcyDZSO/9xSuRv2HQBw++8VkV/pt3UWtX9cpPH0l7GKPq78QC/6+PmyQHHvNZaTjAce6QVciEbnc6J/zH5g==",
"dev": true,
"requires": {
- "@es-joy/jsdoccomment": "~0.23.1",
- "comment-parser": "1.3.1",
+ "@es-joy/jsdoccomment": "~0.42.0",
+ "are-docs-informative": "^0.0.2",
+ "comment-parser": "1.4.1",
"debug": "^4.3.4",
"escape-string-regexp": "^4.0.0",
- "esquery": "^1.4.0",
- "semver": "^7.3.7",
- "spdx-expression-parse": "^3.0.1"
- },
- "dependencies": {
- "semver": {
- "version": "7.3.8",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
- "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
- "dev": true,
- "requires": {
- "lru-cache": "^6.0.0"
- }
- }
+ "esquery": "^1.5.0",
+ "is-builtin-module": "^3.2.1",
+ "semver": "^7.6.0",
+ "spdx-expression-parse": "^4.0.0"
}
},
"eslint-plugin-json-es": {
@@ -5422,23 +6177,43 @@
}
},
"eslint-plugin-mediawiki": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-mediawiki/-/eslint-plugin-mediawiki-0.4.0.tgz",
- "integrity": "sha512-Eufptb8lrElYwIONvgxlMBnPD6PYT4xAFprWlBxV5brCmUh8MZ41+lMxt2TPwEC6C85ngflkVez8BV8tWS9RyQ==",
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-mediawiki/-/eslint-plugin-mediawiki-0.6.0.tgz",
+ "integrity": "sha512-a2Zm18N5nPyflBajM2ZWATxucIpYPEmOSjFzUR1OBH3hAL0GY9fx1mpezEwzqAQ862d+kPkolgQOzktnZe8nKA==",
"dev": true,
"requires": {
- "eslint-plugin-vue": "^8.7.1",
+ "eslint-plugin-vue": "^9.23.0",
"upath": "^2.0.1"
}
},
"eslint-plugin-mocha": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-9.0.0.tgz",
- "integrity": "sha512-d7knAcQj1jPCzZf3caeBIn3BnW6ikcvfz0kSqQpwPYcVGLoJV5sz0l0OJB2LR8I7dvTDbqq1oV6ylhSgzA10zg==",
+ "version": "10.4.3",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-10.4.3.tgz",
+ "integrity": "sha512-emc4TVjq5Ht0/upR+psftuz6IBG5q279p+1dSRDeHf+NS9aaerBi3lXKo1SEzwC29hFIW21gO89CEWSvRsi8IQ==",
"dev": true,
"requires": {
"eslint-utils": "^3.0.0",
- "ramda": "^0.27.1"
+ "globals": "^13.24.0",
+ "rambda": "^7.4.0"
+ }
+ },
+ "eslint-plugin-n": {
+ "version": "16.6.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-16.6.2.tgz",
+ "integrity": "sha512-6TyDmZ1HXoFQXnhCTUjVFULReoBPOAjpuiKELMkeP40yffI/1ZRO+d9ug/VC6fqISo2WkuIBk3cvuRPALaWlOQ==",
+ "dev": true,
+ "requires": {
+ "@eslint-community/eslint-utils": "^4.4.0",
+ "builtins": "^5.0.1",
+ "eslint-plugin-es-x": "^7.5.0",
+ "get-tsconfig": "^4.7.0",
+ "globals": "^13.24.0",
+ "ignore": "^5.2.4",
+ "is-builtin-module": "^3.2.1",
+ "is-core-module": "^2.12.1",
+ "minimatch": "^3.1.2",
+ "resolve": "^1.22.2",
+ "semver": "^7.5.3"
}
},
"eslint-plugin-no-jquery": {
@@ -5448,111 +6223,88 @@
"dev": true,
"requires": {}
},
- "eslint-plugin-node": {
- "version": "11.1.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz",
- "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==",
+ "eslint-plugin-qunit": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-qunit/-/eslint-plugin-qunit-8.1.1.tgz",
+ "integrity": "sha512-j3xhiAf2Wvr8Dfwl5T6tlJ+F55vqYE9ZdAHUOTzq1lGerYrXzOS46RvK4SSWug2D8sl3ZYr2lA4/hgVXgLloxw==",
"dev": true,
"requires": {
- "eslint-plugin-es": "^3.0.0",
- "eslint-utils": "^2.0.0",
- "ignore": "^5.1.1",
- "minimatch": "^3.0.4",
- "resolve": "^1.10.1",
- "semver": "^6.1.0"
- },
- "dependencies": {
- "eslint-utils": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz",
- "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==",
- "dev": true,
- "requires": {
- "eslint-visitor-keys": "^1.1.0"
- }
- },
- "eslint-visitor-keys": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
- "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
- "dev": true
- },
- "semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true
- }
+ "eslint-utils": "^3.0.0",
+ "requireindex": "^1.2.0"
}
},
- "eslint-plugin-qunit": {
- "version": "7.3.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-qunit/-/eslint-plugin-qunit-7.3.1.tgz",
- "integrity": "sha512-L1yutkLqCgr70ZmMAbBKPvUOUwhKryZ0RaJKOzw72Bmn8no3JNBL9hhbX2aTvfZqYM/wLXIT0nICZiGrV4xVJw==",
+ "eslint-plugin-security": {
+ "version": "1.7.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-security/-/eslint-plugin-security-1.7.1.tgz",
+ "integrity": "sha512-sMStceig8AFglhhT2LqlU5r+/fn9OwsA72O5bBuQVTssPCdQAOQzL+oMn/ZcpeUY6KcNfLJArgcrsSULNjYYdQ==",
"dev": true,
"requires": {
- "eslint-utils": "^3.0.0",
- "requireindex": "^1.2.0"
+ "safe-regex": "^2.1.1"
}
},
"eslint-plugin-unicorn": {
- "version": "42.0.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-42.0.0.tgz",
- "integrity": "sha512-ixBsbhgWuxVaNlPTT8AyfJMlhyC5flCJFjyK3oKE8TRrwBnaHvUbuIkCM1lqg8ryYrFStL/T557zfKzX4GKSlg==",
+ "version": "51.0.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-51.0.1.tgz",
+ "integrity": "sha512-MuR/+9VuB0fydoI0nIn2RDA5WISRn4AsJyNSaNKLVwie9/ONvQhxOBbkfSICBPnzKrB77Fh6CZZXjgTt/4Latw==",
"dev": true,
"requires": {
- "@babel/helper-validator-identifier": "^7.15.7",
- "ci-info": "^3.3.0",
+ "@babel/helper-validator-identifier": "^7.22.20",
+ "@eslint-community/eslint-utils": "^4.4.0",
+ "@eslint/eslintrc": "^2.1.4",
+ "ci-info": "^4.0.0",
"clean-regexp": "^1.0.0",
- "eslint-utils": "^3.0.0",
- "esquery": "^1.4.0",
+ "core-js-compat": "^3.34.0",
+ "esquery": "^1.5.0",
"indent-string": "^4.0.0",
- "is-builtin-module": "^3.1.0",
- "lodash": "^4.17.21",
+ "is-builtin-module": "^3.2.1",
+ "jsesc": "^3.0.2",
"pluralize": "^8.0.0",
"read-pkg-up": "^7.0.1",
- "regexp-tree": "^0.1.24",
- "safe-regex": "^2.1.1",
- "semver": "^7.3.5",
+ "regexp-tree": "^0.1.27",
+ "regjsparser": "^0.10.0",
+ "semver": "^7.5.4",
"strip-indent": "^3.0.0"
}
},
"eslint-plugin-vue": {
- "version": "8.7.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-8.7.1.tgz",
- "integrity": "sha512-28sbtm4l4cOzoO1LtzQPxfxhQABararUb1JtqusQqObJpWX2e/gmVyeYVfepizPFne0Q5cILkYGiBoV36L12Wg==",
+ "version": "9.25.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.25.0.tgz",
+ "integrity": "sha512-tDWlx14bVe6Bs+Nnh3IGrD+hb11kf2nukfm6jLsmJIhmiRQ1SUaksvwY9U5MvPB0pcrg0QK0xapQkfITs3RKOA==",
"dev": true,
"requires": {
- "eslint-utils": "^3.0.0",
+ "@eslint-community/eslint-utils": "^4.4.0",
+ "globals": "^13.24.0",
"natural-compare": "^1.4.0",
- "nth-check": "^2.0.1",
- "postcss-selector-parser": "^6.0.9",
- "semver": "^7.3.5",
- "vue-eslint-parser": "^8.0.1"
+ "nth-check": "^2.1.1",
+ "postcss-selector-parser": "^6.0.15",
+ "semver": "^7.6.0",
+ "vue-eslint-parser": "^9.4.2",
+ "xml-name-validator": "^4.0.0"
}
},
"eslint-plugin-wdio": {
- "version": "7.25.3",
- "resolved": "https://registry.npmjs.org/eslint-plugin-wdio/-/eslint-plugin-wdio-7.25.3.tgz",
- "integrity": "sha512-2zbYwV14Md9FNlyhaIILVGPB6w4bu2eJdOTywDUs2Qy4ebcQNwrxB0qCaf7Rm4O+T0Ir+tdYHYBBfbDocSLKng==",
+ "version": "8.24.12",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-wdio/-/eslint-plugin-wdio-8.24.12.tgz",
+ "integrity": "sha512-OmzGteXFOQnJDdkTNnTfksaVa18WlFCyeLjZXHvDpkbomLWAg9wc296Pr0wnTCagqNj8qfEHpy+N2XVew5VCMA==",
"dev": true
},
"eslint-plugin-yml": {
- "version": "0.14.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-0.14.0.tgz",
- "integrity": "sha512-+0+bBV/07txENbxfrHF9olGoLCHez64vmnOmjWOoLwmXOwfdaSRleBSPIi4nWQs7WwX8lm/fSLadOjbVEcsXQQ==",
+ "version": "1.14.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-1.14.0.tgz",
+ "integrity": "sha512-ESUpgYPOcAYQO9czugcX5OqRvn/ydDVwGCPXY4YjPqc09rHaUVUA6IE6HLQys4rXk/S+qx3EwTd1wHCwam/OWQ==",
"dev": true,
"requires": {
"debug": "^4.3.2",
+ "eslint-compat-utils": "^0.5.0",
"lodash": "^4.17.21",
"natural-compare": "^1.4.0",
- "yaml-eslint-parser": "^0.5.0"
+ "yaml-eslint-parser": "^1.2.1"
}
},
"eslint-scope": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz",
- "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==",
+ "version": "7.2.2",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
+ "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
"dev": true,
"requires": {
"esrecurse": "^4.3.0",
@@ -5577,20 +6329,20 @@
}
},
"eslint-visitor-keys": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz",
- "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==",
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
+ "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
"dev": true
},
"espree": {
- "version": "9.5.0",
- "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.0.tgz",
- "integrity": "sha512-JPbJGhKc47++oo4JkEoTe2wjy4fmMwvFpgJT9cQzmfXKp22Dr6Hf1tdCteLz1h0P3t+mGvWZ+4Uankvh8+c6zw==",
+ "version": "9.6.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
+ "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
"dev": true,
"requires": {
- "acorn": "^8.8.0",
+ "acorn": "^8.9.0",
"acorn-jsx": "^5.3.2",
- "eslint-visitor-keys": "^3.3.0"
+ "eslint-visitor-keys": "^3.4.1"
}
},
"esprima": {
@@ -5663,9 +6415,9 @@
"dev": true
},
"fast-glob": {
- "version": "3.2.12",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz",
- "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==",
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
+ "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
"dev": true,
"requires": {
"@nodelib/fs.stat": "^2.0.2",
@@ -5773,19 +6525,20 @@
"dev": true
},
"flat-cache": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
- "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz",
+ "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==",
"dev": true,
"requires": {
- "flatted": "^3.1.0",
+ "flatted": "^3.2.9",
+ "keyv": "^4.5.3",
"rimraf": "^3.0.2"
}
},
"flatted": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz",
- "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==",
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz",
+ "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==",
"dev": true
},
"for-in": {
@@ -5810,9 +6563,9 @@
"dev": true
},
"function-bind": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
"dev": true
},
"get-caller-file": {
@@ -5821,6 +6574,15 @@
"integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
"dev": true
},
+ "get-tsconfig": {
+ "version": "4.7.3",
+ "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.3.tgz",
+ "integrity": "sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==",
+ "dev": true,
+ "requires": {
+ "resolve-pkg-maps": "^1.0.0"
+ }
+ },
"getobject": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/getobject/-/getobject-1.0.2.tgz",
@@ -5882,9 +6644,9 @@
}
},
"globals": {
- "version": "13.20.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz",
- "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==",
+ "version": "13.24.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
+ "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
"dev": true,
"requires": {
"type-fest": "^0.20.2"
@@ -5910,10 +6672,10 @@
"integrity": "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==",
"dev": true
},
- "grapheme-splitter": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz",
- "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==",
+ "graphemer": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
+ "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
"dev": true
},
"grunt": {
@@ -5999,13 +6761,13 @@
}
},
"grunt-eslint": {
- "version": "24.0.0",
- "resolved": "https://registry.npmjs.org/grunt-eslint/-/grunt-eslint-24.0.0.tgz",
- "integrity": "sha512-WpTeBBFweyhMuPjGwRSQV9JFJ+EczIdlsc7Dd/1g78QVI1aZsk4g/H3e+3S5HEwsS1RKL2YZIrGj8hMLlBfN8w==",
+ "version": "24.3.0",
+ "resolved": "https://registry.npmjs.org/grunt-eslint/-/grunt-eslint-24.3.0.tgz",
+ "integrity": "sha512-dUPiRgX8fhmh4uwTAn9xrzg7HV5j5DhGmZZGJdHfjy/AN9G4jD+5IjfbcAJ209JcIG8m4B7xz3crIhuDSm3siQ==",
"dev": true,
"requires": {
"chalk": "^4.1.2",
- "eslint": "^8.0.1"
+ "eslint": "^8.44.0"
}
},
"grunt-known-options": {
@@ -6052,9 +6814,9 @@
}
},
"grunt-stylelint": {
- "version": "0.18.0",
- "resolved": "https://registry.npmjs.org/grunt-stylelint/-/grunt-stylelint-0.18.0.tgz",
- "integrity": "sha512-Ks5OfRUCA6E1v5PkCQKYaMErHtoec/Ub0Vb1xvZ0CKm/1zzWKuqEu2ZVtFcQVDqrC5UM6AXaLHpsLiocVKAgbg==",
+ "version": "0.19.0",
+ "resolved": "https://registry.npmjs.org/grunt-stylelint/-/grunt-stylelint-0.19.0.tgz",
+ "integrity": "sha512-td+OvkfQ/2bYXNTBAlnpXmfa6sddLSloXRp1zoUONcMScbvEq5S3GSkOZKpCjK90WSjTYR0L7WYFcMVd1TXd+w==",
"dev": true,
"requires": {
"chalk": "^4.1.2"
@@ -6066,21 +6828,21 @@
"integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==",
"dev": true
},
- "has": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
- "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
- "dev": true,
- "requires": {
- "function-bind": "^1.1.1"
- }
- },
"has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true
},
+ "hasown": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.2"
+ }
+ },
"homedir-polyfill": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz",
@@ -6103,9 +6865,9 @@
"dev": true
},
"html-tags": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.2.0.tgz",
- "integrity": "sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==",
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz",
+ "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==",
"dev": true
},
"htmlparser2": {
@@ -6208,21 +6970,21 @@
"dev": true
},
"is-builtin-module": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.0.tgz",
- "integrity": "sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw==",
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz",
+ "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==",
"dev": true,
"requires": {
"builtin-modules": "^3.3.0"
}
},
"is-core-module": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz",
- "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==",
+ "version": "2.13.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
+ "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
"dev": true,
"requires": {
- "has": "^1.0.3"
+ "hasown": "^2.0.0"
}
},
"is-extglob": {
@@ -6315,12 +7077,6 @@
"integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==",
"dev": true
},
- "js-sdsl": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.5.tgz",
- "integrity": "sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==",
- "dev": true
- },
"js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
@@ -6337,9 +7093,21 @@
}
},
"jsdoc-type-pratt-parser": {
- "version": "2.2.5",
- "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-2.2.5.tgz",
- "integrity": "sha512-2a6eRxSxp1BW040hFvaJxhsCMI9lT8QB8t14t+NY5tC5rckIR0U9cr2tjOeaFirmEOy6MHvmJnY7zTBHq431Lw==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.0.0.tgz",
+ "integrity": "sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==",
+ "dev": true
+ },
+ "jsesc": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz",
+ "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==",
+ "dev": true
+ },
+ "json-buffer": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
+ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
"dev": true
},
"json-parse-even-better-errors": {
@@ -6360,6 +7128,15 @@
"integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
"dev": true
},
+ "keyv": {
+ "version": "4.5.4",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
+ "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
+ "dev": true,
+ "requires": {
+ "json-buffer": "3.0.1"
+ }
+ },
"kind-of": {
"version": "6.0.3",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
@@ -6367,10 +7144,11 @@
"dev": true
},
"known-css-properties": {
- "version": "0.26.0",
- "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.26.0.tgz",
- "integrity": "sha512-5FZRzrZzNTBruuurWpvZnvP9pum+fe0HcK8z/ooo+U+Hmp4vtbyp1/QDsqmufirXy4egGzbaH/y2uCZf+6W5Kg==",
- "dev": true
+ "version": "0.29.0",
+ "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.29.0.tgz",
+ "integrity": "sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ==",
+ "dev": true,
+ "peer": true
},
"ldjson-stream": {
"version": "1.2.1",
@@ -6521,24 +7299,30 @@
"integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==",
"dev": true
},
+ "mdn-data": {
+ "version": "2.0.30",
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz",
+ "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==",
+ "dev": true
+ },
"meow": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz",
- "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==",
+ "version": "10.1.5",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-10.1.5.tgz",
+ "integrity": "sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==",
"dev": true,
"requires": {
- "@types/minimist": "^1.2.0",
- "camelcase-keys": "^6.2.2",
- "decamelize": "^1.2.0",
+ "@types/minimist": "^1.2.2",
+ "camelcase-keys": "^7.0.0",
+ "decamelize": "^5.0.0",
"decamelize-keys": "^1.1.0",
"hard-rejection": "^2.1.0",
"minimist-options": "4.1.0",
- "normalize-package-data": "^3.0.0",
- "read-pkg-up": "^7.0.1",
- "redent": "^3.0.0",
- "trim-newlines": "^3.0.0",
- "type-fest": "^0.18.0",
- "yargs-parser": "^20.2.3"
+ "normalize-package-data": "^3.0.2",
+ "read-pkg-up": "^8.0.0",
+ "redent": "^4.0.0",
+ "trim-newlines": "^4.0.2",
+ "type-fest": "^1.2.2",
+ "yargs-parser": "^20.2.9"
},
"dependencies": {
"hosted-git-info": {
@@ -6562,10 +7346,33 @@
"validate-npm-package-license": "^3.0.1"
}
},
+ "read-pkg": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-6.0.0.tgz",
+ "integrity": "sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==",
+ "dev": true,
+ "requires": {
+ "@types/normalize-package-data": "^2.4.0",
+ "normalize-package-data": "^3.0.2",
+ "parse-json": "^5.2.0",
+ "type-fest": "^1.0.1"
+ }
+ },
+ "read-pkg-up": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-8.0.0.tgz",
+ "integrity": "sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==",
+ "dev": true,
+ "requires": {
+ "find-up": "^5.0.0",
+ "read-pkg": "^6.0.0",
+ "type-fest": "^1.0.1"
+ }
+ },
"type-fest": {
- "version": "0.18.1",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz",
- "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz",
+ "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==",
"dev": true
}
}
@@ -6640,9 +7447,9 @@
}
},
"nanoid": {
- "version": "3.3.4",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
- "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
+ "version": "3.3.7",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
+ "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
"dev": true
},
"natural-compare": {
@@ -6652,9 +7459,9 @@
"dev": true
},
"node-releases": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz",
- "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==",
+ "version": "2.0.14",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz",
+ "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==",
"dev": true
},
"nopt": {
@@ -6679,9 +7486,9 @@
},
"dependencies": {
"semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
"dev": true
}
}
@@ -6742,9 +7549,9 @@
}
},
"optionator": {
- "version": "0.9.1",
- "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
- "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
+ "version": "0.9.4",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz",
+ "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==",
"dev": true,
"requires": {
"deep-is": "^0.1.3",
@@ -6752,7 +7559,7 @@
"levn": "^0.4.1",
"prelude-ls": "^1.2.1",
"type-check": "^0.4.0",
- "word-wrap": "^1.2.3"
+ "word-wrap": "^1.2.5"
}
},
"os-homedir": {
@@ -6903,14 +7710,14 @@
"dev": true
},
"postcss": {
- "version": "8.4.21",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz",
- "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==",
+ "version": "8.4.38",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz",
+ "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==",
"dev": true,
"requires": {
- "nanoid": "^3.3.4",
+ "nanoid": "^3.3.7",
"picocolors": "^1.0.0",
- "source-map-js": "^1.0.2"
+ "source-map-js": "^1.2.0"
}
},
"postcss-html": {
@@ -6960,9 +7767,9 @@
"requires": {}
},
"postcss-selector-parser": {
- "version": "6.0.11",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz",
- "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==",
+ "version": "6.0.16",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz",
+ "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==",
"dev": true,
"requires": {
"cssesc": "^3.0.0",
@@ -6994,15 +7801,15 @@
"dev": true
},
"quick-lru": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz",
- "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==",
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz",
+ "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==",
"dev": true
},
- "ramda": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.2.tgz",
- "integrity": "sha512-SbiLPU40JuJniHexQSAgad32hfwd+DRUdwF2PlVuI5RZD0/vahUco7R8vD86J/tcEKKF9vZrUVwgtmGCqlCKyA==",
+ "rambda": {
+ "version": "7.5.0",
+ "resolved": "https://registry.npmjs.org/rambda/-/rambda-7.5.0.tgz",
+ "integrity": "sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA==",
"dev": true
},
"read-pkg": {
@@ -7103,26 +7910,54 @@
}
},
"redent": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz",
- "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/redent/-/redent-4.0.0.tgz",
+ "integrity": "sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==",
"dev": true,
"requires": {
- "indent-string": "^4.0.0",
- "strip-indent": "^3.0.0"
+ "indent-string": "^5.0.0",
+ "strip-indent": "^4.0.0"
+ },
+ "dependencies": {
+ "indent-string": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz",
+ "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==",
+ "dev": true
+ },
+ "strip-indent": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.0.0.tgz",
+ "integrity": "sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==",
+ "dev": true,
+ "requires": {
+ "min-indent": "^1.0.1"
+ }
+ }
}
},
"regexp-tree": {
- "version": "0.1.24",
- "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.24.tgz",
- "integrity": "sha512-s2aEVuLhvnVJW6s/iPgEGK6R+/xngd2jNQ+xy4bXNDKxZKJH6jpPHY6kVeVv1IeLCHgswRj+Kl3ELaDjG6V1iw==",
+ "version": "0.1.27",
+ "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.27.tgz",
+ "integrity": "sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==",
"dev": true
},
- "regexpp": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz",
- "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==",
- "dev": true
+ "regjsparser": {
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.10.0.tgz",
+ "integrity": "sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==",
+ "dev": true,
+ "requires": {
+ "jsesc": "~0.5.0"
+ },
+ "dependencies": {
+ "jsesc": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
+ "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==",
+ "dev": true
+ }
+ }
},
"require-directory": {
"version": "2.1.1",
@@ -7143,12 +7978,12 @@
"dev": true
},
"resolve": {
- "version": "1.22.1",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
- "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
+ "version": "1.22.8",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
+ "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
"dev": true,
"requires": {
- "is-core-module": "^2.9.0",
+ "is-core-module": "^2.13.0",
"path-parse": "^1.0.7",
"supports-preserve-symlinks-flag": "^1.0.0"
}
@@ -7204,6 +8039,12 @@
"integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
"dev": true
},
+ "resolve-pkg-maps": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz",
+ "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==",
+ "dev": true
+ },
"reusify": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
@@ -7250,9 +8091,9 @@
"dev": true
},
"semver": {
- "version": "7.3.5",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
- "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
"dev": true,
"requires": {
"lru-cache": "^6.0.0"
@@ -7274,9 +8115,9 @@
"dev": true
},
"signal-exit": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
- "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
"dev": true
},
"slash": {
@@ -7303,31 +8144,43 @@
"dev": true
},
"source-map-js": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
- "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz",
+ "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==",
"dev": true
},
"spdx-correct": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz",
- "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz",
+ "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==",
"dev": true,
"requires": {
"spdx-expression-parse": "^3.0.0",
"spdx-license-ids": "^3.0.0"
+ },
+ "dependencies": {
+ "spdx-expression-parse": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
+ "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+ "dev": true,
+ "requires": {
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ }
}
},
"spdx-exceptions": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz",
- "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==",
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz",
+ "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==",
"dev": true
},
"spdx-expression-parse": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
- "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-4.0.0.tgz",
+ "integrity": "sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==",
"dev": true,
"requires": {
"spdx-exceptions": "^2.1.0",
@@ -7335,9 +8188,9 @@
}
},
"spdx-license-ids": {
- "version": "3.0.12",
- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz",
- "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==",
+ "version": "3.0.17",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz",
+ "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==",
"dev": true
},
"split2": {
@@ -7427,90 +8280,187 @@
"dev": true
},
"stylelint": {
- "version": "14.16.1",
- "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.16.1.tgz",
- "integrity": "sha512-ErlzR/T3hhbV+a925/gbfc3f3Fep9/bnspMiJPorfGEmcBbXdS+oo6LrVtoUZ/w9fqD6o6k7PtUlCOsCRdjX/A==",
+ "version": "15.11.0",
+ "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.11.0.tgz",
+ "integrity": "sha512-78O4c6IswZ9TzpcIiQJIN49K3qNoXTM8zEJzhaTE/xRTCZswaovSEVIa/uwbOltZrk16X4jAxjaOhzz/hTm1Kw==",
"dev": true,
+ "peer": true,
"requires": {
- "@csstools/selector-specificity": "^2.0.2",
+ "@csstools/css-parser-algorithms": "^2.3.1",
+ "@csstools/css-tokenizer": "^2.2.0",
+ "@csstools/media-query-list-parser": "^2.1.4",
+ "@csstools/selector-specificity": "^3.0.0",
"balanced-match": "^2.0.0",
"colord": "^2.9.3",
- "cosmiconfig": "^7.1.0",
- "css-functions-list": "^3.1.0",
+ "cosmiconfig": "^8.2.0",
+ "css-functions-list": "^3.2.1",
+ "css-tree": "^2.3.1",
"debug": "^4.3.4",
- "fast-glob": "^3.2.12",
+ "fast-glob": "^3.3.1",
"fastest-levenshtein": "^1.0.16",
- "file-entry-cache": "^6.0.1",
+ "file-entry-cache": "^7.0.0",
"global-modules": "^2.0.0",
"globby": "^11.1.0",
"globjoin": "^0.1.4",
- "html-tags": "^3.2.0",
- "ignore": "^5.2.1",
+ "html-tags": "^3.3.1",
+ "ignore": "^5.2.4",
"import-lazy": "^4.0.0",
"imurmurhash": "^0.1.4",
"is-plain-object": "^5.0.0",
- "known-css-properties": "^0.26.0",
+ "known-css-properties": "^0.29.0",
"mathml-tag-names": "^2.1.3",
- "meow": "^9.0.0",
+ "meow": "^10.1.5",
"micromatch": "^4.0.5",
"normalize-path": "^3.0.0",
"picocolors": "^1.0.0",
- "postcss": "^8.4.19",
- "postcss-media-query-parser": "^0.2.3",
+ "postcss": "^8.4.28",
"postcss-resolve-nested-selector": "^0.1.1",
"postcss-safe-parser": "^6.0.0",
- "postcss-selector-parser": "^6.0.11",
+ "postcss-selector-parser": "^6.0.13",
"postcss-value-parser": "^4.2.0",
"resolve-from": "^5.0.0",
"string-width": "^4.2.3",
"strip-ansi": "^6.0.1",
"style-search": "^0.1.0",
- "supports-hyperlinks": "^2.3.0",
+ "supports-hyperlinks": "^3.0.0",
"svg-tags": "^1.0.0",
"table": "^6.8.1",
- "v8-compile-cache": "^2.3.0",
- "write-file-atomic": "^4.0.2"
+ "write-file-atomic": "^5.0.1"
},
"dependencies": {
"balanced-match": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz",
"integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==",
- "dev": true
+ "dev": true,
+ "peer": true
+ },
+ "file-entry-cache": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-7.0.2.tgz",
+ "integrity": "sha512-TfW7/1iI4Cy7Y8L6iqNdZQVvdXn0f8B4QcIXmkIbtTIe/Okm/nSlHb4IwGzRVOd3WfSieCgvf5cMzEfySAIl0g==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "flat-cache": "^3.2.0"
+ }
},
"is-plain-object": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
"integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
- "dev": true
+ "dev": true,
+ "peer": true
},
"resolve-from": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
"integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
- "dev": true
+ "dev": true,
+ "peer": true
}
}
},
"stylelint-config-recommended": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-9.0.0.tgz",
- "integrity": "sha512-9YQSrJq4NvvRuTbzDsWX3rrFOzOlYBmZP+o513BJN/yfEmGSr0AxdvrWs0P/ilSpVV/wisamAHu5XSk8Rcf4CQ==",
+ "version": "13.0.0",
+ "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-13.0.0.tgz",
+ "integrity": "sha512-EH+yRj6h3GAe/fRiyaoO2F9l9Tgg50AOFhaszyfov9v6ayXJ1IkSHwTxd7lB48FmOeSGDPLjatjO11fJpmarkQ==",
"dev": true,
"requires": {}
},
"stylelint-config-wikimedia": {
- "version": "0.14.0",
- "resolved": "https://registry.npmjs.org/stylelint-config-wikimedia/-/stylelint-config-wikimedia-0.14.0.tgz",
- "integrity": "sha512-8gc5fcYsavMU6yBxE4Ium0XX8Ekedg+kcU0Oojjg5di6Jhv74bx3pcdfW+Z4bDYKWx3pg3Glemy/CBRqg+JViQ==",
+ "version": "0.16.1",
+ "resolved": "https://registry.npmjs.org/stylelint-config-wikimedia/-/stylelint-config-wikimedia-0.16.1.tgz",
+ "integrity": "sha512-FDVUyDyCBap2o2HAeJqIobdVdSTur5HFX5FymoKrzfMIYWxIV/55lTpyL1PR71TfVMaroDXJrIftLFW9mXKFhQ==",
"dev": true,
"requires": {
- "browserslist-config-wikimedia": "0.4.0",
+ "browserslist-config-wikimedia": "0.5.0",
"postcss-html": "1.5.0",
"postcss-less": "6.0.0",
- "stylelint": "14.16.1",
- "stylelint-config-recommended": "9.0.0",
- "stylelint-no-unsupported-browser-features": "6.1.0"
+ "stylelint": "15.10.1",
+ "stylelint-config-recommended": "13.0.0",
+ "stylelint-no-unsupported-browser-features": "6.1.0",
+ "stylelint-stylistic": "0.4.3"
+ },
+ "dependencies": {
+ "balanced-match": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz",
+ "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==",
+ "dev": true
+ },
+ "browserslist-config-wikimedia": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/browserslist-config-wikimedia/-/browserslist-config-wikimedia-0.5.0.tgz",
+ "integrity": "sha512-t+tvSnTeVhVF2lNRxoAlE51/ZCfUs5SNNZUnWu2N8xXOGMPTMyKk5l4mayvDdm+5L8oqmnALU+TjnN2Z+ZTCTw==",
+ "dev": true
+ },
+ "is-plain-object": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
+ "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
+ "dev": true
+ },
+ "known-css-properties": {
+ "version": "0.27.0",
+ "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.27.0.tgz",
+ "integrity": "sha512-uMCj6+hZYDoffuvAJjFAPz56E9uoowFHmTkqRtRq5WyC5Q6Cu/fTZKNQpX/RbzChBYLLl3lo8CjFZBAZXq9qFg==",
+ "dev": true
+ },
+ "resolve-from": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
+ "dev": true
+ },
+ "stylelint": {
+ "version": "15.10.1",
+ "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.10.1.tgz",
+ "integrity": "sha512-CYkzYrCFfA/gnOR+u9kJ1PpzwG10WLVnoxHDuBA/JiwGqdM9+yx9+ou6SE/y9YHtfv1mcLo06fdadHTOx4gBZQ==",
+ "dev": true,
+ "requires": {
+ "@csstools/css-parser-algorithms": "^2.3.0",
+ "@csstools/css-tokenizer": "^2.1.1",
+ "@csstools/media-query-list-parser": "^2.1.2",
+ "@csstools/selector-specificity": "^3.0.0",
+ "balanced-match": "^2.0.0",
+ "colord": "^2.9.3",
+ "cosmiconfig": "^8.2.0",
+ "css-functions-list": "^3.1.0",
+ "css-tree": "^2.3.1",
+ "debug": "^4.3.4",
+ "fast-glob": "^3.3.0",
+ "fastest-levenshtein": "^1.0.16",
+ "file-entry-cache": "^6.0.1",
+ "global-modules": "^2.0.0",
+ "globby": "^11.1.0",
+ "globjoin": "^0.1.4",
+ "html-tags": "^3.3.1",
+ "ignore": "^5.2.4",
+ "import-lazy": "^4.0.0",
+ "imurmurhash": "^0.1.4",
+ "is-plain-object": "^5.0.0",
+ "known-css-properties": "^0.27.0",
+ "mathml-tag-names": "^2.1.3",
+ "meow": "^10.1.5",
+ "micromatch": "^4.0.5",
+ "normalize-path": "^3.0.0",
+ "picocolors": "^1.0.0",
+ "postcss": "^8.4.24",
+ "postcss-resolve-nested-selector": "^0.1.1",
+ "postcss-safe-parser": "^6.0.0",
+ "postcss-selector-parser": "^6.0.13",
+ "postcss-value-parser": "^4.2.0",
+ "resolve-from": "^5.0.0",
+ "string-width": "^4.2.3",
+ "strip-ansi": "^6.0.1",
+ "style-search": "^0.1.0",
+ "supports-hyperlinks": "^3.0.0",
+ "svg-tags": "^1.0.0",
+ "table": "^6.8.1",
+ "write-file-atomic": "^5.0.1"
+ }
+ }
}
},
"stylelint-no-unsupported-browser-features": {
@@ -7524,6 +8474,27 @@
"postcss": "^8.4.16"
}
},
+ "stylelint-stylistic": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/stylelint-stylistic/-/stylelint-stylistic-0.4.3.tgz",
+ "integrity": "sha512-WphmneK3MRrm5ixvRPWy7+c9+EQUh0FPvNMXW/N9VD85vyqtpxUejpD+mxubVVht0fRgidcqBxtW3s3tU2Ujhw==",
+ "dev": true,
+ "requires": {
+ "is-plain-object": "^5.0.0",
+ "postcss": "^8.4.21",
+ "postcss-media-query-parser": "^0.2.3",
+ "postcss-value-parser": "^4.2.0",
+ "style-search": "^0.1.0"
+ },
+ "dependencies": {
+ "is-plain-object": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
+ "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
+ "dev": true
+ }
+ }
+ },
"supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
@@ -7534,9 +8505,9 @@
}
},
"supports-hyperlinks": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz",
- "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.0.0.tgz",
+ "integrity": "sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==",
"dev": true,
"requires": {
"has-flag": "^4.0.0",
@@ -7635,11 +8606,26 @@
}
},
"trim-newlines": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz",
- "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-4.1.1.tgz",
+ "integrity": "sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==",
+ "dev": true
+ },
+ "tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
"dev": true
},
+ "tsutils": {
+ "version": "3.21.0",
+ "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz",
+ "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==",
+ "dev": true,
+ "requires": {
+ "tslib": "^1.8.1"
+ }
+ },
"type-check": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
@@ -7655,6 +8641,13 @@
"integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
"dev": true
},
+ "typescript": {
+ "version": "5.4.5",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz",
+ "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==",
+ "dev": true,
+ "peer": true
+ },
"unc-path-regex": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz",
@@ -7678,9 +8671,9 @@
"dev": true
},
"update-browserslist-db": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz",
- "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==",
+ "version": "1.0.13",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz",
+ "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==",
"dev": true,
"requires": {
"escalade": "^3.1.1",
@@ -7702,12 +8695,6 @@
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
"dev": true
},
- "v8-compile-cache": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz",
- "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==",
- "dev": true
- },
"v8flags": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz",
@@ -7725,21 +8712,33 @@
"requires": {
"spdx-correct": "^3.0.0",
"spdx-expression-parse": "^3.0.0"
+ },
+ "dependencies": {
+ "spdx-expression-parse": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
+ "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+ "dev": true,
+ "requires": {
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ }
}
},
"vue-eslint-parser": {
- "version": "8.3.0",
- "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-8.3.0.tgz",
- "integrity": "sha512-dzHGG3+sYwSf6zFBa0Gi9ZDshD7+ad14DGOdTLjruRVgZXe2J+DcZ9iUhyR48z5g1PqRa20yt3Njna/veLJL/g==",
+ "version": "9.4.2",
+ "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.4.2.tgz",
+ "integrity": "sha512-Ry9oiGmCAK91HrKMtCrKFWmSFWvYkpGglCeFAIqDdr9zdXmMMpJOmUJS7WWsW7fX81h6mwHmUZCQQ1E0PkSwYQ==",
"dev": true,
"requires": {
- "debug": "^4.3.2",
- "eslint-scope": "^7.0.0",
- "eslint-visitor-keys": "^3.1.0",
- "espree": "^9.0.0",
+ "debug": "^4.3.4",
+ "eslint-scope": "^7.1.1",
+ "eslint-visitor-keys": "^3.3.0",
+ "espree": "^9.3.1",
"esquery": "^1.4.0",
"lodash": "^4.17.21",
- "semver": "^7.3.5"
+ "semver": "^7.3.6"
}
},
"which": {
@@ -7752,9 +8751,9 @@
}
},
"word-wrap": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
- "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
+ "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
"dev": true
},
"wrap-ansi": {
@@ -7775,15 +8774,21 @@
"dev": true
},
"write-file-atomic": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz",
- "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz",
+ "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==",
"dev": true,
"requires": {
"imurmurhash": "^0.1.4",
- "signal-exit": "^3.0.7"
+ "signal-exit": "^4.0.1"
}
},
+ "xml-name-validator": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz",
+ "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==",
+ "dev": true
+ },
"xtend": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
@@ -7803,20 +8808,20 @@
"dev": true
},
"yaml": {
- "version": "1.10.2",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
- "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.1.tgz",
+ "integrity": "sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==",
"dev": true
},
"yaml-eslint-parser": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/yaml-eslint-parser/-/yaml-eslint-parser-0.5.0.tgz",
- "integrity": "sha512-nJeyLA3YHAzhBTZbRAbu3W6xrSCucyxExmA+ZDtEdUFpGllxAZpto2Zxo2IG0r0eiuEiBM4e+wiAdxTziTq94g==",
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/yaml-eslint-parser/-/yaml-eslint-parser-1.2.2.tgz",
+ "integrity": "sha512-pEwzfsKbTrB8G3xc/sN7aw1v6A6c/pKxLAkjclnAyo5g5qOh6eL9WGu0o3cSDQZKrTNk4KL4lQSwZW+nBkANEg==",
"dev": true,
"requires": {
"eslint-visitor-keys": "^3.0.0",
"lodash": "^4.17.21",
- "yaml": "^1.10.2"
+ "yaml": "^2.0.0"
}
},
"yargs": {
diff --git a/package.json b/package.json
index 8e88065..cb2051f 100644
--- a/package.json
+++ b/package.json
@@ -5,10 +5,10 @@
"test": "grunt test"
},
"devDependencies": {
- "eslint-config-wikimedia": "0.24.0",
+ "eslint-config-wikimedia": "0.27.0",
"grunt": "1.6.1",
- "grunt-eslint": "24.0.0",
- "grunt-stylelint": "0.18.0",
- "stylelint-config-wikimedia": "0.14.0"
+ "grunt-eslint": "24.3.0",
+ "grunt-stylelint": "0.19.0",
+ "stylelint-config-wikimedia": "0.16.1"
}
}
diff --git a/resources/PageEncryptionPassword.js b/resources/PageEncryptionPassword.js
index 68bba88..e8381d8 100644
--- a/resources/PageEncryptionPassword.js
+++ b/resources/PageEncryptionPassword.js
@@ -19,226 +19,226 @@
* @copyright Copyright ©2023, https://wikisphere.org
*/
-$(function () {
+$( function () {
var WindowManager;
- var DialogName = "Dialog";
- var CookieName = "pageencryption-userkey";
+ var DialogName = 'Dialog';
+ var CookieName = 'pageencryption-userkey';
var Model = {};
var EncryptedNamespace = 2246;
var PasswordInputField;
var PasswordConfirmationInputField;
var MessageWidget;
- var KeyRecordIsSet = mw.config.get("pageencryption-protected-key-isSet");
- var UserkeyCookieIsSet = mw.config.get("pageencryption-userkey-cookie-isSet");
+ var KeyRecordIsSet = mw.config.get( 'pageencryption-protected-key-isSet' );
+ var UserkeyCookieIsSet = mw.config.get( 'pageencryption-userkey-cookie-isSet' );
var Booklet;
// console.log(mw.config);
- function ProcessDialog(config) {
- ProcessDialog.super.call(this, config);
+ function ProcessDialog( config ) {
+ ProcessDialog.super.call( this, config );
}
- OO.inheritClass(ProcessDialog, OO.ui.ProcessDialog);
+ OO.inheritClass( ProcessDialog, OO.ui.ProcessDialog );
ProcessDialog.static.name = DialogName;
- ProcessDialog.static.title = "PageEncryption";
+ ProcessDialog.static.title = 'PageEncryption';
ProcessDialog.static.actions = [
{
- action: "save",
- modes: "edit",
- label: mw.msg("pageencryption-jsmodule-dialog-save"),
- flags: ["primary", "progressive"],
+ action: 'save',
+ modes: 'edit',
+ label: mw.msg( 'pageencryption-jsmodule-dialog-save' ),
+ flags: [ 'primary', 'progressive' ]
},
{
- modes: "edit",
- label: mw.msg("pageencryption-jsmodule-dialog-cancel"),
- flags: ["safe", "close"],
- },
+ modes: 'edit',
+ label: mw.msg( 'pageencryption-jsmodule-dialog-cancel' ),
+ flags: [ 'safe', 'close' ]
+ }
];
- function PageOneLayout(name, config) {
- PageOneLayout.super.call(this, name, config);
+ function PageOneLayout( name, config ) {
+ PageOneLayout.super.call( this, name, config );
- var fieldset = new OO.ui.FieldsetLayout({
- label: "",
- });
+ var fieldset = new OO.ui.FieldsetLayout( {
+ label: ''
+ } );
- var passwordInput = new OO.ui.TextInputWidget({
- label: mw.msg("pageencryption-jsmodule-dialog-password"),
- value: "",
+ var passwordInput = new OO.ui.TextInputWidget( {
+ label: mw.msg( 'pageencryption-jsmodule-dialog-password' ),
+ value: '',
required: true,
- type: "password",
- });
+ type: 'password'
+ } );
- PasswordInputField = new OO.ui.FieldLayout(passwordInput, {
- label: "",
- align: "top",
- });
+ PasswordInputField = new OO.ui.FieldLayout( passwordInput, {
+ label: '',
+ align: 'top'
+ } );
Model.passwordInput = passwordInput;
- var passwordConfirmationInput = new OO.ui.TextInputWidget({
- label: mw.msg("pageencryption-jsmodule-dialog-password-confirmation"),
- value: "",
+ var passwordConfirmationInput = new OO.ui.TextInputWidget( {
+ label: mw.msg( 'pageencryption-jsmodule-dialog-password-confirmation' ),
+ value: '',
required: true,
- type: "password",
- });
+ type: 'password'
+ } );
Model.passwordConfirmationInput = passwordConfirmationInput;
- (PasswordConfirmationInputField = new OO.ui.FieldLayout(
+ ( PasswordConfirmationInputField = new OO.ui.FieldLayout(
passwordConfirmationInput,
{
- label: "",
- align: "top",
+ label: '',
+ align: 'top'
}
- )),
- (MessageWidget = new OO.ui.MessageWidget({
- type: "info",
- // inline: true,
- label: mw.msg("pageencryption-jsmodule-dialog-field-password"),
- }));
+ ) ),
+ ( MessageWidget = new OO.ui.MessageWidget( {
+ type: 'info',
+ // inline: true,
+ label: mw.msg( 'pageencryption-jsmodule-dialog-field-password' )
+ } ) );
// MessageWidget.toggle(false)
- fieldset.addItems([
+ fieldset.addItems( [
MessageWidget,
PasswordInputField,
- PasswordConfirmationInputField,
- ]);
+ PasswordConfirmationInputField
+ ] );
- this.$element.append(fieldset.$element);
+ this.$element.append( fieldset.$element );
}
- OO.inheritClass(PageOneLayout, OO.ui.PageLayout);
+ OO.inheritClass( PageOneLayout, OO.ui.PageLayout );
PageOneLayout.prototype.setupOutlineItem = function () {
- this.outlineItem.setLabel("Page One");
+ this.outlineItem.setLabel( 'Page One' );
};
function messageButton() {
- var buttonGoBack = new OO.ui.ButtonWidget({
+ var buttonGoBack = new OO.ui.ButtonWidget( {
framed: false,
- label: mw.msg("pageencryption-jsmodule-dialog-goback"),
- classes: ["pageencryption-button-goback"],
- });
+ label: mw.msg( 'pageencryption-jsmodule-dialog-goback' ),
+ classes: [ 'pageencryption-button-goback' ]
+ } );
- buttonGoBack.on("click", function () {
- Booklet.setPage("two");
+ buttonGoBack.on( 'click', function () {
+ Booklet.setPage( 'two' );
// MessageWidget resides on page one
- MessageWidget.setType("info");
+ MessageWidget.setType( 'info' );
MessageWidget.setLabel(
- mw.msg("pageencryption-jsmodule-dialog-field-password")
+ mw.msg( 'pageencryption-jsmodule-dialog-field-password' )
);
- });
+ } );
return new OO.ui.HtmlSnippet(
- $("<span>").append(
- mw.msg("pageencryption-jsmodule-dialog-field-password-reset") + " ",
+ $( '<span>' ).append(
+ mw.msg( 'pageencryption-jsmodule-dialog-field-password-reset' ) + ' ',
buttonGoBack.$element
)
);
}
- function PageTwoLayout(name, config) {
- PageTwoLayout.super.call(this, name, config);
+ function PageTwoLayout( name, config ) {
+ PageTwoLayout.super.call( this, name, config );
- var fieldset = new OO.ui.FieldsetLayout({
- label: "",
- });
+ var fieldset = new OO.ui.FieldsetLayout( {
+ label: ''
+ } );
- var enterPasswordInput = new OO.ui.TextInputWidget({
- label: mw.msg("pageencryption-jsmodule-dialog-password"),
- value: "",
+ var enterPasswordInput = new OO.ui.TextInputWidget( {
+ label: mw.msg( 'pageencryption-jsmodule-dialog-password' ),
+ value: '',
required: true,
- type: "password",
- });
+ type: 'password'
+ } );
- var buttonLostPassword = new OO.ui.ButtonWidget({
+ var buttonLostPassword = new OO.ui.ButtonWidget( {
framed: false,
- label: mw.msg("pageencryption-jsmodule-lost-password"),
- classes: ["pageencryption-button-lost-password"],
- });
-
- buttonLostPassword.on("click", function () {
- Booklet.setPage("one");
- MessageWidget.setType("error");
- MessageWidget.setLabel(messageButton());
- });
-
- var enterPasswordInputField = new OO.ui.FieldLayout(enterPasswordInput, {
- label: "",
- align: "top",
+ label: mw.msg( 'pageencryption-jsmodule-lost-password' ),
+ classes: [ 'pageencryption-button-lost-password' ]
+ } );
+
+ buttonLostPassword.on( 'click', function () {
+ Booklet.setPage( 'one' );
+ MessageWidget.setType( 'error' );
+ MessageWidget.setLabel( messageButton() );
+ } );
+
+ var enterPasswordInputField = new OO.ui.FieldLayout( enterPasswordInput, {
+ label: '',
+ align: 'top',
helpInline: true,
- classes: ["pageencryption-field-password"],
- help: new OO.ui.HtmlSnippet(buttonLostPassword.$element),
- });
+ classes: [ 'pageencryption-field-password' ],
+ help: new OO.ui.HtmlSnippet( buttonLostPassword.$element )
+ } );
Model.enterPasswordInput = enterPasswordInput;
- var messageWidget = new OO.ui.MessageWidget({
- type: "info",
- label: mw.msg("pageencryption-jsmodule-dialog-field-password-reenter"),
- });
+ var messageWidget = new OO.ui.MessageWidget( {
+ type: 'info',
+ label: mw.msg( 'pageencryption-jsmodule-dialog-field-password-reenter' )
+ } );
// MessageWidget.toggle(false)
- fieldset.addItems([messageWidget, enterPasswordInputField]);
+ fieldset.addItems( [ messageWidget, enterPasswordInputField ] );
- this.$element.append(fieldset.$element);
+ this.$element.append( fieldset.$element );
}
- OO.inheritClass(PageTwoLayout, OO.ui.PageLayout);
+ OO.inheritClass( PageTwoLayout, OO.ui.PageLayout );
PageTwoLayout.prototype.setupOutlineItem = function () {
- this.outlineItem.setLabel("Page Two");
+ this.outlineItem.setLabel( 'Page Two' );
};
ProcessDialog.prototype.initialize = function () {
- ProcessDialog.super.prototype.initialize.apply(this, arguments);
+ ProcessDialog.super.prototype.initialize.apply( this, arguments );
- var page1 = new PageOneLayout("one"),
- page2 = new PageTwoLayout("two");
+ var page1 = new PageOneLayout( 'one' ),
+ page2 = new PageTwoLayout( 'two' );
- Booklet = new OO.ui.BookletLayout({
+ Booklet = new OO.ui.BookletLayout( {
outlined: false,
expanded: true,
- showMenu: false,
- });
+ showMenu: false
+ } );
- Booklet.addPages([page1, page2]);
+ Booklet.addPages( [ page1, page2 ] );
- Booklet.setPage(!KeyRecordIsSet ? "one" : "two");
+ Booklet.setPage( !KeyRecordIsSet ? 'one' : 'two' );
- var content = new OO.ui.PanelLayout({
+ var content = new OO.ui.PanelLayout( {
$content: Booklet.$element,
padded: true,
- expanded: true,
- });
+ expanded: true
+ } );
- this.$body.append(content.$element);
+ this.$body.append( content.$element );
};
ProcessDialog.prototype.getBodyHeight = function () {
return 300;
};
- ProcessDialog.prototype.getActionProcess = function (action) {
+ ProcessDialog.prototype.getActionProcess = function ( action ) {
var dialog = this;
- if (!action || action === "delete") {
- return ProcessDialog.super.prototype.getActionProcess.call(this, action);
+ if ( !action || action === 'delete' ) {
+ return ProcessDialog.super.prototype.getActionProcess.call( this, action );
}
// or use Booklet.getCurrentPage().name
- if (!KeyRecordIsSet) {
+ if ( !KeyRecordIsSet ) {
var password = Model.passwordInput.getValue();
var passwordConfirm = Model.passwordConfirmationInput.getValue();
- if (password !== passwordConfirm) {
- console.log(password + "," + passwordConfirm);
+ if ( password !== passwordConfirm ) {
+ console.log( password + ',' + passwordConfirm );
- PasswordInputField.setErrors([]);
+ PasswordInputField.setErrors( [] );
- PasswordConfirmationInputField.setErrors([
- mw.msg("pageencryption-jsmodule-dialog-password-error-nomatch"),
- ]);
+ PasswordConfirmationInputField.setErrors( [
+ mw.msg( 'pageencryption-jsmodule-dialog-password-error-nomatch' )
+ ] );
return ProcessDialog.super.prototype.getActionProcess.call(
this,
@@ -247,117 +247,117 @@ $(function () {
}
var validator = new PageEncryptionPasswordValidator();
- var errors = validator.checkPassword(password);
+ var errors = validator.checkPassword( password );
var conf = validator.getConf();
- if (errors.length) {
+ if ( errors.length ) {
var errorsMessages = [];
- for (var error of errors) {
- var args = ["pageencryption-jsmodule-dialog-password-error-" + error];
- switch (error) {
- case "length":
- args.push(conf.minSize);
- args.push(conf.maxSize);
+ for ( var error of errors ) {
+ var args = [ 'pageencryption-jsmodule-dialog-password-error-' + error ];
+ switch ( error ) {
+ case 'length':
+ args.push( conf.minSize );
+ args.push( conf.maxSize );
break;
break;
- case "special":
- args.push(conf.specialCharacters);
+ case 'special':
+ args.push( conf.specialCharacters );
break;
- case "prohibited":
- args.push(conf.prohibitedCharacters);
+ case 'prohibited':
+ args.push( conf.prohibitedCharacters );
break;
}
- errorsMessages.push(mw.msg.apply(null, args));
+ errorsMessages.push( mw.msg.apply( null, args ) );
}
- PasswordInputField.setErrors(errorsMessages);
+ PasswordInputField.setErrors( errorsMessages );
return ProcessDialog.super.prototype.getActionProcess.call(
this,
action
);
}
- PasswordInputField.setErrors([]);
- PasswordConfirmationInputField.setErrors([]);
+ PasswordInputField.setErrors( [] );
+ PasswordConfirmationInputField.setErrors( [] );
} else {
var password = Model.enterPasswordInput.getValue();
}
var payload = {
- action: "pageencryption-set-encryption-key",
+ action: 'pageencryption-set-encryption-key',
password: password,
- "reset-key": Booklet.getCurrentPage().name === "one" ? 1 : 0,
+ 'reset-key': Booklet.getCurrentPage().name === 'one' ? 1 : 0
};
// https://www.mediawiki.org/wiki/OOUI/Windows/Process_Dialogs#Action_sets
return ProcessDialog.super.prototype.getActionProcess
- .call(this, action)
- .first(function () {
- switch (action) {
- case "save":
+ .call( this, action )
+ .first( function () {
+ switch ( action ) {
+ case 'save':
// eslint-disable no-fallthrough
- case "delete":
- var callApi = function (postData, resolve, reject) {
+ case 'delete':
+ var callApi = function ( postData, resolve, reject ) {
// console.log("postData", postData);
new mw.Api()
- .postWithToken("csrf", postData)
- .done(function (res) {
+ .postWithToken( 'csrf', postData )
+ .done( function ( res ) {
// console.log("res", res);
- if (!("pageencryption-set-encryption-key" in res)) {
+ if ( !( 'pageencryption-set-encryption-key' in res ) ) {
reject(
- new OO.ui.Error(res, {
+ new OO.ui.Error( res, {
recoverable: true,
- warning: false,
- })
+ warning: false
+ } )
);
} else {
- var value = res["pageencryption-set-encryption-key"];
- if (value["message"] !== null) {
+ var value = res[ 'pageencryption-set-encryption-key' ];
+ if ( value.message !== null ) {
reject(
- new OO.ui.Error(value["message"], {
+ new OO.ui.Error( value.message, {
recoverable: true,
- warning: false,
- })
+ warning: false
+ } )
);
} else {
- if (value["action"] === "new-record") {
+ if ( value.action === 'new-record' ) {
// @TODO show popup
- console.log(value["protected-key"]);
+ console.log( value[ 'protected-key' ] );
}
- WindowManager.removeWindows([DialogName]);
+ WindowManager.removeWindows( [ DialogName ] );
}
}
// resolve();
- })
- .fail(function (res) {
- console.log("res", res);
+ } )
+ .fail( function ( res ) {
+ console.log( 'res', res );
var msg = res;
// https://doc.wikimedia.org/oojs-ui/master/js/source/Error.html#OO-ui-Error-method-constructor
reject(
- new OO.ui.Error(msg, { recoverable: true, warning: false })
+ new OO.ui.Error( msg, { recoverable: true, warning: false } )
);
- });
+ } );
};
- // eslint-disable-next-line compat/compat
- return new Promise((resolve, reject) => {
- mw.loader.using("mediawiki.api", function () {
- callApi(payload, resolve, reject);
- });
- }); // promise
+
+ return new Promise( ( resolve, reject ) => {
+ mw.loader.using( 'mediawiki.api', function () {
+ callApi( payload, resolve, reject );
+ } );
+ } ); // promise
}
- //return false;
- }, this); // .next
+ // return false;
+ }, this ); // .next
- return new OO.ui.Process(function () {
- dialog.close({ action: action });
- });
+ return new OO.ui.Process( function () {
+ dialog.close( { action: action } );
+ } );
// return ProcessDialog.super.prototype.getActionProcess.call( this, action );
};
@@ -385,25 +385,25 @@ $(function () {
// };
function createWindowManager() {
- var windowManager = new OO.ui.WindowManager({
- classes: ["pageencryption-ooui-window"],
- });
- $(document.body).append(windowManager.$element);
+ var windowManager = new OO.ui.WindowManager( {
+ classes: [ 'pageencryption-ooui-window' ]
+ } );
+ $( document.body ).append( windowManager.$element );
return windowManager;
}
function openDialog() {
- var processDialog = new ProcessDialog({
- size: "medium",
- classes: [],
- });
+ var processDialog = new ProcessDialog( {
+ size: 'medium',
+ classes: []
+ } );
WindowManager = createWindowManager();
- WindowManager.addWindows([processDialog]);
+ WindowManager.addWindows( [ processDialog ] );
- WindowManager.openWindow(processDialog);
+ WindowManager.openWindow( processDialog );
}
// *** httpOnly cookies cannot be accessed client-side
@@ -412,13 +412,13 @@ $(function () {
// }
function isEncryptedNamespace() {
- return mw.config.get("wgNamespaceNumber") === EncryptedNamespace;
+ return mw.config.get( 'wgNamespaceNumber' ) === EncryptedNamespace;
}
if (
- mw.config.get("pageencryption-user-is-editor") &&
- (!KeyRecordIsSet || !UserkeyCookieIsSet)
+ mw.config.get( 'pageencryption-user-is-editor' ) &&
+ ( !KeyRecordIsSet || !UserkeyCookieIsSet )
) {
openDialog();
}
-});
+} );
diff --git a/resources/PageEncryptionPasswordValidator.js b/resources/PageEncryptionPasswordValidator.js
index a3ff3b2..91770af 100644
--- a/resources/PageEncryptionPasswordValidator.js
+++ b/resources/PageEncryptionPasswordValidator.js
@@ -21,7 +21,7 @@
*/
// @credits https://github.com/briannippert/Password-Validator/blob/master/PasswordValidatorv2.js
-const PageEncryptionPasswordValidator = function (conf) {
+const PageEncryptionPasswordValidator = function ( conf ) {
var conf = $.extend(
{
minSize: 5,
@@ -31,76 +31,75 @@ const PageEncryptionPasswordValidator = function (conf) {
digitConfigured: true,
specialConfigured: true,
prohibitedConfigured: true,
- specialCharacters: ["_", "#", "%", "*", "@"],
- prohibitedCharacters: ["$", "&", "=", "!"],
+ specialCharacters: [ '_', '#', '%', '*', '@' ],
+ prohibitedCharacters: [ '$', '&', '=', '!' ]
},
conf || {}
);
- function checkPassword(value) {
- var length = conf.lengthConfigured ? checkLength(value) : true;
- var upper = conf.uppercaseConfigured ? checkUpperCase(value) : true;
- var digit = conf.digitConfigured ? checkDigit(value) : true;
- var special = conf.specialConfigured ? checkSpecialCharacters(value) : true;
- var prohibited = conf.prohibitedConfigured
- ? checkProhibitedCharacter(value)
- : true;
+ function checkPassword( value ) {
+ var length = conf.lengthConfigured ? checkLength( value ) : true;
+ var upper = conf.uppercaseConfigured ? checkUpperCase( value ) : true;
+ var digit = conf.digitConfigured ? checkDigit( value ) : true;
+ var special = conf.specialConfigured ? checkSpecialCharacters( value ) : true;
+ var prohibited = conf.prohibitedConfigured ?
+ checkProhibitedCharacter( value ) :
+ true;
var errors = [];
- if (!length) {
- errors.push("length");
+ if ( !length ) {
+ errors.push( 'length' );
}
- if (!upper) {
- errors.push("uppercase");
+ if ( !upper ) {
+ errors.push( 'uppercase' );
}
- if (!digit) {
- errors.push("digit");
+ if ( !digit ) {
+ errors.push( 'digit' );
}
- if (!special) {
- errors.push("special");
+ if ( !special ) {
+ errors.push( 'special' );
}
- if (prohibited) {
- errors.push("prohibited");
+ if ( prohibited ) {
+ errors.push( 'prohibited' );
}
return errors;
}
- function checkSpecialCharacters(str) {
+ function checkSpecialCharacters( str ) {
// var specialChar = new RegExp("[_\\-#%*\\+]");
- var specialChar = new RegExp("[" + conf.specialCharacters.join("") + "]");
+ var specialChar = new RegExp( '[' + conf.specialCharacters.join( '' ) + ']' );
- return specialChar.test(str);
+ return specialChar.test( str );
}
- function checkProhibitedCharacter(str) {
+ function checkProhibitedCharacter( str ) {
// var specialChar = new RegExp("[$&=!@]");//= /[$&=!@]/;
var specialChar = new RegExp(
- "[" + conf.prohibitedCharacters.join("") + "]"
+ '[' + conf.prohibitedCharacters.join( '' ) + ']'
);
- return specialChar.test(str);
+ return specialChar.test( str );
}
- function checkDigit(str) {
- return /\d/.test(str);
+ function checkDigit( str ) {
+ return /\d/.test( str );
}
- function checkUpperCase(str) {
- return /[^A-Z]/.test(str);
+ function checkUpperCase( str ) {
+ return /[^A-Z]/.test( str );
}
- function checkLength(str) {
+ function checkLength( str ) {
return str.length >= conf.minSize && str.length <= conf.maxSize;
}
-
- function getConf(str) {
+
+ function getConf( str ) {
return conf;
}
return {
checkPassword,
- getConf,
+ getConf
};
};
-
diff --git a/resources/PageEncryptionPermissions.js b/resources/PageEncryptionPermissions.js
index 95b2f4f..2239601 100644
--- a/resources/PageEncryptionPermissions.js
+++ b/resources/PageEncryptionPermissions.js
@@ -19,53 +19,53 @@
* @copyright Copyright ©2023, https://wikisphere.org
*/
-$(function () {
- $(".pageencryption-managepermissions-pager-button-show-url").on(
- "click",
+$( function () {
+ $( '.pageencryption-managepermissions-pager-button-show-url' ).on(
+ 'click',
function () {
- navigator.clipboard.writeText($(this).data("url")).then(() => {
+ navigator.clipboard.writeText( $( this ).data( 'url' ) ).then( () => {
alert(
mw.msg(
- "pageencryption-jsmodule-managepermissions-copied-to-clipboard"
+ 'pageencryption-jsmodule-managepermissions-copied-to-clipboard'
)
);
- });
+ } );
}
);
- $(".pageencryption-managepermissions-pager-button-show-password").on(
- "click",
+ $( '.pageencryption-managepermissions-pager-button-show-password' ).on(
+ 'click',
function () {
- navigator.clipboard.writeText($(this).data("password")).then(() => {
+ navigator.clipboard.writeText( $( this ).data( 'password' ) ).then( () => {
alert(
mw.msg(
- "pageencryption-jsmodule-managepermissions-copied-to-clipboard"
+ 'pageencryption-jsmodule-managepermissions-copied-to-clipboard'
)
);
- });
+ } );
}
);
// eslint-disable-next-line no-jquery/no-global-selector
- $('#pageencryption-form-permissions button[type="submit"]').on(
- "click",
+ $( '#pageencryption-form-permissions button[type="submit"]' ).on(
+ 'click',
// eslint-disable-next-line no-unused-vars
- function (val) {
- if ($(this).val() === "delete") {
+ function ( val ) {
+ if ( $( this ).val() === 'delete' ) {
// eslint-disable-next-line no-alert
- if (!confirm(mw.msg("pageencryption-jsmodule-deleteitemconfirm"))) {
+ if ( !confirm( mw.msg( 'pageencryption-jsmodule-deleteitemconfirm' ) ) ) {
return false;
}
// eslint-disable-next-line no-jquery/no-sizzle
- $(this)
- .closest("form")
- .find(":input")
- .each(function (i, el) {
- $(el).removeAttr("required");
- });
+ $( this )
+ .closest( 'form' )
+ .find( ':input' )
+ .each( function ( i, el ) {
+ $( el ).removeAttr( 'required' );
+ } );
}
}
);
@@ -73,61 +73,61 @@ $(function () {
// display every 3 days
if (
canManagePermissions &&
- !mw.cookie.get("pageencryption-check-latest-version")
+ !mw.cookie.get( 'pageencryption-check-latest-version' )
) {
- mw.loader.using("mediawiki.api", function () {
+ mw.loader.using( 'mediawiki.api', function () {
new mw.Api()
- .postWithToken("csrf", {
- action: "pageencryption-check-latest-version",
- })
- .done(function (res) {
- if ("pageencryption-check-latest-version" in res) {
- if (res["pageencryption-check-latest-version"].result === 2) {
- var messageWidget = new OO.ui.MessageWidget({
- type: "warning",
+ .postWithToken( 'csrf', {
+ action: 'pageencryption-check-latest-version'
+ } )
+ .done( function ( res ) {
+ if ( 'pageencryption-check-latest-version' in res ) {
+ if ( res[ 'pageencryption-check-latest-version' ].result === 2 ) {
+ var messageWidget = new OO.ui.MessageWidget( {
+ type: 'warning',
label: new OO.ui.HtmlSnippet(
mw.msg(
- "pageencryption-jsmodule-managepermissions-outdated-version"
+ 'pageencryption-jsmodule-managepermissions-outdated-version'
)
),
// *** this does not work before ooui v0.43.0
- showClose: true,
- });
+ showClose: true
+ } );
var closeFunction = function () {
var three_days = 3 * 86400;
- mw.cookie.set("pageencryption-check-latest-version", true, {
- path: "/",
- expires: three_days,
- });
- $(messageWidget.$element).parent().remove();
+ mw.cookie.set( 'pageencryption-check-latest-version', true, {
+ path: '/',
+ expires: three_days
+ } );
+ $( messageWidget.$element ).parent().remove();
};
- messageWidget.on("close", closeFunction);
- $("#pageencryption-panel-layout").first().prepend(
+ messageWidget.on( 'close', closeFunction );
+ $( '#pageencryption-panel-layout' ).first().prepend(
// eslint-disable-next-line no-jquery/no-parse-html-literal
- $("<div><br/></div>").prepend(messageWidget.$element)
+ $( '<div><br/></div>' ).prepend( messageWidget.$element )
);
if (
// eslint-disable-next-line no-jquery/no-class-state
!messageWidget.$element.hasClass(
- "oo-ui-messageWidget-showClose"
+ 'oo-ui-messageWidget-showClose'
)
) {
messageWidget.$element.addClass(
- "oo-ui-messageWidget-showClose"
+ 'oo-ui-messageWidget-showClose'
);
- var closeButton = new OO.ui.ButtonWidget({
- classes: ["oo-ui-messageWidget-close"],
+ var closeButton = new OO.ui.ButtonWidget( {
+ classes: [ 'oo-ui-messageWidget-close' ],
framed: false,
- icon: "close",
- label: OO.ui.msg("ooui-popup-widget-close-button-aria-label"),
- invisibleLabel: true,
- });
- closeButton.on("click", closeFunction);
- messageWidget.$element.append(closeButton.$element);
+ icon: 'close',
+ label: OO.ui.msg( 'ooui-popup-widget-close-button-aria-label' ),
+ invisibleLabel: true
+ } );
+ closeButton.on( 'click', closeFunction );
+ messageWidget.$element.append( closeButton.$element );
}
}
}
- });
- });
+ } );
+ } );
}
-});
+} );
diff --git a/resources/style.css b/resources/style.css
index c00a49b..6ac40f3 100644
--- a/resources/style.css
+++ b/resources/style.css
@@ -1,4 +1,3 @@
-/* stylelint-disable color-named */
.pageencryption-sitenotice {
margin: 12px;
padding: 24px;
@@ -19,16 +18,17 @@
}
#mw-indicator-pageencryption a {
- background-image: url(/mediawiki/resources/lib/ooui/themes/wikimediaui/images/icons/lock.svg?46d34);
- background-position: left center;
- background-repeat: no-repeat;
- display: inline-block;
- height: 20px;
- padding-left: 25px;
- line-height: 20px;
+ background-image: url( /mediawiki/resources/lib/ooui/themes/wikimediaui/images/icons/lock.svg?46d34 );
+ background-position: left center;
+ background-repeat: no-repeat;
+ display: inline-block;
+ height: 20px;
+ padding-left: 25px;
+ line-height: 20px;
}
-.pageencryption-managepermissions-pager-button-show-password, .pageencryption-managepermissions-pager-button-show-url {
+.pageencryption-managepermissions-pager-button-show-password,
+ .pageencryption-managepermissions-pager-button-show-url {
background: #dcdcdc;
padding: 6px;
border: 1px solid #ccc;
@@ -59,4 +59,3 @@
padding: 24px;
border: 1px solid #ccc;
}
-
--
2.39.2
$ date
--- stdout ---
Sat Apr 27 12:16:11 UTC 2024
--- end ---
$ git clone file:///srv/git/mediawiki-extensions-PageEncryption.git repo --depth=1 -b master
--- stderr ---
Cloning into 'repo'...
--- stdout ---
--- end ---
$ git config user.name libraryupgrader
--- stdout ---
--- end ---
$ git config user.email tools.libraryupgrader@tools.wmflabs.org
--- stdout ---
--- end ---
$ git submodule update --init
--- stdout ---
--- end ---
$ grr init
--- stdout ---
Installed commit-msg hook.
--- end ---
$ git show-ref refs/heads/master
--- stdout ---
d2e2515690d2bbef2fa729a8c78bc401a0a02538 refs/heads/master
--- end ---
$ /usr/bin/npm audit --json
--- stdout ---
{
"auditReportVersion": 2,
"vulnerabilities": {
"eslint-plugin-compat": {
"name": "eslint-plugin-compat",
"severity": "moderate",
"isDirect": false,
"via": [
"semver"
],
"effects": [],
"range": "3.6.0-0 - 4.1.4",
"nodes": [
"node_modules/eslint-plugin-compat"
],
"fixAvailable": true
},
"postcss": {
"name": "postcss",
"severity": "moderate",
"isDirect": false,
"via": [
{
"source": 1094544,
"name": "postcss",
"dependency": "postcss",
"title": "PostCSS line return parsing error",
"url": "https://github.com/advisories/GHSA-7fh5-64p2-3v2j",
"severity": "moderate",
"cwe": [
"CWE-74",
"CWE-144"
],
"cvss": {
"score": 5.3,
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N"
},
"range": "<8.4.31"
}
],
"effects": [],
"range": "<8.4.31",
"nodes": [
"node_modules/postcss"
],
"fixAvailable": true
},
"semver": {
"name": "semver",
"severity": "moderate",
"isDirect": false,
"via": [
{
"source": 1096482,
"name": "semver",
"dependency": "semver",
"title": "semver vulnerable to Regular Expression Denial of Service",
"url": "https://github.com/advisories/GHSA-c2qf-rxjj-qqgw",
"severity": "moderate",
"cwe": [
"CWE-1333"
],
"cvss": {
"score": 5.3,
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"
},
"range": ">=7.0.0 <7.5.2"
},
{
"source": 1096483,
"name": "semver",
"dependency": "semver",
"title": "semver vulnerable to Regular Expression Denial of Service",
"url": "https://github.com/advisories/GHSA-c2qf-rxjj-qqgw",
"severity": "moderate",
"cwe": [
"CWE-1333"
],
"cvss": {
"score": 5.3,
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"
},
"range": "<5.7.2"
},
{
"source": 1096484,
"name": "semver",
"dependency": "semver",
"title": "semver vulnerable to Regular Expression Denial of Service",
"url": "https://github.com/advisories/GHSA-c2qf-rxjj-qqgw",
"severity": "moderate",
"cwe": [
"CWE-1333"
],
"cvss": {
"score": 5.3,
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"
},
"range": ">=6.0.0 <6.3.1"
}
],
"effects": [
"eslint-plugin-compat"
],
"range": "<=5.7.1 || 6.0.0 - 6.3.0 || 7.0.0 - 7.5.1",
"nodes": [
"node_modules/eslint-plugin-jsdoc/node_modules/semver",
"node_modules/eslint-plugin-node/node_modules/semver",
"node_modules/normalize-package-data/node_modules/semver",
"node_modules/semver"
],
"fixAvailable": true
},
"word-wrap": {
"name": "word-wrap",
"severity": "moderate",
"isDirect": false,
"via": [
{
"source": 1095091,
"name": "word-wrap",
"dependency": "word-wrap",
"title": "word-wrap vulnerable to Regular Expression Denial of Service",
"url": "https://github.com/advisories/GHSA-j8xg-fqg3-53r7",
"severity": "moderate",
"cwe": [
"CWE-1333"
],
"cvss": {
"score": 5.3,
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"
},
"range": "<1.2.4"
}
],
"effects": [],
"range": "<1.2.4",
"nodes": [
"node_modules/word-wrap"
],
"fixAvailable": true
}
},
"metadata": {
"vulnerabilities": {
"info": 0,
"low": 0,
"moderate": 4,
"high": 0,
"critical": 0,
"total": 4
},
"dependencies": {
"prod": 1,
"dev": 390,
"optional": 0,
"peer": 0,
"peerOptional": 0,
"total": 390
}
}
}
--- end ---
$ /usr/bin/composer install
--- stderr ---
No composer.lock file present. Updating dependencies to latest instead of installing from lock file. See https://getcomposer.org/install for more information.
Loading composer repositories with package information
Updating dependencies
Lock file operations: 21 installs, 0 updates, 0 removals
- Locking composer/semver (3.3.2)
- Locking composer/spdx-licenses (1.5.8)
- Locking defuse/php-encryption (v2.4.0)
- Locking mediawiki/mediawiki-codesniffer (v41.0.0)
- Locking mediawiki/minus-x (1.1.1)
- Locking paragonie/random_compat (v9.99.100)
- Locking php-parallel-lint/php-console-color (v1.0.1)
- Locking php-parallel-lint/php-console-highlighter (v1.0.0)
- Locking php-parallel-lint/php-parallel-lint (v1.3.2)
- Locking psr/container (2.0.2)
- Locking squizlabs/php_codesniffer (3.7.2)
- Locking symfony/console (v5.4.36)
- Locking symfony/deprecation-contracts (v3.4.0)
- Locking symfony/polyfill-ctype (v1.29.0)
- Locking symfony/polyfill-intl-grapheme (v1.29.0)
- Locking symfony/polyfill-intl-normalizer (v1.29.0)
- Locking symfony/polyfill-mbstring (v1.29.0)
- Locking symfony/polyfill-php73 (v1.29.0)
- Locking symfony/polyfill-php80 (v1.29.0)
- Locking symfony/service-contracts (v3.4.2)
- Locking symfony/string (v6.4.4)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 21 installs, 0 updates, 0 removals
0 [>---------------------------] 0 [->--------------------------]
- Installing paragonie/random_compat (v9.99.100): Extracting archive
- Installing defuse/php-encryption (v2.4.0): Extracting archive
- Installing symfony/polyfill-php80 (v1.29.0): Extracting archive
- Installing squizlabs/php_codesniffer (3.7.2): Extracting archive
- Installing symfony/polyfill-mbstring (v1.29.0): Extracting archive
- Installing composer/spdx-licenses (1.5.8): Extracting archive
- Installing composer/semver (3.3.2): Extracting archive
- Installing mediawiki/mediawiki-codesniffer (v41.0.0): Extracting archive
- Installing symfony/polyfill-intl-normalizer (v1.29.0): Extracting archive
- Installing symfony/polyfill-intl-grapheme (v1.29.0): Extracting archive
- Installing symfony/polyfill-ctype (v1.29.0): Extracting archive
- Installing symfony/string (v6.4.4): Extracting archive
- Installing psr/container (2.0.2): Extracting archive
- Installing symfony/service-contracts (v3.4.2): Extracting archive
- Installing symfony/polyfill-php73 (v1.29.0): Extracting archive
- Installing symfony/deprecation-contracts (v3.4.0): Extracting archive
- Installing symfony/console (v5.4.36): Extracting archive
- Installing mediawiki/minus-x (1.1.1): Extracting archive
- Installing php-parallel-lint/php-console-color (v1.0.1): Extracting archive
- Installing php-parallel-lint/php-console-highlighter (v1.0.0): Extracting archive
- Installing php-parallel-lint/php-parallel-lint (v1.3.2): Extracting archive
0/21 [>---------------------------] 0%
20/21 [==========================>-] 95%
21/21 [============================] 100%
5 package suggestions were added by new dependencies, use `composer suggest` to see details.
Generating autoload files
13 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
--- stdout ---
--- end ---
Upgrading n:eslint-config-wikimedia from 0.24.0 -> 0.27.0
Upgrading n:grunt-eslint from 24.0.0 -> 24.3.0
Upgrading n:grunt-stylelint from 0.18.0 -> 0.19.0
Upgrading n:stylelint-config-wikimedia from 0.14.0 -> 0.16.1
$ /usr/bin/npm install
--- stderr ---
npm WARN deprecated stylelint-stylistic@0.4.3: This package has been deprecated in favor of @stylistic/stylelint-plugin
--- stdout ---
added 426 packages, and audited 427 packages in 7s
93 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilities
--- end ---
$ package-lock-lint package-lock.json
--- stdout ---
Checking package-lock.json
--- end ---
$ /usr/bin/npm install grunt-eslint@24.3.0 --save-exact
--- stdout ---
up to date, audited 427 packages in 829ms
93 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilities
--- end ---
$ package-lock-lint package-lock.json
--- stdout ---
Checking package-lock.json
--- end ---
$ ./node_modules/.bin/eslint resources/PageEncryptionPermissions.js resources/PageEncryptionPassword.js composer.json resources/PageEncryptionPasswordValidator.js Gruntfile.js package.json package-lock.json extension.json i18n/en.json --fix
--- stdout ---
/src/repo/resources/PageEncryptionPassword.js
25:6 error 'CookieName' is assigned a value but never used no-unused-vars
89:3 error Expected an assignment or function call and instead saw an expression no-unused-expressions
95:6 error Unexpected use of comma operator no-sequences
231:8 error 'password' declared on line 286 column 8 is used outside of binding context block-scoped-var
234:9 error 'password' declared on line 286 column 8 is used outside of binding context block-scoped-var
235:5 error Unexpected console statement no-console
235:18 error 'password' declared on line 286 column 8 is used outside of binding context block-scoped-var
249:24 error 'PageEncryptionPasswordValidator' is not defined no-undef
250:42 error 'password' declared on line 286 column 8 is used outside of binding context block-scoped-var
264:8 error Unreachable code no-unreachable
286:8 error 'password' is already defined no-redeclare
286:8 error 'password' declared on line 231 column 8 is used outside of binding context block-scoped-var
291:14 error 'password' declared on line 231 column 8 is used outside of binding context block-scoped-var
291:14 error 'password' declared on line 286 column 8 is used outside of binding context block-scoped-var
303:6 error Expected a 'break' statement before 'case' no-fallthrough
330:13 error Unexpected console statement no-console
340:10 error Unexpected console statement no-console
344:1 warning This line has a length of 101. Maximum allowed is 100 max-len
358:3 error Unreachable code no-unreachable
382:5 error Unexpected tab character no-tabs
383:5 error Unexpected tab character no-tabs
384:5 error Unexpected tab character no-tabs
411:5 error Unexpected tab character no-tabs
414:11 error 'isEncryptedNamespace' is defined but never used no-unused-vars
/src/repo/resources/PageEncryptionPasswordValidator.js
18:1 warning Invalid JSDoc tag name "ingroup" jsdoc/check-tag-names
24:7 error 'PageEncryptionPasswordValidator' is assigned a value but never used no-unused-vars
25:6 error 'conf' is already defined no-redeclare
71:21 warning Found non-literal argument to RegExp Constructor security/detect-non-literal-regexp
78:21 warning Found non-literal argument to RegExp Constructor security/detect-non-literal-regexp
97:20 error 'str' is defined but never used no-unused-vars
/src/repo/resources/PageEncryptionPermissions.js
23:2 warning Avoid queries which search the entire DOM. Keep DOM nodes in memory where possible no-jquery/no-global-selector
27:4 error navigator.clipboard() is not supported in Safari 11.1, iOS Safari 11.3-11.4 compat/compat
28:5 error Unexpected alert no-alert
37:2 warning Avoid queries which search the entire DOM. Keep DOM nodes in memory where possible no-jquery/no-global-selector
41:4 error navigator.clipboard() is not supported in Safari 11.1, iOS Safari 11.3-11.4 compat/compat
42:5 error Unexpected alert no-alert
75:3 error 'canManagePermissions' is not defined no-undef
105:8 warning Avoid queries which search the entire DOM. Keep DOM nodes in memory where possible no-jquery/no-global-selector
✖ 38 problems (31 errors, 7 warnings)
--- end ---
$ ./node_modules/.bin/eslint resources/PageEncryptionPermissions.js resources/PageEncryptionPassword.js composer.json resources/PageEncryptionPasswordValidator.js Gruntfile.js package.json package-lock.json extension.json i18n/en.json -f json
--- stdout ---
[{"filePath":"/src/repo/Gruntfile.js","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/composer.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/extension.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/i18n/en.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/package-lock.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/package.json","messages":[],"suppressedMessages":[],"errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":[{"ruleId":"indent","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"no-extra-parens","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/PageEncryptionPassword.js","messages":[{"ruleId":"no-unused-vars","severity":2,"message":"'CookieName' is assigned a value but never used.","line":25,"column":6,"nodeType":"Identifier","messageId":"unusedVar","endLine":25,"endColumn":16},{"ruleId":"no-unused-expressions","severity":2,"message":"Expected an assignment or function call and instead saw an expression.","line":89,"column":3,"nodeType":"ExpressionStatement","messageId":"unusedExpression","endLine":100,"endColumn":9},{"ruleId":"no-sequences","severity":2,"message":"Unexpected use of comma operator.","line":95,"column":6,"nodeType":"SequenceExpression","messageId":"unexpectedCommaExpression","endLine":95,"endColumn":7},{"ruleId":"block-scoped-var","severity":2,"message":"'password' declared on line 286 column 8 is used outside of binding context.","line":231,"column":8,"nodeType":"Identifier","messageId":"outOfScope","endLine":231,"endColumn":16},{"ruleId":"block-scoped-var","severity":2,"message":"'password' declared on line 286 column 8 is used outside of binding context.","line":234,"column":9,"nodeType":"Identifier","messageId":"outOfScope","endLine":234,"endColumn":17},{"ruleId":"no-console","severity":2,"message":"Unexpected console statement.","line":235,"column":5,"nodeType":"MemberExpression","messageId":"unexpected","endLine":235,"endColumn":16,"suggestions":[{"messageId":"removeConsole","data":{"propertyName":"log"},"fix":{"range":[6379,6427],"text":""},"desc":"Remove the console.log()."}]},{"ruleId":"block-scoped-var","severity":2,"message":"'password' declared on line 286 column 8 is used outside of binding context.","line":235,"column":18,"nodeType":"Identifier","messageId":"outOfScope","endLine":235,"endColumn":26},{"ruleId":"no-undef","severity":2,"message":"'PageEncryptionPasswordValidator' is not defined.","line":249,"column":24,"nodeType":"Identifier","messageId":"undef","endLine":249,"endColumn":55},{"ruleId":"block-scoped-var","severity":2,"message":"'password' declared on line 286 column 8 is used outside of binding context.","line":250,"column":42,"nodeType":"Identifier","messageId":"outOfScope","endLine":250,"endColumn":50},{"ruleId":"no-unreachable","severity":2,"message":"Unreachable code.","line":264,"column":8,"nodeType":"BreakStatement","messageId":"unreachableCode","endLine":264,"endColumn":14},{"ruleId":"no-redeclare","severity":2,"message":"'password' is already defined.","line":286,"column":8,"nodeType":"Identifier","messageId":"redeclared","endLine":286,"endColumn":16},{"ruleId":"block-scoped-var","severity":2,"message":"'password' declared on line 231 column 8 is used outside of binding context.","line":286,"column":8,"nodeType":"Identifier","messageId":"outOfScope","endLine":286,"endColumn":16},{"ruleId":"block-scoped-var","severity":2,"message":"'password' declared on line 231 column 8 is used outside of binding context.","line":291,"column":14,"nodeType":"Identifier","messageId":"outOfScope","endLine":291,"endColumn":22},{"ruleId":"block-scoped-var","severity":2,"message":"'password' declared on line 286 column 8 is used outside of binding context.","line":291,"column":14,"nodeType":"Identifier","messageId":"outOfScope","endLine":291,"endColumn":22},{"ruleId":"no-fallthrough","severity":2,"message":"Expected a 'break' statement before 'case'.","line":303,"column":6,"nodeType":"SwitchCase","messageId":"case","endLine":353,"endColumn":11},{"ruleId":"no-console","severity":2,"message":"Unexpected console statement.","line":330,"column":13,"nodeType":"MemberExpression","messageId":"unexpected","endLine":330,"endColumn":24,"suggestions":[{"messageId":"removeConsole","data":{"propertyName":"log"},"fix":{"range":[8989,9029],"text":""},"desc":"Remove the console.log()."}]},{"ruleId":"no-console","severity":2,"message":"Unexpected console statement.","line":340,"column":10,"nodeType":"MemberExpression","messageId":"unexpected","endLine":340,"endColumn":21,"suggestions":[{"messageId":"removeConsole","data":{"propertyName":"log"},"fix":{"range":[9204,9230],"text":""},"desc":"Remove the console.log()."}]},{"ruleId":"max-len","severity":1,"message":"This line has a length of 101. Maximum allowed is 100.","line":344,"column":1,"nodeType":"Program","messageId":"max","endLine":344,"endColumn":72},{"ruleId":"no-unreachable","severity":2,"message":"Unreachable code.","line":358,"column":3,"nodeType":"ReturnStatement","messageId":"unreachableCode","endLine":360,"endColumn":7},{"ruleId":"no-tabs","severity":2,"message":"Unexpected tab character.","line":382,"column":5,"nodeType":"Program","messageId":"unexpectedTab","endLine":382,"endColumn":6},{"ruleId":"no-tabs","severity":2,"message":"Unexpected tab character.","line":383,"column":5,"nodeType":"Program","messageId":"unexpectedTab","endLine":383,"endColumn":6},{"ruleId":"no-tabs","severity":2,"message":"Unexpected tab character.","line":384,"column":5,"nodeType":"Program","messageId":"unexpectedTab","endLine":384,"endColumn":6},{"ruleId":"no-tabs","severity":2,"message":"Unexpected tab character.","line":411,"column":5,"nodeType":"Program","messageId":"unexpectedTab","endLine":411,"endColumn":6},{"ruleId":"no-unused-vars","severity":2,"message":"'isEncryptedNamespace' is defined but never used.","line":414,"column":11,"nodeType":"Identifier","messageId":"unusedVar","endLine":414,"endColumn":31}],"suppressedMessages":[],"errorCount":23,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"/**\n * This file is part of the MediaWiki extension PageEncryption.\n *\n * PageEncryption is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 2 of the License, or\n * (at your option) any later version.\n *\n * PageEncryption is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with PageEncryption. If not, see <http://www.gnu.org/licenses/>.\n *\n * @file\n * @author thomas-topway-it <support@topway.it>\n * @copyright Copyright ©2023, https://wikisphere.org\n */\n\n$( function () {\n\tvar WindowManager;\n\tvar DialogName = 'Dialog';\n\tvar CookieName = 'pageencryption-userkey';\n\tvar Model = {};\n\tvar EncryptedNamespace = 2246;\n\tvar PasswordInputField;\n\tvar PasswordConfirmationInputField;\n\tvar MessageWidget;\n\tvar KeyRecordIsSet = mw.config.get( 'pageencryption-protected-key-isSet' );\n\tvar UserkeyCookieIsSet = mw.config.get( 'pageencryption-userkey-cookie-isSet' );\n\tvar Booklet;\n\n\t// console.log(mw.config);\n\n\tfunction ProcessDialog( config ) {\n\t\tProcessDialog.super.call( this, config );\n\t}\n\tOO.inheritClass( ProcessDialog, OO.ui.ProcessDialog );\n\n\tProcessDialog.static.name = DialogName;\n\tProcessDialog.static.title = 'PageEncryption';\n\n\tProcessDialog.static.actions = [\n\t\t{\n\t\t\taction: 'save',\n\t\t\tmodes: 'edit',\n\t\t\tlabel: mw.msg( 'pageencryption-jsmodule-dialog-save' ),\n\t\t\tflags: [ 'primary', 'progressive' ]\n\t\t},\n\t\t{\n\t\t\tmodes: 'edit',\n\t\t\tlabel: mw.msg( 'pageencryption-jsmodule-dialog-cancel' ),\n\t\t\tflags: [ 'safe', 'close' ]\n\t\t}\n\t];\n\n\tfunction PageOneLayout( name, config ) {\n\t\tPageOneLayout.super.call( this, name, config );\n\n\t\tvar fieldset = new OO.ui.FieldsetLayout( {\n\t\t\tlabel: ''\n\t\t} );\n\n\t\tvar passwordInput = new OO.ui.TextInputWidget( {\n\t\t\tlabel: mw.msg( 'pageencryption-jsmodule-dialog-password' ),\n\t\t\tvalue: '',\n\t\t\trequired: true,\n\t\t\ttype: 'password'\n\t\t} );\n\n\t\tPasswordInputField = new OO.ui.FieldLayout( passwordInput, {\n\t\t\tlabel: '',\n\t\t\talign: 'top'\n\t\t} );\n\n\t\tModel.passwordInput = passwordInput;\n\n\t\tvar passwordConfirmationInput = new OO.ui.TextInputWidget( {\n\t\t\tlabel: mw.msg( 'pageencryption-jsmodule-dialog-password-confirmation' ),\n\t\t\tvalue: '',\n\t\t\trequired: true,\n\t\t\ttype: 'password'\n\t\t} );\n\n\t\tModel.passwordConfirmationInput = passwordConfirmationInput;\n\n\t\t( PasswordConfirmationInputField = new OO.ui.FieldLayout(\n\t\t\tpasswordConfirmationInput,\n\t\t\t{\n\t\t\t\tlabel: '',\n\t\t\t\talign: 'top'\n\t\t\t}\n\t\t) ),\n\t\t( MessageWidget = new OO.ui.MessageWidget( {\n\t\t\ttype: 'info',\n\t\t\t// inline: true,\n\t\t\tlabel: mw.msg( 'pageencryption-jsmodule-dialog-field-password' )\n\t\t} ) );\n\n\t\t// MessageWidget.toggle(false)\n\t\tfieldset.addItems( [\n\t\t\tMessageWidget,\n\n\t\t\tPasswordInputField,\n\t\t\tPasswordConfirmationInputField\n\t\t] );\n\n\t\tthis.$element.append( fieldset.$element );\n\t}\n\tOO.inheritClass( PageOneLayout, OO.ui.PageLayout );\n\tPageOneLayout.prototype.setupOutlineItem = function () {\n\t\tthis.outlineItem.setLabel( 'Page One' );\n\t};\n\n\tfunction messageButton() {\n\t\tvar buttonGoBack = new OO.ui.ButtonWidget( {\n\t\t\tframed: false,\n\t\t\tlabel: mw.msg( 'pageencryption-jsmodule-dialog-goback' ),\n\t\t\tclasses: [ 'pageencryption-button-goback' ]\n\t\t} );\n\n\t\tbuttonGoBack.on( 'click', function () {\n\t\t\tBooklet.setPage( 'two' );\n\n\t\t\t// MessageWidget resides on page one\n\t\t\tMessageWidget.setType( 'info' );\n\t\t\tMessageWidget.setLabel(\n\t\t\t\tmw.msg( 'pageencryption-jsmodule-dialog-field-password' )\n\t\t\t);\n\t\t} );\n\n\t\treturn new OO.ui.HtmlSnippet(\n\t\t\t$( '<span>' ).append(\n\t\t\t\tmw.msg( 'pageencryption-jsmodule-dialog-field-password-reset' ) + ' ',\n\t\t\t\tbuttonGoBack.$element\n\t\t\t)\n\t\t);\n\t}\n\n\tfunction PageTwoLayout( name, config ) {\n\t\tPageTwoLayout.super.call( this, name, config );\n\n\t\tvar fieldset = new OO.ui.FieldsetLayout( {\n\t\t\tlabel: ''\n\t\t} );\n\n\t\tvar enterPasswordInput = new OO.ui.TextInputWidget( {\n\t\t\tlabel: mw.msg( 'pageencryption-jsmodule-dialog-password' ),\n\t\t\tvalue: '',\n\t\t\trequired: true,\n\t\t\ttype: 'password'\n\t\t} );\n\n\t\tvar buttonLostPassword = new OO.ui.ButtonWidget( {\n\t\t\tframed: false,\n\t\t\tlabel: mw.msg( 'pageencryption-jsmodule-lost-password' ),\n\t\t\tclasses: [ 'pageencryption-button-lost-password' ]\n\t\t} );\n\n\t\tbuttonLostPassword.on( 'click', function () {\n\t\t\tBooklet.setPage( 'one' );\n\t\t\tMessageWidget.setType( 'error' );\n\t\t\tMessageWidget.setLabel( messageButton() );\n\t\t} );\n\n\t\tvar enterPasswordInputField = new OO.ui.FieldLayout( enterPasswordInput, {\n\t\t\tlabel: '',\n\t\t\talign: 'top',\n\t\t\thelpInline: true,\n\t\t\tclasses: [ 'pageencryption-field-password' ],\n\t\t\thelp: new OO.ui.HtmlSnippet( buttonLostPassword.$element )\n\t\t} );\n\n\t\tModel.enterPasswordInput = enterPasswordInput;\n\n\t\tvar messageWidget = new OO.ui.MessageWidget( {\n\t\t\ttype: 'info',\n\t\t\tlabel: mw.msg( 'pageencryption-jsmodule-dialog-field-password-reenter' )\n\t\t} );\n\n\t\t// MessageWidget.toggle(false)\n\t\tfieldset.addItems( [ messageWidget, enterPasswordInputField ] );\n\n\t\tthis.$element.append( fieldset.$element );\n\t}\n\tOO.inheritClass( PageTwoLayout, OO.ui.PageLayout );\n\tPageTwoLayout.prototype.setupOutlineItem = function () {\n\t\tthis.outlineItem.setLabel( 'Page Two' );\n\t};\n\n\tProcessDialog.prototype.initialize = function () {\n\t\tProcessDialog.super.prototype.initialize.apply( this, arguments );\n\n\t\tvar page1 = new PageOneLayout( 'one' ),\n\t\t\tpage2 = new PageTwoLayout( 'two' );\n\n\t\tBooklet = new OO.ui.BookletLayout( {\n\t\t\toutlined: false,\n\t\t\texpanded: true,\n\t\t\tshowMenu: false\n\t\t} );\n\n\t\tBooklet.addPages( [ page1, page2 ] );\n\n\t\tBooklet.setPage( !KeyRecordIsSet ? 'one' : 'two' );\n\n\t\tvar content = new OO.ui.PanelLayout( {\n\t\t\t$content: Booklet.$element,\n\t\t\tpadded: true,\n\t\t\texpanded: true\n\t\t} );\n\n\t\tthis.$body.append( content.$element );\n\t};\n\n\tProcessDialog.prototype.getBodyHeight = function () {\n\t\treturn 300;\n\t};\n\n\tProcessDialog.prototype.getActionProcess = function ( action ) {\n\t\tvar dialog = this;\n\n\t\tif ( !action || action === 'delete' ) {\n\t\t\treturn ProcessDialog.super.prototype.getActionProcess.call( this, action );\n\t\t}\n\n\t\t// or use Booklet.getCurrentPage().name\n\t\tif ( !KeyRecordIsSet ) {\n\t\t\tvar password = Model.passwordInput.getValue();\n\t\t\tvar passwordConfirm = Model.passwordConfirmationInput.getValue();\n\n\t\t\tif ( password !== passwordConfirm ) {\n\t\t\t\tconsole.log( password + ',' + passwordConfirm );\n\n\t\t\t\tPasswordInputField.setErrors( [] );\n\n\t\t\t\tPasswordConfirmationInputField.setErrors( [\n\t\t\t\t\tmw.msg( 'pageencryption-jsmodule-dialog-password-error-nomatch' )\n\t\t\t\t] );\n\n\t\t\t\treturn ProcessDialog.super.prototype.getActionProcess.call(\n\t\t\t\t\tthis,\n\t\t\t\t\taction\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tvar validator = new PageEncryptionPasswordValidator();\n\t\t\tvar errors = validator.checkPassword( password );\n\t\t\tvar conf = validator.getConf();\n\n\t\t\tif ( errors.length ) {\n\t\t\t\tvar errorsMessages = [];\n\n\t\t\t\tfor ( var error of errors ) {\n\t\t\t\t\tvar args = [ 'pageencryption-jsmodule-dialog-password-error-' + error ];\n\t\t\t\t\tswitch ( error ) {\n\t\t\t\t\t\tcase 'length':\n\t\t\t\t\t\t\targs.push( conf.minSize );\n\t\t\t\t\t\t\targs.push( conf.maxSize );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'special':\n\t\t\t\t\t\t\targs.push( conf.specialCharacters );\n\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'prohibited':\n\t\t\t\t\t\t\targs.push( conf.prohibitedCharacters );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\terrorsMessages.push( mw.msg.apply( null, args ) );\n\t\t\t\t}\n\t\t\t\tPasswordInputField.setErrors( errorsMessages );\n\t\t\t\treturn ProcessDialog.super.prototype.getActionProcess.call(\n\t\t\t\t\tthis,\n\t\t\t\t\taction\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tPasswordInputField.setErrors( [] );\n\t\t\tPasswordConfirmationInputField.setErrors( [] );\n\t\t} else {\n\t\t\tvar password = Model.enterPasswordInput.getValue();\n\t\t}\n\n\t\tvar payload = {\n\t\t\taction: 'pageencryption-set-encryption-key',\n\t\t\tpassword: password,\n\t\t\t'reset-key': Booklet.getCurrentPage().name === 'one' ? 1 : 0\n\t\t};\n\n\t\t// https://www.mediawiki.org/wiki/OOUI/Windows/Process_Dialogs#Action_sets\n\t\treturn ProcessDialog.super.prototype.getActionProcess\n\t\t\t.call( this, action )\n\t\t\t.first( function () {\n\t\t\t\tswitch ( action ) {\n\t\t\t\t\tcase 'save':\n\n\t\t\t\t\t// eslint-disable no-fallthrough\n\t\t\t\t\tcase 'delete':\n\t\t\t\t\t\tvar callApi = function ( postData, resolve, reject ) {\n\t\t\t\t\t\t\t// console.log(\"postData\", postData);\n\n\t\t\t\t\t\t\tnew mw.Api()\n\t\t\t\t\t\t\t\t.postWithToken( 'csrf', postData )\n\t\t\t\t\t\t\t\t.done( function ( res ) {\n\t\t\t\t\t\t\t\t\t// console.log(\"res\", res);\n\t\t\t\t\t\t\t\t\tif ( !( 'pageencryption-set-encryption-key' in res ) ) {\n\t\t\t\t\t\t\t\t\t\treject(\n\t\t\t\t\t\t\t\t\t\t\tnew OO.ui.Error( res, {\n\t\t\t\t\t\t\t\t\t\t\t\trecoverable: true,\n\t\t\t\t\t\t\t\t\t\t\t\twarning: false\n\t\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tvar value = res[ 'pageencryption-set-encryption-key' ];\n\t\t\t\t\t\t\t\t\t\tif ( value.message !== null ) {\n\t\t\t\t\t\t\t\t\t\t\treject(\n\t\t\t\t\t\t\t\t\t\t\t\tnew OO.ui.Error( value.message, {\n\t\t\t\t\t\t\t\t\t\t\t\t\trecoverable: true,\n\t\t\t\t\t\t\t\t\t\t\t\t\twarning: false\n\t\t\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tif ( value.action === 'new-record' ) {\n\t\t\t\t\t\t\t\t\t\t\t\t// @TODO show popup\n\t\t\t\t\t\t\t\t\t\t\t\tconsole.log( value[ 'protected-key' ] );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\tWindowManager.removeWindows( [ DialogName ] );\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// resolve();\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t.fail( function ( res ) {\n\t\t\t\t\t\t\t\t\tconsole.log( 'res', res );\n\t\t\t\t\t\t\t\t\tvar msg = res;\n\t\t\t\t\t\t\t\t\t// https://doc.wikimedia.org/oojs-ui/master/js/source/Error.html#OO-ui-Error-method-constructor\n\t\t\t\t\t\t\t\t\treject(\n\t\t\t\t\t\t\t\t\t\tnew OO.ui.Error( msg, { recoverable: true, warning: false } )\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\treturn new Promise( ( resolve, reject ) => {\n\t\t\t\t\t\t\tmw.loader.using( 'mediawiki.api', function () {\n\t\t\t\t\t\t\t\tcallApi( payload, resolve, reject );\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} ); // promise\n\t\t\t\t}\n\t\t\t\t// return false;\n\t\t\t}, this ); // .next\n\n\t\treturn new OO.ui.Process( function () {\n\t\t\tdialog.close( { action: action } );\n\t\t} );\n\n\t\t// return ProcessDialog.super.prototype.getActionProcess.call( this, action );\n\t};\n\n\t/*\n\tProcessDialog.prototype.getTeardownProcess = function (data) {\n\t\treturn ProcessDialog.super.prototype.getTeardownProcess\n\t\t\t.call(this, data)\n\t\t\t.first(function () {\n\t\t\t\tconsole.log(\"ProcessDialog\");\n\t\t\t\tremoveActiveWindow();\n\t\t\t}, this);\n\t};\n*/\n\n\t/**\n\t * Override getBodyHeight to create a tall dialog relative to the screen.\n\t *\n\t * @return {number} Body height\n\t */\n\t// ProcessDialog.prototype.getBodyHeight = function () {\n\t// \t// see here https://www.mediawiki.org/wiki/OOUI/Windows/Process_Dialogs\n\t// \t// this.page1.content.$element.outerHeight( true );\n\t// \treturn window.innerHeight - 100;\n\t// };\n\n\tfunction createWindowManager() {\n\t\tvar windowManager = new OO.ui.WindowManager( {\n\t\t\tclasses: [ 'pageencryption-ooui-window' ]\n\t\t} );\n\t\t$( document.body ).append( windowManager.$element );\n\n\t\treturn windowManager;\n\t}\n\n\tfunction openDialog() {\n\t\tvar processDialog = new ProcessDialog( {\n\t\t\tsize: 'medium',\n\t\t\tclasses: []\n\t\t} );\n\n\t\tWindowManager = createWindowManager();\n\n\t\tWindowManager.addWindows( [ processDialog ] );\n\n\t\tWindowManager.openWindow( processDialog );\n\t}\n\n\t// *** httpOnly cookies cannot be accessed client-side\n\t// function userKeyIsSet() {\n\t// \treturn mw.cookie.get(CookieName, mw.config.get(\"pageencryption-wgCookiePrefix\"));\n\t// }\n\n\tfunction isEncryptedNamespace() {\n\t\treturn mw.config.get( 'wgNamespaceNumber' ) === EncryptedNamespace;\n\t}\n\n\tif (\n\t\tmw.config.get( 'pageencryption-user-is-editor' ) &&\n\t\t( !KeyRecordIsSet || !UserkeyCookieIsSet )\n\t) {\n\t\topenDialog();\n\t}\n} );\n","usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/PageEncryptionPasswordValidator.js","messages":[{"ruleId":"jsdoc/check-tag-names","severity":1,"message":"Invalid JSDoc tag name \"ingroup\".","line":18,"column":1,"nodeType":"Block","endLine":18,"endColumn":1},{"ruleId":"no-unused-vars","severity":2,"message":"'PageEncryptionPasswordValidator' is assigned a value but never used.","line":24,"column":7,"nodeType":"Identifier","messageId":"unusedVar","endLine":24,"endColumn":38},{"ruleId":"no-redeclare","severity":2,"message":"'conf' is already defined.","line":25,"column":6,"nodeType":"Identifier","messageId":"redeclared","endLine":25,"endColumn":10},{"ruleId":"security/detect-non-literal-regexp","severity":1,"message":"Found non-literal argument to RegExp Constructor","line":71,"column":21,"nodeType":"NewExpression","endLine":71,"endColumn":80},{"ruleId":"security/detect-non-literal-regexp","severity":1,"message":"Found non-literal argument to RegExp Constructor","line":78,"column":21,"nodeType":"NewExpression","endLine":80,"endColumn":4},{"ruleId":"no-unused-vars","severity":2,"message":"'str' is defined but never used.","line":97,"column":20,"nodeType":"Identifier","messageId":"unusedVar","endLine":97,"endColumn":23}],"suppressedMessages":[],"errorCount":3,"fatalErrorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"/**\n * This file is part of the MediaWiki extension PageEncryption.\n *\n * PageEncryption is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 2 of the License, or\n * (at your option) any later version.\n *\n * PageEncryption is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with PageEncryption. If not, see <http://www.gnu.org/licenses/>.\n *\n * @file\n * @ingroup extensions\n * @author thomas-topway-it <support@topway.it>\n * @copyright Copyright ©2023, https://wikisphere.org\n */\n\n// @credits https://github.com/briannippert/Password-Validator/blob/master/PasswordValidatorv2.js\nconst PageEncryptionPasswordValidator = function ( conf ) {\n\tvar conf = $.extend(\n\t\t{\n\t\t\tminSize: 5,\n\t\t\tmaxSize: 15,\n\t\t\tlengthConfigured: true,\n\t\t\tuppercaseConfigured: true,\n\t\t\tdigitConfigured: true,\n\t\t\tspecialConfigured: true,\n\t\t\tprohibitedConfigured: true,\n\t\t\tspecialCharacters: [ '_', '#', '%', '*', '@' ],\n\t\t\tprohibitedCharacters: [ '$', '&', '=', '!' ]\n\t\t},\n\t\tconf || {}\n\t);\n\n\tfunction checkPassword( value ) {\n\t\tvar length = conf.lengthConfigured ? checkLength( value ) : true;\n\t\tvar upper = conf.uppercaseConfigured ? checkUpperCase( value ) : true;\n\t\tvar digit = conf.digitConfigured ? checkDigit( value ) : true;\n\t\tvar special = conf.specialConfigured ? checkSpecialCharacters( value ) : true;\n\t\tvar prohibited = conf.prohibitedConfigured ?\n\t\t\tcheckProhibitedCharacter( value ) :\n\t\t\ttrue;\n\n\t\tvar errors = [];\n\t\tif ( !length ) {\n\t\t\terrors.push( 'length' );\n\t\t}\n\t\tif ( !upper ) {\n\t\t\terrors.push( 'uppercase' );\n\t\t}\n\t\tif ( !digit ) {\n\t\t\terrors.push( 'digit' );\n\t\t}\n\t\tif ( !special ) {\n\t\t\terrors.push( 'special' );\n\t\t}\n\t\tif ( prohibited ) {\n\t\t\terrors.push( 'prohibited' );\n\t\t}\n\n\t\treturn errors;\n\t}\n\n\tfunction checkSpecialCharacters( str ) {\n\t\t// var specialChar = new RegExp(\"[_\\\\-#%*\\\\+]\");\n\t\tvar specialChar = new RegExp( '[' + conf.specialCharacters.join( '' ) + ']' );\n\n\t\treturn specialChar.test( str );\n\t}\n\n\tfunction checkProhibitedCharacter( str ) {\n\t\t// var specialChar = new RegExp(\"[$&=!@]\");//= /[$&=!@]/;\n\t\tvar specialChar = new RegExp(\n\t\t\t'[' + conf.prohibitedCharacters.join( '' ) + ']'\n\t\t);\n\n\t\treturn specialChar.test( str );\n\t}\n\n\tfunction checkDigit( str ) {\n\t\treturn /\\d/.test( str );\n\t}\n\n\tfunction checkUpperCase( str ) {\n\t\treturn /[^A-Z]/.test( str );\n\t}\n\n\tfunction checkLength( str ) {\n\t\treturn str.length >= conf.minSize && str.length <= conf.maxSize;\n\t}\n\n\tfunction getConf( str ) {\n\t\treturn conf;\n\t}\n\n\treturn {\n\t\tcheckPassword,\n\t\tgetConf\n\t};\n};\n","usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]},{"filePath":"/src/repo/resources/PageEncryptionPermissions.js","messages":[{"ruleId":"no-jquery/no-global-selector","severity":1,"message":"Avoid queries which search the entire DOM. Keep DOM nodes in memory where possible.","line":23,"column":2,"nodeType":"CallExpression","endLine":23,"endColumn":64},{"ruleId":"compat/compat","severity":2,"message":"navigator.clipboard() is not supported in Safari 11.1, iOS Safari 11.3-11.4","line":27,"column":4,"nodeType":"MemberExpression","endLine":27,"endColumn":23},{"ruleId":"no-alert","severity":2,"message":"Unexpected alert.","line":28,"column":5,"nodeType":"CallExpression","messageId":"unexpected","endLine":32,"endColumn":6},{"ruleId":"no-jquery/no-global-selector","severity":1,"message":"Avoid queries which search the entire DOM. Keep DOM nodes in memory where possible.","line":37,"column":2,"nodeType":"CallExpression","endLine":37,"endColumn":69},{"ruleId":"compat/compat","severity":2,"message":"navigator.clipboard() is not supported in Safari 11.1, iOS Safari 11.3-11.4","line":41,"column":4,"nodeType":"MemberExpression","endLine":41,"endColumn":23},{"ruleId":"no-alert","severity":2,"message":"Unexpected alert.","line":42,"column":5,"nodeType":"CallExpression","messageId":"unexpected","endLine":46,"endColumn":6},{"ruleId":"no-undef","severity":2,"message":"'canManagePermissions' is not defined.","line":75,"column":3,"nodeType":"Identifier","messageId":"undef","endLine":75,"endColumn":23},{"ruleId":"no-jquery/no-global-selector","severity":1,"message":"Avoid queries which search the entire DOM. Keep DOM nodes in memory where possible.","line":105,"column":8,"nodeType":"CallExpression","endLine":105,"endColumn":43}],"suppressedMessages":[{"ruleId":"no-jquery/no-global-selector","severity":1,"message":"Avoid queries which search the entire DOM. Keep DOM nodes in memory where possible.","line":52,"column":2,"nodeType":"CallExpression","endLine":52,"endColumn":63,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-unused-vars","severity":2,"message":"'val' is defined but never used.","line":55,"column":14,"nodeType":"Identifier","messageId":"unusedVar","endLine":55,"endColumn":17,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-alert","severity":2,"message":"Unexpected confirm.","line":58,"column":11,"nodeType":"CallExpression","messageId":"unexpected","endLine":58,"endColumn":75,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-sizzle","severity":1,"message":"Selector extensions are not allowed","line":63,"column":5,"nodeType":"CallExpression","endLine":65,"endColumn":23,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-parse-html-literal","severity":2,"message":"Prefer DOM building to parsing HTML literals","line":107,"column":9,"nodeType":"CallExpression","endLine":107,"endColumn":32,"suppressions":[{"kind":"directive","justification":""}]},{"ruleId":"no-jquery/no-class-state","severity":2,"message":"Where possible, maintain application state in JS to avoid slower DOM queries","line":111,"column":10,"nodeType":"CallExpression","endLine":113,"endColumn":10,"suppressions":[{"kind":"directive","justification":""}]}],"errorCount":5,"fatalErrorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"/**\n * This file is part of the MediaWiki extension PageEncryption.\n *\n * PageEncryption is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 2 of the License, or\n * (at your option) any later version.\n *\n * PageEncryption is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with PageEncryption. If not, see <http://www.gnu.org/licenses/>.\n *\n * @file\n * @author thomas-topway-it <support@topway.it>\n * @copyright Copyright ©2023, https://wikisphere.org\n */\n\n$( function () {\n\t$( '.pageencryption-managepermissions-pager-button-show-url' ).on(\n\t\t'click',\n\n\t\tfunction () {\n\t\t\tnavigator.clipboard.writeText( $( this ).data( 'url' ) ).then( () => {\n\t\t\t\talert(\n\t\t\t\t\tmw.msg(\n\t\t\t\t\t\t'pageencryption-jsmodule-managepermissions-copied-to-clipboard'\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\t);\n\n\t$( '.pageencryption-managepermissions-pager-button-show-password' ).on(\n\t\t'click',\n\n\t\tfunction () {\n\t\t\tnavigator.clipboard.writeText( $( this ).data( 'password' ) ).then( () => {\n\t\t\t\talert(\n\t\t\t\t\tmw.msg(\n\t\t\t\t\t\t'pageencryption-jsmodule-managepermissions-copied-to-clipboard'\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\t);\n\n\t// eslint-disable-next-line no-jquery/no-global-selector\n\t$( '#pageencryption-form-permissions button[type=\"submit\"]' ).on(\n\t\t'click',\n\t\t// eslint-disable-next-line no-unused-vars\n\t\tfunction ( val ) {\n\t\t\tif ( $( this ).val() === 'delete' ) {\n\t\t\t\t// eslint-disable-next-line no-alert\n\t\t\t\tif ( !confirm( mw.msg( 'pageencryption-jsmodule-deleteitemconfirm' ) ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\t// eslint-disable-next-line no-jquery/no-sizzle\n\t\t\t\t$( this )\n\t\t\t\t\t.closest( 'form' )\n\t\t\t\t\t.find( ':input' )\n\t\t\t\t\t.each( function ( i, el ) {\n\t\t\t\t\t\t$( el ).removeAttr( 'required' );\n\t\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t);\n\n\t// display every 3 days\n\tif (\n\t\tcanManagePermissions &&\n\t\t!mw.cookie.get( 'pageencryption-check-latest-version' )\n\t) {\n\t\tmw.loader.using( 'mediawiki.api', function () {\n\t\t\tnew mw.Api()\n\t\t\t\t.postWithToken( 'csrf', {\n\t\t\t\t\taction: 'pageencryption-check-latest-version'\n\t\t\t\t} )\n\t\t\t\t.done( function ( res ) {\n\t\t\t\t\tif ( 'pageencryption-check-latest-version' in res ) {\n\t\t\t\t\t\tif ( res[ 'pageencryption-check-latest-version' ].result === 2 ) {\n\t\t\t\t\t\t\tvar messageWidget = new OO.ui.MessageWidget( {\n\t\t\t\t\t\t\t\ttype: 'warning',\n\t\t\t\t\t\t\t\tlabel: new OO.ui.HtmlSnippet(\n\t\t\t\t\t\t\t\t\tmw.msg(\n\t\t\t\t\t\t\t\t\t\t'pageencryption-jsmodule-managepermissions-outdated-version'\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t// *** this does not work before ooui v0.43.0\n\t\t\t\t\t\t\t\tshowClose: true\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\tvar closeFunction = function () {\n\t\t\t\t\t\t\t\tvar three_days = 3 * 86400;\n\t\t\t\t\t\t\t\tmw.cookie.set( 'pageencryption-check-latest-version', true, {\n\t\t\t\t\t\t\t\t\tpath: '/',\n\t\t\t\t\t\t\t\t\texpires: three_days\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t$( messageWidget.$element ).parent().remove();\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tmessageWidget.on( 'close', closeFunction );\n\t\t\t\t\t\t\t$( '#pageencryption-panel-layout' ).first().prepend(\n\t\t\t\t\t\t\t\t// eslint-disable-next-line no-jquery/no-parse-html-literal\n\t\t\t\t\t\t\t\t$( '<div><br/></div>' ).prepend( messageWidget.$element )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t// eslint-disable-next-line no-jquery/no-class-state\n\t\t\t\t\t\t\t\t!messageWidget.$element.hasClass(\n\t\t\t\t\t\t\t\t\t'oo-ui-messageWidget-showClose'\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tmessageWidget.$element.addClass(\n\t\t\t\t\t\t\t\t\t'oo-ui-messageWidget-showClose'\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tvar closeButton = new OO.ui.ButtonWidget( {\n\t\t\t\t\t\t\t\t\tclasses: [ 'oo-ui-messageWidget-close' ],\n\t\t\t\t\t\t\t\t\tframed: false,\n\t\t\t\t\t\t\t\t\ticon: 'close',\n\t\t\t\t\t\t\t\t\tlabel: OO.ui.msg( 'ooui-popup-widget-close-button-aria-label' ),\n\t\t\t\t\t\t\t\t\tinvisibleLabel: true\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\tcloseButton.on( 'click', closeFunction );\n\t\t\t\t\t\t\t\tmessageWidget.$element.append( closeButton.$element );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t} );\n\t}\n} );\n","usedDeprecatedRules":[{"ruleId":"max-len","replacedBy":[]},{"ruleId":"arrow-parens","replacedBy":[]},{"ruleId":"arrow-spacing","replacedBy":[]},{"ruleId":"lines-between-class-members","replacedBy":[]},{"ruleId":"no-new-require","replacedBy":[]},{"ruleId":"template-curly-spacing","replacedBy":[]},{"ruleId":"array-bracket-spacing","replacedBy":[]},{"ruleId":"block-spacing","replacedBy":[]},{"ruleId":"brace-style","replacedBy":[]},{"ruleId":"comma-dangle","replacedBy":[]},{"ruleId":"comma-spacing","replacedBy":[]},{"ruleId":"comma-style","replacedBy":[]},{"ruleId":"computed-property-spacing","replacedBy":[]},{"ruleId":"dot-location","replacedBy":[]},{"ruleId":"eol-last","replacedBy":[]},{"ruleId":"func-call-spacing","replacedBy":[]},{"ruleId":"indent","replacedBy":[]},{"ruleId":"key-spacing","replacedBy":[]},{"ruleId":"keyword-spacing","replacedBy":[]},{"ruleId":"linebreak-style","replacedBy":[]},{"ruleId":"max-statements-per-line","replacedBy":[]},{"ruleId":"new-parens","replacedBy":[]},{"ruleId":"no-floating-decimal","replacedBy":[]},{"ruleId":"no-multi-spaces","replacedBy":[]},{"ruleId":"no-multiple-empty-lines","replacedBy":[]},{"ruleId":"no-new-object","replacedBy":["no-object-constructor"]},{"ruleId":"no-tabs","replacedBy":[]},{"ruleId":"no-trailing-spaces","replacedBy":[]},{"ruleId":"no-whitespace-before-property","replacedBy":[]},{"ruleId":"object-curly-spacing","replacedBy":[]},{"ruleId":"operator-linebreak","replacedBy":[]},{"ruleId":"quote-props","replacedBy":[]},{"ruleId":"quotes","replacedBy":[]},{"ruleId":"semi","replacedBy":[]},{"ruleId":"semi-spacing","replacedBy":[]},{"ruleId":"semi-style","replacedBy":[]},{"ruleId":"space-before-blocks","replacedBy":[]},{"ruleId":"space-before-function-paren","replacedBy":[]},{"ruleId":"space-in-parens","replacedBy":[]},{"ruleId":"space-infix-ops","replacedBy":[]},{"ruleId":"space-unary-ops","replacedBy":[]},{"ruleId":"spaced-comment","replacedBy":[]},{"ruleId":"switch-colon-spacing","replacedBy":[]},{"ruleId":"wrap-iife","replacedBy":[]},{"ruleId":"no-extra-semi","replacedBy":[]},{"ruleId":"no-mixed-spaces-and-tabs","replacedBy":[]}]}]
--- end ---
$ ./node_modules/.bin/grunt stylelint
--- stdout ---
Running "stylelint:all" (stylelint) task
resources/style.css
1:1 ✖ Needless disable for "color-named" --report-needless-disables
21:1 ✖ Expected "#mw-indicator-pageencryption a" to have no more than 0 ID selectors selector-max-id
22:5 ✖ Expected indentation of 1 tab stylistic/indentation
22:27 ✖ Expected single space after "(" stylistic/function-parentheses-space-inside
22:102 ✖ Expected single space before ")" stylistic/function-parentheses-space-inside
23:5 ✖ Expected indentation of 1 tab stylistic/indentation
24:5 ✖ Expected indentation of 1 tab stylistic/indentation
25:5 ✖ Expected indentation of 1 tab stylistic/indentation
26:5 ✖ Expected indentation of 1 tab stylistic/indentation
27:5 ✖ Expected indentation of 1 tab stylistic/indentation
28:5 ✖ Expected indentation of 1 tab stylistic/indentation
28:18 ✖ Unexpected unit "px" for property "line-height" declaration-property-unit-disallowed-list
31:61 ✖ Expected newline after "," stylistic/selector-list-comma-newline-after
63:1 ✖ Expected no more than 1 empty line stylistic/max-empty-lines
14 problems (14 errors, 0 warnings)
⚠ 14 warnings
Warning: Task "stylelint:all" failed. Use --force to continue.
Aborted due to warnings.
--- end ---
$ ./node_modules/.bin/stylelint resources/style.css --fix
--- stdout ---
resources/style.css
1:1 ✖ Needless disable for "color-named" --report-needless-disables
21:1 ✖ Expected "#mw-indicator-pageencryption a" to have no more than 0 ID selectors selector-max-id
28:18 ✖ Unexpected unit "px" for property "line-height" declaration-property-unit-disallowed-list
3 problems (3 errors, 0 warnings)
--- end ---
$ ./node_modules/.bin/stylelint resources/style.css -f json
--- stdout ---
[{"source":"/src/repo/resources/style.css","deprecations":[],"invalidOptionWarnings":[],"parseErrors":[],"errored":true,"warnings":[{"line":32,"column":2,"endLine":32,"endColumn":3,"rule":"stylistic/indentation","severity":"error","text":"Expected indentation of 0 tabs (stylistic/indentation)"},{"line":28,"column":15,"endLine":28,"endColumn":19,"rule":"declaration-property-unit-disallowed-list","severity":"error","text":"Unexpected unit \"px\" for property \"line-height\" (declaration-property-unit-disallowed-list)"},{"line":21,"column":1,"endLine":21,"endColumn":31,"rule":"selector-max-id","severity":"error","text":"Expected \"#mw-indicator-pageencryption a\" to have no more than 0 ID selectors (selector-max-id)"},{"text":"Needless disable for \"color-named\"","rule":"--report-needless-disables","line":1,"column":1,"endLine":1,"endColumn":35,"severity":"error"}]}]
--- end ---
Removing stylelint-disable (x1) from /src/repo/resources/style.css
$ /usr/bin/npm ci
--- stderr ---
npm WARN deprecated stylelint-stylistic@0.4.3: This package has been deprecated in favor of @stylistic/stylelint-plugin
--- stdout ---
added 426 packages, and audited 427 packages in 4s
93 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilities
--- end ---
$ /usr/bin/npm test
--- stdout ---
> test
> grunt test
Running "eslint:all" (eslint) task
/src/repo/resources/PageEncryptionPassword.js
25:6 warning 'CookieName' is assigned a value but never used no-unused-vars
89:3 warning Expected an assignment or function call and instead saw an expression no-unused-expressions
95:6 warning Unexpected use of comma operator no-sequences
231:8 warning 'password' declared on line 286 column 8 is used outside of binding context block-scoped-var
234:9 warning 'password' declared on line 286 column 8 is used outside of binding context block-scoped-var
235:5 warning Unexpected console statement no-console
235:18 warning 'password' declared on line 286 column 8 is used outside of binding context block-scoped-var
249:24 warning 'PageEncryptionPasswordValidator' is not defined no-undef
250:42 warning 'password' declared on line 286 column 8 is used outside of binding context block-scoped-var
264:8 warning Unreachable code no-unreachable
286:8 warning 'password' is already defined no-redeclare
286:8 warning 'password' declared on line 231 column 8 is used outside of binding context block-scoped-var
291:14 warning 'password' declared on line 231 column 8 is used outside of binding context block-scoped-var
291:14 warning 'password' declared on line 286 column 8 is used outside of binding context block-scoped-var
303:6 warning Expected a 'break' statement before 'case' no-fallthrough
330:13 warning Unexpected console statement no-console
340:10 warning Unexpected console statement no-console
344:1 warning This line has a length of 101. Maximum allowed is 100 max-len
358:3 warning Unreachable code no-unreachable
382:5 warning Unexpected tab character no-tabs
383:5 warning Unexpected tab character no-tabs
384:5 warning Unexpected tab character no-tabs
411:5 warning Unexpected tab character no-tabs
414:11 warning 'isEncryptedNamespace' is defined but never used no-unused-vars
/src/repo/resources/PageEncryptionPasswordValidator.js
18:1 warning Invalid JSDoc tag name "ingroup" jsdoc/check-tag-names
24:7 warning 'PageEncryptionPasswordValidator' is assigned a value but never used no-unused-vars
25:6 warning 'conf' is already defined no-redeclare
71:21 warning Found non-literal argument to RegExp Constructor security/detect-non-literal-regexp
78:21 warning Found non-literal argument to RegExp Constructor security/detect-non-literal-regexp
97:20 warning 'str' is defined but never used no-unused-vars
/src/repo/resources/PageEncryptionPermissions.js
23:2 warning Avoid queries which search the entire DOM. Keep DOM nodes in memory where possible no-jquery/no-global-selector
27:4 warning navigator.clipboard() is not supported in Safari 11.1, iOS Safari 11.3-11.4 compat/compat
28:5 warning Unexpected alert no-alert
37:2 warning Avoid queries which search the entire DOM. Keep DOM nodes in memory where possible no-jquery/no-global-selector
41:4 warning navigator.clipboard() is not supported in Safari 11.1, iOS Safari 11.3-11.4 compat/compat
42:5 warning Unexpected alert no-alert
75:3 warning 'canManagePermissions' is not defined no-undef
105:8 warning Avoid queries which search the entire DOM. Keep DOM nodes in memory where possible no-jquery/no-global-selector
✖ 38 problems (0 errors, 38 warnings)
Running "stylelint:all" (stylelint) task
>> Linted 1 files without errors
Done.
--- end ---
Upgrading c:mediawiki/mediawiki-codesniffer from 41.0.0 -> 43.0.0
Upgrading c:php-parallel-lint/php-parallel-lint from 1.3.2 -> 1.4.0
$ /usr/bin/composer update
--- stderr ---
Loading composer repositories with package information
Updating dependencies
Lock file operations: 3 installs, 4 updates, 0 removals
- Upgrading composer/semver (3.3.2 => 3.4.0)
- Locking dealerdirect/phpcodesniffer-composer-installer (v1.0.0)
- Upgrading mediawiki/mediawiki-codesniffer (v41.0.0 => v43.0.0)
- Upgrading php-parallel-lint/php-parallel-lint (v1.3.2 => v1.4.0)
- Locking phpcsstandards/phpcsextra (1.1.2)
- Locking phpcsstandards/phpcsutils (1.0.9)
- Upgrading squizlabs/php_codesniffer (3.7.2 => 3.8.1)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 3 installs, 4 updates, 0 removals
0 [>---------------------------] 0 [->--------------------------]
- Upgrading squizlabs/php_codesniffer (3.7.2 => 3.8.1): Extracting archive
- Installing dealerdirect/phpcodesniffer-composer-installer (v1.0.0): Extracting archive
- Installing phpcsstandards/phpcsutils (1.0.9): Extracting archive
- Installing phpcsstandards/phpcsextra (1.1.2): Extracting archive
- Upgrading composer/semver (3.3.2 => 3.4.0): Extracting archive
- Upgrading mediawiki/mediawiki-codesniffer (v41.0.0 => v43.0.0): Extracting archive
- Upgrading php-parallel-lint/php-parallel-lint (v1.3.2 => v1.4.0): Extracting archive
0/5 [>---------------------------] 0%
5/5 [============================] 100%
Generating autoload files
14 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
No security vulnerability advisories found
--- stdout ---
PHP CodeSniffer Config installed_paths set to ../../mediawiki/mediawiki-codesniffer,../../phpcsstandards/phpcsextra,../../phpcsstandards/phpcsutils
--- end ---
Previously failing phpcs rules: {'MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName', 'Generic.Files.LineLength.TooLong'}
$ vendor/bin/phpcs --report=json
--- stdout ---
{"totals":{"errors":224,"warnings":41,"fixable":211},"files":{"\/src\/repo\/includes\/PageEncryptionRevisionLookup.php":{"errors":2,"warnings":2,"messages":[{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":24,"column":1},{"message":"Use statements are not alphabetically sorted","source":"MediaWiki.Classes.UnsortedUseStatements.UnsortedUse","severity":5,"fixable":true,"type":"WARNING","line":25,"column":1},{"message":"Unused use statement \"PageIdentity\"","source":"MediaWiki.Classes.UnusedUseStatement.UnusedUse","severity":5,"fixable":true,"type":"WARNING","line":26,"column":1},{"message":"Expected 1 blank line at end of file; 2 found","source":"PSR2.Files.EndFileNewline.TooMany","severity":5,"fixable":true,"type":"ERROR","line":45,"column":1}]},"\/src\/repo\/PageEncryption.alias.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/includes\/api\/PageEncryptionApiCheckLatestVersion.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/includes\/api\/PageEncryptionApiSetEncryptionKey.php":{"errors":4,"warnings":1,"messages":[{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":44,"column":32},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":56,"column":1},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":58,"column":1},{"message":"Line exceeds 120 characters; contains 122 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":75,"column":122},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":79,"column":1}]},"\/src\/repo\/includes\/specials\/PageEncryptionPermissionsPager.php":{"errors":5,"warnings":1,"messages":[{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":97,"column":52},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":101,"column":1},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":120,"column":1},{"message":"Line exceeds 120 characters; contains 137 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":122,"column":137},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":131,"column":90},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":156,"column":1}]},"\/src\/repo\/includes\/specials\/SpecialPageEncryptionPermissions.php":{"errors":7,"warnings":10,"messages":[{"message":"Unused use statement \"MediaWikiServices\"","source":"MediaWiki.Classes.UnusedUseStatement.UnusedUse","severity":5,"fixable":true,"type":"WARNING","line":27,"column":1},{"message":"Unused use statement \"IPUtils\"","source":"MediaWiki.Classes.UnusedUseStatement.UnusedUse","severity":5,"fixable":true,"type":"WARNING","line":28,"column":1},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":42,"column":1},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":53,"column":24},{"message":"Line exceeds 120 characters; contains 135 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":98,"column":135},{"message":"Line exceeds 120 characters; contains 121 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":131,"column":9},{"message":"Line exceeds 120 characters; contains 189 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":132,"column":9},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":133,"column":1},{"message":"Line exceeds 120 characters; contains 143 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":138,"column":143},{"message":"Line exceeds 120 characters; contains 134 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":143,"column":134},{"message":"Line exceeds 120 characters; contains 126 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":147,"column":126},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":218,"column":1},{"message":"Line exceeds 120 characters; contains 127 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":294,"column":127},{"message":"Line exceeds 120 characters; contains 129 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":295,"column":129},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":354,"column":1},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":388,"column":1},{"message":"Expected 1 blank line at end of file; 2 found","source":"PSR2.Files.EndFileNewline.TooMany","severity":5,"fixable":true,"type":"ERROR","line":430,"column":1}]},"\/src\/repo\/includes\/PageEncryptionHooks.php":{"errors":47,"warnings":17,"messages":[{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":24,"column":1},{"message":"Use statements are not alphabetically sorted","source":"MediaWiki.Classes.UnsortedUseStatements.UnsortedUse","severity":5,"fixable":true,"type":"WARNING","line":29,"column":1},{"message":"Unused use statement \"WikiAwareEntity\"","source":"MediaWiki.Classes.UnusedUseStatement.UnusedUse","severity":5,"fixable":true,"type":"WARNING","line":29,"column":1},{"message":"Unused use statement \"NullLogger\"","source":"MediaWiki.Classes.UnusedUseStatement.UnusedUse","severity":5,"fixable":true,"type":"WARNING","line":32,"column":1},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":38,"column":1},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":70,"column":1},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":98,"column":25},{"message":"Usage of ELSE IF is discouraged; use ELSEIF instead","source":"PSR2.ControlStructures.ElseIfDeclaration.NotAllowed","severity":5,"fixable":true,"type":"WARNING","line":110,"column":11},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":114,"column":1},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":118,"column":25},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":131,"column":1},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":138,"column":1},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":142,"column":25},{"message":"Expected 1 space between the comma and \"\/\/ $wikiId = WikiAwareEntity::LOCAL\". Found: 2 spaces","source":"Universal.WhiteSpace.CommaSpacing.TooMuchSpaceAfterCommaBeforeTrailingComment","severity":5,"fixable":true,"type":"ERROR","line":154,"column":26},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":154,"column":29},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":157,"column":1},{"message":"A single space should be after the function keyword in closures","source":"MediaWiki.WhiteSpace.SpaceAfterClosure.NoWhitespaceAfterClosure","severity":5,"fixable":true,"type":"ERROR","line":158,"column":62},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":161,"column":1},{"message":"A single space should be after the function keyword in closures","source":"MediaWiki.WhiteSpace.SpaceAfterClosure.NoWhitespaceAfterClosure","severity":5,"fixable":true,"type":"ERROR","line":162,"column":61},{"message":"Function closing brace must go on the next line following the body; found 1 blank lines before brace","source":"PSR2.Methods.FunctionClosingBrace.SpacingBeforeClose","severity":5,"fixable":true,"type":"ERROR","line":166,"column":5},{"message":"Expected 0 blank lines after opening function brace; 1 found","source":"Squiz.WhiteSpace.FunctionOpeningBraceSpace.SpacingAfter","severity":5,"fixable":true,"type":"ERROR","line":181,"column":91},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":182,"column":1},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":190,"column":1},{"message":"Single space expected after opening parenthesis","source":"MediaWiki.WhiteSpace.SpaceyParenthesis.SingleSpaceAfterOpenParenthesis","severity":5,"fixable":true,"type":"WARNING","line":199,"column":13},{"message":"Closing brace must be on a line by itself","source":"Squiz.WhiteSpace.ScopeClosingBrace.ContentBefore","severity":5,"fixable":true,"type":"ERROR","line":210,"column":68},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":211,"column":1},{"message":"Line exceeds 120 characters; contains 197 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":221,"column":197},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":224,"column":1},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":234,"column":1},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":236,"column":1},{"message":"Tabs must be used to indent lines; spaces are not allowed","source":"Generic.WhiteSpace.DisallowSpaceIndent.SpacesUsed","severity":5,"fixable":true,"type":"ERROR","line":237,"column":1},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":240,"column":1},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":244,"column":1},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":248,"column":1},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":251,"column":1},{"message":"Tabs must be used to indent lines; spaces are not allowed","source":"Generic.WhiteSpace.DisallowSpaceIndent.SpacesUsed","severity":5,"fixable":true,"type":"ERROR","line":254,"column":1},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":266,"column":1},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":271,"column":1},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":278,"column":1},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":279,"column":19},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":282,"column":1},{"message":"Line exceeds 120 characters; contains 153 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":292,"column":153},{"message":"Line exceeds 120 characters; contains 149 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":310,"column":149},{"message":"Line exceeds 120 characters; contains 155 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":317,"column":155},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":319,"column":10},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":320,"column":1},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":323,"column":1},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":336,"column":1},{"message":"Expected 1 space after SWITCH keyword; 0 found","source":"Squiz.ControlStructures.ControlSignature.SpaceAfterKeyword","severity":5,"fixable":true,"type":"ERROR","line":341,"column":9},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":342,"column":1},{"message":"Line exceeds 120 characters; contains 140 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":344,"column":140},{"message":"Terminating statement must be indented to the same level as the CASE body","source":"PSR2.ControlStructures.SwitchDeclaration.BreakIndent","severity":5,"fixable":true,"type":"ERROR","line":345,"column":13},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":346,"column":1},{"message":"Line exceeds 120 characters; contains 143 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":348,"column":143},{"message":"Terminating statement must be indented to the same level as the CASE body","source":"PSR2.ControlStructures.SwitchDeclaration.BreakIndent","severity":5,"fixable":true,"type":"ERROR","line":349,"column":13},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":361,"column":1},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":377,"column":1},{"message":"Tabs must be used to indent lines; spaces are not allowed","source":"Generic.WhiteSpace.DisallowSpaceIndent.SpacesUsed","severity":5,"fixable":true,"type":"ERROR","line":401,"column":1},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":401,"column":1},{"message":"Line exceeds 120 characters; contains 121 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":406,"column":121},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":411,"column":112},{"message":"Line exceeds 120 characters; contains 122 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":420,"column":9},{"message":"Function closing brace must go on the next line following the body; found 1 blank lines before brace","source":"PSR2.Methods.FunctionClosingBrace.SpacingBeforeClose","severity":5,"fixable":true,"type":"ERROR","line":435,"column":5},{"message":"Expected 1 blank line at end of file; 2 found","source":"PSR2.Files.EndFileNewline.TooMany","severity":5,"fixable":true,"type":"ERROR","line":436,"column":1}]},"\/src\/repo\/includes\/PageEncryption.php":{"errors":159,"warnings":10,"messages":[{"message":"Use statements are not alphabetically sorted","source":"MediaWiki.Classes.UnsortedUseStatements.UnsortedUse","severity":5,"fixable":true,"type":"WARNING","line":23,"column":1},{"message":"Unused use statement \"SessionManager\"","source":"MediaWiki.Classes.UnusedUseStatement.UnusedUse","severity":5,"fixable":true,"type":"WARNING","line":31,"column":1},{"message":"There must be one blank line after the last USE statement; 0 found;","source":"PSR2.Namespaces.UseDeclaration.SpaceAfterLastUse","severity":5,"fixable":true,"type":"ERROR","line":31,"column":1},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":37,"column":1},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":40,"column":1},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":43,"column":1},{"message":"Class constants must be uppercase; expected DECRYPTIONFAILED but found DecryptionFailed","source":"Generic.NamingConventions.UpperCaseConstantName.ClassConstantNotUpperCase","severity":5,"fixable":false,"type":"ERROR","line":47,"column":18},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":48,"column":1},{"message":"Class constants must be uppercase; expected DECRYPTIONFROMACCESSCODE but found DecryptionFromAccessCode","source":"Generic.NamingConventions.UpperCaseConstantName.ClassConstantNotUpperCase","severity":5,"fixable":false,"type":"ERROR","line":50,"column":18},{"message":"Class constants must be uppercase; expected ENCRYPTEDPAGE but found EncryptedPage","source":"Generic.NamingConventions.UpperCaseConstantName.ClassConstantNotUpperCase","severity":5,"fixable":false,"type":"ERROR","line":52,"column":18},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":53,"column":1},{"message":"Expected 1 blank line before function; 0 found","source":"Squiz.WhiteSpace.FunctionSpacing.Before","severity":5,"fixable":true,"type":"ERROR","line":59,"column":19},{"message":"Expected 1 blank line after function; 0 found","source":"Squiz.WhiteSpace.FunctionSpacing.After","severity":5,"fixable":true,"type":"ERROR","line":62,"column":5},{"message":"Expected 1 blank line after function; 0 found","source":"Squiz.WhiteSpace.FunctionSpacing.After","severity":5,"fixable":true,"type":"ERROR","line":71,"column":5},{"message":"Doc comment for parameter \"$password\" missing","source":"MediaWiki.Commenting.FunctionComment.MissingParamTag","severity":5,"fixable":false,"type":"ERROR","line":72,"column":5},{"message":"Tabs must be used to indent lines; spaces are not allowed","source":"Generic.WhiteSpace.DisallowSpaceIndent.SpacesUsed","severity":5,"fixable":true,"type":"ERROR","line":80,"column":1},{"message":"Tabs must be used to indent lines; spaces are not allowed","source":"Generic.WhiteSpace.DisallowSpaceIndent.SpacesUsed","severity":5,"fixable":true,"type":"ERROR","line":81,"column":1},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":81,"column":1},{"message":"Tabs must be used to indent lines; spaces are not allowed","source":"Generic.WhiteSpace.DisallowSpaceIndent.SpacesUsed","severity":5,"fixable":true,"type":"ERROR","line":82,"column":1},{"message":"Tabs must be used to indent lines; spaces are not allowed","source":"Generic.WhiteSpace.DisallowSpaceIndent.SpacesUsed","severity":5,"fixable":true,"type":"ERROR","line":83,"column":1},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":83,"column":1},{"message":"Tabs must be used to indent lines; spaces are not allowed","source":"Generic.WhiteSpace.DisallowSpaceIndent.SpacesUsed","severity":5,"fixable":true,"type":"ERROR","line":84,"column":1},{"message":"Expected 1 blank line after function; 0 found","source":"Squiz.WhiteSpace.FunctionSpacing.After","severity":5,"fixable":true,"type":"ERROR","line":85,"column":5},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":92,"column":1},{"message":"Long list syntax is not allowed","source":"Universal.Lists.DisallowLongListSyntax.Found","severity":5,"fixable":true,"type":"ERROR","line":93,"column":9},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":110,"column":16},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":120,"column":11},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":121,"column":1},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":131,"column":11},{"message":"Expected 1 blank line after function; 0 found","source":"Squiz.WhiteSpace.FunctionSpacing.After","severity":5,"fixable":true,"type":"ERROR","line":132,"column":5},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":132,"column":6},{"message":"Return type missing for @return tag in function comment","source":"MediaWiki.Commenting.FunctionComment.MissingReturnType","severity":5,"fixable":false,"type":"ERROR","line":135,"column":8},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":135,"column":15},{"message":"Tabs must be used to indent lines; spaces are not allowed","source":"Generic.WhiteSpace.DisallowSpaceIndent.SpacesUsed","severity":5,"fixable":true,"type":"ERROR","line":138,"column":1},{"message":"Tabs must be used to indent lines; spaces are not allowed","source":"Generic.WhiteSpace.DisallowSpaceIndent.SpacesUsed","severity":5,"fixable":true,"type":"ERROR","line":139,"column":1},{"message":"Tabs must be used to indent lines; spaces are not allowed","source":"Generic.WhiteSpace.DisallowSpaceIndent.SpacesUsed","severity":5,"fixable":true,"type":"ERROR","line":140,"column":1},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":142,"column":9},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":145,"column":1},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":147,"column":1},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":152,"column":1},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":157,"column":1},{"message":"Return type missing for @return tag in function comment","source":"MediaWiki.Commenting.FunctionComment.MissingReturnType","severity":5,"fixable":false,"type":"ERROR","line":159,"column":8},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":159,"column":15},{"message":"Tabs must be used to indent lines; spaces are not allowed","source":"Generic.WhiteSpace.DisallowSpaceIndent.SpacesUsed","severity":5,"fixable":true,"type":"ERROR","line":163,"column":1},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":165,"column":1},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":171,"column":1},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":176,"column":1},{"message":"Tabs must be used to indent lines; spaces are not allowed","source":"Generic.WhiteSpace.DisallowSpaceIndent.SpacesUsed","severity":5,"fixable":true,"type":"ERROR","line":206,"column":1},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":208,"column":1},{"message":"Expected 1 blank line after function; 0 found","source":"Squiz.WhiteSpace.FunctionSpacing.After","severity":5,"fixable":true,"type":"ERROR","line":212,"column":5},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":218,"column":73},{"message":"Line indented incorrectly; expected at least 4 tabs, found 3 tabs and 3 spaces","source":"Generic.WhiteSpace.ScopeIndent.Incorrect","severity":5,"fixable":true,"type":"ERROR","line":226,"column":16},{"message":"Tabs must be used to indent lines; spaces are not allowed","source":"Generic.WhiteSpace.DisallowSpaceIndent.SpacesUsed","severity":5,"fixable":true,"type":"ERROR","line":230,"column":1},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":231,"column":46},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":238,"column":1},{"message":"Tabs must be used to indent lines; spaces are not allowed","source":"Generic.WhiteSpace.DisallowSpaceIndent.SpacesUsed","severity":5,"fixable":true,"type":"ERROR","line":244,"column":1},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":247,"column":1},{"message":"\"$_GET\" superglobals should not be accessed.","source":"MediaWiki.Usage.SuperGlobalsUsage.SuperGlobals","severity":5,"fixable":false,"type":"ERROR","line":249,"column":41},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":262,"column":1},{"message":"Doc comment for parameter \"$rev\" missing","source":"MediaWiki.Commenting.FunctionComment.MissingParamTag","severity":5,"fixable":false,"type":"ERROR","line":263,"column":5},{"message":"Missing parameter type","source":"MediaWiki.Commenting.FunctionComment.MissingParamType","severity":5,"fixable":false,"type":"ERROR","line":264,"column":8},{"message":"Return type missing for @return tag in function comment","source":"MediaWiki.Commenting.FunctionComment.MissingReturnType","severity":5,"fixable":false,"type":"ERROR","line":265,"column":8},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":265,"column":15},{"message":"Assignment expression not allowed within \"return\".","source":"MediaWiki.Usage.AssignmentInReturn.AssignmentInReturn","severity":5,"fixable":false,"type":"ERROR","line":272,"column":13},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":285,"column":1},{"message":"Assignment expression not allowed within \"return\".","source":"MediaWiki.Usage.AssignmentInReturn.AssignmentInReturn","severity":5,"fixable":false,"type":"ERROR","line":289,"column":13},{"message":"Tabs must be used to indent lines; spaces are not allowed","source":"Generic.WhiteSpace.DisallowSpaceIndent.SpacesUsed","severity":5,"fixable":true,"type":"ERROR","line":303,"column":1},{"message":"\"$_GET\" superglobals should not be accessed.","source":"MediaWiki.Usage.SuperGlobalsUsage.SuperGlobals","severity":5,"fixable":false,"type":"ERROR","line":305,"column":32},{"message":"\"$_GET\" superglobals should not be accessed.","source":"MediaWiki.Usage.SuperGlobalsUsage.SuperGlobals","severity":5,"fixable":false,"type":"ERROR","line":306,"column":63},{"message":"Assignment expression not allowed within \"return\".","source":"MediaWiki.Usage.AssignmentInReturn.AssignmentInReturn","severity":5,"fixable":false,"type":"ERROR","line":311,"column":17},{"message":"Assignment expression not allowed within \"return\".","source":"MediaWiki.Usage.AssignmentInReturn.AssignmentInReturn","severity":5,"fixable":false,"type":"ERROR","line":325,"column":13},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":330,"column":1},{"message":"Tabs must be used to indent lines; spaces are not allowed","source":"Generic.WhiteSpace.DisallowSpaceIndent.SpacesUsed","severity":5,"fixable":true,"type":"ERROR","line":335,"column":1},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":335,"column":1},{"message":"Assignment expression not allowed within \"return\".","source":"MediaWiki.Usage.AssignmentInReturn.AssignmentInReturn","severity":5,"fixable":false,"type":"ERROR","line":349,"column":9},{"message":"Line exceeds 120 characters; contains 132 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":349,"column":125},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":349,"column":125},{"message":"Expected 1 blank line after function; 0 found","source":"Squiz.WhiteSpace.FunctionSpacing.After","severity":5,"fixable":true,"type":"ERROR","line":350,"column":5},{"message":"Tabs must be used to indent lines; spaces are not allowed","source":"Generic.WhiteSpace.DisallowSpaceIndent.SpacesUsed","severity":5,"fixable":true,"type":"ERROR","line":355,"column":1},{"message":"Tabs must be used to indent lines; spaces are not allowed","source":"Generic.WhiteSpace.DisallowSpaceIndent.SpacesUsed","severity":5,"fixable":true,"type":"ERROR","line":356,"column":1},{"message":"Variable assignment found within a condition. Did you mean to do a comparison ?","source":"Generic.CodeAnalysis.AssignmentInCondition.Found","severity":5,"fixable":false,"type":"WARNING","line":357,"column":33},{"message":"Tabs must be used to indent lines; spaces are not allowed","source":"Generic.WhiteSpace.DisallowSpaceIndent.SpacesUsed","severity":5,"fixable":true,"type":"ERROR","line":363,"column":1},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":363,"column":1},{"message":"Expected 1 blank line after function; 0 found","source":"Squiz.WhiteSpace.FunctionSpacing.After","severity":5,"fixable":true,"type":"ERROR","line":366,"column":5},{"message":"Doc comment for parameter \"$text\" missing","source":"MediaWiki.Commenting.FunctionComment.MissingParamTag","severity":5,"fixable":false,"type":"ERROR","line":367,"column":5},{"message":"Variable assignment found within a condition. Did you mean to do a comparison ?","source":"Generic.CodeAnalysis.AssignmentInCondition.Found","severity":5,"fixable":false,"type":"WARNING","line":371,"column":25},{"message":"Tabs must be used to indent lines; spaces are not allowed","source":"Generic.WhiteSpace.DisallowSpaceIndent.SpacesUsed","severity":5,"fixable":true,"type":"ERROR","line":377,"column":1},{"message":"Expected 1 blank line after function; 0 found","source":"Squiz.WhiteSpace.FunctionSpacing.After","severity":5,"fixable":true,"type":"ERROR","line":380,"column":5},{"message":"Variable assignment found within a condition. Did you mean to do a comparison ?","source":"Generic.CodeAnalysis.AssignmentInCondition.Found","severity":5,"fixable":false,"type":"WARNING","line":387,"column":39},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":390,"column":14},{"message":"Tabs must be used to indent lines; spaces are not allowed","source":"Generic.WhiteSpace.DisallowSpaceIndent.SpacesUsed","severity":5,"fixable":true,"type":"ERROR","line":393,"column":1},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":397,"column":1},{"message":"Expected 1 blank line after function; 0 found","source":"Squiz.WhiteSpace.FunctionSpacing.After","severity":5,"fixable":true,"type":"ERROR","line":406,"column":5},{"message":"Must use \"self::\" for local static member reference","source":"Squiz.Classes.SelfMemberReference.NotUsed","severity":5,"fixable":true,"type":"ERROR","line":426,"column":26},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":432,"column":1},{"message":"Expected 1 space after WHILE keyword; 0 found","source":"Squiz.ControlStructures.ControlSignature.SpaceAfterKeyword","severity":5,"fixable":true,"type":"ERROR","line":439,"column":15},{"message":"Line exceeds 120 characters; contains 129 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":440,"column":129},{"message":"Tabs must be used to indent lines; spaces are not allowed","source":"Generic.WhiteSpace.DisallowSpaceIndent.SpacesUsed","severity":5,"fixable":true,"type":"ERROR","line":442,"column":1},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":442,"column":1},{"message":"Tabs must be used to indent lines; spaces are not allowed","source":"Generic.WhiteSpace.DisallowSpaceIndent.SpacesUsed","severity":5,"fixable":true,"type":"ERROR","line":444,"column":1},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":444,"column":1},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":447,"column":1},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":453,"column":1},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":457,"column":1},{"message":"Line exceeds 120 characters; contains 121 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":458,"column":121},{"message":"Expected 1 blank line after function; 0 found","source":"Squiz.WhiteSpace.FunctionSpacing.After","severity":5,"fixable":true,"type":"ERROR","line":464,"column":5},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":473,"column":1},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":486,"column":1},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":489,"column":1},{"message":"Tabs must be used to indent lines; spaces are not allowed","source":"Generic.WhiteSpace.DisallowSpaceIndent.SpacesUsed","severity":5,"fixable":true,"type":"ERROR","line":496,"column":1},{"message":"Tabs must be used to indent lines; spaces are not allowed","source":"Generic.WhiteSpace.DisallowSpaceIndent.SpacesUsed","severity":5,"fixable":true,"type":"ERROR","line":497,"column":1},{"message":"Tabs must be used to indent lines; spaces are not allowed","source":"Generic.WhiteSpace.DisallowSpaceIndent.SpacesUsed","severity":5,"fixable":true,"type":"ERROR","line":498,"column":1},{"message":"Tabs must be used to indent lines; spaces are not allowed","source":"Generic.WhiteSpace.DisallowSpaceIndent.SpacesUsed","severity":5,"fixable":true,"type":"ERROR","line":499,"column":1},{"message":"Tabs must be used to indent lines; spaces are not allowed","source":"Generic.WhiteSpace.DisallowSpaceIndent.SpacesUsed","severity":5,"fixable":true,"type":"ERROR","line":500,"column":1},{"message":"Expected 1 blank line after function; 0 found","source":"Squiz.WhiteSpace.FunctionSpacing.After","severity":5,"fixable":true,"type":"ERROR","line":501,"column":5},{"message":"Tabs must be used to indent lines; spaces are not allowed","source":"Generic.WhiteSpace.DisallowSpaceIndent.SpacesUsed","severity":5,"fixable":true,"type":"ERROR","line":512,"column":1},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":512,"column":1},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":517,"column":1},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":519,"column":1},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":522,"column":1},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":527,"column":1},{"message":"Expected 1 blank line after function; 0 found","source":"Squiz.WhiteSpace.FunctionSpacing.After","severity":5,"fixable":true,"type":"ERROR","line":536,"column":5},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":542,"column":69},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":544,"column":1},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":552,"column":86},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":563,"column":1},{"message":"Expected 1 blank line after function; 0 found","source":"Squiz.WhiteSpace.FunctionSpacing.After","severity":5,"fixable":true,"type":"ERROR","line":567,"column":5},{"message":"Must use \"self::\" for local static member reference","source":"Squiz.Classes.SelfMemberReference.NotUsed","severity":5,"fixable":true,"type":"ERROR","line":586,"column":55},{"message":"Must use \"self::\" for local static member reference","source":"Squiz.Classes.SelfMemberReference.NotUsed","severity":5,"fixable":true,"type":"ERROR","line":587,"column":64},{"message":"Line exceeds 120 characters; contains 122 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":587,"column":122},{"message":"Expected 1 blank line after function; 0 found","source":"Squiz.WhiteSpace.FunctionSpacing.After","severity":5,"fixable":true,"type":"ERROR","line":589,"column":5},{"message":"Doc comment for parameter \"$userId\" missing","source":"MediaWiki.Commenting.FunctionComment.MissingParamTag","severity":5,"fixable":false,"type":"ERROR","line":590,"column":5},{"message":"Doc comment for parameter $conds does not match actual variable name $userId","source":"MediaWiki.Commenting.FunctionComment.ParamNameNoMatch","severity":5,"fixable":false,"type":"ERROR","line":591,"column":8},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":604,"column":1},{"message":"Expected 1 space between the comma and \"$conds\". Found: 2 spaces","source":"Universal.WhiteSpace.CommaSpacing.TooMuchSpaceAfterInFunctionCall","severity":5,"fixable":true,"type":"ERROR","line":612,"column":33},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":616,"column":1},{"message":"Expected 1 space between the comma and \"$conds\". Found: 2 spaces","source":"Universal.WhiteSpace.CommaSpacing.TooMuchSpaceAfterInFunctionCall","severity":5,"fixable":true,"type":"ERROR","line":624,"column":41},{"message":"Expected 1 blank line after function; 0 found","source":"Squiz.WhiteSpace.FunctionSpacing.After","severity":5,"fixable":true,"type":"ERROR","line":627,"column":5},{"message":"Long list syntax is not allowed","source":"Universal.Lists.DisallowLongListSyntax.Found","severity":5,"fixable":true,"type":"ERROR","line":635,"column":13},{"message":"Expected 1 blank line after function; 0 found","source":"Squiz.WhiteSpace.FunctionSpacing.After","severity":5,"fixable":true,"type":"ERROR","line":647,"column":5},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":659,"column":6},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":660,"column":1},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":670,"column":1},{"message":"Comment star tag not aligned with open tag","source":"MediaWiki.Commenting.DocComment.SyntaxAlignedDocStar","severity":5,"fixable":true,"type":"ERROR","line":672,"column":6},{"message":"Comment star tag not aligned with open tag","source":"MediaWiki.Commenting.DocComment.SyntaxAlignedDocStar","severity":5,"fixable":true,"type":"ERROR","line":673,"column":6},{"message":"Comment star tag not aligned with open tag","source":"MediaWiki.Commenting.DocComment.SyntaxAlignedDocStar","severity":5,"fixable":true,"type":"ERROR","line":674,"column":6},{"message":"Comment close tag not aligned with open tag","source":"MediaWiki.Commenting.DocComment.SyntaxAlignedDocClose","severity":5,"fixable":true,"type":"ERROR","line":675,"column":6},{"message":"Expected 1 blank line after function; 0 found","source":"Squiz.WhiteSpace.FunctionSpacing.After","severity":5,"fixable":true,"type":"ERROR","line":689,"column":5},{"message":"Expected 1 blank line after function; 0 found","source":"Squiz.WhiteSpace.FunctionSpacing.After","severity":5,"fixable":true,"type":"ERROR","line":703,"column":5},{"message":"Expected 1 blank line after function; 0 found","source":"Squiz.WhiteSpace.FunctionSpacing.After","severity":5,"fixable":true,"type":"ERROR","line":721,"column":5},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":733,"column":1},{"message":"Doc comment for parameter \"$keyspace\" missing","source":"MediaWiki.Commenting.FunctionComment.MissingParamTag","severity":5,"fixable":false,"type":"ERROR","line":734,"column":5},{"message":"Tabs must be used to indent lines; spaces are not allowed","source":"Generic.WhiteSpace.DisallowSpaceIndent.SpacesUsed","severity":5,"fixable":true,"type":"ERROR","line":735,"column":1},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":736,"column":15},{"message":"Doc comment for parameter $keyspaceto does not match actual variable name $keyspace","source":"MediaWiki.Commenting.FunctionComment.ParamNameNoMatch","severity":5,"fixable":false,"type":"ERROR","line":737,"column":8},{"message":"Method name \"random_str\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":740,"column":19},{"message":"Line exceeds 120 characters; contains 128 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":740,"column":128},{"message":"Tabs must be used to indent lines; spaces are not allowed","source":"Generic.WhiteSpace.DisallowSpaceIndent.SpacesUsed","severity":5,"fixable":true,"type":"ERROR","line":741,"column":1},{"message":"Tabs must be used to indent lines; spaces are not allowed","source":"Generic.WhiteSpace.DisallowSpaceIndent.SpacesUsed","severity":5,"fixable":true,"type":"ERROR","line":742,"column":1},{"message":"Tabs must be used to indent lines; spaces are not allowed","source":"Generic.WhiteSpace.DisallowSpaceIndent.SpacesUsed","severity":5,"fixable":true,"type":"ERROR","line":743,"column":1},{"message":"Tabs must be used to indent lines; spaces are not allowed","source":"Generic.WhiteSpace.DisallowSpaceIndent.SpacesUsed","severity":5,"fixable":true,"type":"ERROR","line":744,"column":1},{"message":"Tabs must be used to indent lines; spaces are not allowed","source":"Generic.WhiteSpace.DisallowSpaceIndent.SpacesUsed","severity":5,"fixable":true,"type":"ERROR","line":745,"column":1},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":751,"column":1},{"message":"Whitespace found at end of line","source":"Squiz.WhiteSpace.SuperfluousWhitespace.EndLine","severity":5,"fixable":true,"type":"ERROR","line":755,"column":44},{"message":"Tabs must be used to indent lines; spaces are not allowed","source":"Generic.WhiteSpace.DisallowSpaceIndent.SpacesUsed","severity":5,"fixable":true,"type":"ERROR","line":757,"column":1},{"message":"Tabs must be used to indent lines; spaces are not allowed","source":"Generic.WhiteSpace.DisallowSpaceIndent.SpacesUsed","severity":5,"fixable":true,"type":"ERROR","line":758,"column":1},{"message":"Tabs must be used to indent lines; spaces are not allowed","source":"Generic.WhiteSpace.DisallowSpaceIndent.SpacesUsed","severity":5,"fixable":true,"type":"ERROR","line":759,"column":1},{"message":"Tabs must be used to indent lines; spaces are not allowed","source":"Generic.WhiteSpace.DisallowSpaceIndent.SpacesUsed","severity":5,"fixable":true,"type":"ERROR","line":760,"column":1},{"message":"Tabs must be used to indent lines; spaces are not allowed","source":"Generic.WhiteSpace.DisallowSpaceIndent.SpacesUsed","severity":5,"fixable":true,"type":"ERROR","line":762,"column":1}]}}}
--- end ---
PHPCS run failed
$ vendor/bin/phpcbf
--- stdout ---
PHPCBF RESULT SUMMARY
--------------------------------------------------------------------------------
FILE FIXED REMAINING
--------------------------------------------------------------------------------
/src/repo/includes/PageEncryptionRevisionLookup.php 4 0
/src/repo/includes/api/PageEncryptionApiSetEncryptionKey.php 4 1
/src/repo/includes/specials/PageEncryptionPermissionsPager.php 5 1
...repo/includes/specials/SpecialPageEncryptionPermissions.php 9 8
/src/repo/includes/PageEncryptionHooks.php 51 13
/src/repo/includes/PageEncryption.php 138 30
--------------------------------------------------------------------------------
A TOTAL OF 211 ERRORS WERE FIXED IN 6 FILES
--------------------------------------------------------------------------------
Time: 1.05 secs; Memory: 8MB
--- end ---
$ vendor/bin/phpcs --report=json
--- stdout ---
{"totals":{"errors":24,"warnings":29,"fixable":0},"files":{"\/src\/repo\/includes\/PageEncryptionRevisionLookup.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/PageEncryption.alias.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/includes\/api\/PageEncryptionApiSetEncryptionKey.php":{"errors":0,"warnings":1,"messages":[{"message":"Line exceeds 120 characters; contains 122 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":75,"column":122}]},"\/src\/repo\/includes\/api\/PageEncryptionApiCheckLatestVersion.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/includes\/specials\/PageEncryptionPermissionsPager.php":{"errors":0,"warnings":1,"messages":[{"message":"Line exceeds 120 characters; contains 137 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":122,"column":137}]},"\/src\/repo\/includes\/specials\/SpecialPageEncryptionPermissions.php":{"errors":0,"warnings":8,"messages":[{"message":"Line exceeds 120 characters; contains 135 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":95,"column":135},{"message":"Line exceeds 120 characters; contains 121 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":128,"column":9},{"message":"Line exceeds 120 characters; contains 189 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":129,"column":9},{"message":"Line exceeds 120 characters; contains 143 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":135,"column":143},{"message":"Line exceeds 120 characters; contains 134 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":140,"column":134},{"message":"Line exceeds 120 characters; contains 126 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":144,"column":126},{"message":"Line exceeds 120 characters; contains 127 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":291,"column":127},{"message":"Line exceeds 120 characters; contains 129 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":292,"column":129}]},"\/src\/repo\/includes\/PageEncryptionHooks.php":{"errors":1,"warnings":12,"messages":[{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":96,"column":25},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":116,"column":25},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":140,"column":25},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":152,"column":28},{"message":"Line exceeds 120 characters; contains 197 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":218,"column":197},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":276,"column":19},{"message":"Line exceeds 120 characters; contains 153 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":289,"column":153},{"message":"Line exceeds 120 characters; contains 149 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":307,"column":149},{"message":"Line exceeds 120 characters; contains 155 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":314,"column":155},{"message":"Line exceeds 120 characters; contains 140 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":341,"column":140},{"message":"Line exceeds 120 characters; contains 143 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":345,"column":143},{"message":"Line exceeds 120 characters; contains 121 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":403,"column":121},{"message":"Line exceeds 120 characters; contains 122 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":417,"column":9}]},"\/src\/repo\/includes\/PageEncryption.php":{"errors":23,"warnings":7,"messages":[{"message":"Class constants must be uppercase; expected DECRYPTIONFAILED but found DecryptionFailed","source":"Generic.NamingConventions.UpperCaseConstantName.ClassConstantNotUpperCase","severity":5,"fixable":false,"type":"ERROR","line":47,"column":18},{"message":"Class constants must be uppercase; expected DECRYPTIONFROMACCESSCODE but found DecryptionFromAccessCode","source":"Generic.NamingConventions.UpperCaseConstantName.ClassConstantNotUpperCase","severity":5,"fixable":false,"type":"ERROR","line":50,"column":18},{"message":"Class constants must be uppercase; expected ENCRYPTEDPAGE but found EncryptedPage","source":"Generic.NamingConventions.UpperCaseConstantName.ClassConstantNotUpperCase","severity":5,"fixable":false,"type":"ERROR","line":52,"column":18},{"message":"Doc comment for parameter \"$password\" missing","source":"MediaWiki.Commenting.FunctionComment.MissingParamTag","severity":5,"fixable":false,"type":"ERROR","line":75,"column":5},{"message":"Return type missing for @return tag in function comment","source":"MediaWiki.Commenting.FunctionComment.MissingReturnType","severity":5,"fixable":false,"type":"ERROR","line":140,"column":8},{"message":"Return type missing for @return tag in function comment","source":"MediaWiki.Commenting.FunctionComment.MissingReturnType","severity":5,"fixable":false,"type":"ERROR","line":164,"column":8},{"message":"\"$_GET\" superglobals should not be accessed.","source":"MediaWiki.Usage.SuperGlobalsUsage.SuperGlobals","severity":5,"fixable":false,"type":"ERROR","line":255,"column":41},{"message":"Doc comment for parameter \"$rev\" missing","source":"MediaWiki.Commenting.FunctionComment.MissingParamTag","severity":5,"fixable":false,"type":"ERROR","line":269,"column":5},{"message":"Missing parameter type","source":"MediaWiki.Commenting.FunctionComment.MissingParamType","severity":5,"fixable":false,"type":"ERROR","line":270,"column":8},{"message":"Return type missing for @return tag in function comment","source":"MediaWiki.Commenting.FunctionComment.MissingReturnType","severity":5,"fixable":false,"type":"ERROR","line":271,"column":8},{"message":"Assignment expression not allowed within \"return\".","source":"MediaWiki.Usage.AssignmentInReturn.AssignmentInReturn","severity":5,"fixable":false,"type":"ERROR","line":278,"column":13},{"message":"Assignment expression not allowed within \"return\".","source":"MediaWiki.Usage.AssignmentInReturn.AssignmentInReturn","severity":5,"fixable":false,"type":"ERROR","line":295,"column":13},{"message":"\"$_GET\" superglobals should not be accessed.","source":"MediaWiki.Usage.SuperGlobalsUsage.SuperGlobals","severity":5,"fixable":false,"type":"ERROR","line":311,"column":32},{"message":"\"$_GET\" superglobals should not be accessed.","source":"MediaWiki.Usage.SuperGlobalsUsage.SuperGlobals","severity":5,"fixable":false,"type":"ERROR","line":312,"column":63},{"message":"Assignment expression not allowed within \"return\".","source":"MediaWiki.Usage.AssignmentInReturn.AssignmentInReturn","severity":5,"fixable":false,"type":"ERROR","line":317,"column":17},{"message":"Assignment expression not allowed within \"return\".","source":"MediaWiki.Usage.AssignmentInReturn.AssignmentInReturn","severity":5,"fixable":false,"type":"ERROR","line":331,"column":13},{"message":"Assignment expression not allowed within \"return\".","source":"MediaWiki.Usage.AssignmentInReturn.AssignmentInReturn","severity":5,"fixable":false,"type":"ERROR","line":355,"column":9},{"message":"Line exceeds 120 characters; contains 124 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":355,"column":124},{"message":"Variable assignment found within a condition. Did you mean to do a comparison ?","source":"Generic.CodeAnalysis.AssignmentInCondition.Found","severity":5,"fixable":false,"type":"WARNING","line":364,"column":33},{"message":"Doc comment for parameter \"$text\" missing","source":"MediaWiki.Commenting.FunctionComment.MissingParamTag","severity":5,"fixable":false,"type":"ERROR","line":375,"column":5},{"message":"Variable assignment found within a condition. Did you mean to do a comparison ?","source":"Generic.CodeAnalysis.AssignmentInCondition.Found","severity":5,"fixable":false,"type":"WARNING","line":379,"column":25},{"message":"Variable assignment found within a condition. Did you mean to do a comparison ?","source":"Generic.CodeAnalysis.AssignmentInCondition.Found","severity":5,"fixable":false,"type":"WARNING","line":396,"column":39},{"message":"Line exceeds 120 characters; contains 129 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":450,"column":129},{"message":"Line exceeds 120 characters; contains 121 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":468,"column":121},{"message":"Doc comment for parameter \"$userId\" missing","source":"MediaWiki.Commenting.FunctionComment.MissingParamTag","severity":5,"fixable":false,"type":"ERROR","line":605,"column":5},{"message":"Doc comment for parameter $conds does not match actual variable name $userId","source":"MediaWiki.Commenting.FunctionComment.ParamNameNoMatch","severity":5,"fixable":false,"type":"ERROR","line":606,"column":8},{"message":"Doc comment for parameter \"$keyspace\" missing","source":"MediaWiki.Commenting.FunctionComment.MissingParamTag","severity":5,"fixable":false,"type":"ERROR","line":754,"column":5},{"message":"Doc comment for parameter $keyspaceto does not match actual variable name $keyspace","source":"MediaWiki.Commenting.FunctionComment.ParamNameNoMatch","severity":5,"fixable":false,"type":"ERROR","line":757,"column":8},{"message":"Method name \"random_str\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":760,"column":19},{"message":"Line exceeds 120 characters; contains 128 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":760,"column":128}]}}}
--- end ---
* sniff Generic.NamingConventions.UpperCaseConstantName.ClassConstantNotUpperCase is now failing
* sniff MediaWiki.Usage.AssignmentInReturn.AssignmentInReturn is now failing
* sniff Generic.CodeAnalysis.AssignmentInCondition.Found is now failing
* sniff MediaWiki.Commenting.FunctionComment.ParamNameNoMatch is now failing
* sniff MediaWiki.Commenting.FunctionComment.MissingParamType is now failing
* sniff MediaWiki.Usage.SuperGlobalsUsage.SuperGlobals is now failing
* sniff MediaWiki.Commenting.FunctionComment.MissingParamTag is now failing
* sniff MediaWiki.Commenting.FunctionComment.MissingReturnType is now failing
* sniff MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic is now failing
* sniff MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment is now failing
$ git checkout .phpcs.xml
--- stderr ---
Updated 1 path from the index
--- stdout ---
--- end ---
$ /usr/bin/composer install
--- stderr ---
Installing dependencies from lock file (including require-dev)
Verifying lock file contents can be installed on current platform.
Nothing to install, update or remove
Generating autoload files
14 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
--- stdout ---
--- end ---
$ /usr/bin/composer test
--- stderr ---
> parallel-lint . --exclude vendor --exclude node_modules
> phpcs -sp --cache
> minus-x check .
--- stdout ---
PHP 8.2.7 | 10 parallel jobs
........ 8/8 (100%)
Checked 8 files in 0.1 seconds
No syntax error found
........ 8 / 8 (100%)
Time: 96ms; Memory: 8MB
MinusX
======
Processing /src/repo...
..............................
All good!
--- end ---
$ /usr/bin/npm audit --json
--- stdout ---
{
"auditReportVersion": 2,
"vulnerabilities": {},
"metadata": {
"vulnerabilities": {
"info": 0,
"low": 0,
"moderate": 0,
"high": 0,
"critical": 0,
"total": 0
},
"dependencies": {
"prod": 1,
"dev": 426,
"optional": 0,
"peer": 7,
"peerOptional": 0,
"total": 426
}
}
}
--- end ---
$ package-lock-lint package-lock.json
--- stdout ---
Checking package-lock.json
--- end ---
build: Updating dependencies
composer:
* mediawiki/mediawiki-codesniffer: 41.0.0 → 43.0.0
The following sniffs are failing and were disabled:
* Generic.CodeAnalysis.AssignmentInCondition.Found
* Generic.NamingConventions.UpperCaseConstantName.ClassConstantNotUpperCase
* MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic
* MediaWiki.Commenting.FunctionComment.MissingParamTag
* MediaWiki.Commenting.FunctionComment.MissingParamType
* MediaWiki.Commenting.FunctionComment.MissingReturnType
* MediaWiki.Commenting.FunctionComment.ParamNameNoMatch
* MediaWiki.Usage.AssignmentInReturn.AssignmentInReturn
* MediaWiki.Usage.SuperGlobalsUsage.SuperGlobals
* MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment
* php-parallel-lint/php-parallel-lint: 1.3.2 → 1.4.0
npm:
* eslint-config-wikimedia: 0.24.0 → 0.27.0
The following rules are failing and were disabled:
* no-fallthrough
* no-console
* no-unused-vars
* no-tabs
* no-alert
* no-redeclare
* no-unused-expressions
* no-unreachable
* compat/compat
* no-sequences
* no-undef
* block-scoped-var
* grunt-eslint: 24.0.0 → 24.3.0
* grunt-stylelint: 0.18.0 → 0.19.0
* stylelint-config-wikimedia: 0.14.0 → 0.16.1
The following rules are failing and were disabled:
* declaration-property-unit-disallowed-list
* selector-max-id
* stylistic/indentation
$ git add .
--- stdout ---
--- end ---
$ git commit -F /tmp/tmprv6x49jx
--- stdout ---
[master dfee938] build: Updating dependencies
16 files changed, 2651 insertions(+), 1607 deletions(-)
--- end ---
$ git format-patch HEAD~1 --stdout
--- stdout ---
From dfee93853e9a854ac644e9d836b14008d2bec3f2 Mon Sep 17 00:00:00 2001
From: libraryupgrader <tools.libraryupgrader@tools.wmflabs.org>
Date: Sat, 27 Apr 2024 12:16:52 +0000
Subject: [PATCH] build: Updating dependencies
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
composer:
* mediawiki/mediawiki-codesniffer: 41.0.0 → 43.0.0
The following sniffs are failing and were disabled:
* Generic.CodeAnalysis.AssignmentInCondition.Found
* Generic.NamingConventions.UpperCaseConstantName.ClassConstantNotUpperCase
* MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic
* MediaWiki.Commenting.FunctionComment.MissingParamTag
* MediaWiki.Commenting.FunctionComment.MissingParamType
* MediaWiki.Commenting.FunctionComment.MissingReturnType
* MediaWiki.Commenting.FunctionComment.ParamNameNoMatch
* MediaWiki.Usage.AssignmentInReturn.AssignmentInReturn
* MediaWiki.Usage.SuperGlobalsUsage.SuperGlobals
* MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment
* php-parallel-lint/php-parallel-lint: 1.3.2 → 1.4.0
npm:
* eslint-config-wikimedia: 0.24.0 → 0.27.0
The following rules are failing and were disabled:
* no-fallthrough
* no-console
* no-unused-vars
* no-tabs
* no-alert
* no-redeclare
* no-unused-expressions
* no-unreachable
* compat/compat
* no-sequences
* no-undef
* block-scoped-var
* grunt-eslint: 24.0.0 → 24.3.0
* grunt-stylelint: 0.18.0 → 0.19.0
* stylelint-config-wikimedia: 0.14.0 → 0.16.1
The following rules are failing and were disabled:
* declaration-property-unit-disallowed-list
* selector-max-id
* stylistic/indentation
Change-Id: Ie565b07c85b9de6a73e9b816401ccef9bb3f0d82
---
.eslintrc.json | 14 +-
.phpcs.xml | 10 +
.stylelintrc.json | 7 +-
composer.json | 9 +-
includes/PageEncryption.php | 244 +-
includes/PageEncryptionHooks.php | 93 +-
includes/PageEncryptionRevisionLookup.php | 4 +-
.../api/PageEncryptionApiSetEncryptionKey.php | 8 +-
.../PageEncryptionPermissionsPager.php | 10 +-
.../SpecialPageEncryptionPermissions.php | 16 +-
package-lock.json | 3259 +++++++++++------
package.json | 8 +-
resources/PageEncryptionPassword.js | 374 +-
resources/PageEncryptionPasswordValidator.js | 71 +-
resources/PageEncryptionPermissions.js | 112 +-
resources/style.css | 19 +-
16 files changed, 2651 insertions(+), 1607 deletions(-)
diff --git a/.eslintrc.json b/.eslintrc.json
index 630ef5f..c52a2cb 100644
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -9,6 +9,18 @@
"camelcase": "off",
"no-var": "off",
"no-jquery/no-global-selector": "warn",
- "no-jquery/no-sizzle": "warn"
+ "no-jquery/no-sizzle": "warn",
+ "no-fallthrough": "warn",
+ "no-console": "warn",
+ "no-unused-vars": "warn",
+ "no-tabs": "warn",
+ "no-redeclare": "warn",
+ "no-unused-expressions": "warn",
+ "no-unreachable": "warn",
+ "no-sequences": "warn",
+ "no-undef": "warn",
+ "block-scoped-var": "warn",
+ "compat/compat": "warn",
+ "no-alert": "warn"
}
}
diff --git a/.phpcs.xml b/.phpcs.xml
index 4b70135..0a6a1b2 100644
--- a/.phpcs.xml
+++ b/.phpcs.xml
@@ -1,8 +1,18 @@
<?xml version="1.0"?>
<ruleset>
<rule ref="./vendor/mediawiki/mediawiki-codesniffer/MediaWiki">
+ <exclude name="Generic.CodeAnalysis.AssignmentInCondition.Found" />
<exclude name="Generic.Files.LineLength.TooLong" />
+ <exclude name="Generic.NamingConventions.UpperCaseConstantName.ClassConstantNotUpperCase" />
+ <exclude name="MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic" />
+ <exclude name="MediaWiki.Commenting.FunctionComment.MissingParamTag" />
+ <exclude name="MediaWiki.Commenting.FunctionComment.MissingParamType" />
+ <exclude name="MediaWiki.Commenting.FunctionComment.MissingReturnType" />
+ <exclude name="MediaWiki.Commenting.FunctionComment.ParamNameNoMatch" />
<exclude name="MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName" />
+ <exclude name="MediaWiki.Usage.AssignmentInReturn.AssignmentInReturn" />
+ <exclude name="MediaWiki.Usage.SuperGlobalsUsage.SuperGlobals" />
+ <exclude name="MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment" />
</rule>
<file>.</file>
<arg name="extensions" value="php"/>
diff --git a/.stylelintrc.json b/.stylelintrc.json
index 2c90730..f40fa97 100644
--- a/.stylelintrc.json
+++ b/.stylelintrc.json
@@ -1,3 +1,8 @@
{
- "extends": "stylelint-config-wikimedia"
+ "extends": "stylelint-config-wikimedia",
+ "rules": {
+ "declaration-property-unit-disallowed-list": null,
+ "selector-max-id": null,
+ "stylistic/indentation": null
+ }
}
diff --git a/composer.json b/composer.json
index 0fa7b57..db97a97 100644
--- a/composer.json
+++ b/composer.json
@@ -1,9 +1,9 @@
{
"require-dev": {
- "mediawiki/mediawiki-codesniffer": "41.0.0",
+ "mediawiki/mediawiki-codesniffer": "43.0.0",
"mediawiki/minus-x": "1.1.1",
"php-parallel-lint/php-console-highlighter": "1.0.0",
- "php-parallel-lint/php-parallel-lint": "1.3.2"
+ "php-parallel-lint/php-parallel-lint": "1.4.0"
},
"scripts": {
"test": [
@@ -19,5 +19,10 @@
},
"require": {
"defuse/php-encryption": "^2.3"
+ },
+ "config": {
+ "allow-plugins": {
+ "dealerdirect/phpcodesniffer-composer-installer": true
+ }
}
}
diff --git a/includes/PageEncryption.php b/includes/PageEncryption.php
index b3c1de7..20bdb7e 100644
--- a/includes/PageEncryption.php
+++ b/includes/PageEncryption.php
@@ -21,38 +21,39 @@
* @copyright Copyright ©2023, https://wikisphere.org
*/
use Defuse\Crypto\Crypto;
-use Defuse\Crypto\KeyProtectedByPassword;
use Defuse\Crypto\Key;
+use Defuse\Crypto\KeyProtectedByPassword;
use MediaWiki\MainConfigNames;
use MediaWiki\MediaWikiServices;
-use MediaWiki\Revision\RevisionStore;
use MediaWiki\Revision\MutableRevisionRecord;
+use MediaWiki\Revision\RevisionStore;
use MediaWiki\Revision\RevisionStoreRecord;
-use MediaWiki\Session\SessionManager;
+
class PageEncryption {
/** @var User */
public static $User;
/** @var userGroupManager */
public static $userGroupManager;
-
+
/** @var encryptedNamespace */
public static $encryptedNamespace = 2246;
-
+
/** @var cookieUserKey */
public static $cookieUserKey = 'pageencryption-userkey';
-
+
/** @var cachedMockUpRev */
public static $cachedMockUpRev = [];
/** @const DecryptionFailed */
public const DecryptionFailed = 1;
-
+
/** @const DecryptionFromAccessCode */
public const DecryptionFromAccessCode = 2;
/** @const EncryptedPage */
public const EncryptedPage = 3;
-
+
/** @var decryptionNotice */
public static $decryptionNotice = null;
+
/**
* @param User|null $user
*/
@@ -60,6 +61,7 @@ class PageEncryption {
self::$User = $user;
self::$userGroupManager = MediaWikiServices::getInstance()->getUserGroupManager();
}
+
/**
* @return User|null
*/
@@ -69,6 +71,7 @@ class PageEncryption {
}
return RequestContext::getMain()->getUser();
}
+
/**
* param string $password
* @return string
@@ -77,20 +80,21 @@ class PageEncryption {
// @see https://github.com/defuse/php-encryption/blob/master/docs/Tutorial.md
$protected_key = KeyProtectedByPassword::createRandomPasswordProtectedKey( $password );
$protected_key_encoded = $protected_key->saveToAsciiSafeString();
- $protected_key = KeyProtectedByPassword::loadFromAsciiSafeString( $protected_key_encoded );
-
- // @todo save to database
-
- return $protected_key;
+ $protected_key = KeyProtectedByPassword::loadFromAsciiSafeString( $protected_key_encoded );
+
+ // @todo save to database
+
+ return $protected_key;
}
+
/**
* @return array
*/
public static function getCookieOptions() {
$context = RequestContext::getMain();
$config = $context->getConfig();
-
- list(
+
+ [
$cookieSameSite,
$cookiePrefix,
$cookiePath,
@@ -98,7 +102,7 @@ class PageEncryption {
$cookieSecure,
$forceHTTPS,
$cookieHttpOnly,
- ) = ( class_exists( 'MediaWiki\MainConfigNames' ) ?
+ ] = ( class_exists( 'MediaWiki\MainConfigNames' ) ?
[
MainConfigNames::CookieSameSite,
MainConfigNames::CookiePrefix,
@@ -107,7 +111,7 @@ class PageEncryption {
MainConfigNames::CookieSecure,
MainConfigNames::ForceHTTPS,
MainConfigNames::CookieHttpOnly
- ] :
+ ] :
[
'CookieSameSite',
'CookiePrefix',
@@ -117,8 +121,8 @@ class PageEncryption {
'ForceHTTPS',
'CookieHttpOnly'
]
- );
-
+ );
+
// @codeCoverageIgnoreStart
return [
'prefix' => $config->get( $cookiePrefix ),
@@ -128,52 +132,53 @@ class PageEncryption {
|| $config->get( $forceHTTPS ),
'httpOnly' => $config->get( $cookieHttpOnly ),
'sameSite' => $config->get( $cookieSameSite )
- ];
- }
+ ];
+ }
+
/**
* @param string $cookieValue
- * @return
+ * @return
*/
public static function setCookie( $cookieValue ) {
- // setcookie( 'pageencryption-passwordkey', $protected_key_encoded, array $options = []): bool
- $context = RequestContext::getMain();
- $request = $context->getRequest();
+ // setcookie( 'pageencryption-passwordkey', $protected_key_encoded, array $options = []): bool
+ $context = RequestContext::getMain();
+ $request = $context->getRequest();
$response = $request->response();
- // $session = SessionManager::getGlobalSession();
+ // $session = SessionManager::getGlobalSession();
// $expiration = $session->getProvider()->getRememberUserDuration();
$cookieOptions = self::getCookieOptions();
-
+
$session = $request->getSession();
-
+
$sessionProvider = $session->getProvider();
// !( $session->getProvider() instanceof CookieSessionProvider )
// $info = $sessionProvider->provideSessionInfo( $request );
// $provider = $info->getProvider();
-
+
// @TODO subtract (current time - login time)
$expiryValue = $sessionProvider->getRememberUserDuration() + time();
return $response->setCookie( self::$cookieUserKey, $cookieValue, $expiryValue, $cookieOptions );
}
-
+
/**
- * @return
+ * @return
*/
public static function deleteCookie() {
$context = RequestContext::getMain();
- $request = $context->getRequest();
+ $request = $context->getRequest();
$response = $request->response();
-
+
// @see CookieSessionProvider unpersistSession
$cookies = [
self::$cookieUserKey => false,
];
$cookieOptions = self::getCookieOptions();
-
+
foreach ( $cookies as $key => $value ) {
$response->clearCookie( $key, $cookieOptions );
}
}
-
+
/**
* @param int $pageId
* @param Key $user_key
@@ -203,19 +208,20 @@ class PageEncryption {
try {
$text = Crypto::decrypt( $text, $user_key );
} catch ( Defuse\Crypto\Exception\WrongKeyOrModifiedCiphertextException $ex ) {
- continue;
+ continue;
}
-
+
return $text;
}
return false;
}
+
/**
* @param int $pageId
* @param string $password
* @return string|bool
*/
- public static function decryptFromAccessCode( $pageId, $password ) {
+ public static function decryptFromAccessCode( $pageId, $password ) {
$dbr = wfGetDB( DB_MASTER );
$rows = $dbr->select( 'pageencryption_permissions', '*', [ 'page_id' => $pageId, 'viewed' => null ] );
foreach ( $rows as $row ) {
@@ -223,28 +229,28 @@ class PageEncryption {
try {
$user_key = $protected_key->unlockKey( $password );
} catch ( Defuse\Crypto\Exception\WrongKeyOrModifiedCiphertextException $ex ) {
- continue;
+ continue;
}
$user_key_encoded = $user_key->saveToAsciiSafeString();
$context = RequestContext::getMain();
- $request = $context->getRequest();
- $response = $request->response();
+ $request = $context->getRequest();
+ $response = $request->response();
$cookieOptions = self::getCookieOptions();
$cookieValue = $user_key_encoded;
$expiryValue = 0;
$cookieOptions = self::getCookieOptions();
$cookieKey = self::$cookieUserKey . '-acode-' . $pageId;
$response->setCookie( $cookieKey, $cookieValue, $expiryValue, $cookieOptions );
-
+
// $ret = Key::loadFromAsciiSafeString( $user_key_encoded );
$text = $row->encrypted_content;
try {
$text = Crypto::decrypt( $text, $user_key );
} catch ( Defuse\Crypto\Exception\WrongKeyOrModifiedCiphertextException $ex ) {
- continue;
+ continue;
}
$date = date( 'Y-m-d H:i:s' );
-
+
// allow no-track
$viewed_metadata = ( empty( $_GET['no_track'] ) ? json_encode( [
'ip' => self::getIPAddress(),
@@ -259,10 +265,10 @@ class PageEncryption {
}
return false;
}
-
+
/**
* @param
- * @return
+ * @return
*/
public static function mockUpRevision( $rev ) {
// *** prevents error "Sessions are disabled for load entry point"
@@ -282,7 +288,7 @@ class PageEncryption {
if ( array_key_exists( $cacheKey, self::$cachedMockUpRev ) ) {
return self::$cachedMockUpRev[$cacheKey];
}
-
+
$content = $rev->getSlot( MediaWiki\Revision\SlotRecord::MAIN )->getContent();
if ( !( $content instanceof TextContent ) ) {
@@ -300,7 +306,7 @@ class PageEncryption {
try {
$user_key = Key::loadFromAsciiSafeString( $user_key_encoded );
} catch ( Defuse\Crypto\Exception\WrongKeyOrModifiedCiphertextException $ex ) {
- }
+ }
$text = self::decryptFromAccessCodeSession( $pageId, $user_key );
} elseif ( !empty( $_GET['acode'] ) ) {
$text = self::decryptFromAccessCode( $pageId, $_GET['acode'] );
@@ -327,12 +333,12 @@ class PageEncryption {
// should be instance of text
$contentHandler = $content->getContentHandler();
$modelId = $contentHandler->getModelID();
-
+
$slotContent = ContentHandler::makeContent( $text, $title, $modelId );
$revisionRecord = MutableRevisionRecord::newFromParentRevision( $rev );
$slots = $revisionRecord->getSlots();
$slots->setContent( MediaWiki\Revision\SlotRecord::MAIN, $slotContent );
-
+
$user = $rev->getUser();
$comment = $rev->getComment();
$row = [
@@ -346,24 +352,26 @@ class PageEncryption {
'rev_sha1' => $rev->getSha1(),
'page_latest' => $rev->getId(),
];
- return self::$cachedMockUpRev[$cacheKey] = new RevisionStoreRecord( $title, $user, $comment, (object)$row, $slots );
+ return self::$cachedMockUpRev[$cacheKey] = new RevisionStoreRecord( $title, $user, $comment, (object)$row, $slots );
}
+
/**
* @return string
*/
public static function getUserKey() {
- $context = RequestContext::getMain();
- $request = $context->getRequest();
+ $context = RequestContext::getMain();
+ $request = $context->getRequest();
if ( !$user_key_encoded = $request->getCookie( self::$cookieUserKey ) ) {
return false;
}
try {
$ret = Key::loadFromAsciiSafeString( $user_key_encoded );
} catch ( Defuse\Crypto\Exception\WrongKeyOrModifiedCiphertextException $ex ) {
-
+
}
return $ret;
}
+
/**
* @return false|string
*/
@@ -374,10 +382,11 @@ class PageEncryption {
try {
$text = Crypto::decrypt( $text, $user_key );
} catch ( Defuse\Crypto\Exception\WrongKeyOrModifiedCiphertextException $ex ) {
- return false;
+ return false;
}
return $text;
}
+
/**
* @param string $text
* @param string|null $user_key
@@ -387,14 +396,14 @@ class PageEncryption {
if ( !$user_key && !$user_key = self::getUserKey() ) {
return false;
}
- try {
+ try {
$text = Crypto::encrypt( $text, $user_key );
} catch ( Defuse\Crypto\Exception\WrongKeyOrModifiedCiphertextException $ex ) {
- return false;
+ return false;
}
return $text;
}
-
+
/**
* @return MediaWiki\User\UserGroupManager|null
*/
@@ -404,6 +413,7 @@ class PageEncryption {
}
return MediaWikiServices::getInstance()->getUserGroupManager();
}
+
/**
* @param User $user
* @param Title $title
@@ -423,38 +433,38 @@ class PageEncryption {
}
$row['created_by'] = $user->getId();
$row['page_id'] = $title->getArticleId();
- $wikiPage = \PageEncryption::getWikiPage( $title );
+ $wikiPage = self::getWikiPage( $title );
$revisionRecord = $wikiPage->getRevisionRecord();
$row['revision_id'] = $revisionRecord->getId();
do {
$password = self::random_str( 5 );
$row['encrypted_password'] = self::encryptSymmetric( $password );
-
+
$row_ = $dbr->selectRow(
'pageencryption_permissions',
'*',
[ 'page_id' => $row['page_id'], 'encrypted_password' => $row['encrypted_password'] ],
__METHOD__
);
- } while( $row_ !== false );
+ } while ( $row_ !== false );
$contentHandler = $revisionRecord->getSlot( MediaWiki\Revision\SlotRecord::MAIN )->getContent()->getContentHandler();
$modelId = $contentHandler->getModelID();
-
+
$content = $revisionRecord->getSlot( MediaWiki\Revision\SlotRecord::MAIN )->getContent();
-
+
// should be instance of text
$contentHandler = $content->getContentHandler();
-
+
$text = $content->getText();
$protected_key = KeyProtectedByPassword::createRandomPasswordProtectedKey( $password );
$protected_key_encoded = $protected_key->saveToAsciiSafeString();
$user_key = $protected_key->unlockKey( $password );
$text = self::encryptSymmetric( $text, $user_key );
-
+
$row['protected_key'] = $protected_key_encoded;
$row['encrypted_content'] = $text;
$row['expiration_date'] = null;
-
+
$res = $dbr->insert( 'pageencryption_permissions', $row + [ 'updated_at' => $date, 'created_at' => $date ] );
} else {
unset( $row['access_type'] );
@@ -462,6 +472,7 @@ class PageEncryption {
}
return $res;
}
+
/**
* @param string $protected_key
* @param string $password
@@ -470,7 +481,7 @@ class PageEncryption {
*/
public static function setUserKey( $protected_key, $password, &$message ) {
$protected_key = KeyProtectedByPassword::loadFromAsciiSafeString( $protected_key );
-
+
// @see https://github.com/defuse/php-encryption/blob/master/docs/classes/Crypto.md
try {
$user_key = $protected_key->unlockKey( $password );
@@ -483,22 +494,23 @@ class PageEncryption {
if ( $res === false ) {
$message = wfMessage( 'pageencryption-error-message-cannot-set-cookie' )->text();
}
-
+
return $res;
}
-
+
/**
* @param array $row
* @return bool
*/
public static function disableEncryptionKeyRecord( $row ) {
return $dbr->update(
- 'pageencryption_keys',
- [ 'enabled' => 0 ],
- [ 'id' => $row['id'] ],
- __METHOD__
- );
+ 'pageencryption_keys',
+ [ 'enabled' => 0 ],
+ [ 'id' => $row['id'] ],
+ __METHOD__
+ );
}
+
/**
* @param string $user_id
* @param string $password
@@ -509,22 +521,22 @@ class PageEncryption {
public static function setEncryptionKey( $user_id, $password, &$message, &$protected_key_encoded ) {
$protected_key = KeyProtectedByPassword::createRandomPasswordProtectedKey( $password );
$protected_key_encoded = $protected_key->saveToAsciiSafeString();
-
+
$row = [
'user_id' => $user_id,
'protected_key' => $protected_key_encoded,
];
-
+
$date = date( 'Y-m-d H:i:s' );
-
+
$dbr = wfGetDB( DB_MASTER );
$res = $dbr->insert( 'pageencryption_keys', $row + [ 'updated_at' => $date, 'created_at' => $date ] );
-
+
if ( !$res ) {
$message = wfMessage( 'pageencryption-error-message-cannot-save-encryptionkey' )->text();
return false;
}
-
+
$protected_key = KeyProtectedByPassword::loadFromAsciiSafeString( $protected_key_encoded );
$user_key = $protected_key->unlockKey( $password );
$user_key_encoded = $user_key->saveToAsciiSafeString();
@@ -534,14 +546,15 @@ class PageEncryption {
}
return $res;
}
+
/**
* @param Title $title
* @return bool
*/
public static function isEncryptedNamespace( $title ) {
- return $title->getNamespace() === self::$encryptedNamespace;
+ return $title->getNamespace() === self::$encryptedNamespace;
}
-
+
/**
* @see OutputPage addHelpLink
* @param OutputPage $outputPage
@@ -549,7 +562,7 @@ class PageEncryption {
public static function addIndicator( $outputPage ) {
$to = 'Extension:PageEncryption';
$toUrlencoded = wfUrlencode( str_replace( ' ', '_', $to ) );
- $helpUrl = "https://www.mediawiki.org/wiki/Special:MyLanguage/$toUrlencoded";
+ $helpUrl = "https://www.mediawiki.org/wiki/Special:MyLanguage/$toUrlencoded";
$text = '';
$link = Html::rawElement(
'a',
@@ -560,11 +573,12 @@ class PageEncryption {
],
$text
);
-
+
$outputPage->setIndicators( [
'pageencryption' => $link
] );
}
+
/**
* @param OutputPage $outputPage
* @param Title $title
@@ -583,10 +597,11 @@ class PageEncryption {
// httpOnly cookies cannot be accessed client-side, so we
// set a specific variable
'pageencryption-user-is-editor' => true,
- 'pageencryption-userkey-cookie-isSet' => \PageEncryption::getUserKey() !== false,
- 'pageencryption-protected-key-isSet' => is_array( \PageEncryption::getEncryptionKeyRecord( $user->getId() ) ),
+ 'pageencryption-userkey-cookie-isSet' => self::getUserKey() !== false,
+ 'pageencryption-protected-key-isSet' => is_array( self::getEncryptionKeyRecord( $user->getId() ) ),
] );
}
+
/**
* @param array $conds
* @return void
@@ -601,7 +616,7 @@ class PageEncryption {
);
return $row ? (array)$row : null;
}
-
+
/**
* @param array $conds
* @return void
@@ -609,11 +624,11 @@ class PageEncryption {
public static function deleteEncryptionKey( $conds ) {
$dbw = wfGetDB( DB_PRIMARY );
$dbw->delete(
- 'pageencrption_keys', $conds,
+ 'pageencrption_keys', $conds,
__METHOD__
);
}
-
+
/**
* @param array $conds
* @return void
@@ -621,10 +636,11 @@ class PageEncryption {
public static function deletePermissions( $conds ) {
$dbw = wfGetDB( DB_PRIMARY );
$dbw->delete(
- 'pageencryption_permissions', $conds,
+ 'pageencryption_permissions', $conds,
__METHOD__
);
}
+
/**
* @param OutputPage $outputPage
* @param array $items
@@ -632,7 +648,7 @@ class PageEncryption {
*/
public static function addHeaditem( $outputPage, $items ) {
foreach ( $items as $key => $val ) {
- list( $type, $url ) = $val;
+ [ $type, $url ] = $val;
switch ( $type ) {
case 'stylesheet':
$item = '<link rel="stylesheet" href="' . $url . '" />';
@@ -645,6 +661,7 @@ class PageEncryption {
$outputPage->addHeadItem( 'pageencryption_head_item' . $key, $item );
}
}
+
/**
* @param Title $title
* @param User|null $user
@@ -656,8 +673,8 @@ class PageEncryption {
}
$page = self::getWikiPage( $title );
return $page->getUser() === $user->getId();
- }
-
+ }
+
/**
* @param User $user
* @return bool
@@ -667,12 +684,12 @@ class PageEncryption {
$admins = array_unique( array_merge( $admins, [ 'sysop' ] ) );
return self::matchUsernameOrGroup( $user, $admins );
}
-
+
/**
- * @param User $user
- * @param array $groups
- * @return bool
- */
+ * @param User $user
+ * @param array $groups
+ * @return bool
+ */
public static function matchUsernameOrGroup( $user, $groups ) {
$userGroupManager = self::getUserGroupManager();
// ***the following prevents that an user
@@ -687,6 +704,7 @@ class PageEncryption {
}
return $isAuthorized;
}
+
/**
* @param string $varName
* @return array
@@ -701,6 +719,7 @@ class PageEncryption {
}
return $ret;
}
+
/**
* @param MediaWiki\User\UserGroupManager $userGroupManager
* @param User $user
@@ -719,6 +738,7 @@ class PageEncryption {
}
return $user_groups;
}
+
/**
* @param Title $title
* @return void
@@ -730,35 +750,35 @@ class PageEncryption {
}
return WikiPage::factory( $title );
}
-
+
/**
- * @see https://stackoverflow.com/questions/6101956/generating-a-random-password-in-php
- * @param int $length
+ * @see https://stackoverflow.com/questions/6101956/generating-a-random-password-in-php
+ * @param int $length
* @param string $keyspaceto select from
* @return string
*/
public static function random_str( $length, $keyspace = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' ) {
- $str = '';
- $max = mb_strlen( $keyspace, '8bit' ) - 1;
- if ( $max < 1 ) {
- throw new Exception( '$keyspace must be at least two characters long' );
- }
+ $str = '';
+ $max = mb_strlen( $keyspace, '8bit' ) - 1;
+ if ( $max < 1 ) {
+ throw new Exception( '$keyspace must be at least two characters long' );
+ }
for ( $i = 0; $i < $length; ++$i ) {
$str .= $keyspace[random_int( 0, $max )];
}
return $str;
}
-
+
/**
* @return string
*/
- public static function getIPAddress() {
+ public static function getIPAddress() {
if ( !empty( $_SERVER['HTTP_CLIENT_IP'] ) ) {
- return $_SERVER['HTTP_CLIENT_IP'];
- }
- if ( !empty( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) {
- return $_SERVER['HTTP_X_FORWARDED_FOR'];
+ return $_SERVER['HTTP_CLIENT_IP'];
+ }
+ if ( !empty( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) {
+ return $_SERVER['HTTP_X_FORWARDED_FOR'];
}
- return $_SERVER['REMOTE_ADDR'];
+ return $_SERVER['REMOTE_ADDR'];
}
}
diff --git a/includes/PageEncryptionHooks.php b/includes/PageEncryptionHooks.php
index ab32544..eb1f7f8 100644
--- a/includes/PageEncryptionHooks.php
+++ b/includes/PageEncryptionHooks.php
@@ -21,21 +21,19 @@
* @author thomas-topway-it <support@topway.it>
* @copyright Copyright ©2023, https://wikisphere.org
*/
-
+
if ( is_readable( __DIR__ . '/../vendor/autoload.php' ) ) {
include_once __DIR__ . '/../vendor/autoload.php';
}
-use MediaWiki\DAO\WikiAwareEntity;
-use MediaWiki\MediaWikiServices;
use MediaWiki\Logger\LoggerFactory;
-use Psr\Log\NullLogger;
+use MediaWiki\MediaWikiServices;
class PageEncryptionHooks {
/** @var encryptedNamespace */
public static $encryptedNamespace = 2246;
-
+
/** @var admins */
public static $admins = [ 'sysop', 'bureaucrat', 'interface-admin' ];
@@ -67,7 +65,7 @@ class PageEncryptionHooks {
}
}
}
-
+
/**
* @param MediaWikiServices $services
* @return void
@@ -107,11 +105,11 @@ class PageEncryptionHooks {
);
// MW 1.36 and MW 1.37 have the same interface
- } else if ( version_compare( MW_VERSION, '1.38', '<' ) ) {
+ } elseif ( version_compare( MW_VERSION, '1.38', '<' ) ) {
$actorStoreFactory = $services->getActorStoreFactory();
$pageStoreFactory = $services->getPageStoreFactory();
$titleFactory = $services->getTitleFactory();
-
+
$pageEncryptionRevisionLookup = new PageEncryptionRevisionLookup(
$dbLoadBalancerFactory->getMainLB( $dbDomain ),
$blobStoreFactory->newSqlBlobStore( $dbDomain ),
@@ -128,14 +126,14 @@ class PageEncryptionHooks {
$hookContainer,
$dbDomain
);
-
+
// MW 1.38, 1.39 and 1.40 have the same interface
} else {
$localCache = $services->getLocalServerObjectCache();
$actorStoreFactory = $services->getActorStoreFactory();
$pageStoreFactory = $services->getPageStoreFactory();
$titleFactory = $services->getTitleFactory();
-
+
$pageEncryptionRevisionLookup = new PageEncryptionRevisionLookup(
$dbLoadBalancerFactory->getMainLB( $dbDomain ),
$blobStoreFactory->newSqlBlobStore( $dbDomain ),
@@ -151,18 +149,17 @@ class PageEncryptionHooks {
$pageStoreFactory->getPageStore( $dbDomain ),
$titleFactory,
$hookContainer,
- $dbDomain, // $wikiId = WikiAwareEntity::LOCAL
+ $dbDomain, // $wikiId = WikiAwareEntity::LOCAL
);
}
-
- $services->redefineService( 'RevisionLookup', static function() use( $pageEncryptionRevisionLookup ) {
+
+ $services->redefineService( 'RevisionLookup', static function () use( $pageEncryptionRevisionLookup ) {
return $pageEncryptionRevisionLookup;
} );
-
- $services->redefineService( 'RevisionStore', static function() use( $pageEncryptionRevisionLookup ) {
+
+ $services->redefineService( 'RevisionStore', static function () use( $pageEncryptionRevisionLookup ) {
return $pageEncryptionRevisionLookup;
} );
-
}
/**
@@ -179,7 +176,6 @@ class PageEncryptionHooks {
* @see https://www.mediawiki.org/wiki/Manual:Hooks/getUserPermissionsErrors
*/
public static function onGetUserPermissionsErrors( $title, $user, $action, &$result ) {
-
// if ( \PageEncryption::isAuthorized( $user ) ) {
// return true;
// }
@@ -187,7 +183,7 @@ class PageEncryptionHooks {
if ( !\PageEncryption::isEncryptedNamespace( $title ) ) {
return true;
}
-
+
if ( $action !== 'edit' && $action !== 'create' ) {
return true;
}
@@ -196,7 +192,7 @@ class PageEncryptionHooks {
return true;
}
- if (\PageEncryption::isEditor( $title, $user ) ) {
+ if ( \PageEncryption::isEditor( $title, $user ) ) {
return true;
}
@@ -207,8 +203,9 @@ class PageEncryptionHooks {
/**
* @param EditPage $editpage
*/
- public static function onAlternateEdit( EditPage $editpage ) { }
-
+ public static function onAlternateEdit( EditPage $editpage ) {
+ }
+
/**
* @see https://www.mediawiki.org/wiki/Manual:Hooks/MultiContentSave
* @param RenderedRevision $renderedRevision
@@ -221,7 +218,7 @@ class PageEncryptionHooks {
public static function onMultiContentSave( MediaWiki\Revision\RenderedRevision $renderedRevision, MediaWiki\User\UserIdentity $user, CommentStoreComment $summary, $flags, Status $hookStatus ) {
$revisionRecord = $renderedRevision->getRevision();
$title = $revisionRecord->getPageAsLinkTarget();
-
+
if ( !\PageEncryption::isEncryptedNamespace( $title ) ) {
return;
}
@@ -231,27 +228,27 @@ class PageEncryptionHooks {
$summary->data = [ 'encrypted' => true ];
// or ...
// $summary->text = 'edit encrypted content';
-
+
$content = $revisionRecord->getContent( MediaWiki\Revision\SlotRecord::MAIN );
-
- // @TODO should be instance of text
+
+ // @TODO should be instance of text
$contentHandler = $content->getContentHandler();
$modelId = $contentHandler->getModelID();
-
+
$text = $content->getText();
$encryptedText = \PageEncryption::encryptSymmetric( $text );
-
+
if ( $encryptedText === false ) {
throw new MWException( "Cannot encrypt" );
}
-
+
// $modelId = $slotRoleRegistry->getRoleHandler( $slotName )->getDefaultModel( $title );
$slotContent = ContentHandler::makeContent( $encryptedText, $title, $modelId );
-
+
$slots = $revisionRecord->getSlots();
$slots->setContent( MediaWiki\Revision\SlotRecord::MAIN, $slotContent );
- }
+ }
/**
* *** ignore the cache if a page contains a transcluded page with stored permissions
@@ -263,23 +260,23 @@ class PageEncryptionHooks {
*/
public static function onRejectParserCacheValue( $parserOutput, $wikiPage, $parserOptions ) {
$title = $wikiPage->getTitle();
-
+
if ( \PageEncryption::isEncryptedNamespace( $title ) ) {
return false;
}
}
-
+
/**
* Initialise the 'VisualEditorAvailableNamespaces' setting
*/
public static function onRegistration() {
$GLOBALS['wgVisualEditorAvailableNamespaces'][self::$encryptedNamespace] = true;
}
-
+
public static function onUserLogoutComplete( &$user, &$inject_html, $old_name ) {
\PageEncryption::deleteCookie();
}
-
+
/**
* @param Title &$title
* @param null $unused
@@ -316,11 +313,11 @@ class PageEncryptionHooks {
if ( \PageEncryption::$decryptionNotice === \PageEncryption::DecryptionFromAccessCode ) {
$siteNotice = '<div class="pageencryption-notice">' . wfMessage( 'pageencryption-sitenotice-decryption-from-access-code' )->plain() . '</div>';
return false;
- }
-
+ }
+
return true;
}
-
+
/**
* @param Parser $parser
* @param string &$text
@@ -333,20 +330,20 @@ class PageEncryptionHooks {
return;
}
$revisionRecord = $parser->getRevisionRecordObject();
-
+
if ( !$revisionRecord ) {
return;
}
- switch( \PageEncryption::$decryptionNotice ) {
-
+ switch ( \PageEncryption::$decryptionNotice ) {
+
case \PageEncryption::EncryptedPage:
$text = '<div class="pageencryption-notice">' . wfMessage( 'pageencryption-sitenotice-encrypted-page' )->plain() . '</div>';
- break;
-
+ break;
+
case \PageEncryption::DecryptionFailed:
$text = '<div class="pageencryption-notice">' . wfMessage( 'pageencryption-sitenotice-decryption-failed' )->plain() . '</div>';
- break;
+ break;
}
}
@@ -358,7 +355,7 @@ class PageEncryptionHooks {
*/
public static function onBeforePageDisplay( OutputPage $outputPage, Skin $skin ) {
global $wgResourceBasePath;
-
+
$title = $outputPage->getTitle();
if ( !\PageEncryption::isEncryptedNamespace( $title ) ) {
@@ -374,7 +371,7 @@ class PageEncryptionHooks {
if ( $title->isKnown() ) {
\PageEncryption::addIndicator( $outputPage );
}
-
+
$user = $skin->getUser();
if ( $user->isAllowed( 'pageencryption-cancreateencryption' ) ) {
\PageEncryption::addJsConfigVars( $outputPage, $title, $user );
@@ -398,7 +395,7 @@ class PageEncryptionHooks {
if ( !$title->isKnown() || $title->isSpecialPage() ) {
return;
}
-
+
if ( !\PageEncryption::isEncryptedNamespace( $title ) ) {
return;
}
@@ -408,7 +405,7 @@ class PageEncryptionHooks {
}
$url = SpecialPage::getTitleFor( 'PageEncryptionPermissions', $title )->getLocalURL();
- $links[ 'actions' ][] = [ 'text' => wfMessage( 'pageencryption-navigation' )->text(), 'href' => $url ];
+ $links[ 'actions' ][] = [ 'text' => wfMessage( 'pageencryption-navigation' )->text(), 'href' => $url ];
}
/**
@@ -431,7 +428,5 @@ class PageEncryptionHooks {
if ( !$user || !$user->isRegistered() ) {
return;
}
-
}
}
-
diff --git a/includes/PageEncryptionRevisionLookup.php b/includes/PageEncryptionRevisionLookup.php
index b2872ab..c2c14eb 100644
--- a/includes/PageEncryptionRevisionLookup.php
+++ b/includes/PageEncryptionRevisionLookup.php
@@ -21,9 +21,8 @@
* @author thomas-topway-it <support@topway.it>
* @copyright Copyright ©2023, https://wikisphere.org
*/
-
+
use MediaWiki\Revision\RevisionStore;
-use MediaWiki\Page\PageIdentity;
class PageEncryptionRevisionLookup extends RevisionStore {
@@ -43,4 +42,3 @@ class PageEncryptionRevisionLookup extends RevisionStore {
}
}
-
diff --git a/includes/api/PageEncryptionApiSetEncryptionKey.php b/includes/api/PageEncryptionApiSetEncryptionKey.php
index 02e67f6..438e1f3 100644
--- a/includes/api/PageEncryptionApiSetEncryptionKey.php
+++ b/includes/api/PageEncryptionApiSetEncryptionKey.php
@@ -41,7 +41,7 @@ class PageEncryptionApiSetEncryptionKey extends ApiBase {
/**
* @inheritDoc
*/
- public function execute() {
+ public function execute() {
$user = $this->getUser();
if ( !$user->isAllowed( 'pageencryption-cancreateencryption' ) ) {
@@ -53,9 +53,9 @@ class PageEncryptionApiSetEncryptionKey extends ApiBase {
$result = $this->getResult();
$params = $this->extractRequestParams();
-
+
$row = \PageEncryption::getEncryptionKeyRecord( $user->getId() );
-
+
if ( $row ) {
if ( !$params['reset-key'] ) {
$message = null;
@@ -76,7 +76,7 @@ class PageEncryptionApiSetEncryptionKey extends ApiBase {
$result->addValue( [ $this->getModuleName() ], 'action', 'new-record' );
$result->addValue( [ $this->getModuleName() ], 'message', $message );
-
+
// return the resulting protected key, for backup purpose,
// since it is not password-deterministic
$result->addValue( [ $this->getModuleName() ], 'protected-key', $protected_key_encoded );
diff --git a/includes/specials/PageEncryptionPermissionsPager.php b/includes/specials/PageEncryptionPermissionsPager.php
index e583ed2..7361caa 100644
--- a/includes/specials/PageEncryptionPermissionsPager.php
+++ b/includes/specials/PageEncryptionPermissionsPager.php
@@ -94,11 +94,11 @@ class PageEncryptionPermissionsPager extends TablePager {
* @return string HTML
* @throws MWException
*/
- public function formatValue( $field, $value ) {
+ public function formatValue( $field, $value ) {
/** @var object $row */
$row = $this->mCurrentRow;
$linkRenderer = $this->getLinkRenderer();
-
+
$formatted = '';
switch ( $field ) {
case 'created_by':
@@ -117,7 +117,7 @@ class PageEncryptionPermissionsPager extends TablePager {
$title = Title::newFromID( $row->page_id );
$wikiPage = \PageEncryption::getWikiPage( $title );
$revisionRecord = $wikiPage->getRevisionRecord();
-
+
// @see HistoryPager
$formatted = ChangesList::revDateLink( $revisionRecord, $this->parentClass->getUser(), $this->parentClass->getLanguage(),
$this->title );
@@ -128,7 +128,7 @@ class PageEncryptionPermissionsPager extends TablePager {
break;
case 'password':
- if ( (int)$row->created_by === $this->parentClass->getUser()->getId() ) {
+ if ( (int)$row->created_by === $this->parentClass->getUser()->getId() ) {
$title = Title::newFromID( $row->page_id );
$password = \PageEncryption::decryptSymmetric( $row->encrypted_password );
$formatted = Html::rawElement(
@@ -153,7 +153,7 @@ class PageEncryptionPermissionsPager extends TablePager {
case 'expiration_date':
$formatted = $row->expiration_date;
break;
-
+
case 'viewed':
$formatted = $row->viewed;
break;
diff --git a/includes/specials/SpecialPageEncryptionPermissions.php b/includes/specials/SpecialPageEncryptionPermissions.php
index db4ad95..d5db604 100644
--- a/includes/specials/SpecialPageEncryptionPermissions.php
+++ b/includes/specials/SpecialPageEncryptionPermissions.php
@@ -24,9 +24,6 @@
require_once __DIR__ . '/PageEncryptionPermissionsPager.php';
-use MediaWiki\MediaWikiServices;
-use Wikimedia\IPUtils;
-
/**
* A special page that lists protected pages
*
@@ -39,7 +36,7 @@ class SpecialPageEncryptionPermissions extends SpecialPage {
/** @var localTitle */
public $localTitle;
-
+
/** @var isAuthorized */
public $isAuthorized;
@@ -50,7 +47,7 @@ class SpecialPageEncryptionPermissions extends SpecialPage {
private $request;
/** @var latest_id */
- private $latest_id;
+ private $latest_id;
/**
* @inheritDoc
@@ -130,7 +127,7 @@ class SpecialPageEncryptionPermissions extends SpecialPage {
// $out->addWikiMsg( 'pageencryption-managepermissions-description-' . ( $this->title ? 'specific' : 'generic' ),
// !$this->title || !$user->isAllowed( 'pageencryption-canmanagepermissions' ) ? '' : $this->msg( 'pageencryption-managepermissions-description-manage-all-permissions' )->text() );
-
+
$out->addWikiMsg( 'pageencryption-managepermissions-form-preamble' );
$out->addHTML( '<br />' );
@@ -215,7 +212,7 @@ class SpecialPageEncryptionPermissions extends SpecialPage {
$out->addHTML( '<br />' );
return;
}
-
+
$row = [
'created_by' => null,
'page_id' => null,
@@ -351,7 +348,7 @@ $this->username = '';
$id = $request->getVal( 'edit' );
$new = ( $id && $id === 'new' );
-
+
$row = [
'access_type' => $data['access_type'],
'expiration_date' => $data['expiration_date']
@@ -385,7 +382,7 @@ $this->username = '';
*/
protected function showOptions( $request ) {
$formDescriptor = [];
-
+
if ( $this->isAuthorized ) {
$created_by = $request->getVal( 'created_by' );
@@ -428,4 +425,3 @@ $this->username = '';
return 'pageencryption';
}
}
-
diff --git a/package-lock.json b/package-lock.json
index 935be47..b653ad3 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -6,43 +6,45 @@
"": {
"name": "PageEncryption",
"devDependencies": {
- "eslint-config-wikimedia": "0.24.0",
+ "eslint-config-wikimedia": "0.27.0",
"grunt": "1.6.1",
- "grunt-eslint": "24.0.0",
- "grunt-stylelint": "0.18.0",
- "stylelint-config-wikimedia": "0.14.0"
+ "grunt-eslint": "24.3.0",
+ "grunt-stylelint": "0.19.0",
+ "stylelint-config-wikimedia": "0.16.1"
}
},
"node_modules/@babel/code-frame": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz",
- "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==",
+ "version": "7.24.2",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz",
+ "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==",
"dev": true,
"dependencies": {
- "@babel/highlight": "^7.18.6"
+ "@babel/highlight": "^7.24.2",
+ "picocolors": "^1.0.0"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-validator-identifier": {
- "version": "7.19.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz",
- "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==",
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
+ "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==",
"dev": true,
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/highlight": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz",
- "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
+ "version": "7.24.2",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz",
+ "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==",
"dev": true,
"dependencies": {
- "@babel/helper-validator-identifier": "^7.18.6",
- "chalk": "^2.0.0",
- "js-tokens": "^4.0.0"
+ "@babel/helper-validator-identifier": "^7.22.20",
+ "chalk": "^2.4.2",
+ "js-tokens": "^4.0.0",
+ "picocolors": "^1.0.0"
},
"engines": {
"node": ">=6.9.0"
@@ -119,41 +121,110 @@
"node": ">=4"
}
},
- "node_modules/@csstools/selector-specificity": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.1.1.tgz",
- "integrity": "sha512-jwx+WCqszn53YHOfvFMJJRd/B2GqkCBt+1MJSG6o5/s8+ytHMvDZXsJgUEWLk12UnLd7HYKac4BYU5i/Ron1Cw==",
+ "node_modules/@csstools/css-parser-algorithms": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.6.1.tgz",
+ "integrity": "sha512-ubEkAaTfVZa+WwGhs5jbo5Xfqpeaybr/RvWzvFxRs4jfq16wH8l8Ty/QEEpINxll4xhuGfdMbipRyz5QZh9+FA==",
"dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
"engines": {
"node": "^14 || ^16 || >=18"
},
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
+ "peerDependencies": {
+ "@csstools/css-tokenizer": "^2.2.4"
+ }
+ },
+ "node_modules/@csstools/css-tokenizer": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.2.4.tgz",
+ "integrity": "sha512-PuWRAewQLbDhGeTvFuq2oClaSCKPIBmHyIobCV39JHRYN0byDcUWJl5baPeNUcqrjtdMNqFooE0FGl31I3JOqw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "engines": {
+ "node": "^14 || ^16 || >=18"
+ }
+ },
+ "node_modules/@csstools/media-query-list-parser": {
+ "version": "2.1.9",
+ "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.9.tgz",
+ "integrity": "sha512-qqGuFfbn4rUmyOB0u8CVISIp5FfJ5GAR3mBrZ9/TKndHakdnm6pY0L/fbLcpPnrzwCyyTEZl1nUcXAYHEWneTA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "engines": {
+ "node": "^14 || ^16 || >=18"
},
"peerDependencies": {
- "postcss": "^8.4",
- "postcss-selector-parser": "^6.0.10"
+ "@csstools/css-parser-algorithms": "^2.6.1",
+ "@csstools/css-tokenizer": "^2.2.4"
+ }
+ },
+ "node_modules/@csstools/selector-specificity": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.0.3.tgz",
+ "integrity": "sha512-KEPNw4+WW5AVEIyzC80rTbWEUatTW2lXpN8+8ILC8PiPeWPjwUzrPZDIOZ2wwqDmeqOYTdSGyL3+vE5GC3FB3Q==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "engines": {
+ "node": "^14 || ^16 || >=18"
+ },
+ "peerDependencies": {
+ "postcss-selector-parser": "^6.0.13"
}
},
"node_modules/@es-joy/jsdoccomment": {
- "version": "0.23.6",
- "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.23.6.tgz",
- "integrity": "sha512-cCtumxG+qrYORGeOkDQ58GtSt/bb2XiP9GC0x2YduoUEX2EmBQ48FtoZMUs+8wiIdTDN1izUiRUD2FDu+p+Lvg==",
+ "version": "0.42.0",
+ "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.42.0.tgz",
+ "integrity": "sha512-R1w57YlVA6+YE01wch3GPYn6bCsrOV3YW/5oGGE2tmX6JcL9Nr+b5IikrjMPF+v9CV3ay+obImEdsDhovhJrzw==",
"dev": true,
"dependencies": {
- "comment-parser": "1.3.1",
- "esquery": "^1.4.0",
- "jsdoc-type-pratt-parser": "~2.2.5"
+ "comment-parser": "1.4.1",
+ "esquery": "^1.5.0",
+ "jsdoc-type-pratt-parser": "~4.0.0"
},
"engines": {
- "node": "^12 || ^14 || ^16 || ^17"
+ "node": ">=16"
}
},
"node_modules/@eslint-community/eslint-utils": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.2.0.tgz",
- "integrity": "sha512-gB8T4H4DEfX2IV9zGDJPOBgP1e/DbfCPDTtEqUMckpvzS1OYtva8JdFYBqMwYk7xAQ429WGF/UPqn8uQ//h2vQ==",
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
+ "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
"dev": true,
"dependencies": {
"eslint-visitor-keys": "^3.3.0"
@@ -166,23 +237,23 @@
}
},
"node_modules/@eslint-community/regexpp": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.4.0.tgz",
- "integrity": "sha512-A9983Q0LnDGdLPjxyXQ00sbV+K+O+ko2Dr+CZigbHWtX9pNfxlaBkMR8X1CztI73zuEyEBXTVjx7CE+/VSwDiQ==",
+ "version": "4.10.0",
+ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz",
+ "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==",
"dev": true,
"engines": {
"node": "^12.0.0 || ^14.0.0 || >=16.0.0"
}
},
"node_modules/@eslint/eslintrc": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.1.tgz",
- "integrity": "sha512-eFRmABvW2E5Ho6f5fHLqgena46rOj7r7OKHYfLElqcBfGFHHpjBhivyi5+jOEQuSpdc/1phIZJlbC2te+tZNIw==",
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz",
+ "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==",
"dev": true,
"dependencies": {
"ajv": "^6.12.4",
"debug": "^4.3.2",
- "espree": "^9.5.0",
+ "espree": "^9.6.0",
"globals": "^13.19.0",
"ignore": "^5.2.0",
"import-fresh": "^3.2.1",
@@ -198,22 +269,22 @@
}
},
"node_modules/@eslint/js": {
- "version": "8.36.0",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.36.0.tgz",
- "integrity": "sha512-lxJ9R5ygVm8ZWgYdUweoq5ownDlJ4upvoWmO4eLxBYHdMo+vZ/Rx0EN6MbKWDJOSUGrqJy2Gt+Dyv/VKml0fjg==",
+ "version": "8.57.0",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz",
+ "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==",
"dev": true,
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
}
},
"node_modules/@humanwhocodes/config-array": {
- "version": "0.11.8",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz",
- "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==",
+ "version": "0.11.14",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
+ "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==",
"dev": true,
"dependencies": {
- "@humanwhocodes/object-schema": "^1.2.1",
- "debug": "^4.1.1",
+ "@humanwhocodes/object-schema": "^2.0.2",
+ "debug": "^4.3.1",
"minimatch": "^3.0.5"
},
"engines": {
@@ -234,15 +305,15 @@
}
},
"node_modules/@humanwhocodes/object-schema": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
- "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz",
+ "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==",
"dev": true
},
"node_modules/@mdn/browser-compat-data": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-4.2.1.tgz",
- "integrity": "sha512-EWUguj2kd7ldmrF9F+vI5hUOralPd+sdsUnYbRy33vZTuZkduC1shE9TtEMEjAQwyfyMb4ole5KtjF8MsnQOlA==",
+ "version": "5.5.23",
+ "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-5.5.23.tgz",
+ "integrity": "sha512-nIy38qL3nfNcGOz5J2BJQpBXa7vM9QO1+wbyvqqS89lgNTWE8Q10whLsmE0sTVBooXiEaRc4fVME5IXjCYiHAw==",
"dev": true
},
"node_modules/@nodelib/fs.scandir": {
@@ -280,6 +351,12 @@
"node": ">= 8"
}
},
+ "node_modules/@types/json-schema": {
+ "version": "7.0.15",
+ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
+ "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
+ "dev": true
+ },
"node_modules/@types/minimatch": {
"version": "3.0.5",
"resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz",
@@ -287,21 +364,149 @@
"dev": true
},
"node_modules/@types/minimist": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz",
- "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==",
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz",
+ "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==",
"dev": true
},
"node_modules/@types/normalize-package-data": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz",
- "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==",
+ "version": "2.4.4",
+ "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz",
+ "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==",
"dev": true
},
- "node_modules/@types/parse-json": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz",
- "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==",
+ "node_modules/@types/semver": {
+ "version": "7.5.8",
+ "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz",
+ "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==",
+ "dev": true
+ },
+ "node_modules/@typescript-eslint/scope-manager": {
+ "version": "5.62.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz",
+ "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "5.62.0",
+ "@typescript-eslint/visitor-keys": "5.62.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/types": {
+ "version": "5.62.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz",
+ "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==",
+ "dev": true,
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/typescript-estree": {
+ "version": "5.62.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz",
+ "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "5.62.0",
+ "@typescript-eslint/visitor-keys": "5.62.0",
+ "debug": "^4.3.4",
+ "globby": "^11.1.0",
+ "is-glob": "^4.0.3",
+ "semver": "^7.3.7",
+ "tsutils": "^3.21.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/utils": {
+ "version": "5.62.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz",
+ "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==",
+ "dev": true,
+ "dependencies": {
+ "@eslint-community/eslint-utils": "^4.2.0",
+ "@types/json-schema": "^7.0.9",
+ "@types/semver": "^7.3.12",
+ "@typescript-eslint/scope-manager": "5.62.0",
+ "@typescript-eslint/types": "5.62.0",
+ "@typescript-eslint/typescript-estree": "5.62.0",
+ "eslint-scope": "^5.1.1",
+ "semver": "^7.3.7"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ }
+ },
+ "node_modules/@typescript-eslint/utils/node_modules/eslint-scope": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
+ "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
+ "dev": true,
+ "dependencies": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^4.1.1"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/@typescript-eslint/utils/node_modules/estraverse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+ "dev": true,
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/@typescript-eslint/visitor-keys": {
+ "version": "5.62.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz",
+ "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "5.62.0",
+ "eslint-visitor-keys": "^3.3.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@ungap/structured-clone": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
+ "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==",
"dev": true
},
"node_modules/abbrev": {
@@ -311,9 +516,9 @@
"dev": true
},
"node_modules/acorn": {
- "version": "8.8.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz",
- "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==",
+ "version": "8.11.3",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
+ "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
"dev": true,
"bin": {
"acorn": "bin/acorn"
@@ -371,6 +576,15 @@
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
+ "node_modules/are-docs-informative": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz",
+ "integrity": "sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==",
+ "dev": true,
+ "engines": {
+ "node": ">=14"
+ }
+ },
"node_modules/argparse": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
@@ -423,20 +637,14 @@
}
},
"node_modules/ast-metadata-inferer": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/ast-metadata-inferer/-/ast-metadata-inferer-0.7.0.tgz",
- "integrity": "sha512-OkMLzd8xelb3gmnp6ToFvvsHLtS6CbagTkFQvQ+ZYFe3/AIl9iKikNR9G7pY3GfOR/2Xc222hwBjzI7HLkE76Q==",
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/ast-metadata-inferer/-/ast-metadata-inferer-0.8.0.tgz",
+ "integrity": "sha512-jOMKcHht9LxYIEQu+RVd22vtgrPaVCtDRQ/16IGmurdzxvYbDd5ynxjnyrzLnieG96eTcAyaoj/wN/4/1FyyeA==",
"dev": true,
"dependencies": {
- "@mdn/browser-compat-data": "^3.3.14"
+ "@mdn/browser-compat-data": "^5.2.34"
}
},
- "node_modules/ast-metadata-inferer/node_modules/@mdn/browser-compat-data": {
- "version": "3.3.14",
- "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-3.3.14.tgz",
- "integrity": "sha512-n2RC9d6XatVbWFdHLimzzUJxJ1KY8LdjqrW6YvGPiRmsHkhOUx74/Ct10x5Yo7bC/Jvqx7cDEW8IMPv/+vwEzA==",
- "dev": true
- },
"node_modules/astral-regex": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
@@ -487,9 +695,9 @@
}
},
"node_modules/browserslist": {
- "version": "4.21.4",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz",
- "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==",
+ "version": "4.23.0",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz",
+ "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==",
"dev": true,
"funding": [
{
@@ -499,13 +707,17 @@
{
"type": "tidelift",
"url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
}
],
"dependencies": {
- "caniuse-lite": "^1.0.30001400",
- "electron-to-chromium": "^1.4.251",
- "node-releases": "^2.0.6",
- "update-browserslist-db": "^1.0.9"
+ "caniuse-lite": "^1.0.30001587",
+ "electron-to-chromium": "^1.4.668",
+ "node-releases": "^2.0.14",
+ "update-browserslist-db": "^1.0.13"
},
"bin": {
"browserslist": "cli.js"
@@ -515,9 +727,9 @@
}
},
"node_modules/browserslist-config-wikimedia": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/browserslist-config-wikimedia/-/browserslist-config-wikimedia-0.4.0.tgz",
- "integrity": "sha512-U/fmsaGlCKOqRIjKqXwQ44qFqiStngRTphj1Cf6IHV6J8OK8T0gu9dKc7Ljq4v7bwhnhN+YCCa4fA3nZlPNivQ==",
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/browserslist-config-wikimedia/-/browserslist-config-wikimedia-0.6.1.tgz",
+ "integrity": "sha512-F3O+12ud7ZwBaiB/RZIMGDgz3nEuXz8RhtdPB4Lkd/WVP5Vy77EqBWRMz4vJ64x8LTTH3BOaHCD2ZuUcgShqyQ==",
"dev": true
},
"node_modules/builtin-modules": {
@@ -532,6 +744,15 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/builtins": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.1.0.tgz",
+ "integrity": "sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==",
+ "dev": true,
+ "dependencies": {
+ "semver": "^7.0.0"
+ }
+ },
"node_modules/callsites": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
@@ -542,35 +763,51 @@
}
},
"node_modules/camelcase": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
- "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
+ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
"dev": true,
"engines": {
- "node": ">=6"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/camelcase-keys": {
- "version": "6.2.2",
- "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz",
- "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==",
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-7.0.2.tgz",
+ "integrity": "sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==",
"dev": true,
"dependencies": {
- "camelcase": "^5.3.1",
- "map-obj": "^4.0.0",
- "quick-lru": "^4.0.1"
+ "camelcase": "^6.3.0",
+ "map-obj": "^4.1.0",
+ "quick-lru": "^5.1.1",
+ "type-fest": "^1.2.1"
},
"engines": {
- "node": ">=8"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/camelcase-keys/node_modules/type-fest": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz",
+ "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001423",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001423.tgz",
- "integrity": "sha512-09iwWGOlifvE1XuHokFMP7eR38a0JnajoyL3/i87c8ZjRWRrdKo1fqjNfugfBD0UDBIOz0U+jtNhJ0EPm1VleQ==",
+ "version": "1.0.30001612",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001612.tgz",
+ "integrity": "sha512-lFgnZ07UhaCcsSZgWW0K5j4e69dK1u/ltrL9lTUiFOwNHs12S3UMIEYgBV0Z6C6hRDev7iRnMzzYmKabYdXF9g==",
"dev": true,
"funding": [
{
@@ -580,6 +817,10 @@
{
"type": "tidelift",
"url": "https://tidelift.com/funding/github/npm/caniuse-lite"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
}
]
},
@@ -600,10 +841,19 @@
}
},
"node_modules/ci-info": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.5.0.tgz",
- "integrity": "sha512-yH4RezKOGlOhxkmhbeNuC4eYZKAUsEaGtBuBzDDP1eFUKiccDWzBABxBfOx31IDwDIXMTxWuwAxUGModvkbuVw==",
- "dev": true
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.0.0.tgz",
+ "integrity": "sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "engines": {
+ "node": ">=8"
+ }
},
"node_modules/clean-regexp": {
"version": "1.0.0",
@@ -671,9 +921,9 @@
}
},
"node_modules/comment-parser": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.3.1.tgz",
- "integrity": "sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA==",
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.1.tgz",
+ "integrity": "sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==",
"dev": true,
"engines": {
"node": ">= 12.0.0"
@@ -685,12 +935,14 @@
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
"dev": true
},
- "node_modules/core-js": {
- "version": "3.25.5",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.25.5.tgz",
- "integrity": "sha512-nbm6eZSjm+ZuBQxCUPQKQCoUEfFOXjUZ8dTTyikyKaWrTYmAVbykQfwsKE5dBK88u3QCkCrzsx/PPlKfhsvgpw==",
+ "node_modules/core-js-compat": {
+ "version": "3.37.0",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.0.tgz",
+ "integrity": "sha512-vYq4L+T8aS5UuFg4UwDhc7YNRWVeVZwltad9C/jV3R2LgVOpS9BDr7l/WL6BN0dbV3k1XejPTHqqEzJgsa0frA==",
"dev": true,
- "hasInstallScript": true,
+ "dependencies": {
+ "browserslist": "^4.23.0"
+ },
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/core-js"
@@ -703,19 +955,29 @@
"dev": true
},
"node_modules/cosmiconfig": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz",
- "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==",
+ "version": "8.3.6",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz",
+ "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==",
"dev": true,
"dependencies": {
- "@types/parse-json": "^4.0.0",
- "import-fresh": "^3.2.1",
- "parse-json": "^5.0.0",
- "path-type": "^4.0.0",
- "yaml": "^1.10.0"
+ "import-fresh": "^3.3.0",
+ "js-yaml": "^4.1.0",
+ "parse-json": "^5.2.0",
+ "path-type": "^4.0.0"
},
"engines": {
- "node": ">=10"
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/d-fischer"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.9.5"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
}
},
"node_modules/cross-spawn": {
@@ -733,12 +995,12 @@
}
},
"node_modules/css-functions-list": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.1.0.tgz",
- "integrity": "sha512-/9lCvYZaUbBGvYUgYGFJ4dcYiyqdhSjG7IPVluoV8A1ILjkF7ilmhp1OGUz8n+nmBcu0RNrQAzgD8B6FJbrt2w==",
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.2.tgz",
+ "integrity": "sha512-c+N0v6wbKVxTu5gOBBFkr9BEdBWaqqjQeiJ8QvSRIJOf+UxlJh930m8e6/WNeODIK0mYLFkoONrnj16i2EcvfQ==",
"dev": true,
"engines": {
- "node": ">=12.22"
+ "node": ">=12 || >=16"
}
},
"node_modules/css-rule-stream": {
@@ -788,6 +1050,19 @@
"readable-stream": "^1.0.33"
}
},
+ "node_modules/css-tree": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz",
+ "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==",
+ "dev": true,
+ "dependencies": {
+ "mdn-data": "2.0.30",
+ "source-map-js": "^1.0.1"
+ },
+ "engines": {
+ "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0"
+ }
+ },
"node_modules/cssesc": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
@@ -827,23 +1102,38 @@
}
},
"node_modules/decamelize": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
- "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz",
+ "integrity": "sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==",
"dev": true,
"engines": {
- "node": ">=0.10.0"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/decamelize-keys": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz",
- "integrity": "sha512-ocLWuYzRPoS9bfiSdDd3cxvrzovVMZnRDVEzAs+hWIVXGDbHxWMECij2OBuyB/An0FFW/nLuq6Kv1i/YC5Qfzg==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz",
+ "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==",
"dev": true,
"dependencies": {
"decamelize": "^1.1.0",
"map-obj": "^1.0.0"
},
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/decamelize-keys/node_modules/decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
+ "dev": true,
"engines": {
"node": ">=0.10.0"
}
@@ -985,9 +1275,9 @@
}
},
"node_modules/electron-to-chromium": {
- "version": "1.4.284",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz",
- "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==",
+ "version": "1.4.750",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.750.tgz",
+ "integrity": "sha512-9ItEpeu15hW5m8jKdriL+BQrgwDTXEL9pn4SkillWFu73ZNNNQ2BKKLS+ZHv2vC9UkNhosAeyfxOf/5OSeTCPA==",
"dev": true
},
"node_modules/emoji-regex": {
@@ -1039,27 +1329,28 @@
}
},
"node_modules/eslint": {
- "version": "8.36.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.36.0.tgz",
- "integrity": "sha512-Y956lmS7vDqomxlaaQAHVmeb4tNMp2FWIvU/RnU5BD3IKMD/MJPr76xdyr68P8tV1iNMvN2mRK0yy3c+UjL+bw==",
+ "version": "8.57.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz",
+ "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==",
"dev": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.2.0",
- "@eslint-community/regexpp": "^4.4.0",
- "@eslint/eslintrc": "^2.0.1",
- "@eslint/js": "8.36.0",
- "@humanwhocodes/config-array": "^0.11.8",
+ "@eslint-community/regexpp": "^4.6.1",
+ "@eslint/eslintrc": "^2.1.4",
+ "@eslint/js": "8.57.0",
+ "@humanwhocodes/config-array": "^0.11.14",
"@humanwhocodes/module-importer": "^1.0.1",
"@nodelib/fs.walk": "^1.2.8",
- "ajv": "^6.10.0",
+ "@ungap/structured-clone": "^1.2.0",
+ "ajv": "^6.12.4",
"chalk": "^4.0.0",
"cross-spawn": "^7.0.2",
"debug": "^4.3.2",
"doctrine": "^3.0.0",
"escape-string-regexp": "^4.0.0",
- "eslint-scope": "^7.1.1",
- "eslint-visitor-keys": "^3.3.0",
- "espree": "^9.5.0",
+ "eslint-scope": "^7.2.2",
+ "eslint-visitor-keys": "^3.4.3",
+ "espree": "^9.6.1",
"esquery": "^1.4.2",
"esutils": "^2.0.2",
"fast-deep-equal": "^3.1.3",
@@ -1067,22 +1358,19 @@
"find-up": "^5.0.0",
"glob-parent": "^6.0.2",
"globals": "^13.19.0",
- "grapheme-splitter": "^1.0.4",
+ "graphemer": "^1.4.0",
"ignore": "^5.2.0",
- "import-fresh": "^3.0.0",
"imurmurhash": "^0.1.4",
"is-glob": "^4.0.0",
"is-path-inside": "^3.0.3",
- "js-sdsl": "^4.1.4",
"js-yaml": "^4.1.0",
"json-stable-stringify-without-jsonify": "^1.0.1",
"levn": "^0.4.1",
"lodash.merge": "^4.6.2",
"minimatch": "^3.1.2",
"natural-compare": "^1.4.0",
- "optionator": "^0.9.1",
+ "optionator": "^0.9.3",
"strip-ansi": "^6.0.1",
- "strip-json-comments": "^3.1.0",
"text-table": "^0.2.0"
},
"bin": {
@@ -1095,147 +1383,133 @@
"url": "https://opencollective.com/eslint"
}
},
+ "node_modules/eslint-compat-utils": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.5.0.tgz",
+ "integrity": "sha512-dc6Y8tzEcSYZMHa+CMPLi/hyo1FzNeonbhJL7Ol0ccuKQkwopJcJBA9YL/xmMTLU1eKigXo9vj9nALElWYSowg==",
+ "dev": true,
+ "dependencies": {
+ "semver": "^7.5.4"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "peerDependencies": {
+ "eslint": ">=6.0.0"
+ }
+ },
"node_modules/eslint-config-wikimedia": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/eslint-config-wikimedia/-/eslint-config-wikimedia-0.24.0.tgz",
- "integrity": "sha512-8oH/YhJ87ONSmuRfATgx8U7Jcwz3tBemrh6YOezIfj9f2QfE71ZhaKZrNPdfS7vIklLor/cB9vX7sxN10nz8xw==",
+ "version": "0.27.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-wikimedia/-/eslint-config-wikimedia-0.27.0.tgz",
+ "integrity": "sha512-KkZ54+MUnggz17C/RCEMXQSpiiqZRF7p9fjrz4phaaeKlTrjg0B+QbM5zcDWcjGiAWaJUptHaH17+RZldadkUw==",
"dev": true,
"dependencies": {
- "browserslist-config-wikimedia": "^0.4.0",
- "eslint": "^8.31.0",
- "eslint-plugin-compat": "^4.0.2",
- "eslint-plugin-es-x": "^5.2.1",
- "eslint-plugin-jsdoc": "39.2.2",
+ "browserslist-config-wikimedia": "^0.6.1",
+ "eslint": "^8.57.0",
+ "eslint-plugin-compat": "^4.2.0",
+ "eslint-plugin-es-x": "^7.6.0",
+ "eslint-plugin-jest": "^27.9.0",
+ "eslint-plugin-jsdoc": "48.2.1",
"eslint-plugin-json-es": "^1.5.7",
- "eslint-plugin-mediawiki": "^0.4.0",
- "eslint-plugin-mocha": "^9.0.0",
+ "eslint-plugin-mediawiki": "^0.6.0",
+ "eslint-plugin-mocha": "^10.4.1",
+ "eslint-plugin-n": "^16.6.2",
"eslint-plugin-no-jquery": "^2.7.0",
- "eslint-plugin-node": "^11.1.0",
- "eslint-plugin-qunit": "^7.2.0",
- "eslint-plugin-unicorn": "^42.0.0",
- "eslint-plugin-vue": "^8.7.1",
- "eslint-plugin-wdio": "^7.19.4",
- "eslint-plugin-yml": "^0.14.0"
+ "eslint-plugin-qunit": "^8.1.1",
+ "eslint-plugin-security": "^1.7.1",
+ "eslint-plugin-unicorn": "^51.0.1",
+ "eslint-plugin-vue": "^9.23.0",
+ "eslint-plugin-wdio": "^8.24.12",
+ "eslint-plugin-yml": "^1.13.2"
}
},
"node_modules/eslint-plugin-compat": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/eslint-plugin-compat/-/eslint-plugin-compat-4.0.2.tgz",
- "integrity": "sha512-xqvoO54CLTVaEYGMzhu35Wzwk/As7rCvz/2dqwnFiWi0OJccEtGIn+5qq3zqIu9nboXlpdBN579fZcItC73Ycg==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-compat/-/eslint-plugin-compat-4.2.0.tgz",
+ "integrity": "sha512-RDKSYD0maWy5r7zb5cWQS+uSPc26mgOzdORJ8hxILmWM7S/Ncwky7BcAtXVY5iRbKjBdHsWU8Yg7hfoZjtkv7w==",
"dev": true,
"dependencies": {
- "@mdn/browser-compat-data": "^4.1.5",
- "ast-metadata-inferer": "^0.7.0",
- "browserslist": "^4.16.8",
- "caniuse-lite": "^1.0.30001304",
- "core-js": "^3.16.2",
+ "@mdn/browser-compat-data": "^5.3.13",
+ "ast-metadata-inferer": "^0.8.0",
+ "browserslist": "^4.21.10",
+ "caniuse-lite": "^1.0.30001524",
"find-up": "^5.0.0",
- "lodash.memoize": "4.1.2",
- "semver": "7.3.5"
+ "lodash.memoize": "^4.1.2",
+ "semver": "^7.5.4"
},
"engines": {
- "node": ">=9.x"
+ "node": ">=14.x"
},
"peerDependencies": {
"eslint": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0"
}
},
- "node_modules/eslint-plugin-es": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz",
- "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==",
- "dev": true,
- "dependencies": {
- "eslint-utils": "^2.0.0",
- "regexpp": "^3.0.0"
- },
- "engines": {
- "node": ">=8.10.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/mysticatea"
- },
- "peerDependencies": {
- "eslint": ">=4.19.1"
- }
- },
"node_modules/eslint-plugin-es-x": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-5.3.1.tgz",
- "integrity": "sha512-/WJk23lUi36qmPdiA8GxqjOQAwj+2672WwAOYLVD7j4+O5hd9UiXHZFWBwxxem5AyXA6LKDVJnmBZJp5FJWjog==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.6.0.tgz",
+ "integrity": "sha512-I0AmeNgevgaTR7y2lrVCJmGYF0rjoznpDvqV/kIkZSZbZ8Rw3eu4cGlvBBULScfkSOCzqKbff5LR4CNrV7mZHA==",
"dev": true,
"dependencies": {
- "eslint-utils": "^2.0.0 || ^3.0.0",
- "regexpp": "^3.0.0"
+ "@eslint-community/eslint-utils": "^4.1.2",
+ "@eslint-community/regexpp": "^4.6.0",
+ "eslint-compat-utils": "^0.5.0"
},
"engines": {
- "node": ">=8.10.0"
+ "node": "^14.18.0 || >=16.0.0"
},
"funding": {
"url": "https://github.com/sponsors/ota-meshi"
},
"peerDependencies": {
- "eslint": ">=4.19.1"
+ "eslint": ">=8"
}
},
- "node_modules/eslint-plugin-es/node_modules/eslint-utils": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz",
- "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==",
+ "node_modules/eslint-plugin-jest": {
+ "version": "27.9.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.9.0.tgz",
+ "integrity": "sha512-QIT7FH7fNmd9n4se7FFKHbsLKGQiw885Ds6Y/sxKgCZ6natwCsXdgPOADnYVxN2QrRweF0FZWbJ6S7Rsn7llug==",
"dev": true,
"dependencies": {
- "eslint-visitor-keys": "^1.1.0"
+ "@typescript-eslint/utils": "^5.10.0"
},
"engines": {
- "node": ">=6"
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
},
- "funding": {
- "url": "https://github.com/sponsors/mysticatea"
- }
- },
- "node_modules/eslint-plugin-es/node_modules/eslint-visitor-keys": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
- "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
- "dev": true,
- "engines": {
- "node": ">=4"
+ "peerDependencies": {
+ "@typescript-eslint/eslint-plugin": "^5.0.0 || ^6.0.0 || ^7.0.0",
+ "eslint": "^7.0.0 || ^8.0.0",
+ "jest": "*"
+ },
+ "peerDependenciesMeta": {
+ "@typescript-eslint/eslint-plugin": {
+ "optional": true
+ },
+ "jest": {
+ "optional": true
+ }
}
},
"node_modules/eslint-plugin-jsdoc": {
- "version": "39.2.2",
- "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-39.2.2.tgz",
- "integrity": "sha512-ybkvja0p9JRzHEd2ST9h+Z47DLOuPyXpeb6r18/zKHdMmggPU1J0/zl+F0phea8ze9rMxi42MJVmGXi2NZ7PpA==",
+ "version": "48.2.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-48.2.1.tgz",
+ "integrity": "sha512-iUvbcyDZSO/9xSuRv2HQBw++8VkV/pt3UWtX9cpPH0l7GKPq78QC/6+PmyQHHvNZaTjAce6QVciEbnc6J/zH5g==",
"dev": true,
"dependencies": {
- "@es-joy/jsdoccomment": "~0.23.1",
- "comment-parser": "1.3.1",
+ "@es-joy/jsdoccomment": "~0.42.0",
+ "are-docs-informative": "^0.0.2",
+ "comment-parser": "1.4.1",
"debug": "^4.3.4",
"escape-string-regexp": "^4.0.0",
- "esquery": "^1.4.0",
- "semver": "^7.3.7",
- "spdx-expression-parse": "^3.0.1"
+ "esquery": "^1.5.0",
+ "is-builtin-module": "^3.2.1",
+ "semver": "^7.6.0",
+ "spdx-expression-parse": "^4.0.0"
},
"engines": {
- "node": "^14 || ^16 || ^17"
+ "node": ">=18"
},
"peerDependencies": {
- "eslint": "^7.0.0 || ^8.0.0"
- }
- },
- "node_modules/eslint-plugin-jsdoc/node_modules/semver": {
- "version": "7.3.8",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
- "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
- "dev": true,
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
+ "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0"
}
},
"node_modules/eslint-plugin-json-es": {
@@ -1252,12 +1526,12 @@
}
},
"node_modules/eslint-plugin-mediawiki": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-mediawiki/-/eslint-plugin-mediawiki-0.4.0.tgz",
- "integrity": "sha512-Eufptb8lrElYwIONvgxlMBnPD6PYT4xAFprWlBxV5brCmUh8MZ41+lMxt2TPwEC6C85ngflkVez8BV8tWS9RyQ==",
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-mediawiki/-/eslint-plugin-mediawiki-0.6.0.tgz",
+ "integrity": "sha512-a2Zm18N5nPyflBajM2ZWATxucIpYPEmOSjFzUR1OBH3hAL0GY9fx1mpezEwzqAQ862d+kPkolgQOzktnZe8nKA==",
"dev": true,
"dependencies": {
- "eslint-plugin-vue": "^8.7.1",
+ "eslint-plugin-vue": "^9.23.0",
"upath": "^2.0.1"
},
"peerDependencies": {
@@ -1265,169 +1539,159 @@
}
},
"node_modules/eslint-plugin-mocha": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-9.0.0.tgz",
- "integrity": "sha512-d7knAcQj1jPCzZf3caeBIn3BnW6ikcvfz0kSqQpwPYcVGLoJV5sz0l0OJB2LR8I7dvTDbqq1oV6ylhSgzA10zg==",
+ "version": "10.4.3",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-10.4.3.tgz",
+ "integrity": "sha512-emc4TVjq5Ht0/upR+psftuz6IBG5q279p+1dSRDeHf+NS9aaerBi3lXKo1SEzwC29hFIW21gO89CEWSvRsi8IQ==",
"dev": true,
"dependencies": {
"eslint-utils": "^3.0.0",
- "ramda": "^0.27.1"
+ "globals": "^13.24.0",
+ "rambda": "^7.4.0"
},
"engines": {
- "node": ">=12.0.0"
+ "node": ">=14.0.0"
},
"peerDependencies": {
"eslint": ">=7.0.0"
}
},
- "node_modules/eslint-plugin-no-jquery": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-no-jquery/-/eslint-plugin-no-jquery-2.7.0.tgz",
- "integrity": "sha512-Aeg7dA6GTH1AcWLlBtWNzOU9efK5KpNi7b0EhBO0o0M+awyzguUUo8gF6hXGjQ9n5h8/uRtYv9zOqQkeC5CG0w==",
- "dev": true,
- "peerDependencies": {
- "eslint": ">=2.3.0"
- }
- },
- "node_modules/eslint-plugin-node": {
- "version": "11.1.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz",
- "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==",
- "dev": true,
- "dependencies": {
- "eslint-plugin-es": "^3.0.0",
- "eslint-utils": "^2.0.0",
- "ignore": "^5.1.1",
- "minimatch": "^3.0.4",
- "resolve": "^1.10.1",
- "semver": "^6.1.0"
- },
- "engines": {
- "node": ">=8.10.0"
- },
- "peerDependencies": {
- "eslint": ">=5.16.0"
- }
- },
- "node_modules/eslint-plugin-node/node_modules/eslint-utils": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz",
- "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==",
+ "node_modules/eslint-plugin-n": {
+ "version": "16.6.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-16.6.2.tgz",
+ "integrity": "sha512-6TyDmZ1HXoFQXnhCTUjVFULReoBPOAjpuiKELMkeP40yffI/1ZRO+d9ug/VC6fqISo2WkuIBk3cvuRPALaWlOQ==",
"dev": true,
"dependencies": {
- "eslint-visitor-keys": "^1.1.0"
+ "@eslint-community/eslint-utils": "^4.4.0",
+ "builtins": "^5.0.1",
+ "eslint-plugin-es-x": "^7.5.0",
+ "get-tsconfig": "^4.7.0",
+ "globals": "^13.24.0",
+ "ignore": "^5.2.4",
+ "is-builtin-module": "^3.2.1",
+ "is-core-module": "^2.12.1",
+ "minimatch": "^3.1.2",
+ "resolve": "^1.22.2",
+ "semver": "^7.5.3"
},
"engines": {
- "node": ">=6"
+ "node": ">=16.0.0"
},
"funding": {
"url": "https://github.com/sponsors/mysticatea"
+ },
+ "peerDependencies": {
+ "eslint": ">=7.0.0"
}
},
- "node_modules/eslint-plugin-node/node_modules/eslint-visitor-keys": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
- "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/eslint-plugin-node/node_modules/semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "node_modules/eslint-plugin-no-jquery": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-no-jquery/-/eslint-plugin-no-jquery-2.7.0.tgz",
+ "integrity": "sha512-Aeg7dA6GTH1AcWLlBtWNzOU9efK5KpNi7b0EhBO0o0M+awyzguUUo8gF6hXGjQ9n5h8/uRtYv9zOqQkeC5CG0w==",
"dev": true,
- "bin": {
- "semver": "bin/semver.js"
+ "peerDependencies": {
+ "eslint": ">=2.3.0"
}
},
"node_modules/eslint-plugin-qunit": {
- "version": "7.3.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-qunit/-/eslint-plugin-qunit-7.3.1.tgz",
- "integrity": "sha512-L1yutkLqCgr70ZmMAbBKPvUOUwhKryZ0RaJKOzw72Bmn8no3JNBL9hhbX2aTvfZqYM/wLXIT0nICZiGrV4xVJw==",
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-qunit/-/eslint-plugin-qunit-8.1.1.tgz",
+ "integrity": "sha512-j3xhiAf2Wvr8Dfwl5T6tlJ+F55vqYE9ZdAHUOTzq1lGerYrXzOS46RvK4SSWug2D8sl3ZYr2lA4/hgVXgLloxw==",
"dev": true,
"dependencies": {
"eslint-utils": "^3.0.0",
"requireindex": "^1.2.0"
},
"engines": {
- "node": "12.x || 14.x || >=16.0.0"
+ "node": "^16.0.0 || ^18.0.0 || >=20.0.0"
+ }
+ },
+ "node_modules/eslint-plugin-security": {
+ "version": "1.7.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-security/-/eslint-plugin-security-1.7.1.tgz",
+ "integrity": "sha512-sMStceig8AFglhhT2LqlU5r+/fn9OwsA72O5bBuQVTssPCdQAOQzL+oMn/ZcpeUY6KcNfLJArgcrsSULNjYYdQ==",
+ "dev": true,
+ "dependencies": {
+ "safe-regex": "^2.1.1"
}
},
"node_modules/eslint-plugin-unicorn": {
- "version": "42.0.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-42.0.0.tgz",
- "integrity": "sha512-ixBsbhgWuxVaNlPTT8AyfJMlhyC5flCJFjyK3oKE8TRrwBnaHvUbuIkCM1lqg8ryYrFStL/T557zfKzX4GKSlg==",
+ "version": "51.0.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-51.0.1.tgz",
+ "integrity": "sha512-MuR/+9VuB0fydoI0nIn2RDA5WISRn4AsJyNSaNKLVwie9/ONvQhxOBbkfSICBPnzKrB77Fh6CZZXjgTt/4Latw==",
"dev": true,
"dependencies": {
- "@babel/helper-validator-identifier": "^7.15.7",
- "ci-info": "^3.3.0",
+ "@babel/helper-validator-identifier": "^7.22.20",
+ "@eslint-community/eslint-utils": "^4.4.0",
+ "@eslint/eslintrc": "^2.1.4",
+ "ci-info": "^4.0.0",
"clean-regexp": "^1.0.0",
- "eslint-utils": "^3.0.0",
- "esquery": "^1.4.0",
+ "core-js-compat": "^3.34.0",
+ "esquery": "^1.5.0",
"indent-string": "^4.0.0",
- "is-builtin-module": "^3.1.0",
- "lodash": "^4.17.21",
+ "is-builtin-module": "^3.2.1",
+ "jsesc": "^3.0.2",
"pluralize": "^8.0.0",
"read-pkg-up": "^7.0.1",
- "regexp-tree": "^0.1.24",
- "safe-regex": "^2.1.1",
- "semver": "^7.3.5",
+ "regexp-tree": "^0.1.27",
+ "regjsparser": "^0.10.0",
+ "semver": "^7.5.4",
"strip-indent": "^3.0.0"
},
"engines": {
- "node": ">=12"
+ "node": ">=16"
},
"funding": {
"url": "https://github.com/sindresorhus/eslint-plugin-unicorn?sponsor=1"
},
"peerDependencies": {
- "eslint": ">=8.8.0"
+ "eslint": ">=8.56.0"
}
},
"node_modules/eslint-plugin-vue": {
- "version": "8.7.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-8.7.1.tgz",
- "integrity": "sha512-28sbtm4l4cOzoO1LtzQPxfxhQABararUb1JtqusQqObJpWX2e/gmVyeYVfepizPFne0Q5cILkYGiBoV36L12Wg==",
+ "version": "9.25.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.25.0.tgz",
+ "integrity": "sha512-tDWlx14bVe6Bs+Nnh3IGrD+hb11kf2nukfm6jLsmJIhmiRQ1SUaksvwY9U5MvPB0pcrg0QK0xapQkfITs3RKOA==",
"dev": true,
"dependencies": {
- "eslint-utils": "^3.0.0",
+ "@eslint-community/eslint-utils": "^4.4.0",
+ "globals": "^13.24.0",
"natural-compare": "^1.4.0",
- "nth-check": "^2.0.1",
- "postcss-selector-parser": "^6.0.9",
- "semver": "^7.3.5",
- "vue-eslint-parser": "^8.0.1"
+ "nth-check": "^2.1.1",
+ "postcss-selector-parser": "^6.0.15",
+ "semver": "^7.6.0",
+ "vue-eslint-parser": "^9.4.2",
+ "xml-name-validator": "^4.0.0"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": "^14.17.0 || >=16.0.0"
},
"peerDependencies": {
- "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0"
+ "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0"
}
},
"node_modules/eslint-plugin-wdio": {
- "version": "7.25.3",
- "resolved": "https://registry.npmjs.org/eslint-plugin-wdio/-/eslint-plugin-wdio-7.25.3.tgz",
- "integrity": "sha512-2zbYwV14Md9FNlyhaIILVGPB6w4bu2eJdOTywDUs2Qy4ebcQNwrxB0qCaf7Rm4O+T0Ir+tdYHYBBfbDocSLKng==",
+ "version": "8.24.12",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-wdio/-/eslint-plugin-wdio-8.24.12.tgz",
+ "integrity": "sha512-OmzGteXFOQnJDdkTNnTfksaVa18WlFCyeLjZXHvDpkbomLWAg9wc296Pr0wnTCagqNj8qfEHpy+N2XVew5VCMA==",
"dev": true,
"engines": {
- "node": ">=12.0.0"
+ "node": "^16.13 || >=18"
}
},
"node_modules/eslint-plugin-yml": {
- "version": "0.14.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-0.14.0.tgz",
- "integrity": "sha512-+0+bBV/07txENbxfrHF9olGoLCHez64vmnOmjWOoLwmXOwfdaSRleBSPIi4nWQs7WwX8lm/fSLadOjbVEcsXQQ==",
+ "version": "1.14.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-1.14.0.tgz",
+ "integrity": "sha512-ESUpgYPOcAYQO9czugcX5OqRvn/ydDVwGCPXY4YjPqc09rHaUVUA6IE6HLQys4rXk/S+qx3EwTd1wHCwam/OWQ==",
"dev": true,
"dependencies": {
"debug": "^4.3.2",
+ "eslint-compat-utils": "^0.5.0",
"lodash": "^4.17.21",
"natural-compare": "^1.4.0",
- "yaml-eslint-parser": "^0.5.0"
+ "yaml-eslint-parser": "^1.2.1"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": "^14.17.0 || >=16.0.0"
},
"funding": {
"url": "https://github.com/sponsors/ota-meshi"
@@ -1437,9 +1701,9 @@
}
},
"node_modules/eslint-scope": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz",
- "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==",
+ "version": "7.2.2",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
+ "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
"dev": true,
"dependencies": {
"esrecurse": "^4.3.0",
@@ -1447,6 +1711,9 @@
},
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
}
},
"node_modules/eslint-utils": {
@@ -1477,23 +1744,26 @@
}
},
"node_modules/eslint-visitor-keys": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz",
- "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==",
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
+ "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
"dev": true,
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
}
},
"node_modules/espree": {
- "version": "9.5.0",
- "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.0.tgz",
- "integrity": "sha512-JPbJGhKc47++oo4JkEoTe2wjy4fmMwvFpgJT9cQzmfXKp22Dr6Hf1tdCteLz1h0P3t+mGvWZ+4Uankvh8+c6zw==",
+ "version": "9.6.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
+ "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
"dev": true,
"dependencies": {
- "acorn": "^8.8.0",
+ "acorn": "^8.9.0",
"acorn-jsx": "^5.3.2",
- "eslint-visitor-keys": "^3.3.0"
+ "eslint-visitor-keys": "^3.4.1"
},
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -1597,9 +1867,9 @@
"dev": true
},
"node_modules/fast-glob": {
- "version": "3.2.12",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz",
- "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==",
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
+ "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
"dev": true,
"dependencies": {
"@nodelib/fs.stat": "^2.0.2",
@@ -1735,12 +2005,13 @@
}
},
"node_modules/flat-cache": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
- "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz",
+ "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==",
"dev": true,
"dependencies": {
- "flatted": "^3.1.0",
+ "flatted": "^3.2.9",
+ "keyv": "^4.5.3",
"rimraf": "^3.0.2"
},
"engines": {
@@ -1748,9 +2019,9 @@
}
},
"node_modules/flatted": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz",
- "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==",
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz",
+ "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==",
"dev": true
},
"node_modules/for-in": {
@@ -1781,10 +2052,13 @@
"dev": true
},
"node_modules/function-bind": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
- "dev": true
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
},
"node_modules/get-caller-file": {
"version": "2.0.5",
@@ -1795,6 +2069,18 @@
"node": "6.* || 8.* || >= 10.*"
}
},
+ "node_modules/get-tsconfig": {
+ "version": "4.7.3",
+ "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.3.tgz",
+ "integrity": "sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==",
+ "dev": true,
+ "dependencies": {
+ "resolve-pkg-maps": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1"
+ }
+ },
"node_modules/getobject": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/getobject/-/getobject-1.0.2.tgz",
@@ -1875,9 +2161,9 @@
}
},
"node_modules/globals": {
- "version": "13.20.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz",
- "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==",
+ "version": "13.24.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
+ "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
"dev": true,
"dependencies": {
"type-fest": "^0.20.2"
@@ -1915,10 +2201,10 @@
"integrity": "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==",
"dev": true
},
- "node_modules/grapheme-splitter": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz",
- "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==",
+ "node_modules/graphemer": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
+ "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
"dev": true
},
"node_modules/grunt": {
@@ -1981,13 +2267,13 @@
}
},
"node_modules/grunt-eslint": {
- "version": "24.0.0",
- "resolved": "https://registry.npmjs.org/grunt-eslint/-/grunt-eslint-24.0.0.tgz",
- "integrity": "sha512-WpTeBBFweyhMuPjGwRSQV9JFJ+EczIdlsc7Dd/1g78QVI1aZsk4g/H3e+3S5HEwsS1RKL2YZIrGj8hMLlBfN8w==",
+ "version": "24.3.0",
+ "resolved": "https://registry.npmjs.org/grunt-eslint/-/grunt-eslint-24.3.0.tgz",
+ "integrity": "sha512-dUPiRgX8fhmh4uwTAn9xrzg7HV5j5DhGmZZGJdHfjy/AN9G4jD+5IjfbcAJ209JcIG8m4B7xz3crIhuDSm3siQ==",
"dev": true,
"dependencies": {
"chalk": "^4.1.2",
- "eslint": "^8.0.1"
+ "eslint": "^8.44.0"
},
"engines": {
"node": ">=12"
@@ -2055,18 +2341,18 @@
}
},
"node_modules/grunt-stylelint": {
- "version": "0.18.0",
- "resolved": "https://registry.npmjs.org/grunt-stylelint/-/grunt-stylelint-0.18.0.tgz",
- "integrity": "sha512-Ks5OfRUCA6E1v5PkCQKYaMErHtoec/Ub0Vb1xvZ0CKm/1zzWKuqEu2ZVtFcQVDqrC5UM6AXaLHpsLiocVKAgbg==",
+ "version": "0.19.0",
+ "resolved": "https://registry.npmjs.org/grunt-stylelint/-/grunt-stylelint-0.19.0.tgz",
+ "integrity": "sha512-td+OvkfQ/2bYXNTBAlnpXmfa6sddLSloXRp1zoUONcMScbvEq5S3GSkOZKpCjK90WSjTYR0L7WYFcMVd1TXd+w==",
"dev": true,
"dependencies": {
"chalk": "^4.1.2"
},
"engines": {
- "node": ">=12"
+ "node": ">=16"
},
"peerDependencies": {
- "stylelint": "14.x"
+ "stylelint": "15.x"
}
},
"node_modules/grunt/node_modules/argparse": {
@@ -2118,18 +2404,6 @@
"node": ">=6"
}
},
- "node_modules/has": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
- "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
- "dev": true,
- "dependencies": {
- "function-bind": "^1.1.1"
- },
- "engines": {
- "node": ">= 0.4.0"
- }
- },
"node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
@@ -2139,6 +2413,18 @@
"node": ">=8"
}
},
+ "node_modules/hasown": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+ "dev": true,
+ "dependencies": {
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
"node_modules/homedir-polyfill": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz",
@@ -2167,9 +2453,9 @@
"dev": true
},
"node_modules/html-tags": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.2.0.tgz",
- "integrity": "sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==",
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz",
+ "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==",
"dev": true,
"engines": {
"node": ">=8"
@@ -2309,9 +2595,9 @@
"dev": true
},
"node_modules/is-builtin-module": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.0.tgz",
- "integrity": "sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw==",
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz",
+ "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==",
"dev": true,
"dependencies": {
"builtin-modules": "^3.3.0"
@@ -2324,12 +2610,12 @@
}
},
"node_modules/is-core-module": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz",
- "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==",
+ "version": "2.13.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
+ "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
"dev": true,
"dependencies": {
- "has": "^1.0.3"
+ "hasown": "^2.0.0"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -2458,12 +2744,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/js-sdsl": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.5.tgz",
- "integrity": "sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==",
- "dev": true
- },
"node_modules/js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
@@ -2483,14 +2763,32 @@
}
},
"node_modules/jsdoc-type-pratt-parser": {
- "version": "2.2.5",
- "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-2.2.5.tgz",
- "integrity": "sha512-2a6eRxSxp1BW040hFvaJxhsCMI9lT8QB8t14t+NY5tC5rckIR0U9cr2tjOeaFirmEOy6MHvmJnY7zTBHq431Lw==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.0.0.tgz",
+ "integrity": "sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==",
"dev": true,
"engines": {
"node": ">=12.0.0"
}
},
+ "node_modules/jsesc": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz",
+ "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==",
+ "dev": true,
+ "bin": {
+ "jsesc": "bin/jsesc"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/json-buffer": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
+ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
+ "dev": true
+ },
"node_modules/json-parse-even-better-errors": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
@@ -2509,6 +2807,15 @@
"integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
"dev": true
},
+ "node_modules/keyv": {
+ "version": "4.5.4",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
+ "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
+ "dev": true,
+ "dependencies": {
+ "json-buffer": "3.0.1"
+ }
+ },
"node_modules/kind-of": {
"version": "6.0.3",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
@@ -2519,10 +2826,11 @@
}
},
"node_modules/known-css-properties": {
- "version": "0.26.0",
- "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.26.0.tgz",
- "integrity": "sha512-5FZRzrZzNTBruuurWpvZnvP9pum+fe0HcK8z/ooo+U+Hmp4vtbyp1/QDsqmufirXy4egGzbaH/y2uCZf+6W5Kg==",
- "dev": true
+ "version": "0.29.0",
+ "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.29.0.tgz",
+ "integrity": "sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ==",
+ "dev": true,
+ "peer": true
},
"node_modules/ldjson-stream": {
"version": "1.2.1",
@@ -2703,27 +3011,33 @@
"url": "https://github.com/sponsors/wooorm"
}
},
+ "node_modules/mdn-data": {
+ "version": "2.0.30",
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz",
+ "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==",
+ "dev": true
+ },
"node_modules/meow": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz",
- "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==",
+ "version": "10.1.5",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-10.1.5.tgz",
+ "integrity": "sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==",
"dev": true,
"dependencies": {
- "@types/minimist": "^1.2.0",
- "camelcase-keys": "^6.2.2",
- "decamelize": "^1.2.0",
+ "@types/minimist": "^1.2.2",
+ "camelcase-keys": "^7.0.0",
+ "decamelize": "^5.0.0",
"decamelize-keys": "^1.1.0",
"hard-rejection": "^2.1.0",
"minimist-options": "4.1.0",
- "normalize-package-data": "^3.0.0",
- "read-pkg-up": "^7.0.1",
- "redent": "^3.0.0",
- "trim-newlines": "^3.0.0",
- "type-fest": "^0.18.0",
- "yargs-parser": "^20.2.3"
+ "normalize-package-data": "^3.0.2",
+ "read-pkg-up": "^8.0.0",
+ "redent": "^4.0.0",
+ "trim-newlines": "^4.0.2",
+ "type-fest": "^1.2.2",
+ "yargs-parser": "^20.2.9"
},
"engines": {
- "node": ">=10"
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -2756,10 +3070,45 @@
"node": ">=10"
}
},
+ "node_modules/meow/node_modules/read-pkg": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-6.0.0.tgz",
+ "integrity": "sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==",
+ "dev": true,
+ "dependencies": {
+ "@types/normalize-package-data": "^2.4.0",
+ "normalize-package-data": "^3.0.2",
+ "parse-json": "^5.2.0",
+ "type-fest": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/meow/node_modules/read-pkg-up": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-8.0.0.tgz",
+ "integrity": "sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==",
+ "dev": true,
+ "dependencies": {
+ "find-up": "^5.0.0",
+ "read-pkg": "^6.0.0",
+ "type-fest": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/meow/node_modules/type-fest": {
- "version": "0.18.1",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz",
- "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz",
+ "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==",
"dev": true,
"engines": {
"node": ">=10"
@@ -2860,10 +3209,16 @@
}
},
"node_modules/nanoid": {
- "version": "3.3.4",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
- "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
+ "version": "3.3.7",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
+ "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
"dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
"bin": {
"nanoid": "bin/nanoid.cjs"
},
@@ -2878,9 +3233,9 @@
"dev": true
},
"node_modules/node-releases": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz",
- "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==",
+ "version": "2.0.14",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz",
+ "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==",
"dev": true
},
"node_modules/nopt": {
@@ -2908,9 +3263,9 @@
}
},
"node_modules/normalize-package-data/node_modules/semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
"dev": true,
"bin": {
"semver": "bin/semver"
@@ -2987,9 +3342,9 @@
}
},
"node_modules/optionator": {
- "version": "0.9.1",
- "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
- "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
+ "version": "0.9.4",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz",
+ "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==",
"dev": true,
"dependencies": {
"deep-is": "^0.1.3",
@@ -2997,7 +3352,7 @@
"levn": "^0.4.1",
"prelude-ls": "^1.2.1",
"type-check": "^0.4.0",
- "word-wrap": "^1.2.3"
+ "word-wrap": "^1.2.5"
},
"engines": {
"node": ">= 0.8.0"
@@ -3214,9 +3569,9 @@
}
},
"node_modules/postcss": {
- "version": "8.4.21",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz",
- "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==",
+ "version": "8.4.38",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz",
+ "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==",
"dev": true,
"funding": [
{
@@ -3226,12 +3581,16 @@
{
"type": "tidelift",
"url": "https://tidelift.com/funding/github/npm/postcss"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
}
],
"dependencies": {
- "nanoid": "^3.3.4",
+ "nanoid": "^3.3.7",
"picocolors": "^1.0.0",
- "source-map-js": "^1.0.2"
+ "source-map-js": "^1.2.0"
},
"engines": {
"node": "^10 || ^12 || >=14"
@@ -3299,9 +3658,9 @@
}
},
"node_modules/postcss-selector-parser": {
- "version": "6.0.11",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz",
- "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==",
+ "version": "6.0.16",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz",
+ "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==",
"dev": true,
"dependencies": {
"cssesc": "^3.0.0",
@@ -3356,18 +3715,21 @@
]
},
"node_modules/quick-lru": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz",
- "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==",
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz",
+ "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==",
"dev": true,
"engines": {
- "node": ">=8"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/ramda": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.2.tgz",
- "integrity": "sha512-SbiLPU40JuJniHexQSAgad32hfwd+DRUdwF2PlVuI5RZD0/vahUco7R8vD86J/tcEKKF9vZrUVwgtmGCqlCKyA==",
+ "node_modules/rambda": {
+ "version": "7.5.0",
+ "resolved": "https://registry.npmjs.org/rambda/-/rambda-7.5.0.tgz",
+ "integrity": "sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA==",
"dev": true
},
"node_modules/read-pkg": {
@@ -3497,37 +3859,76 @@
}
},
"node_modules/redent": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz",
- "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/redent/-/redent-4.0.0.tgz",
+ "integrity": "sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==",
"dev": true,
"dependencies": {
- "indent-string": "^4.0.0",
- "strip-indent": "^3.0.0"
+ "indent-string": "^5.0.0",
+ "strip-indent": "^4.0.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/redent/node_modules/indent-string": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz",
+ "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/redent/node_modules/strip-indent": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.0.0.tgz",
+ "integrity": "sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==",
+ "dev": true,
+ "dependencies": {
+ "min-indent": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/regexp-tree": {
- "version": "0.1.24",
- "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.24.tgz",
- "integrity": "sha512-s2aEVuLhvnVJW6s/iPgEGK6R+/xngd2jNQ+xy4bXNDKxZKJH6jpPHY6kVeVv1IeLCHgswRj+Kl3ELaDjG6V1iw==",
+ "version": "0.1.27",
+ "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.27.tgz",
+ "integrity": "sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==",
"dev": true,
"bin": {
"regexp-tree": "bin/regexp-tree"
}
},
- "node_modules/regexpp": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz",
- "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==",
+ "node_modules/regjsparser": {
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.10.0.tgz",
+ "integrity": "sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==",
"dev": true,
- "engines": {
- "node": ">=8"
+ "dependencies": {
+ "jsesc": "~0.5.0"
},
- "funding": {
- "url": "https://github.com/sponsors/mysticatea"
+ "bin": {
+ "regjsparser": "bin/parser"
+ }
+ },
+ "node_modules/regjsparser/node_modules/jsesc": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
+ "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==",
+ "dev": true,
+ "bin": {
+ "jsesc": "bin/jsesc"
}
},
"node_modules/require-directory": {
@@ -3558,12 +3959,12 @@
}
},
"node_modules/resolve": {
- "version": "1.22.1",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
- "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
+ "version": "1.22.8",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
+ "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
"dev": true,
"dependencies": {
- "is-core-module": "^2.9.0",
+ "is-core-module": "^2.13.0",
"path-parse": "^1.0.7",
"supports-preserve-symlinks-flag": "^1.0.0"
},
@@ -3638,6 +4039,15 @@
"node": ">=4"
}
},
+ "node_modules/resolve-pkg-maps": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz",
+ "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1"
+ }
+ },
"node_modules/reusify": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
@@ -3722,9 +4132,9 @@
"dev": true
},
"node_modules/semver": {
- "version": "7.3.5",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
- "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
"dev": true,
"dependencies": {
"lru-cache": "^6.0.0"
@@ -3758,10 +4168,16 @@
}
},
"node_modules/signal-exit": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
- "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
- "dev": true
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
+ "dev": true,
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
},
"node_modules/slash": {
"version": "3.0.0",
@@ -3799,34 +4215,44 @@
}
},
"node_modules/source-map-js": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
- "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz",
+ "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==",
"dev": true,
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/spdx-correct": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz",
- "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz",
+ "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==",
"dev": true,
"dependencies": {
"spdx-expression-parse": "^3.0.0",
"spdx-license-ids": "^3.0.0"
}
},
+ "node_modules/spdx-correct/node_modules/spdx-expression-parse": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
+ "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+ "dev": true,
+ "dependencies": {
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
"node_modules/spdx-exceptions": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz",
- "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==",
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz",
+ "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==",
"dev": true
},
"node_modules/spdx-expression-parse": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
- "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-4.0.0.tgz",
+ "integrity": "sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==",
"dev": true,
"dependencies": {
"spdx-exceptions": "^2.1.0",
@@ -3834,9 +4260,9 @@
}
},
"node_modules/spdx-license-ids": {
- "version": "3.0.12",
- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz",
- "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==",
+ "version": "3.0.17",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz",
+ "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==",
"dev": true
},
"node_modules/split2": {
@@ -3905,121 +4331,222 @@
"ansi-regex": "^5.0.1"
},
"engines": {
- "node": ">=8"
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-indent": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
+ "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==",
+ "dev": true,
+ "dependencies": {
+ "min-indent": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-json-comments": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/style-search": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz",
+ "integrity": "sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==",
+ "dev": true
+ },
+ "node_modules/stylelint": {
+ "version": "15.11.0",
+ "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.11.0.tgz",
+ "integrity": "sha512-78O4c6IswZ9TzpcIiQJIN49K3qNoXTM8zEJzhaTE/xRTCZswaovSEVIa/uwbOltZrk16X4jAxjaOhzz/hTm1Kw==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@csstools/css-parser-algorithms": "^2.3.1",
+ "@csstools/css-tokenizer": "^2.2.0",
+ "@csstools/media-query-list-parser": "^2.1.4",
+ "@csstools/selector-specificity": "^3.0.0",
+ "balanced-match": "^2.0.0",
+ "colord": "^2.9.3",
+ "cosmiconfig": "^8.2.0",
+ "css-functions-list": "^3.2.1",
+ "css-tree": "^2.3.1",
+ "debug": "^4.3.4",
+ "fast-glob": "^3.3.1",
+ "fastest-levenshtein": "^1.0.16",
+ "file-entry-cache": "^7.0.0",
+ "global-modules": "^2.0.0",
+ "globby": "^11.1.0",
+ "globjoin": "^0.1.4",
+ "html-tags": "^3.3.1",
+ "ignore": "^5.2.4",
+ "import-lazy": "^4.0.0",
+ "imurmurhash": "^0.1.4",
+ "is-plain-object": "^5.0.0",
+ "known-css-properties": "^0.29.0",
+ "mathml-tag-names": "^2.1.3",
+ "meow": "^10.1.5",
+ "micromatch": "^4.0.5",
+ "normalize-path": "^3.0.0",
+ "picocolors": "^1.0.0",
+ "postcss": "^8.4.28",
+ "postcss-resolve-nested-selector": "^0.1.1",
+ "postcss-safe-parser": "^6.0.0",
+ "postcss-selector-parser": "^6.0.13",
+ "postcss-value-parser": "^4.2.0",
+ "resolve-from": "^5.0.0",
+ "string-width": "^4.2.3",
+ "strip-ansi": "^6.0.1",
+ "style-search": "^0.1.0",
+ "supports-hyperlinks": "^3.0.0",
+ "svg-tags": "^1.0.0",
+ "table": "^6.8.1",
+ "write-file-atomic": "^5.0.1"
+ },
+ "bin": {
+ "stylelint": "bin/stylelint.mjs"
+ },
+ "engines": {
+ "node": "^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/stylelint"
+ }
+ },
+ "node_modules/stylelint-config-recommended": {
+ "version": "13.0.0",
+ "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-13.0.0.tgz",
+ "integrity": "sha512-EH+yRj6h3GAe/fRiyaoO2F9l9Tgg50AOFhaszyfov9v6ayXJ1IkSHwTxd7lB48FmOeSGDPLjatjO11fJpmarkQ==",
+ "dev": true,
+ "engines": {
+ "node": "^14.13.1 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "stylelint": "^15.10.0"
}
},
- "node_modules/strip-indent": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
- "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==",
+ "node_modules/stylelint-config-wikimedia": {
+ "version": "0.16.1",
+ "resolved": "https://registry.npmjs.org/stylelint-config-wikimedia/-/stylelint-config-wikimedia-0.16.1.tgz",
+ "integrity": "sha512-FDVUyDyCBap2o2HAeJqIobdVdSTur5HFX5FymoKrzfMIYWxIV/55lTpyL1PR71TfVMaroDXJrIftLFW9mXKFhQ==",
"dev": true,
"dependencies": {
- "min-indent": "^1.0.0"
+ "browserslist-config-wikimedia": "0.5.0",
+ "postcss-html": "1.5.0",
+ "postcss-less": "6.0.0",
+ "stylelint": "15.10.1",
+ "stylelint-config-recommended": "13.0.0",
+ "stylelint-no-unsupported-browser-features": "6.1.0",
+ "stylelint-stylistic": "0.4.3"
},
- "engines": {
- "node": ">=8"
+ "peerDependencies": {
+ "postcss-less": "^6.0.0"
}
},
- "node_modules/strip-json-comments": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
- "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+ "node_modules/stylelint-config-wikimedia/node_modules/balanced-match": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz",
+ "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==",
+ "dev": true
+ },
+ "node_modules/stylelint-config-wikimedia/node_modules/browserslist-config-wikimedia": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/browserslist-config-wikimedia/-/browserslist-config-wikimedia-0.5.0.tgz",
+ "integrity": "sha512-t+tvSnTeVhVF2lNRxoAlE51/ZCfUs5SNNZUnWu2N8xXOGMPTMyKk5l4mayvDdm+5L8oqmnALU+TjnN2Z+ZTCTw==",
+ "dev": true
+ },
+ "node_modules/stylelint-config-wikimedia/node_modules/is-plain-object": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
+ "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
"dev": true,
"engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=0.10.0"
}
},
- "node_modules/style-search": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz",
- "integrity": "sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==",
+ "node_modules/stylelint-config-wikimedia/node_modules/known-css-properties": {
+ "version": "0.27.0",
+ "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.27.0.tgz",
+ "integrity": "sha512-uMCj6+hZYDoffuvAJjFAPz56E9uoowFHmTkqRtRq5WyC5Q6Cu/fTZKNQpX/RbzChBYLLl3lo8CjFZBAZXq9qFg==",
"dev": true
},
- "node_modules/stylelint": {
- "version": "14.16.1",
- "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.16.1.tgz",
- "integrity": "sha512-ErlzR/T3hhbV+a925/gbfc3f3Fep9/bnspMiJPorfGEmcBbXdS+oo6LrVtoUZ/w9fqD6o6k7PtUlCOsCRdjX/A==",
+ "node_modules/stylelint-config-wikimedia/node_modules/resolve-from": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/stylelint-config-wikimedia/node_modules/stylelint": {
+ "version": "15.10.1",
+ "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.10.1.tgz",
+ "integrity": "sha512-CYkzYrCFfA/gnOR+u9kJ1PpzwG10WLVnoxHDuBA/JiwGqdM9+yx9+ou6SE/y9YHtfv1mcLo06fdadHTOx4gBZQ==",
"dev": true,
"dependencies": {
- "@csstools/selector-specificity": "^2.0.2",
+ "@csstools/css-parser-algorithms": "^2.3.0",
+ "@csstools/css-tokenizer": "^2.1.1",
+ "@csstools/media-query-list-parser": "^2.1.2",
+ "@csstools/selector-specificity": "^3.0.0",
"balanced-match": "^2.0.0",
"colord": "^2.9.3",
- "cosmiconfig": "^7.1.0",
+ "cosmiconfig": "^8.2.0",
"css-functions-list": "^3.1.0",
+ "css-tree": "^2.3.1",
"debug": "^4.3.4",
- "fast-glob": "^3.2.12",
+ "fast-glob": "^3.3.0",
"fastest-levenshtein": "^1.0.16",
"file-entry-cache": "^6.0.1",
"global-modules": "^2.0.0",
"globby": "^11.1.0",
"globjoin": "^0.1.4",
- "html-tags": "^3.2.0",
- "ignore": "^5.2.1",
+ "html-tags": "^3.3.1",
+ "ignore": "^5.2.4",
"import-lazy": "^4.0.0",
"imurmurhash": "^0.1.4",
"is-plain-object": "^5.0.0",
- "known-css-properties": "^0.26.0",
+ "known-css-properties": "^0.27.0",
"mathml-tag-names": "^2.1.3",
- "meow": "^9.0.0",
+ "meow": "^10.1.5",
"micromatch": "^4.0.5",
"normalize-path": "^3.0.0",
"picocolors": "^1.0.0",
- "postcss": "^8.4.19",
- "postcss-media-query-parser": "^0.2.3",
+ "postcss": "^8.4.24",
"postcss-resolve-nested-selector": "^0.1.1",
"postcss-safe-parser": "^6.0.0",
- "postcss-selector-parser": "^6.0.11",
+ "postcss-selector-parser": "^6.0.13",
"postcss-value-parser": "^4.2.0",
"resolve-from": "^5.0.0",
"string-width": "^4.2.3",
"strip-ansi": "^6.0.1",
"style-search": "^0.1.0",
- "supports-hyperlinks": "^2.3.0",
+ "supports-hyperlinks": "^3.0.0",
"svg-tags": "^1.0.0",
"table": "^6.8.1",
- "v8-compile-cache": "^2.3.0",
- "write-file-atomic": "^4.0.2"
+ "write-file-atomic": "^5.0.1"
},
"bin": {
- "stylelint": "bin/stylelint.js"
+ "stylelint": "bin/stylelint.mjs"
},
"engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ "node": "^14.13.1 || >=16.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/stylelint"
}
},
- "node_modules/stylelint-config-recommended": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-9.0.0.tgz",
- "integrity": "sha512-9YQSrJq4NvvRuTbzDsWX3rrFOzOlYBmZP+o513BJN/yfEmGSr0AxdvrWs0P/ilSpVV/wisamAHu5XSk8Rcf4CQ==",
- "dev": true,
- "peerDependencies": {
- "stylelint": "^14.10.0"
- }
- },
- "node_modules/stylelint-config-wikimedia": {
- "version": "0.14.0",
- "resolved": "https://registry.npmjs.org/stylelint-config-wikimedia/-/stylelint-config-wikimedia-0.14.0.tgz",
- "integrity": "sha512-8gc5fcYsavMU6yBxE4Ium0XX8Ekedg+kcU0Oojjg5di6Jhv74bx3pcdfW+Z4bDYKWx3pg3Glemy/CBRqg+JViQ==",
- "dev": true,
- "dependencies": {
- "browserslist-config-wikimedia": "0.4.0",
- "postcss-html": "1.5.0",
- "postcss-less": "6.0.0",
- "stylelint": "14.16.1",
- "stylelint-config-recommended": "9.0.0",
- "stylelint-no-unsupported-browser-features": "6.1.0"
- },
- "peerDependencies": {
- "postcss-less": "^6.0.0"
- }
- },
"node_modules/stylelint-no-unsupported-browser-features": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/stylelint-no-unsupported-browser-features/-/stylelint-no-unsupported-browser-features-6.1.0.tgz",
@@ -4037,17 +4564,58 @@
"stylelint": "^14.0.0||^15.0.0"
}
},
+ "node_modules/stylelint-stylistic": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/stylelint-stylistic/-/stylelint-stylistic-0.4.3.tgz",
+ "integrity": "sha512-WphmneK3MRrm5ixvRPWy7+c9+EQUh0FPvNMXW/N9VD85vyqtpxUejpD+mxubVVht0fRgidcqBxtW3s3tU2Ujhw==",
+ "deprecated": "This package has been deprecated in favor of @stylistic/stylelint-plugin",
+ "dev": true,
+ "dependencies": {
+ "is-plain-object": "^5.0.0",
+ "postcss": "^8.4.21",
+ "postcss-media-query-parser": "^0.2.3",
+ "postcss-value-parser": "^4.2.0",
+ "style-search": "^0.1.0"
+ },
+ "peerDependencies": {
+ "stylelint": "^15.0.0"
+ }
+ },
+ "node_modules/stylelint-stylistic/node_modules/is-plain-object": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
+ "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/stylelint/node_modules/balanced-match": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz",
"integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==",
- "dev": true
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/stylelint/node_modules/file-entry-cache": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-7.0.2.tgz",
+ "integrity": "sha512-TfW7/1iI4Cy7Y8L6iqNdZQVvdXn0f8B4QcIXmkIbtTIe/Okm/nSlHb4IwGzRVOd3WfSieCgvf5cMzEfySAIl0g==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "flat-cache": "^3.2.0"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ }
},
"node_modules/stylelint/node_modules/is-plain-object": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
"integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
"dev": true,
+ "peer": true,
"engines": {
"node": ">=0.10.0"
}
@@ -4057,6 +4625,7 @@
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
"integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
"dev": true,
+ "peer": true,
"engines": {
"node": ">=8"
}
@@ -4074,16 +4643,16 @@
}
},
"node_modules/supports-hyperlinks": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz",
- "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.0.0.tgz",
+ "integrity": "sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==",
"dev": true,
"dependencies": {
"has-flag": "^4.0.0",
"supports-color": "^7.0.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=14.18"
}
},
"node_modules/supports-preserve-symlinks-flag": {
@@ -4193,12 +4762,36 @@
}
},
"node_modules/trim-newlines": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz",
- "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-4.1.1.tgz",
+ "integrity": "sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==",
"dev": true,
"engines": {
- "node": ">=8"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "dev": true
+ },
+ "node_modules/tsutils": {
+ "version": "3.21.0",
+ "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz",
+ "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==",
+ "dev": true,
+ "dependencies": {
+ "tslib": "^1.8.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ },
+ "peerDependencies": {
+ "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta"
}
},
"node_modules/type-check": {
@@ -4225,6 +4818,20 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/typescript": {
+ "version": "5.4.5",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz",
+ "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==",
+ "dev": true,
+ "peer": true,
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=14.17"
+ }
+ },
"node_modules/unc-path-regex": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz",
@@ -4258,9 +4865,9 @@
}
},
"node_modules/update-browserslist-db": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz",
- "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==",
+ "version": "1.0.13",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz",
+ "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==",
"dev": true,
"funding": [
{
@@ -4270,6 +4877,10 @@
{
"type": "tidelift",
"url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
}
],
"dependencies": {
@@ -4277,7 +4888,7 @@
"picocolors": "^1.0.0"
},
"bin": {
- "browserslist-lint": "cli.js"
+ "update-browserslist-db": "cli.js"
},
"peerDependencies": {
"browserslist": ">= 4.21.0"
@@ -4298,12 +4909,6 @@
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
"dev": true
},
- "node_modules/v8-compile-cache": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz",
- "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==",
- "dev": true
- },
"node_modules/v8flags": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz",
@@ -4326,22 +4931,32 @@
"spdx-expression-parse": "^3.0.0"
}
},
+ "node_modules/validate-npm-package-license/node_modules/spdx-expression-parse": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
+ "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+ "dev": true,
+ "dependencies": {
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
"node_modules/vue-eslint-parser": {
- "version": "8.3.0",
- "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-8.3.0.tgz",
- "integrity": "sha512-dzHGG3+sYwSf6zFBa0Gi9ZDshD7+ad14DGOdTLjruRVgZXe2J+DcZ9iUhyR48z5g1PqRa20yt3Njna/veLJL/g==",
+ "version": "9.4.2",
+ "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.4.2.tgz",
+ "integrity": "sha512-Ry9oiGmCAK91HrKMtCrKFWmSFWvYkpGglCeFAIqDdr9zdXmMMpJOmUJS7WWsW7fX81h6mwHmUZCQQ1E0PkSwYQ==",
"dev": true,
"dependencies": {
- "debug": "^4.3.2",
- "eslint-scope": "^7.0.0",
- "eslint-visitor-keys": "^3.1.0",
- "espree": "^9.0.0",
+ "debug": "^4.3.4",
+ "eslint-scope": "^7.1.1",
+ "eslint-visitor-keys": "^3.3.0",
+ "espree": "^9.3.1",
"esquery": "^1.4.0",
"lodash": "^4.17.21",
- "semver": "^7.3.5"
+ "semver": "^7.3.6"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": "^14.17.0 || >=16.0.0"
},
"funding": {
"url": "https://github.com/sponsors/mysticatea"
@@ -4366,9 +4981,9 @@
}
},
"node_modules/word-wrap": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
- "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
+ "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
"dev": true,
"engines": {
"node": ">=0.10.0"
@@ -4398,16 +5013,25 @@
"dev": true
},
"node_modules/write-file-atomic": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz",
- "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz",
+ "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==",
"dev": true,
"dependencies": {
"imurmurhash": "^0.1.4",
- "signal-exit": "^3.0.7"
+ "signal-exit": "^4.0.1"
},
"engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/xml-name-validator": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz",
+ "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
}
},
"node_modules/xtend": {
@@ -4435,26 +5059,32 @@
"dev": true
},
"node_modules/yaml": {
- "version": "1.10.2",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
- "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.1.tgz",
+ "integrity": "sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==",
"dev": true,
+ "bin": {
+ "yaml": "bin.mjs"
+ },
"engines": {
- "node": ">= 6"
+ "node": ">= 14"
}
},
"node_modules/yaml-eslint-parser": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/yaml-eslint-parser/-/yaml-eslint-parser-0.5.0.tgz",
- "integrity": "sha512-nJeyLA3YHAzhBTZbRAbu3W6xrSCucyxExmA+ZDtEdUFpGllxAZpto2Zxo2IG0r0eiuEiBM4e+wiAdxTziTq94g==",
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/yaml-eslint-parser/-/yaml-eslint-parser-1.2.2.tgz",
+ "integrity": "sha512-pEwzfsKbTrB8G3xc/sN7aw1v6A6c/pKxLAkjclnAyo5g5qOh6eL9WGu0o3cSDQZKrTNk4KL4lQSwZW+nBkANEg==",
"dev": true,
"dependencies": {
"eslint-visitor-keys": "^3.0.0",
"lodash": "^4.17.21",
- "yaml": "^1.10.2"
+ "yaml": "^2.0.0"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": "^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ota-meshi"
}
},
"node_modules/yargs": {
@@ -4499,29 +5129,31 @@
},
"dependencies": {
"@babel/code-frame": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz",
- "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==",
+ "version": "7.24.2",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz",
+ "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==",
"dev": true,
"requires": {
- "@babel/highlight": "^7.18.6"
+ "@babel/highlight": "^7.24.2",
+ "picocolors": "^1.0.0"
}
},
"@babel/helper-validator-identifier": {
- "version": "7.19.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz",
- "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==",
+ "version": "7.22.20",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
+ "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==",
"dev": true
},
"@babel/highlight": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz",
- "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
+ "version": "7.24.2",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz",
+ "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==",
"dev": true,
"requires": {
- "@babel/helper-validator-identifier": "^7.18.6",
- "chalk": "^2.0.0",
- "js-tokens": "^4.0.0"
+ "@babel/helper-validator-identifier": "^7.22.20",
+ "chalk": "^2.4.2",
+ "js-tokens": "^4.0.0",
+ "picocolors": "^1.0.0"
},
"dependencies": {
"ansi-styles": {
@@ -4582,48 +5214,68 @@
}
}
},
+ "@csstools/css-parser-algorithms": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.6.1.tgz",
+ "integrity": "sha512-ubEkAaTfVZa+WwGhs5jbo5Xfqpeaybr/RvWzvFxRs4jfq16wH8l8Ty/QEEpINxll4xhuGfdMbipRyz5QZh9+FA==",
+ "dev": true,
+ "requires": {}
+ },
+ "@csstools/css-tokenizer": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.2.4.tgz",
+ "integrity": "sha512-PuWRAewQLbDhGeTvFuq2oClaSCKPIBmHyIobCV39JHRYN0byDcUWJl5baPeNUcqrjtdMNqFooE0FGl31I3JOqw==",
+ "dev": true
+ },
+ "@csstools/media-query-list-parser": {
+ "version": "2.1.9",
+ "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.9.tgz",
+ "integrity": "sha512-qqGuFfbn4rUmyOB0u8CVISIp5FfJ5GAR3mBrZ9/TKndHakdnm6pY0L/fbLcpPnrzwCyyTEZl1nUcXAYHEWneTA==",
+ "dev": true,
+ "requires": {}
+ },
"@csstools/selector-specificity": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.1.1.tgz",
- "integrity": "sha512-jwx+WCqszn53YHOfvFMJJRd/B2GqkCBt+1MJSG6o5/s8+ytHMvDZXsJgUEWLk12UnLd7HYKac4BYU5i/Ron1Cw==",
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.0.3.tgz",
+ "integrity": "sha512-KEPNw4+WW5AVEIyzC80rTbWEUatTW2lXpN8+8ILC8PiPeWPjwUzrPZDIOZ2wwqDmeqOYTdSGyL3+vE5GC3FB3Q==",
"dev": true,
"requires": {}
},
"@es-joy/jsdoccomment": {
- "version": "0.23.6",
- "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.23.6.tgz",
- "integrity": "sha512-cCtumxG+qrYORGeOkDQ58GtSt/bb2XiP9GC0x2YduoUEX2EmBQ48FtoZMUs+8wiIdTDN1izUiRUD2FDu+p+Lvg==",
+ "version": "0.42.0",
+ "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.42.0.tgz",
+ "integrity": "sha512-R1w57YlVA6+YE01wch3GPYn6bCsrOV3YW/5oGGE2tmX6JcL9Nr+b5IikrjMPF+v9CV3ay+obImEdsDhovhJrzw==",
"dev": true,
"requires": {
- "comment-parser": "1.3.1",
- "esquery": "^1.4.0",
- "jsdoc-type-pratt-parser": "~2.2.5"
+ "comment-parser": "1.4.1",
+ "esquery": "^1.5.0",
+ "jsdoc-type-pratt-parser": "~4.0.0"
}
},
"@eslint-community/eslint-utils": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.2.0.tgz",
- "integrity": "sha512-gB8T4H4DEfX2IV9zGDJPOBgP1e/DbfCPDTtEqUMckpvzS1OYtva8JdFYBqMwYk7xAQ429WGF/UPqn8uQ//h2vQ==",
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
+ "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
"dev": true,
"requires": {
"eslint-visitor-keys": "^3.3.0"
}
},
"@eslint-community/regexpp": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.4.0.tgz",
- "integrity": "sha512-A9983Q0LnDGdLPjxyXQ00sbV+K+O+ko2Dr+CZigbHWtX9pNfxlaBkMR8X1CztI73zuEyEBXTVjx7CE+/VSwDiQ==",
+ "version": "4.10.0",
+ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz",
+ "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==",
"dev": true
},
"@eslint/eslintrc": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.1.tgz",
- "integrity": "sha512-eFRmABvW2E5Ho6f5fHLqgena46rOj7r7OKHYfLElqcBfGFHHpjBhivyi5+jOEQuSpdc/1phIZJlbC2te+tZNIw==",
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz",
+ "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==",
"dev": true,
"requires": {
"ajv": "^6.12.4",
"debug": "^4.3.2",
- "espree": "^9.5.0",
+ "espree": "^9.6.0",
"globals": "^13.19.0",
"ignore": "^5.2.0",
"import-fresh": "^3.2.1",
@@ -4633,19 +5285,19 @@
}
},
"@eslint/js": {
- "version": "8.36.0",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.36.0.tgz",
- "integrity": "sha512-lxJ9R5ygVm8ZWgYdUweoq5ownDlJ4upvoWmO4eLxBYHdMo+vZ/Rx0EN6MbKWDJOSUGrqJy2Gt+Dyv/VKml0fjg==",
+ "version": "8.57.0",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz",
+ "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==",
"dev": true
},
"@humanwhocodes/config-array": {
- "version": "0.11.8",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz",
- "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==",
+ "version": "0.11.14",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
+ "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==",
"dev": true,
"requires": {
- "@humanwhocodes/object-schema": "^1.2.1",
- "debug": "^4.1.1",
+ "@humanwhocodes/object-schema": "^2.0.2",
+ "debug": "^4.3.1",
"minimatch": "^3.0.5"
}
},
@@ -4656,15 +5308,15 @@
"dev": true
},
"@humanwhocodes/object-schema": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
- "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz",
+ "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==",
"dev": true
},
"@mdn/browser-compat-data": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-4.2.1.tgz",
- "integrity": "sha512-EWUguj2kd7ldmrF9F+vI5hUOralPd+sdsUnYbRy33vZTuZkduC1shE9TtEMEjAQwyfyMb4ole5KtjF8MsnQOlA==",
+ "version": "5.5.23",
+ "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-5.5.23.tgz",
+ "integrity": "sha512-nIy38qL3nfNcGOz5J2BJQpBXa7vM9QO1+wbyvqqS89lgNTWE8Q10whLsmE0sTVBooXiEaRc4fVME5IXjCYiHAw==",
"dev": true
},
"@nodelib/fs.scandir": {
@@ -4693,6 +5345,12 @@
"fastq": "^1.6.0"
}
},
+ "@types/json-schema": {
+ "version": "7.0.15",
+ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
+ "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
+ "dev": true
+ },
"@types/minimatch": {
"version": "3.0.5",
"resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz",
@@ -4700,21 +5358,102 @@
"dev": true
},
"@types/minimist": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz",
- "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==",
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz",
+ "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==",
"dev": true
},
"@types/normalize-package-data": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz",
- "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==",
+ "version": "2.4.4",
+ "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz",
+ "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==",
"dev": true
},
- "@types/parse-json": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz",
- "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==",
+ "@types/semver": {
+ "version": "7.5.8",
+ "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz",
+ "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==",
+ "dev": true
+ },
+ "@typescript-eslint/scope-manager": {
+ "version": "5.62.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz",
+ "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "5.62.0",
+ "@typescript-eslint/visitor-keys": "5.62.0"
+ }
+ },
+ "@typescript-eslint/types": {
+ "version": "5.62.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz",
+ "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==",
+ "dev": true
+ },
+ "@typescript-eslint/typescript-estree": {
+ "version": "5.62.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz",
+ "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "5.62.0",
+ "@typescript-eslint/visitor-keys": "5.62.0",
+ "debug": "^4.3.4",
+ "globby": "^11.1.0",
+ "is-glob": "^4.0.3",
+ "semver": "^7.3.7",
+ "tsutils": "^3.21.0"
+ }
+ },
+ "@typescript-eslint/utils": {
+ "version": "5.62.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz",
+ "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==",
+ "dev": true,
+ "requires": {
+ "@eslint-community/eslint-utils": "^4.2.0",
+ "@types/json-schema": "^7.0.9",
+ "@types/semver": "^7.3.12",
+ "@typescript-eslint/scope-manager": "5.62.0",
+ "@typescript-eslint/types": "5.62.0",
+ "@typescript-eslint/typescript-estree": "5.62.0",
+ "eslint-scope": "^5.1.1",
+ "semver": "^7.3.7"
+ },
+ "dependencies": {
+ "eslint-scope": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
+ "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
+ "dev": true,
+ "requires": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^4.1.1"
+ }
+ },
+ "estraverse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+ "dev": true
+ }
+ }
+ },
+ "@typescript-eslint/visitor-keys": {
+ "version": "5.62.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz",
+ "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "5.62.0",
+ "eslint-visitor-keys": "^3.3.0"
+ }
+ },
+ "@ungap/structured-clone": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
+ "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==",
"dev": true
},
"abbrev": {
@@ -4724,9 +5463,9 @@
"dev": true
},
"acorn": {
- "version": "8.8.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz",
- "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==",
+ "version": "8.11.3",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
+ "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
"dev": true
},
"acorn-jsx": {
@@ -4763,6 +5502,12 @@
"color-convert": "^2.0.1"
}
},
+ "are-docs-informative": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz",
+ "integrity": "sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==",
+ "dev": true
+ },
"argparse": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
@@ -4800,20 +5545,12 @@
"dev": true
},
"ast-metadata-inferer": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/ast-metadata-inferer/-/ast-metadata-inferer-0.7.0.tgz",
- "integrity": "sha512-OkMLzd8xelb3gmnp6ToFvvsHLtS6CbagTkFQvQ+ZYFe3/AIl9iKikNR9G7pY3GfOR/2Xc222hwBjzI7HLkE76Q==",
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/ast-metadata-inferer/-/ast-metadata-inferer-0.8.0.tgz",
+ "integrity": "sha512-jOMKcHht9LxYIEQu+RVd22vtgrPaVCtDRQ/16IGmurdzxvYbDd5ynxjnyrzLnieG96eTcAyaoj/wN/4/1FyyeA==",
"dev": true,
"requires": {
- "@mdn/browser-compat-data": "^3.3.14"
- },
- "dependencies": {
- "@mdn/browser-compat-data": {
- "version": "3.3.14",
- "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-3.3.14.tgz",
- "integrity": "sha512-n2RC9d6XatVbWFdHLimzzUJxJ1KY8LdjqrW6YvGPiRmsHkhOUx74/Ct10x5Yo7bC/Jvqx7cDEW8IMPv/+vwEzA==",
- "dev": true
- }
+ "@mdn/browser-compat-data": "^5.2.34"
}
},
"astral-regex": {
@@ -4860,21 +5597,21 @@
}
},
"browserslist": {
- "version": "4.21.4",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz",
- "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==",
+ "version": "4.23.0",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz",
+ "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==",
"dev": true,
"requires": {
- "caniuse-lite": "^1.0.30001400",
- "electron-to-chromium": "^1.4.251",
- "node-releases": "^2.0.6",
- "update-browserslist-db": "^1.0.9"
+ "caniuse-lite": "^1.0.30001587",
+ "electron-to-chromium": "^1.4.668",
+ "node-releases": "^2.0.14",
+ "update-browserslist-db": "^1.0.13"
}
},
"browserslist-config-wikimedia": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/browserslist-config-wikimedia/-/browserslist-config-wikimedia-0.4.0.tgz",
- "integrity": "sha512-U/fmsaGlCKOqRIjKqXwQ44qFqiStngRTphj1Cf6IHV6J8OK8T0gu9dKc7Ljq4v7bwhnhN+YCCa4fA3nZlPNivQ==",
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/browserslist-config-wikimedia/-/browserslist-config-wikimedia-0.6.1.tgz",
+ "integrity": "sha512-F3O+12ud7ZwBaiB/RZIMGDgz3nEuXz8RhtdPB4Lkd/WVP5Vy77EqBWRMz4vJ64x8LTTH3BOaHCD2ZuUcgShqyQ==",
"dev": true
},
"builtin-modules": {
@@ -4883,6 +5620,15 @@
"integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==",
"dev": true
},
+ "builtins": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.1.0.tgz",
+ "integrity": "sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==",
+ "dev": true,
+ "requires": {
+ "semver": "^7.0.0"
+ }
+ },
"callsites": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
@@ -4890,26 +5636,35 @@
"dev": true
},
"camelcase": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
- "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
+ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
"dev": true
},
"camelcase-keys": {
- "version": "6.2.2",
- "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz",
- "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==",
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-7.0.2.tgz",
+ "integrity": "sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==",
"dev": true,
"requires": {
- "camelcase": "^5.3.1",
- "map-obj": "^4.0.0",
- "quick-lru": "^4.0.1"
+ "camelcase": "^6.3.0",
+ "map-obj": "^4.1.0",
+ "quick-lru": "^5.1.1",
+ "type-fest": "^1.2.1"
+ },
+ "dependencies": {
+ "type-fest": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz",
+ "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==",
+ "dev": true
+ }
}
},
"caniuse-lite": {
- "version": "1.0.30001423",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001423.tgz",
- "integrity": "sha512-09iwWGOlifvE1XuHokFMP7eR38a0JnajoyL3/i87c8ZjRWRrdKo1fqjNfugfBD0UDBIOz0U+jtNhJ0EPm1VleQ==",
+ "version": "1.0.30001612",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001612.tgz",
+ "integrity": "sha512-lFgnZ07UhaCcsSZgWW0K5j4e69dK1u/ltrL9lTUiFOwNHs12S3UMIEYgBV0Z6C6hRDev7iRnMzzYmKabYdXF9g==",
"dev": true
},
"chalk": {
@@ -4923,9 +5678,9 @@
}
},
"ci-info": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.5.0.tgz",
- "integrity": "sha512-yH4RezKOGlOhxkmhbeNuC4eYZKAUsEaGtBuBzDDP1eFUKiccDWzBABxBfOx31IDwDIXMTxWuwAxUGModvkbuVw==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.0.0.tgz",
+ "integrity": "sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==",
"dev": true
},
"clean-regexp": {
@@ -4984,9 +5739,9 @@
"dev": true
},
"comment-parser": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.3.1.tgz",
- "integrity": "sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA==",
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.1.tgz",
+ "integrity": "sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==",
"dev": true
},
"concat-map": {
@@ -4995,11 +5750,14 @@
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
"dev": true
},
- "core-js": {
- "version": "3.25.5",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.25.5.tgz",
- "integrity": "sha512-nbm6eZSjm+ZuBQxCUPQKQCoUEfFOXjUZ8dTTyikyKaWrTYmAVbykQfwsKE5dBK88u3QCkCrzsx/PPlKfhsvgpw==",
- "dev": true
+ "core-js-compat": {
+ "version": "3.37.0",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.0.tgz",
+ "integrity": "sha512-vYq4L+T8aS5UuFg4UwDhc7YNRWVeVZwltad9C/jV3R2LgVOpS9BDr7l/WL6BN0dbV3k1XejPTHqqEzJgsa0frA==",
+ "dev": true,
+ "requires": {
+ "browserslist": "^4.23.0"
+ }
},
"core-util-is": {
"version": "1.0.3",
@@ -5008,16 +5766,15 @@
"dev": true
},
"cosmiconfig": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz",
- "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==",
+ "version": "8.3.6",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz",
+ "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==",
"dev": true,
"requires": {
- "@types/parse-json": "^4.0.0",
- "import-fresh": "^3.2.1",
- "parse-json": "^5.0.0",
- "path-type": "^4.0.0",
- "yaml": "^1.10.0"
+ "import-fresh": "^3.3.0",
+ "js-yaml": "^4.1.0",
+ "parse-json": "^5.2.0",
+ "path-type": "^4.0.0"
}
},
"cross-spawn": {
@@ -5032,9 +5789,9 @@
}
},
"css-functions-list": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.1.0.tgz",
- "integrity": "sha512-/9lCvYZaUbBGvYUgYGFJ4dcYiyqdhSjG7IPVluoV8A1ILjkF7ilmhp1OGUz8n+nmBcu0RNrQAzgD8B6FJbrt2w==",
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.2.tgz",
+ "integrity": "sha512-c+N0v6wbKVxTu5gOBBFkr9BEdBWaqqjQeiJ8QvSRIJOf+UxlJh930m8e6/WNeODIK0mYLFkoONrnj16i2EcvfQ==",
"dev": true
},
"css-rule-stream": {
@@ -5083,6 +5840,16 @@
"readable-stream": "^1.0.33"
}
},
+ "css-tree": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz",
+ "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==",
+ "dev": true,
+ "requires": {
+ "mdn-data": "2.0.30",
+ "source-map-js": "^1.0.1"
+ }
+ },
"cssesc": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
@@ -5105,21 +5872,27 @@
}
},
"decamelize": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
- "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz",
+ "integrity": "sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==",
"dev": true
},
"decamelize-keys": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz",
- "integrity": "sha512-ocLWuYzRPoS9bfiSdDd3cxvrzovVMZnRDVEzAs+hWIVXGDbHxWMECij2OBuyB/An0FFW/nLuq6Kv1i/YC5Qfzg==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz",
+ "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==",
"dev": true,
"requires": {
"decamelize": "^1.1.0",
"map-obj": "^1.0.0"
},
"dependencies": {
+ "decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
+ "dev": true
+ },
"map-obj": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
@@ -5223,9 +5996,9 @@
}
},
"electron-to-chromium": {
- "version": "1.4.284",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz",
- "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==",
+ "version": "1.4.750",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.750.tgz",
+ "integrity": "sha512-9ItEpeu15hW5m8jKdriL+BQrgwDTXEL9pn4SkillWFu73ZNNNQ2BKKLS+ZHv2vC9UkNhosAeyfxOf/5OSeTCPA==",
"dev": true
},
"emoji-regex": {
@@ -5262,27 +6035,28 @@
"dev": true
},
"eslint": {
- "version": "8.36.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.36.0.tgz",
- "integrity": "sha512-Y956lmS7vDqomxlaaQAHVmeb4tNMp2FWIvU/RnU5BD3IKMD/MJPr76xdyr68P8tV1iNMvN2mRK0yy3c+UjL+bw==",
+ "version": "8.57.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz",
+ "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==",
"dev": true,
"requires": {
"@eslint-community/eslint-utils": "^4.2.0",
- "@eslint-community/regexpp": "^4.4.0",
- "@eslint/eslintrc": "^2.0.1",
- "@eslint/js": "8.36.0",
- "@humanwhocodes/config-array": "^0.11.8",
+ "@eslint-community/regexpp": "^4.6.1",
+ "@eslint/eslintrc": "^2.1.4",
+ "@eslint/js": "8.57.0",
+ "@humanwhocodes/config-array": "^0.11.14",
"@humanwhocodes/module-importer": "^1.0.1",
"@nodelib/fs.walk": "^1.2.8",
- "ajv": "^6.10.0",
+ "@ungap/structured-clone": "^1.2.0",
+ "ajv": "^6.12.4",
"chalk": "^4.0.0",
"cross-spawn": "^7.0.2",
"debug": "^4.3.2",
"doctrine": "^3.0.0",
"escape-string-regexp": "^4.0.0",
- "eslint-scope": "^7.1.1",
- "eslint-visitor-keys": "^3.3.0",
- "espree": "^9.5.0",
+ "eslint-scope": "^7.2.2",
+ "eslint-visitor-keys": "^3.4.3",
+ "espree": "^9.6.1",
"esquery": "^1.4.2",
"esutils": "^2.0.2",
"fast-deep-equal": "^3.1.3",
@@ -5290,125 +6064,106 @@
"find-up": "^5.0.0",
"glob-parent": "^6.0.2",
"globals": "^13.19.0",
- "grapheme-splitter": "^1.0.4",
+ "graphemer": "^1.4.0",
"ignore": "^5.2.0",
- "import-fresh": "^3.0.0",
"imurmurhash": "^0.1.4",
"is-glob": "^4.0.0",
"is-path-inside": "^3.0.3",
- "js-sdsl": "^4.1.4",
"js-yaml": "^4.1.0",
"json-stable-stringify-without-jsonify": "^1.0.1",
"levn": "^0.4.1",
"lodash.merge": "^4.6.2",
"minimatch": "^3.1.2",
"natural-compare": "^1.4.0",
- "optionator": "^0.9.1",
+ "optionator": "^0.9.3",
"strip-ansi": "^6.0.1",
- "strip-json-comments": "^3.1.0",
"text-table": "^0.2.0"
}
},
+ "eslint-compat-utils": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/eslint-compat-utils/-/eslint-compat-utils-0.5.0.tgz",
+ "integrity": "sha512-dc6Y8tzEcSYZMHa+CMPLi/hyo1FzNeonbhJL7Ol0ccuKQkwopJcJBA9YL/xmMTLU1eKigXo9vj9nALElWYSowg==",
+ "dev": true,
+ "requires": {
+ "semver": "^7.5.4"
+ }
+ },
"eslint-config-wikimedia": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/eslint-config-wikimedia/-/eslint-config-wikimedia-0.24.0.tgz",
- "integrity": "sha512-8oH/YhJ87ONSmuRfATgx8U7Jcwz3tBemrh6YOezIfj9f2QfE71ZhaKZrNPdfS7vIklLor/cB9vX7sxN10nz8xw==",
+ "version": "0.27.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-wikimedia/-/eslint-config-wikimedia-0.27.0.tgz",
+ "integrity": "sha512-KkZ54+MUnggz17C/RCEMXQSpiiqZRF7p9fjrz4phaaeKlTrjg0B+QbM5zcDWcjGiAWaJUptHaH17+RZldadkUw==",
"dev": true,
"requires": {
- "browserslist-config-wikimedia": "^0.4.0",
- "eslint": "^8.31.0",
- "eslint-plugin-compat": "^4.0.2",
- "eslint-plugin-es-x": "^5.2.1",
- "eslint-plugin-jsdoc": "39.2.2",
+ "browserslist-config-wikimedia": "^0.6.1",
+ "eslint": "^8.57.0",
+ "eslint-plugin-compat": "^4.2.0",
+ "eslint-plugin-es-x": "^7.6.0",
+ "eslint-plugin-jest": "^27.9.0",
+ "eslint-plugin-jsdoc": "48.2.1",
"eslint-plugin-json-es": "^1.5.7",
- "eslint-plugin-mediawiki": "^0.4.0",
- "eslint-plugin-mocha": "^9.0.0",
+ "eslint-plugin-mediawiki": "^0.6.0",
+ "eslint-plugin-mocha": "^10.4.1",
+ "eslint-plugin-n": "^16.6.2",
"eslint-plugin-no-jquery": "^2.7.0",
- "eslint-plugin-node": "^11.1.0",
- "eslint-plugin-qunit": "^7.2.0",
- "eslint-plugin-unicorn": "^42.0.0",
- "eslint-plugin-vue": "^8.7.1",
- "eslint-plugin-wdio": "^7.19.4",
- "eslint-plugin-yml": "^0.14.0"
+ "eslint-plugin-qunit": "^8.1.1",
+ "eslint-plugin-security": "^1.7.1",
+ "eslint-plugin-unicorn": "^51.0.1",
+ "eslint-plugin-vue": "^9.23.0",
+ "eslint-plugin-wdio": "^8.24.12",
+ "eslint-plugin-yml": "^1.13.2"
}
},
"eslint-plugin-compat": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/eslint-plugin-compat/-/eslint-plugin-compat-4.0.2.tgz",
- "integrity": "sha512-xqvoO54CLTVaEYGMzhu35Wzwk/As7rCvz/2dqwnFiWi0OJccEtGIn+5qq3zqIu9nboXlpdBN579fZcItC73Ycg==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-compat/-/eslint-plugin-compat-4.2.0.tgz",
+ "integrity": "sha512-RDKSYD0maWy5r7zb5cWQS+uSPc26mgOzdORJ8hxILmWM7S/Ncwky7BcAtXVY5iRbKjBdHsWU8Yg7hfoZjtkv7w==",
"dev": true,
"requires": {
- "@mdn/browser-compat-data": "^4.1.5",
- "ast-metadata-inferer": "^0.7.0",
- "browserslist": "^4.16.8",
- "caniuse-lite": "^1.0.30001304",
- "core-js": "^3.16.2",
+ "@mdn/browser-compat-data": "^5.3.13",
+ "ast-metadata-inferer": "^0.8.0",
+ "browserslist": "^4.21.10",
+ "caniuse-lite": "^1.0.30001524",
"find-up": "^5.0.0",
- "lodash.memoize": "4.1.2",
- "semver": "7.3.5"
+ "lodash.memoize": "^4.1.2",
+ "semver": "^7.5.4"
}
},
- "eslint-plugin-es": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz",
- "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==",
+ "eslint-plugin-es-x": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.6.0.tgz",
+ "integrity": "sha512-I0AmeNgevgaTR7y2lrVCJmGYF0rjoznpDvqV/kIkZSZbZ8Rw3eu4cGlvBBULScfkSOCzqKbff5LR4CNrV7mZHA==",
"dev": true,
"requires": {
- "eslint-utils": "^2.0.0",
- "regexpp": "^3.0.0"
- },
- "dependencies": {
- "eslint-utils": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz",
- "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==",
- "dev": true,
- "requires": {
- "eslint-visitor-keys": "^1.1.0"
- }
- },
- "eslint-visitor-keys": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
- "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
- "dev": true
- }
+ "@eslint-community/eslint-utils": "^4.1.2",
+ "@eslint-community/regexpp": "^4.6.0",
+ "eslint-compat-utils": "^0.5.0"
}
},
- "eslint-plugin-es-x": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-5.3.1.tgz",
- "integrity": "sha512-/WJk23lUi36qmPdiA8GxqjOQAwj+2672WwAOYLVD7j4+O5hd9UiXHZFWBwxxem5AyXA6LKDVJnmBZJp5FJWjog==",
+ "eslint-plugin-jest": {
+ "version": "27.9.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.9.0.tgz",
+ "integrity": "sha512-QIT7FH7fNmd9n4se7FFKHbsLKGQiw885Ds6Y/sxKgCZ6natwCsXdgPOADnYVxN2QrRweF0FZWbJ6S7Rsn7llug==",
"dev": true,
"requires": {
- "eslint-utils": "^2.0.0 || ^3.0.0",
- "regexpp": "^3.0.0"
+ "@typescript-eslint/utils": "^5.10.0"
}
},
"eslint-plugin-jsdoc": {
- "version": "39.2.2",
- "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-39.2.2.tgz",
- "integrity": "sha512-ybkvja0p9JRzHEd2ST9h+Z47DLOuPyXpeb6r18/zKHdMmggPU1J0/zl+F0phea8ze9rMxi42MJVmGXi2NZ7PpA==",
+ "version": "48.2.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-48.2.1.tgz",
+ "integrity": "sha512-iUvbcyDZSO/9xSuRv2HQBw++8VkV/pt3UWtX9cpPH0l7GKPq78QC/6+PmyQHHvNZaTjAce6QVciEbnc6J/zH5g==",
"dev": true,
"requires": {
- "@es-joy/jsdoccomment": "~0.23.1",
- "comment-parser": "1.3.1",
+ "@es-joy/jsdoccomment": "~0.42.0",
+ "are-docs-informative": "^0.0.2",
+ "comment-parser": "1.4.1",
"debug": "^4.3.4",
"escape-string-regexp": "^4.0.0",
- "esquery": "^1.4.0",
- "semver": "^7.3.7",
- "spdx-expression-parse": "^3.0.1"
- },
- "dependencies": {
- "semver": {
- "version": "7.3.8",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
- "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
- "dev": true,
- "requires": {
- "lru-cache": "^6.0.0"
- }
- }
+ "esquery": "^1.5.0",
+ "is-builtin-module": "^3.2.1",
+ "semver": "^7.6.0",
+ "spdx-expression-parse": "^4.0.0"
}
},
"eslint-plugin-json-es": {
@@ -5422,23 +6177,43 @@
}
},
"eslint-plugin-mediawiki": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-mediawiki/-/eslint-plugin-mediawiki-0.4.0.tgz",
- "integrity": "sha512-Eufptb8lrElYwIONvgxlMBnPD6PYT4xAFprWlBxV5brCmUh8MZ41+lMxt2TPwEC6C85ngflkVez8BV8tWS9RyQ==",
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-mediawiki/-/eslint-plugin-mediawiki-0.6.0.tgz",
+ "integrity": "sha512-a2Zm18N5nPyflBajM2ZWATxucIpYPEmOSjFzUR1OBH3hAL0GY9fx1mpezEwzqAQ862d+kPkolgQOzktnZe8nKA==",
"dev": true,
"requires": {
- "eslint-plugin-vue": "^8.7.1",
+ "eslint-plugin-vue": "^9.23.0",
"upath": "^2.0.1"
}
},
"eslint-plugin-mocha": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-9.0.0.tgz",
- "integrity": "sha512-d7knAcQj1jPCzZf3caeBIn3BnW6ikcvfz0kSqQpwPYcVGLoJV5sz0l0OJB2LR8I7dvTDbqq1oV6ylhSgzA10zg==",
+ "version": "10.4.3",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-10.4.3.tgz",
+ "integrity": "sha512-emc4TVjq5Ht0/upR+psftuz6IBG5q279p+1dSRDeHf+NS9aaerBi3lXKo1SEzwC29hFIW21gO89CEWSvRsi8IQ==",
"dev": true,
"requires": {
"eslint-utils": "^3.0.0",
- "ramda": "^0.27.1"
+ "globals": "^13.24.0",
+ "rambda": "^7.4.0"
+ }
+ },
+ "eslint-plugin-n": {
+ "version": "16.6.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-16.6.2.tgz",
+ "integrity": "sha512-6TyDmZ1HXoFQXnhCTUjVFULReoBPOAjpuiKELMkeP40yffI/1ZRO+d9ug/VC6fqISo2WkuIBk3cvuRPALaWlOQ==",
+ "dev": true,
+ "requires": {
+ "@eslint-community/eslint-utils": "^4.4.0",
+ "builtins": "^5.0.1",
+ "eslint-plugin-es-x": "^7.5.0",
+ "get-tsconfig": "^4.7.0",
+ "globals": "^13.24.0",
+ "ignore": "^5.2.4",
+ "is-builtin-module": "^3.2.1",
+ "is-core-module": "^2.12.1",
+ "minimatch": "^3.1.2",
+ "resolve": "^1.22.2",
+ "semver": "^7.5.3"
}
},
"eslint-plugin-no-jquery": {
@@ -5448,111 +6223,88 @@
"dev": true,
"requires": {}
},
- "eslint-plugin-node": {
- "version": "11.1.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz",
- "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==",
+ "eslint-plugin-qunit": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-qunit/-/eslint-plugin-qunit-8.1.1.tgz",
+ "integrity": "sha512-j3xhiAf2Wvr8Dfwl5T6tlJ+F55vqYE9ZdAHUOTzq1lGerYrXzOS46RvK4SSWug2D8sl3ZYr2lA4/hgVXgLloxw==",
"dev": true,
"requires": {
- "eslint-plugin-es": "^3.0.0",
- "eslint-utils": "^2.0.0",
- "ignore": "^5.1.1",
- "minimatch": "^3.0.4",
- "resolve": "^1.10.1",
- "semver": "^6.1.0"
- },
- "dependencies": {
- "eslint-utils": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz",
- "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==",
- "dev": true,
- "requires": {
- "eslint-visitor-keys": "^1.1.0"
- }
- },
- "eslint-visitor-keys": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
- "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
- "dev": true
- },
- "semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true
- }
+ "eslint-utils": "^3.0.0",
+ "requireindex": "^1.2.0"
}
},
- "eslint-plugin-qunit": {
- "version": "7.3.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-qunit/-/eslint-plugin-qunit-7.3.1.tgz",
- "integrity": "sha512-L1yutkLqCgr70ZmMAbBKPvUOUwhKryZ0RaJKOzw72Bmn8no3JNBL9hhbX2aTvfZqYM/wLXIT0nICZiGrV4xVJw==",
+ "eslint-plugin-security": {
+ "version": "1.7.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-security/-/eslint-plugin-security-1.7.1.tgz",
+ "integrity": "sha512-sMStceig8AFglhhT2LqlU5r+/fn9OwsA72O5bBuQVTssPCdQAOQzL+oMn/ZcpeUY6KcNfLJArgcrsSULNjYYdQ==",
"dev": true,
"requires": {
- "eslint-utils": "^3.0.0",
- "requireindex": "^1.2.0"
+ "safe-regex": "^2.1.1"
}
},
"eslint-plugin-unicorn": {
- "version": "42.0.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-42.0.0.tgz",
- "integrity": "sha512-ixBsbhgWuxVaNlPTT8AyfJMlhyC5flCJFjyK3oKE8TRrwBnaHvUbuIkCM1lqg8ryYrFStL/T557zfKzX4GKSlg==",
+ "version": "51.0.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-51.0.1.tgz",
+ "integrity": "sha512-MuR/+9VuB0fydoI0nIn2RDA5WISRn4AsJyNSaNKLVwie9/ONvQhxOBbkfSICBPnzKrB77Fh6CZZXjgTt/4Latw==",
"dev": true,
"requires": {
- "@babel/helper-validator-identifier": "^7.15.7",
- "ci-info": "^3.3.0",
+ "@babel/helper-validator-identifier": "^7.22.20",
+ "@eslint-community/eslint-utils": "^4.4.0",
+ "@eslint/eslintrc": "^2.1.4",
+ "ci-info": "^4.0.0",
"clean-regexp": "^1.0.0",
- "eslint-utils": "^3.0.0",
- "esquery": "^1.4.0",
+ "core-js-compat": "^3.34.0",
+ "esquery": "^1.5.0",
"indent-string": "^4.0.0",
- "is-builtin-module": "^3.1.0",
- "lodash": "^4.17.21",
+ "is-builtin-module": "^3.2.1",
+ "jsesc": "^3.0.2",
"pluralize": "^8.0.0",
"read-pkg-up": "^7.0.1",
- "regexp-tree": "^0.1.24",
- "safe-regex": "^2.1.1",
- "semver": "^7.3.5",
+ "regexp-tree": "^0.1.27",
+ "regjsparser": "^0.10.0",
+ "semver": "^7.5.4",
"strip-indent": "^3.0.0"
}
},
"eslint-plugin-vue": {
- "version": "8.7.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-8.7.1.tgz",
- "integrity": "sha512-28sbtm4l4cOzoO1LtzQPxfxhQABararUb1JtqusQqObJpWX2e/gmVyeYVfepizPFne0Q5cILkYGiBoV36L12Wg==",
+ "version": "9.25.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.25.0.tgz",
+ "integrity": "sha512-tDWlx14bVe6Bs+Nnh3IGrD+hb11kf2nukfm6jLsmJIhmiRQ1SUaksvwY9U5MvPB0pcrg0QK0xapQkfITs3RKOA==",
"dev": true,
"requires": {
- "eslint-utils": "^3.0.0",
+ "@eslint-community/eslint-utils": "^4.4.0",
+ "globals": "^13.24.0",
"natural-compare": "^1.4.0",
- "nth-check": "^2.0.1",
- "postcss-selector-parser": "^6.0.9",
- "semver": "^7.3.5",
- "vue-eslint-parser": "^8.0.1"
+ "nth-check": "^2.1.1",
+ "postcss-selector-parser": "^6.0.15",
+ "semver": "^7.6.0",
+ "vue-eslint-parser": "^9.4.2",
+ "xml-name-validator": "^4.0.0"
}
},
"eslint-plugin-wdio": {
- "version": "7.25.3",
- "resolved": "https://registry.npmjs.org/eslint-plugin-wdio/-/eslint-plugin-wdio-7.25.3.tgz",
- "integrity": "sha512-2zbYwV14Md9FNlyhaIILVGPB6w4bu2eJdOTywDUs2Qy4ebcQNwrxB0qCaf7Rm4O+T0Ir+tdYHYBBfbDocSLKng==",
+ "version": "8.24.12",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-wdio/-/eslint-plugin-wdio-8.24.12.tgz",
+ "integrity": "sha512-OmzGteXFOQnJDdkTNnTfksaVa18WlFCyeLjZXHvDpkbomLWAg9wc296Pr0wnTCagqNj8qfEHpy+N2XVew5VCMA==",
"dev": true
},
"eslint-plugin-yml": {
- "version": "0.14.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-0.14.0.tgz",
- "integrity": "sha512-+0+bBV/07txENbxfrHF9olGoLCHez64vmnOmjWOoLwmXOwfdaSRleBSPIi4nWQs7WwX8lm/fSLadOjbVEcsXQQ==",
+ "version": "1.14.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-1.14.0.tgz",
+ "integrity": "sha512-ESUpgYPOcAYQO9czugcX5OqRvn/ydDVwGCPXY4YjPqc09rHaUVUA6IE6HLQys4rXk/S+qx3EwTd1wHCwam/OWQ==",
"dev": true,
"requires": {
"debug": "^4.3.2",
+ "eslint-compat-utils": "^0.5.0",
"lodash": "^4.17.21",
"natural-compare": "^1.4.0",
- "yaml-eslint-parser": "^0.5.0"
+ "yaml-eslint-parser": "^1.2.1"
}
},
"eslint-scope": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz",
- "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==",
+ "version": "7.2.2",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
+ "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
"dev": true,
"requires": {
"esrecurse": "^4.3.0",
@@ -5577,20 +6329,20 @@
}
},
"eslint-visitor-keys": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz",
- "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==",
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
+ "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
"dev": true
},
"espree": {
- "version": "9.5.0",
- "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.0.tgz",
- "integrity": "sha512-JPbJGhKc47++oo4JkEoTe2wjy4fmMwvFpgJT9cQzmfXKp22Dr6Hf1tdCteLz1h0P3t+mGvWZ+4Uankvh8+c6zw==",
+ "version": "9.6.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
+ "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
"dev": true,
"requires": {
- "acorn": "^8.8.0",
+ "acorn": "^8.9.0",
"acorn-jsx": "^5.3.2",
- "eslint-visitor-keys": "^3.3.0"
+ "eslint-visitor-keys": "^3.4.1"
}
},
"esprima": {
@@ -5663,9 +6415,9 @@
"dev": true
},
"fast-glob": {
- "version": "3.2.12",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz",
- "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==",
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
+ "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
"dev": true,
"requires": {
"@nodelib/fs.stat": "^2.0.2",
@@ -5773,19 +6525,20 @@
"dev": true
},
"flat-cache": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
- "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz",
+ "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==",
"dev": true,
"requires": {
- "flatted": "^3.1.0",
+ "flatted": "^3.2.9",
+ "keyv": "^4.5.3",
"rimraf": "^3.0.2"
}
},
"flatted": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz",
- "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==",
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz",
+ "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==",
"dev": true
},
"for-in": {
@@ -5810,9 +6563,9 @@
"dev": true
},
"function-bind": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
"dev": true
},
"get-caller-file": {
@@ -5821,6 +6574,15 @@
"integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
"dev": true
},
+ "get-tsconfig": {
+ "version": "4.7.3",
+ "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.3.tgz",
+ "integrity": "sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==",
+ "dev": true,
+ "requires": {
+ "resolve-pkg-maps": "^1.0.0"
+ }
+ },
"getobject": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/getobject/-/getobject-1.0.2.tgz",
@@ -5882,9 +6644,9 @@
}
},
"globals": {
- "version": "13.20.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz",
- "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==",
+ "version": "13.24.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
+ "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
"dev": true,
"requires": {
"type-fest": "^0.20.2"
@@ -5910,10 +6672,10 @@
"integrity": "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==",
"dev": true
},
- "grapheme-splitter": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz",
- "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==",
+ "graphemer": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
+ "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
"dev": true
},
"grunt": {
@@ -5999,13 +6761,13 @@
}
},
"grunt-eslint": {
- "version": "24.0.0",
- "resolved": "https://registry.npmjs.org/grunt-eslint/-/grunt-eslint-24.0.0.tgz",
- "integrity": "sha512-WpTeBBFweyhMuPjGwRSQV9JFJ+EczIdlsc7Dd/1g78QVI1aZsk4g/H3e+3S5HEwsS1RKL2YZIrGj8hMLlBfN8w==",
+ "version": "24.3.0",
+ "resolved": "https://registry.npmjs.org/grunt-eslint/-/grunt-eslint-24.3.0.tgz",
+ "integrity": "sha512-dUPiRgX8fhmh4uwTAn9xrzg7HV5j5DhGmZZGJdHfjy/AN9G4jD+5IjfbcAJ209JcIG8m4B7xz3crIhuDSm3siQ==",
"dev": true,
"requires": {
"chalk": "^4.1.2",
- "eslint": "^8.0.1"
+ "eslint": "^8.44.0"
}
},
"grunt-known-options": {
@@ -6052,9 +6814,9 @@
}
},
"grunt-stylelint": {
- "version": "0.18.0",
- "resolved": "https://registry.npmjs.org/grunt-stylelint/-/grunt-stylelint-0.18.0.tgz",
- "integrity": "sha512-Ks5OfRUCA6E1v5PkCQKYaMErHtoec/Ub0Vb1xvZ0CKm/1zzWKuqEu2ZVtFcQVDqrC5UM6AXaLHpsLiocVKAgbg==",
+ "version": "0.19.0",
+ "resolved": "https://registry.npmjs.org/grunt-stylelint/-/grunt-stylelint-0.19.0.tgz",
+ "integrity": "sha512-td+OvkfQ/2bYXNTBAlnpXmfa6sddLSloXRp1zoUONcMScbvEq5S3GSkOZKpCjK90WSjTYR0L7WYFcMVd1TXd+w==",
"dev": true,
"requires": {
"chalk": "^4.1.2"
@@ -6066,21 +6828,21 @@
"integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==",
"dev": true
},
- "has": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
- "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
- "dev": true,
- "requires": {
- "function-bind": "^1.1.1"
- }
- },
"has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true
},
+ "hasown": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.2"
+ }
+ },
"homedir-polyfill": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz",
@@ -6103,9 +6865,9 @@
"dev": true
},
"html-tags": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.2.0.tgz",
- "integrity": "sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==",
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz",
+ "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==",
"dev": true
},
"htmlparser2": {
@@ -6208,21 +6970,21 @@
"dev": true
},
"is-builtin-module": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.0.tgz",
- "integrity": "sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw==",
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz",
+ "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==",
"dev": true,
"requires": {
"builtin-modules": "^3.3.0"
}
},
"is-core-module": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz",
- "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==",
+ "version": "2.13.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
+ "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
"dev": true,
"requires": {
- "has": "^1.0.3"
+ "hasown": "^2.0.0"
}
},
"is-extglob": {
@@ -6315,12 +7077,6 @@
"integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==",
"dev": true
},
- "js-sdsl": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.5.tgz",
- "integrity": "sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==",
- "dev": true
- },
"js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
@@ -6337,9 +7093,21 @@
}
},
"jsdoc-type-pratt-parser": {
- "version": "2.2.5",
- "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-2.2.5.tgz",
- "integrity": "sha512-2a6eRxSxp1BW040hFvaJxhsCMI9lT8QB8t14t+NY5tC5rckIR0U9cr2tjOeaFirmEOy6MHvmJnY7zTBHq431Lw==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.0.0.tgz",
+ "integrity": "sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==",
+ "dev": true
+ },
+ "jsesc": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz",
+ "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==",
+ "dev": true
+ },
+ "json-buffer": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
+ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
"dev": true
},
"json-parse-even-better-errors": {
@@ -6360,6 +7128,15 @@
"integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
"dev": true
},
+ "keyv": {
+ "version": "4.5.4",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
+ "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
+ "dev": true,
+ "requires": {
+ "json-buffer": "3.0.1"
+ }
+ },
"kind-of": {
"version": "6.0.3",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
@@ -6367,10 +7144,11 @@
"dev": true
},
"known-css-properties": {
- "version": "0.26.0",
- "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.26.0.tgz",
- "integrity": "sha512-5FZRzrZzNTBruuurWpvZnvP9pum+fe0HcK8z/ooo+U+Hmp4vtbyp1/QDsqmufirXy4egGzbaH/y2uCZf+6W5Kg==",
- "dev": true
+ "version": "0.29.0",
+ "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.29.0.tgz",
+ "integrity": "sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ==",
+ "dev": true,
+ "peer": true
},
"ldjson-stream": {
"version": "1.2.1",
@@ -6521,24 +7299,30 @@
"integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==",
"dev": true
},
+ "mdn-data": {
+ "version": "2.0.30",
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz",
+ "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==",
+ "dev": true
+ },
"meow": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz",
- "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==",
+ "version": "10.1.5",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-10.1.5.tgz",
+ "integrity": "sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==",
"dev": true,
"requires": {
- "@types/minimist": "^1.2.0",
- "camelcase-keys": "^6.2.2",
- "decamelize": "^1.2.0",
+ "@types/minimist": "^1.2.2",
+ "camelcase-keys": "^7.0.0",
+ "decamelize": "^5.0.0",
"decamelize-keys": "^1.1.0",
"hard-rejection": "^2.1.0",
"minimist-options": "4.1.0",
- "normalize-package-data": "^3.0.0",
- "read-pkg-up": "^7.0.1",
- "redent": "^3.0.0",
- "trim-newlines": "^3.0.0",
- "type-fest": "^0.18.0",
- "yargs-parser": "^20.2.3"
+ "normalize-package-data": "^3.0.2",
+ "read-pkg-up": "^8.0.0",
+ "redent": "^4.0.0",
+ "trim-newlines": "^4.0.2",
+ "type-fest": "^1.2.2",
+ "yargs-parser": "^20.2.9"
},
"dependencies": {
"hosted-git-info": {
@@ -6562,10 +7346,33 @@
"validate-npm-package-license": "^3.0.1"
}
},
+ "read-pkg": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-6.0.0.tgz",
+ "integrity": "sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==",
+ "dev": true,
+ "requires": {
+ "@types/normalize-package-data": "^2.4.0",
+ "normalize-package-data": "^3.0.2",
+ "parse-json": "^5.2.0",
+ "type-fest": "^1.0.1"
+ }
+ },
+ "read-pkg-up": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-8.0.0.tgz",
+ "integrity": "sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==",
+ "dev": true,
+ "requires": {
+ "find-up": "^5.0.0",
+ "read-pkg": "^6.0.0",
+ "type-fest": "^1.0.1"
+ }
+ },
"type-fest": {
- "version": "0.18.1",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz",
- "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz",
+ "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==",
"dev": true
}
}
@@ -6640,9 +7447,9 @@
}
},
"nanoid": {
- "version": "3.3.4",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
- "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
+ "version": "3.3.7",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
+ "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
"dev": true
},
"natural-compare": {
@@ -6652,9 +7459,9 @@
"dev": true
},
"node-releases": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz",
- "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==",
+ "version": "2.0.14",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz",
+ "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==",
"dev": true
},
"nopt": {
@@ -6679,9 +7486,9 @@
},
"dependencies": {
"semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
"dev": true
}
}
@@ -6742,9 +7549,9 @@
}
},
"optionator": {
- "version": "0.9.1",
- "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
- "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
+ "version": "0.9.4",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz",
+ "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==",
"dev": true,
"requires": {
"deep-is": "^0.1.3",
@@ -6752,7 +7559,7 @@
"levn": "^0.4.1",
"prelude-ls": "^1.2.1",
"type-check": "^0.4.0",
- "word-wrap": "^1.2.3"
+ "word-wrap": "^1.2.5"
}
},
"os-homedir": {
@@ -6903,14 +7710,14 @@
"dev": true
},
"postcss": {
- "version": "8.4.21",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz",
- "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==",
+ "version": "8.4.38",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz",
+ "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==",
"dev": true,
"requires": {
- "nanoid": "^3.3.4",
+ "nanoid": "^3.3.7",
"picocolors": "^1.0.0",
- "source-map-js": "^1.0.2"
+ "source-map-js": "^1.2.0"
}
},
"postcss-html": {
@@ -6960,9 +7767,9 @@
"requires": {}
},
"postcss-selector-parser": {
- "version": "6.0.11",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz",
- "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==",
+ "version": "6.0.16",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz",
+ "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==",
"dev": true,
"requires": {
"cssesc": "^3.0.0",
@@ -6994,15 +7801,15 @@
"dev": true
},
"quick-lru": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz",
- "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==",
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz",
+ "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==",
"dev": true
},
- "ramda": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.2.tgz",
- "integrity": "sha512-SbiLPU40JuJniHexQSAgad32hfwd+DRUdwF2PlVuI5RZD0/vahUco7R8vD86J/tcEKKF9vZrUVwgtmGCqlCKyA==",
+ "rambda": {
+ "version": "7.5.0",
+ "resolved": "https://registry.npmjs.org/rambda/-/rambda-7.5.0.tgz",
+ "integrity": "sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA==",
"dev": true
},
"read-pkg": {
@@ -7103,26 +7910,54 @@
}
},
"redent": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz",
- "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/redent/-/redent-4.0.0.tgz",
+ "integrity": "sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==",
"dev": true,
"requires": {
- "indent-string": "^4.0.0",
- "strip-indent": "^3.0.0"
+ "indent-string": "^5.0.0",
+ "strip-indent": "^4.0.0"
+ },
+ "dependencies": {
+ "indent-string": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz",
+ "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==",
+ "dev": true
+ },
+ "strip-indent": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.0.0.tgz",
+ "integrity": "sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==",
+ "dev": true,
+ "requires": {
+ "min-indent": "^1.0.1"
+ }
+ }
}
},
"regexp-tree": {
- "version": "0.1.24",
- "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.24.tgz",
- "integrity": "sha512-s2aEVuLhvnVJW6s/iPgEGK6R+/xngd2jNQ+xy4bXNDKxZKJH6jpPHY6kVeVv1IeLCHgswRj+Kl3ELaDjG6V1iw==",
+ "version": "0.1.27",
+ "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.27.tgz",
+ "integrity": "sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==",
"dev": true
},
- "regexpp": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz",
- "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==",
- "dev": true
+ "regjsparser": {
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.10.0.tgz",
+ "integrity": "sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==",
+ "dev": true,
+ "requires": {
+ "jsesc": "~0.5.0"
+ },
+ "dependencies": {
+ "jsesc": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
+ "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==",
+ "dev": true
+ }
+ }
},
"require-directory": {
"version": "2.1.1",
@@ -7143,12 +7978,12 @@
"dev": true
},
"resolve": {
- "version": "1.22.1",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
- "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
+ "version": "1.22.8",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
+ "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
"dev": true,
"requires": {
- "is-core-module": "^2.9.0",
+ "is-core-module": "^2.13.0",
"path-parse": "^1.0.7",
"supports-preserve-symlinks-flag": "^1.0.0"
}
@@ -7204,6 +8039,12 @@
"integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
"dev": true
},
+ "resolve-pkg-maps": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz",
+ "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==",
+ "dev": true
+ },
"reusify": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
@@ -7250,9 +8091,9 @@
"dev": true
},
"semver": {
- "version": "7.3.5",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
- "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
"dev": true,
"requires": {
"lru-cache": "^6.0.0"
@@ -7274,9 +8115,9 @@
"dev": true
},
"signal-exit": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
- "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
"dev": true
},
"slash": {
@@ -7303,31 +8144,43 @@
"dev": true
},
"source-map-js": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
- "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz",
+ "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==",
"dev": true
},
"spdx-correct": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz",
- "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz",
+ "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==",
"dev": true,
"requires": {
"spdx-expression-parse": "^3.0.0",
"spdx-license-ids": "^3.0.0"
+ },
+ "dependencies": {
+ "spdx-expression-parse": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
+ "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+ "dev": true,
+ "requires": {
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ }
}
},
"spdx-exceptions": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz",
- "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==",
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz",
+ "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==",
"dev": true
},
"spdx-expression-parse": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
- "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-4.0.0.tgz",
+ "integrity": "sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==",
"dev": true,
"requires": {
"spdx-exceptions": "^2.1.0",
@@ -7335,9 +8188,9 @@
}
},
"spdx-license-ids": {
- "version": "3.0.12",
- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz",
- "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==",
+ "version": "3.0.17",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz",
+ "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==",
"dev": true
},
"split2": {
@@ -7427,90 +8280,187 @@
"dev": true
},
"stylelint": {
- "version": "14.16.1",
- "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.16.1.tgz",
- "integrity": "sha512-ErlzR/T3hhbV+a925/gbfc3f3Fep9/bnspMiJPorfGEmcBbXdS+oo6LrVtoUZ/w9fqD6o6k7PtUlCOsCRdjX/A==",
+ "version": "15.11.0",
+ "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.11.0.tgz",
+ "integrity": "sha512-78O4c6IswZ9TzpcIiQJIN49K3qNoXTM8zEJzhaTE/xRTCZswaovSEVIa/uwbOltZrk16X4jAxjaOhzz/hTm1Kw==",
"dev": true,
+ "peer": true,
"requires": {
- "@csstools/selector-specificity": "^2.0.2",
+ "@csstools/css-parser-algorithms": "^2.3.1",
+ "@csstools/css-tokenizer": "^2.2.0",
+ "@csstools/media-query-list-parser": "^2.1.4",
+ "@csstools/selector-specificity": "^3.0.0",
"balanced-match": "^2.0.0",
"colord": "^2.9.3",
- "cosmiconfig": "^7.1.0",
- "css-functions-list": "^3.1.0",
+ "cosmiconfig": "^8.2.0",
+ "css-functions-list": "^3.2.1",
+ "css-tree": "^2.3.1",
"debug": "^4.3.4",
- "fast-glob": "^3.2.12",
+ "fast-glob": "^3.3.1",
"fastest-levenshtein": "^1.0.16",
- "file-entry-cache": "^6.0.1",
+ "file-entry-cache": "^7.0.0",
"global-modules": "^2.0.0",
"globby": "^11.1.0",
"globjoin": "^0.1.4",
- "html-tags": "^3.2.0",
- "ignore": "^5.2.1",
+ "html-tags": "^3.3.1",
+ "ignore": "^5.2.4",
"import-lazy": "^4.0.0",
"imurmurhash": "^0.1.4",
"is-plain-object": "^5.0.0",
- "known-css-properties": "^0.26.0",
+ "known-css-properties": "^0.29.0",
"mathml-tag-names": "^2.1.3",
- "meow": "^9.0.0",
+ "meow": "^10.1.5",
"micromatch": "^4.0.5",
"normalize-path": "^3.0.0",
"picocolors": "^1.0.0",
- "postcss": "^8.4.19",
- "postcss-media-query-parser": "^0.2.3",
+ "postcss": "^8.4.28",
"postcss-resolve-nested-selector": "^0.1.1",
"postcss-safe-parser": "^6.0.0",
- "postcss-selector-parser": "^6.0.11",
+ "postcss-selector-parser": "^6.0.13",
"postcss-value-parser": "^4.2.0",
"resolve-from": "^5.0.0",
"string-width": "^4.2.3",
"strip-ansi": "^6.0.1",
"style-search": "^0.1.0",
- "supports-hyperlinks": "^2.3.0",
+ "supports-hyperlinks": "^3.0.0",
"svg-tags": "^1.0.0",
"table": "^6.8.1",
- "v8-compile-cache": "^2.3.0",
- "write-file-atomic": "^4.0.2"
+ "write-file-atomic": "^5.0.1"
},
"dependencies": {
"balanced-match": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz",
"integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==",
- "dev": true
+ "dev": true,
+ "peer": true
+ },
+ "file-entry-cache": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-7.0.2.tgz",
+ "integrity": "sha512-TfW7/1iI4Cy7Y8L6iqNdZQVvdXn0f8B4QcIXmkIbtTIe/Okm/nSlHb4IwGzRVOd3WfSieCgvf5cMzEfySAIl0g==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "flat-cache": "^3.2.0"
+ }
},
"is-plain-object": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
"integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
- "dev": true
+ "dev": true,
+ "peer": true
},
"resolve-from": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
"integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
- "dev": true
+ "dev": true,
+ "peer": true
}
}
},
"stylelint-config-recommended": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-9.0.0.tgz",
- "integrity": "sha512-9YQSrJq4NvvRuTbzDsWX3rrFOzOlYBmZP+o513BJN/yfEmGSr0AxdvrWs0P/ilSpVV/wisamAHu5XSk8Rcf4CQ==",
+ "version": "13.0.0",
+ "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-13.0.0.tgz",
+ "integrity": "sha512-EH+yRj6h3GAe/fRiyaoO2F9l9Tgg50AOFhaszyfov9v6ayXJ1IkSHwTxd7lB48FmOeSGDPLjatjO11fJpmarkQ==",
"dev": true,
"requires": {}
},
"stylelint-config-wikimedia": {
- "version": "0.14.0",
- "resolved": "https://registry.npmjs.org/stylelint-config-wikimedia/-/stylelint-config-wikimedia-0.14.0.tgz",
- "integrity": "sha512-8gc5fcYsavMU6yBxE4Ium0XX8Ekedg+kcU0Oojjg5di6Jhv74bx3pcdfW+Z4bDYKWx3pg3Glemy/CBRqg+JViQ==",
+ "version": "0.16.1",
+ "resolved": "https://registry.npmjs.org/stylelint-config-wikimedia/-/stylelint-config-wikimedia-0.16.1.tgz",
+ "integrity": "sha512-FDVUyDyCBap2o2HAeJqIobdVdSTur5HFX5FymoKrzfMIYWxIV/55lTpyL1PR71TfVMaroDXJrIftLFW9mXKFhQ==",
"dev": true,
"requires": {
- "browserslist-config-wikimedia": "0.4.0",
+ "browserslist-config-wikimedia": "0.5.0",
"postcss-html": "1.5.0",
"postcss-less": "6.0.0",
- "stylelint": "14.16.1",
- "stylelint-config-recommended": "9.0.0",
- "stylelint-no-unsupported-browser-features": "6.1.0"
+ "stylelint": "15.10.1",
+ "stylelint-config-recommended": "13.0.0",
+ "stylelint-no-unsupported-browser-features": "6.1.0",
+ "stylelint-stylistic": "0.4.3"
+ },
+ "dependencies": {
+ "balanced-match": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz",
+ "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==",
+ "dev": true
+ },
+ "browserslist-config-wikimedia": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/browserslist-config-wikimedia/-/browserslist-config-wikimedia-0.5.0.tgz",
+ "integrity": "sha512-t+tvSnTeVhVF2lNRxoAlE51/ZCfUs5SNNZUnWu2N8xXOGMPTMyKk5l4mayvDdm+5L8oqmnALU+TjnN2Z+ZTCTw==",
+ "dev": true
+ },
+ "is-plain-object": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
+ "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
+ "dev": true
+ },
+ "known-css-properties": {
+ "version": "0.27.0",
+ "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.27.0.tgz",
+ "integrity": "sha512-uMCj6+hZYDoffuvAJjFAPz56E9uoowFHmTkqRtRq5WyC5Q6Cu/fTZKNQpX/RbzChBYLLl3lo8CjFZBAZXq9qFg==",
+ "dev": true
+ },
+ "resolve-from": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
+ "dev": true
+ },
+ "stylelint": {
+ "version": "15.10.1",
+ "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-15.10.1.tgz",
+ "integrity": "sha512-CYkzYrCFfA/gnOR+u9kJ1PpzwG10WLVnoxHDuBA/JiwGqdM9+yx9+ou6SE/y9YHtfv1mcLo06fdadHTOx4gBZQ==",
+ "dev": true,
+ "requires": {
+ "@csstools/css-parser-algorithms": "^2.3.0",
+ "@csstools/css-tokenizer": "^2.1.1",
+ "@csstools/media-query-list-parser": "^2.1.2",
+ "@csstools/selector-specificity": "^3.0.0",
+ "balanced-match": "^2.0.0",
+ "colord": "^2.9.3",
+ "cosmiconfig": "^8.2.0",
+ "css-functions-list": "^3.1.0",
+ "css-tree": "^2.3.1",
+ "debug": "^4.3.4",
+ "fast-glob": "^3.3.0",
+ "fastest-levenshtein": "^1.0.16",
+ "file-entry-cache": "^6.0.1",
+ "global-modules": "^2.0.0",
+ "globby": "^11.1.0",
+ "globjoin": "^0.1.4",
+ "html-tags": "^3.3.1",
+ "ignore": "^5.2.4",
+ "import-lazy": "^4.0.0",
+ "imurmurhash": "^0.1.4",
+ "is-plain-object": "^5.0.0",
+ "known-css-properties": "^0.27.0",
+ "mathml-tag-names": "^2.1.3",
+ "meow": "^10.1.5",
+ "micromatch": "^4.0.5",
+ "normalize-path": "^3.0.0",
+ "picocolors": "^1.0.0",
+ "postcss": "^8.4.24",
+ "postcss-resolve-nested-selector": "^0.1.1",
+ "postcss-safe-parser": "^6.0.0",
+ "postcss-selector-parser": "^6.0.13",
+ "postcss-value-parser": "^4.2.0",
+ "resolve-from": "^5.0.0",
+ "string-width": "^4.2.3",
+ "strip-ansi": "^6.0.1",
+ "style-search": "^0.1.0",
+ "supports-hyperlinks": "^3.0.0",
+ "svg-tags": "^1.0.0",
+ "table": "^6.8.1",
+ "write-file-atomic": "^5.0.1"
+ }
+ }
}
},
"stylelint-no-unsupported-browser-features": {
@@ -7524,6 +8474,27 @@
"postcss": "^8.4.16"
}
},
+ "stylelint-stylistic": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/stylelint-stylistic/-/stylelint-stylistic-0.4.3.tgz",
+ "integrity": "sha512-WphmneK3MRrm5ixvRPWy7+c9+EQUh0FPvNMXW/N9VD85vyqtpxUejpD+mxubVVht0fRgidcqBxtW3s3tU2Ujhw==",
+ "dev": true,
+ "requires": {
+ "is-plain-object": "^5.0.0",
+ "postcss": "^8.4.21",
+ "postcss-media-query-parser": "^0.2.3",
+ "postcss-value-parser": "^4.2.0",
+ "style-search": "^0.1.0"
+ },
+ "dependencies": {
+ "is-plain-object": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
+ "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
+ "dev": true
+ }
+ }
+ },
"supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
@@ -7534,9 +8505,9 @@
}
},
"supports-hyperlinks": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz",
- "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.0.0.tgz",
+ "integrity": "sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==",
"dev": true,
"requires": {
"has-flag": "^4.0.0",
@@ -7635,11 +8606,26 @@
}
},
"trim-newlines": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz",
- "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-4.1.1.tgz",
+ "integrity": "sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==",
+ "dev": true
+ },
+ "tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
"dev": true
},
+ "tsutils": {
+ "version": "3.21.0",
+ "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz",
+ "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==",
+ "dev": true,
+ "requires": {
+ "tslib": "^1.8.1"
+ }
+ },
"type-check": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
@@ -7655,6 +8641,13 @@
"integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
"dev": true
},
+ "typescript": {
+ "version": "5.4.5",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz",
+ "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==",
+ "dev": true,
+ "peer": true
+ },
"unc-path-regex": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz",
@@ -7678,9 +8671,9 @@
"dev": true
},
"update-browserslist-db": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz",
- "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==",
+ "version": "1.0.13",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz",
+ "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==",
"dev": true,
"requires": {
"escalade": "^3.1.1",
@@ -7702,12 +8695,6 @@
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
"dev": true
},
- "v8-compile-cache": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz",
- "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==",
- "dev": true
- },
"v8flags": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz",
@@ -7725,21 +8712,33 @@
"requires": {
"spdx-correct": "^3.0.0",
"spdx-expression-parse": "^3.0.0"
+ },
+ "dependencies": {
+ "spdx-expression-parse": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
+ "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+ "dev": true,
+ "requires": {
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ }
}
},
"vue-eslint-parser": {
- "version": "8.3.0",
- "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-8.3.0.tgz",
- "integrity": "sha512-dzHGG3+sYwSf6zFBa0Gi9ZDshD7+ad14DGOdTLjruRVgZXe2J+DcZ9iUhyR48z5g1PqRa20yt3Njna/veLJL/g==",
+ "version": "9.4.2",
+ "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.4.2.tgz",
+ "integrity": "sha512-Ry9oiGmCAK91HrKMtCrKFWmSFWvYkpGglCeFAIqDdr9zdXmMMpJOmUJS7WWsW7fX81h6mwHmUZCQQ1E0PkSwYQ==",
"dev": true,
"requires": {
- "debug": "^4.3.2",
- "eslint-scope": "^7.0.0",
- "eslint-visitor-keys": "^3.1.0",
- "espree": "^9.0.0",
+ "debug": "^4.3.4",
+ "eslint-scope": "^7.1.1",
+ "eslint-visitor-keys": "^3.3.0",
+ "espree": "^9.3.1",
"esquery": "^1.4.0",
"lodash": "^4.17.21",
- "semver": "^7.3.5"
+ "semver": "^7.3.6"
}
},
"which": {
@@ -7752,9 +8751,9 @@
}
},
"word-wrap": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
- "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
+ "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
"dev": true
},
"wrap-ansi": {
@@ -7775,15 +8774,21 @@
"dev": true
},
"write-file-atomic": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz",
- "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz",
+ "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==",
"dev": true,
"requires": {
"imurmurhash": "^0.1.4",
- "signal-exit": "^3.0.7"
+ "signal-exit": "^4.0.1"
}
},
+ "xml-name-validator": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz",
+ "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==",
+ "dev": true
+ },
"xtend": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
@@ -7803,20 +8808,20 @@
"dev": true
},
"yaml": {
- "version": "1.10.2",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
- "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.1.tgz",
+ "integrity": "sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==",
"dev": true
},
"yaml-eslint-parser": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/yaml-eslint-parser/-/yaml-eslint-parser-0.5.0.tgz",
- "integrity": "sha512-nJeyLA3YHAzhBTZbRAbu3W6xrSCucyxExmA+ZDtEdUFpGllxAZpto2Zxo2IG0r0eiuEiBM4e+wiAdxTziTq94g==",
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/yaml-eslint-parser/-/yaml-eslint-parser-1.2.2.tgz",
+ "integrity": "sha512-pEwzfsKbTrB8G3xc/sN7aw1v6A6c/pKxLAkjclnAyo5g5qOh6eL9WGu0o3cSDQZKrTNk4KL4lQSwZW+nBkANEg==",
"dev": true,
"requires": {
"eslint-visitor-keys": "^3.0.0",
"lodash": "^4.17.21",
- "yaml": "^1.10.2"
+ "yaml": "^2.0.0"
}
},
"yargs": {
diff --git a/package.json b/package.json
index 8e88065..cb2051f 100644
--- a/package.json
+++ b/package.json
@@ -5,10 +5,10 @@
"test": "grunt test"
},
"devDependencies": {
- "eslint-config-wikimedia": "0.24.0",
+ "eslint-config-wikimedia": "0.27.0",
"grunt": "1.6.1",
- "grunt-eslint": "24.0.0",
- "grunt-stylelint": "0.18.0",
- "stylelint-config-wikimedia": "0.14.0"
+ "grunt-eslint": "24.3.0",
+ "grunt-stylelint": "0.19.0",
+ "stylelint-config-wikimedia": "0.16.1"
}
}
diff --git a/resources/PageEncryptionPassword.js b/resources/PageEncryptionPassword.js
index 68bba88..e8381d8 100644
--- a/resources/PageEncryptionPassword.js
+++ b/resources/PageEncryptionPassword.js
@@ -19,226 +19,226 @@
* @copyright Copyright ©2023, https://wikisphere.org
*/
-$(function () {
+$( function () {
var WindowManager;
- var DialogName = "Dialog";
- var CookieName = "pageencryption-userkey";
+ var DialogName = 'Dialog';
+ var CookieName = 'pageencryption-userkey';
var Model = {};
var EncryptedNamespace = 2246;
var PasswordInputField;
var PasswordConfirmationInputField;
var MessageWidget;
- var KeyRecordIsSet = mw.config.get("pageencryption-protected-key-isSet");
- var UserkeyCookieIsSet = mw.config.get("pageencryption-userkey-cookie-isSet");
+ var KeyRecordIsSet = mw.config.get( 'pageencryption-protected-key-isSet' );
+ var UserkeyCookieIsSet = mw.config.get( 'pageencryption-userkey-cookie-isSet' );
var Booklet;
// console.log(mw.config);
- function ProcessDialog(config) {
- ProcessDialog.super.call(this, config);
+ function ProcessDialog( config ) {
+ ProcessDialog.super.call( this, config );
}
- OO.inheritClass(ProcessDialog, OO.ui.ProcessDialog);
+ OO.inheritClass( ProcessDialog, OO.ui.ProcessDialog );
ProcessDialog.static.name = DialogName;
- ProcessDialog.static.title = "PageEncryption";
+ ProcessDialog.static.title = 'PageEncryption';
ProcessDialog.static.actions = [
{
- action: "save",
- modes: "edit",
- label: mw.msg("pageencryption-jsmodule-dialog-save"),
- flags: ["primary", "progressive"],
+ action: 'save',
+ modes: 'edit',
+ label: mw.msg( 'pageencryption-jsmodule-dialog-save' ),
+ flags: [ 'primary', 'progressive' ]
},
{
- modes: "edit",
- label: mw.msg("pageencryption-jsmodule-dialog-cancel"),
- flags: ["safe", "close"],
- },
+ modes: 'edit',
+ label: mw.msg( 'pageencryption-jsmodule-dialog-cancel' ),
+ flags: [ 'safe', 'close' ]
+ }
];
- function PageOneLayout(name, config) {
- PageOneLayout.super.call(this, name, config);
+ function PageOneLayout( name, config ) {
+ PageOneLayout.super.call( this, name, config );
- var fieldset = new OO.ui.FieldsetLayout({
- label: "",
- });
+ var fieldset = new OO.ui.FieldsetLayout( {
+ label: ''
+ } );
- var passwordInput = new OO.ui.TextInputWidget({
- label: mw.msg("pageencryption-jsmodule-dialog-password"),
- value: "",
+ var passwordInput = new OO.ui.TextInputWidget( {
+ label: mw.msg( 'pageencryption-jsmodule-dialog-password' ),
+ value: '',
required: true,
- type: "password",
- });
+ type: 'password'
+ } );
- PasswordInputField = new OO.ui.FieldLayout(passwordInput, {
- label: "",
- align: "top",
- });
+ PasswordInputField = new OO.ui.FieldLayout( passwordInput, {
+ label: '',
+ align: 'top'
+ } );
Model.passwordInput = passwordInput;
- var passwordConfirmationInput = new OO.ui.TextInputWidget({
- label: mw.msg("pageencryption-jsmodule-dialog-password-confirmation"),
- value: "",
+ var passwordConfirmationInput = new OO.ui.TextInputWidget( {
+ label: mw.msg( 'pageencryption-jsmodule-dialog-password-confirmation' ),
+ value: '',
required: true,
- type: "password",
- });
+ type: 'password'
+ } );
Model.passwordConfirmationInput = passwordConfirmationInput;
- (PasswordConfirmationInputField = new OO.ui.FieldLayout(
+ ( PasswordConfirmationInputField = new OO.ui.FieldLayout(
passwordConfirmationInput,
{
- label: "",
- align: "top",
+ label: '',
+ align: 'top'
}
- )),
- (MessageWidget = new OO.ui.MessageWidget({
- type: "info",
- // inline: true,
- label: mw.msg("pageencryption-jsmodule-dialog-field-password"),
- }));
+ ) ),
+ ( MessageWidget = new OO.ui.MessageWidget( {
+ type: 'info',
+ // inline: true,
+ label: mw.msg( 'pageencryption-jsmodule-dialog-field-password' )
+ } ) );
// MessageWidget.toggle(false)
- fieldset.addItems([
+ fieldset.addItems( [
MessageWidget,
PasswordInputField,
- PasswordConfirmationInputField,
- ]);
+ PasswordConfirmationInputField
+ ] );
- this.$element.append(fieldset.$element);
+ this.$element.append( fieldset.$element );
}
- OO.inheritClass(PageOneLayout, OO.ui.PageLayout);
+ OO.inheritClass( PageOneLayout, OO.ui.PageLayout );
PageOneLayout.prototype.setupOutlineItem = function () {
- this.outlineItem.setLabel("Page One");
+ this.outlineItem.setLabel( 'Page One' );
};
function messageButton() {
- var buttonGoBack = new OO.ui.ButtonWidget({
+ var buttonGoBack = new OO.ui.ButtonWidget( {
framed: false,
- label: mw.msg("pageencryption-jsmodule-dialog-goback"),
- classes: ["pageencryption-button-goback"],
- });
+ label: mw.msg( 'pageencryption-jsmodule-dialog-goback' ),
+ classes: [ 'pageencryption-button-goback' ]
+ } );
- buttonGoBack.on("click", function () {
- Booklet.setPage("two");
+ buttonGoBack.on( 'click', function () {
+ Booklet.setPage( 'two' );
// MessageWidget resides on page one
- MessageWidget.setType("info");
+ MessageWidget.setType( 'info' );
MessageWidget.setLabel(
- mw.msg("pageencryption-jsmodule-dialog-field-password")
+ mw.msg( 'pageencryption-jsmodule-dialog-field-password' )
);
- });
+ } );
return new OO.ui.HtmlSnippet(
- $("<span>").append(
- mw.msg("pageencryption-jsmodule-dialog-field-password-reset") + " ",
+ $( '<span>' ).append(
+ mw.msg( 'pageencryption-jsmodule-dialog-field-password-reset' ) + ' ',
buttonGoBack.$element
)
);
}
- function PageTwoLayout(name, config) {
- PageTwoLayout.super.call(this, name, config);
+ function PageTwoLayout( name, config ) {
+ PageTwoLayout.super.call( this, name, config );
- var fieldset = new OO.ui.FieldsetLayout({
- label: "",
- });
+ var fieldset = new OO.ui.FieldsetLayout( {
+ label: ''
+ } );
- var enterPasswordInput = new OO.ui.TextInputWidget({
- label: mw.msg("pageencryption-jsmodule-dialog-password"),
- value: "",
+ var enterPasswordInput = new OO.ui.TextInputWidget( {
+ label: mw.msg( 'pageencryption-jsmodule-dialog-password' ),
+ value: '',
required: true,
- type: "password",
- });
+ type: 'password'
+ } );
- var buttonLostPassword = new OO.ui.ButtonWidget({
+ var buttonLostPassword = new OO.ui.ButtonWidget( {
framed: false,
- label: mw.msg("pageencryption-jsmodule-lost-password"),
- classes: ["pageencryption-button-lost-password"],
- });
-
- buttonLostPassword.on("click", function () {
- Booklet.setPage("one");
- MessageWidget.setType("error");
- MessageWidget.setLabel(messageButton());
- });
-
- var enterPasswordInputField = new OO.ui.FieldLayout(enterPasswordInput, {
- label: "",
- align: "top",
+ label: mw.msg( 'pageencryption-jsmodule-lost-password' ),
+ classes: [ 'pageencryption-button-lost-password' ]
+ } );
+
+ buttonLostPassword.on( 'click', function () {
+ Booklet.setPage( 'one' );
+ MessageWidget.setType( 'error' );
+ MessageWidget.setLabel( messageButton() );
+ } );
+
+ var enterPasswordInputField = new OO.ui.FieldLayout( enterPasswordInput, {
+ label: '',
+ align: 'top',
helpInline: true,
- classes: ["pageencryption-field-password"],
- help: new OO.ui.HtmlSnippet(buttonLostPassword.$element),
- });
+ classes: [ 'pageencryption-field-password' ],
+ help: new OO.ui.HtmlSnippet( buttonLostPassword.$element )
+ } );
Model.enterPasswordInput = enterPasswordInput;
- var messageWidget = new OO.ui.MessageWidget({
- type: "info",
- label: mw.msg("pageencryption-jsmodule-dialog-field-password-reenter"),
- });
+ var messageWidget = new OO.ui.MessageWidget( {
+ type: 'info',
+ label: mw.msg( 'pageencryption-jsmodule-dialog-field-password-reenter' )
+ } );
// MessageWidget.toggle(false)
- fieldset.addItems([messageWidget, enterPasswordInputField]);
+ fieldset.addItems( [ messageWidget, enterPasswordInputField ] );
- this.$element.append(fieldset.$element);
+ this.$element.append( fieldset.$element );
}
- OO.inheritClass(PageTwoLayout, OO.ui.PageLayout);
+ OO.inheritClass( PageTwoLayout, OO.ui.PageLayout );
PageTwoLayout.prototype.setupOutlineItem = function () {
- this.outlineItem.setLabel("Page Two");
+ this.outlineItem.setLabel( 'Page Two' );
};
ProcessDialog.prototype.initialize = function () {
- ProcessDialog.super.prototype.initialize.apply(this, arguments);
+ ProcessDialog.super.prototype.initialize.apply( this, arguments );
- var page1 = new PageOneLayout("one"),
- page2 = new PageTwoLayout("two");
+ var page1 = new PageOneLayout( 'one' ),
+ page2 = new PageTwoLayout( 'two' );
- Booklet = new OO.ui.BookletLayout({
+ Booklet = new OO.ui.BookletLayout( {
outlined: false,
expanded: true,
- showMenu: false,
- });
+ showMenu: false
+ } );
- Booklet.addPages([page1, page2]);
+ Booklet.addPages( [ page1, page2 ] );
- Booklet.setPage(!KeyRecordIsSet ? "one" : "two");
+ Booklet.setPage( !KeyRecordIsSet ? 'one' : 'two' );
- var content = new OO.ui.PanelLayout({
+ var content = new OO.ui.PanelLayout( {
$content: Booklet.$element,
padded: true,
- expanded: true,
- });
+ expanded: true
+ } );
- this.$body.append(content.$element);
+ this.$body.append( content.$element );
};
ProcessDialog.prototype.getBodyHeight = function () {
return 300;
};
- ProcessDialog.prototype.getActionProcess = function (action) {
+ ProcessDialog.prototype.getActionProcess = function ( action ) {
var dialog = this;
- if (!action || action === "delete") {
- return ProcessDialog.super.prototype.getActionProcess.call(this, action);
+ if ( !action || action === 'delete' ) {
+ return ProcessDialog.super.prototype.getActionProcess.call( this, action );
}
// or use Booklet.getCurrentPage().name
- if (!KeyRecordIsSet) {
+ if ( !KeyRecordIsSet ) {
var password = Model.passwordInput.getValue();
var passwordConfirm = Model.passwordConfirmationInput.getValue();
- if (password !== passwordConfirm) {
- console.log(password + "," + passwordConfirm);
+ if ( password !== passwordConfirm ) {
+ console.log( password + ',' + passwordConfirm );
- PasswordInputField.setErrors([]);
+ PasswordInputField.setErrors( [] );
- PasswordConfirmationInputField.setErrors([
- mw.msg("pageencryption-jsmodule-dialog-password-error-nomatch"),
- ]);
+ PasswordConfirmationInputField.setErrors( [
+ mw.msg( 'pageencryption-jsmodule-dialog-password-error-nomatch' )
+ ] );
return ProcessDialog.super.prototype.getActionProcess.call(
this,
@@ -247,117 +247,117 @@ $(function () {
}
var validator = new PageEncryptionPasswordValidator();
- var errors = validator.checkPassword(password);
+ var errors = validator.checkPassword( password );
var conf = validator.getConf();
- if (errors.length) {
+ if ( errors.length ) {
var errorsMessages = [];
- for (var error of errors) {
- var args = ["pageencryption-jsmodule-dialog-password-error-" + error];
- switch (error) {
- case "length":
- args.push(conf.minSize);
- args.push(conf.maxSize);
+ for ( var error of errors ) {
+ var args = [ 'pageencryption-jsmodule-dialog-password-error-' + error ];
+ switch ( error ) {
+ case 'length':
+ args.push( conf.minSize );
+ args.push( conf.maxSize );
break;
break;
- case "special":
- args.push(conf.specialCharacters);
+ case 'special':
+ args.push( conf.specialCharacters );
break;
- case "prohibited":
- args.push(conf.prohibitedCharacters);
+ case 'prohibited':
+ args.push( conf.prohibitedCharacters );
break;
}
- errorsMessages.push(mw.msg.apply(null, args));
+ errorsMessages.push( mw.msg.apply( null, args ) );
}
- PasswordInputField.setErrors(errorsMessages);
+ PasswordInputField.setErrors( errorsMessages );
return ProcessDialog.super.prototype.getActionProcess.call(
this,
action
);
}
- PasswordInputField.setErrors([]);
- PasswordConfirmationInputField.setErrors([]);
+ PasswordInputField.setErrors( [] );
+ PasswordConfirmationInputField.setErrors( [] );
} else {
var password = Model.enterPasswordInput.getValue();
}
var payload = {
- action: "pageencryption-set-encryption-key",
+ action: 'pageencryption-set-encryption-key',
password: password,
- "reset-key": Booklet.getCurrentPage().name === "one" ? 1 : 0,
+ 'reset-key': Booklet.getCurrentPage().name === 'one' ? 1 : 0
};
// https://www.mediawiki.org/wiki/OOUI/Windows/Process_Dialogs#Action_sets
return ProcessDialog.super.prototype.getActionProcess
- .call(this, action)
- .first(function () {
- switch (action) {
- case "save":
+ .call( this, action )
+ .first( function () {
+ switch ( action ) {
+ case 'save':
// eslint-disable no-fallthrough
- case "delete":
- var callApi = function (postData, resolve, reject) {
+ case 'delete':
+ var callApi = function ( postData, resolve, reject ) {
// console.log("postData", postData);
new mw.Api()
- .postWithToken("csrf", postData)
- .done(function (res) {
+ .postWithToken( 'csrf', postData )
+ .done( function ( res ) {
// console.log("res", res);
- if (!("pageencryption-set-encryption-key" in res)) {
+ if ( !( 'pageencryption-set-encryption-key' in res ) ) {
reject(
- new OO.ui.Error(res, {
+ new OO.ui.Error( res, {
recoverable: true,
- warning: false,
- })
+ warning: false
+ } )
);
} else {
- var value = res["pageencryption-set-encryption-key"];
- if (value["message"] !== null) {
+ var value = res[ 'pageencryption-set-encryption-key' ];
+ if ( value.message !== null ) {
reject(
- new OO.ui.Error(value["message"], {
+ new OO.ui.Error( value.message, {
recoverable: true,
- warning: false,
- })
+ warning: false
+ } )
);
} else {
- if (value["action"] === "new-record") {
+ if ( value.action === 'new-record' ) {
// @TODO show popup
- console.log(value["protected-key"]);
+ console.log( value[ 'protected-key' ] );
}
- WindowManager.removeWindows([DialogName]);
+ WindowManager.removeWindows( [ DialogName ] );
}
}
// resolve();
- })
- .fail(function (res) {
- console.log("res", res);
+ } )
+ .fail( function ( res ) {
+ console.log( 'res', res );
var msg = res;
// https://doc.wikimedia.org/oojs-ui/master/js/source/Error.html#OO-ui-Error-method-constructor
reject(
- new OO.ui.Error(msg, { recoverable: true, warning: false })
+ new OO.ui.Error( msg, { recoverable: true, warning: false } )
);
- });
+ } );
};
- // eslint-disable-next-line compat/compat
- return new Promise((resolve, reject) => {
- mw.loader.using("mediawiki.api", function () {
- callApi(payload, resolve, reject);
- });
- }); // promise
+
+ return new Promise( ( resolve, reject ) => {
+ mw.loader.using( 'mediawiki.api', function () {
+ callApi( payload, resolve, reject );
+ } );
+ } ); // promise
}
- //return false;
- }, this); // .next
+ // return false;
+ }, this ); // .next
- return new OO.ui.Process(function () {
- dialog.close({ action: action });
- });
+ return new OO.ui.Process( function () {
+ dialog.close( { action: action } );
+ } );
// return ProcessDialog.super.prototype.getActionProcess.call( this, action );
};
@@ -385,25 +385,25 @@ $(function () {
// };
function createWindowManager() {
- var windowManager = new OO.ui.WindowManager({
- classes: ["pageencryption-ooui-window"],
- });
- $(document.body).append(windowManager.$element);
+ var windowManager = new OO.ui.WindowManager( {
+ classes: [ 'pageencryption-ooui-window' ]
+ } );
+ $( document.body ).append( windowManager.$element );
return windowManager;
}
function openDialog() {
- var processDialog = new ProcessDialog({
- size: "medium",
- classes: [],
- });
+ var processDialog = new ProcessDialog( {
+ size: 'medium',
+ classes: []
+ } );
WindowManager = createWindowManager();
- WindowManager.addWindows([processDialog]);
+ WindowManager.addWindows( [ processDialog ] );
- WindowManager.openWindow(processDialog);
+ WindowManager.openWindow( processDialog );
}
// *** httpOnly cookies cannot be accessed client-side
@@ -412,13 +412,13 @@ $(function () {
// }
function isEncryptedNamespace() {
- return mw.config.get("wgNamespaceNumber") === EncryptedNamespace;
+ return mw.config.get( 'wgNamespaceNumber' ) === EncryptedNamespace;
}
if (
- mw.config.get("pageencryption-user-is-editor") &&
- (!KeyRecordIsSet || !UserkeyCookieIsSet)
+ mw.config.get( 'pageencryption-user-is-editor' ) &&
+ ( !KeyRecordIsSet || !UserkeyCookieIsSet )
) {
openDialog();
}
-});
+} );
diff --git a/resources/PageEncryptionPasswordValidator.js b/resources/PageEncryptionPasswordValidator.js
index a3ff3b2..91770af 100644
--- a/resources/PageEncryptionPasswordValidator.js
+++ b/resources/PageEncryptionPasswordValidator.js
@@ -21,7 +21,7 @@
*/
// @credits https://github.com/briannippert/Password-Validator/blob/master/PasswordValidatorv2.js
-const PageEncryptionPasswordValidator = function (conf) {
+const PageEncryptionPasswordValidator = function ( conf ) {
var conf = $.extend(
{
minSize: 5,
@@ -31,76 +31,75 @@ const PageEncryptionPasswordValidator = function (conf) {
digitConfigured: true,
specialConfigured: true,
prohibitedConfigured: true,
- specialCharacters: ["_", "#", "%", "*", "@"],
- prohibitedCharacters: ["$", "&", "=", "!"],
+ specialCharacters: [ '_', '#', '%', '*', '@' ],
+ prohibitedCharacters: [ '$', '&', '=', '!' ]
},
conf || {}
);
- function checkPassword(value) {
- var length = conf.lengthConfigured ? checkLength(value) : true;
- var upper = conf.uppercaseConfigured ? checkUpperCase(value) : true;
- var digit = conf.digitConfigured ? checkDigit(value) : true;
- var special = conf.specialConfigured ? checkSpecialCharacters(value) : true;
- var prohibited = conf.prohibitedConfigured
- ? checkProhibitedCharacter(value)
- : true;
+ function checkPassword( value ) {
+ var length = conf.lengthConfigured ? checkLength( value ) : true;
+ var upper = conf.uppercaseConfigured ? checkUpperCase( value ) : true;
+ var digit = conf.digitConfigured ? checkDigit( value ) : true;
+ var special = conf.specialConfigured ? checkSpecialCharacters( value ) : true;
+ var prohibited = conf.prohibitedConfigured ?
+ checkProhibitedCharacter( value ) :
+ true;
var errors = [];
- if (!length) {
- errors.push("length");
+ if ( !length ) {
+ errors.push( 'length' );
}
- if (!upper) {
- errors.push("uppercase");
+ if ( !upper ) {
+ errors.push( 'uppercase' );
}
- if (!digit) {
- errors.push("digit");
+ if ( !digit ) {
+ errors.push( 'digit' );
}
- if (!special) {
- errors.push("special");
+ if ( !special ) {
+ errors.push( 'special' );
}
- if (prohibited) {
- errors.push("prohibited");
+ if ( prohibited ) {
+ errors.push( 'prohibited' );
}
return errors;
}
- function checkSpecialCharacters(str) {
+ function checkSpecialCharacters( str ) {
// var specialChar = new RegExp("[_\\-#%*\\+]");
- var specialChar = new RegExp("[" + conf.specialCharacters.join("") + "]");
+ var specialChar = new RegExp( '[' + conf.specialCharacters.join( '' ) + ']' );
- return specialChar.test(str);
+ return specialChar.test( str );
}
- function checkProhibitedCharacter(str) {
+ function checkProhibitedCharacter( str ) {
// var specialChar = new RegExp("[$&=!@]");//= /[$&=!@]/;
var specialChar = new RegExp(
- "[" + conf.prohibitedCharacters.join("") + "]"
+ '[' + conf.prohibitedCharacters.join( '' ) + ']'
);
- return specialChar.test(str);
+ return specialChar.test( str );
}
- function checkDigit(str) {
- return /\d/.test(str);
+ function checkDigit( str ) {
+ return /\d/.test( str );
}
- function checkUpperCase(str) {
- return /[^A-Z]/.test(str);
+ function checkUpperCase( str ) {
+ return /[^A-Z]/.test( str );
}
- function checkLength(str) {
+ function checkLength( str ) {
return str.length >= conf.minSize && str.length <= conf.maxSize;
}
-
- function getConf(str) {
+
+ function getConf( str ) {
return conf;
}
return {
checkPassword,
- getConf,
+ getConf
};
};
-
diff --git a/resources/PageEncryptionPermissions.js b/resources/PageEncryptionPermissions.js
index 95b2f4f..2239601 100644
--- a/resources/PageEncryptionPermissions.js
+++ b/resources/PageEncryptionPermissions.js
@@ -19,53 +19,53 @@
* @copyright Copyright ©2023, https://wikisphere.org
*/
-$(function () {
- $(".pageencryption-managepermissions-pager-button-show-url").on(
- "click",
+$( function () {
+ $( '.pageencryption-managepermissions-pager-button-show-url' ).on(
+ 'click',
function () {
- navigator.clipboard.writeText($(this).data("url")).then(() => {
+ navigator.clipboard.writeText( $( this ).data( 'url' ) ).then( () => {
alert(
mw.msg(
- "pageencryption-jsmodule-managepermissions-copied-to-clipboard"
+ 'pageencryption-jsmodule-managepermissions-copied-to-clipboard'
)
);
- });
+ } );
}
);
- $(".pageencryption-managepermissions-pager-button-show-password").on(
- "click",
+ $( '.pageencryption-managepermissions-pager-button-show-password' ).on(
+ 'click',
function () {
- navigator.clipboard.writeText($(this).data("password")).then(() => {
+ navigator.clipboard.writeText( $( this ).data( 'password' ) ).then( () => {
alert(
mw.msg(
- "pageencryption-jsmodule-managepermissions-copied-to-clipboard"
+ 'pageencryption-jsmodule-managepermissions-copied-to-clipboard'
)
);
- });
+ } );
}
);
// eslint-disable-next-line no-jquery/no-global-selector
- $('#pageencryption-form-permissions button[type="submit"]').on(
- "click",
+ $( '#pageencryption-form-permissions button[type="submit"]' ).on(
+ 'click',
// eslint-disable-next-line no-unused-vars
- function (val) {
- if ($(this).val() === "delete") {
+ function ( val ) {
+ if ( $( this ).val() === 'delete' ) {
// eslint-disable-next-line no-alert
- if (!confirm(mw.msg("pageencryption-jsmodule-deleteitemconfirm"))) {
+ if ( !confirm( mw.msg( 'pageencryption-jsmodule-deleteitemconfirm' ) ) ) {
return false;
}
// eslint-disable-next-line no-jquery/no-sizzle
- $(this)
- .closest("form")
- .find(":input")
- .each(function (i, el) {
- $(el).removeAttr("required");
- });
+ $( this )
+ .closest( 'form' )
+ .find( ':input' )
+ .each( function ( i, el ) {
+ $( el ).removeAttr( 'required' );
+ } );
}
}
);
@@ -73,61 +73,61 @@ $(function () {
// display every 3 days
if (
canManagePermissions &&
- !mw.cookie.get("pageencryption-check-latest-version")
+ !mw.cookie.get( 'pageencryption-check-latest-version' )
) {
- mw.loader.using("mediawiki.api", function () {
+ mw.loader.using( 'mediawiki.api', function () {
new mw.Api()
- .postWithToken("csrf", {
- action: "pageencryption-check-latest-version",
- })
- .done(function (res) {
- if ("pageencryption-check-latest-version" in res) {
- if (res["pageencryption-check-latest-version"].result === 2) {
- var messageWidget = new OO.ui.MessageWidget({
- type: "warning",
+ .postWithToken( 'csrf', {
+ action: 'pageencryption-check-latest-version'
+ } )
+ .done( function ( res ) {
+ if ( 'pageencryption-check-latest-version' in res ) {
+ if ( res[ 'pageencryption-check-latest-version' ].result === 2 ) {
+ var messageWidget = new OO.ui.MessageWidget( {
+ type: 'warning',
label: new OO.ui.HtmlSnippet(
mw.msg(
- "pageencryption-jsmodule-managepermissions-outdated-version"
+ 'pageencryption-jsmodule-managepermissions-outdated-version'
)
),
// *** this does not work before ooui v0.43.0
- showClose: true,
- });
+ showClose: true
+ } );
var closeFunction = function () {
var three_days = 3 * 86400;
- mw.cookie.set("pageencryption-check-latest-version", true, {
- path: "/",
- expires: three_days,
- });
- $(messageWidget.$element).parent().remove();
+ mw.cookie.set( 'pageencryption-check-latest-version', true, {
+ path: '/',
+ expires: three_days
+ } );
+ $( messageWidget.$element ).parent().remove();
};
- messageWidget.on("close", closeFunction);
- $("#pageencryption-panel-layout").first().prepend(
+ messageWidget.on( 'close', closeFunction );
+ $( '#pageencryption-panel-layout' ).first().prepend(
// eslint-disable-next-line no-jquery/no-parse-html-literal
- $("<div><br/></div>").prepend(messageWidget.$element)
+ $( '<div><br/></div>' ).prepend( messageWidget.$element )
);
if (
// eslint-disable-next-line no-jquery/no-class-state
!messageWidget.$element.hasClass(
- "oo-ui-messageWidget-showClose"
+ 'oo-ui-messageWidget-showClose'
)
) {
messageWidget.$element.addClass(
- "oo-ui-messageWidget-showClose"
+ 'oo-ui-messageWidget-showClose'
);
- var closeButton = new OO.ui.ButtonWidget({
- classes: ["oo-ui-messageWidget-close"],
+ var closeButton = new OO.ui.ButtonWidget( {
+ classes: [ 'oo-ui-messageWidget-close' ],
framed: false,
- icon: "close",
- label: OO.ui.msg("ooui-popup-widget-close-button-aria-label"),
- invisibleLabel: true,
- });
- closeButton.on("click", closeFunction);
- messageWidget.$element.append(closeButton.$element);
+ icon: 'close',
+ label: OO.ui.msg( 'ooui-popup-widget-close-button-aria-label' ),
+ invisibleLabel: true
+ } );
+ closeButton.on( 'click', closeFunction );
+ messageWidget.$element.append( closeButton.$element );
}
}
}
- });
- });
+ } );
+ } );
}
-});
+} );
diff --git a/resources/style.css b/resources/style.css
index c00a49b..6ac40f3 100644
--- a/resources/style.css
+++ b/resources/style.css
@@ -1,4 +1,3 @@
-/* stylelint-disable color-named */
.pageencryption-sitenotice {
margin: 12px;
padding: 24px;
@@ -19,16 +18,17 @@
}
#mw-indicator-pageencryption a {
- background-image: url(/mediawiki/resources/lib/ooui/themes/wikimediaui/images/icons/lock.svg?46d34);
- background-position: left center;
- background-repeat: no-repeat;
- display: inline-block;
- height: 20px;
- padding-left: 25px;
- line-height: 20px;
+ background-image: url( /mediawiki/resources/lib/ooui/themes/wikimediaui/images/icons/lock.svg?46d34 );
+ background-position: left center;
+ background-repeat: no-repeat;
+ display: inline-block;
+ height: 20px;
+ padding-left: 25px;
+ line-height: 20px;
}
-.pageencryption-managepermissions-pager-button-show-password, .pageencryption-managepermissions-pager-button-show-url {
+.pageencryption-managepermissions-pager-button-show-password,
+ .pageencryption-managepermissions-pager-button-show-url {
background: #dcdcdc;
padding: 6px;
border: 1px solid #ccc;
@@ -59,4 +59,3 @@
padding: 24px;
border: 1px solid #ccc;
}
-
--
2.39.2
--- end ---