From aae799a5fbea18dabf31a046c4d53a4a93a763d8 Mon Sep 17 00:00:00 2001 From: Steve Boyd Date: Wed, 5 Jun 2024 17:26:01 +1200 Subject: [PATCH 1/3] ENH Use class name instead of self --- src/Authenticator/LoginForm.php | 14 +-- src/Authenticator/MiniLoginForm.php | 6 +- src/Model/FederatedIdentity.php | 28 +++-- src/RealMeService.php | 175 +++++++++++++++------------- src/Task/RealMeSetupTask.php | 44 +++---- tests/RealMeServiceTest.php | 13 ++- tests/RealMeSetupTaskTest.php | 18 +-- 7 files changed, 155 insertions(+), 143 deletions(-) diff --git a/src/Authenticator/LoginForm.php b/src/Authenticator/LoginForm.php index 2ac268f..5eba9c8 100644 --- a/src/Authenticator/LoginForm.php +++ b/src/Authenticator/LoginForm.php @@ -73,7 +73,7 @@ public function __construct($controller, $name) $integrationType = $service->config()->integration_type; if ($integrationType === RealMeService::TYPE_ASSERT) { - $this->template = self::class . '/RealMeAssertForm'; + $this->template = LoginForm::class . '/RealMeAssertForm'; } if ($this->config()->include_javascript) { @@ -163,7 +163,7 @@ public function HasRealMeLastError() */ public function getAuthenticatorName() { - return _t(self::class . '.AUTHENTICATOR_NAME', 'RealMe Account'); + return _t(LoginForm::class . '.AUTHENTICATOR_NAME', 'RealMe Account'); } /** @@ -192,22 +192,22 @@ protected function getFormActions() if ($integrationType === RealMeService::TYPE_ASSERT) { $loginButtonContent = ArrayData::create(array( 'Label' => _t( - self::class . '.ASSERTLOGINBUTTON', + LoginForm::class . '.ASSERTLOGINBUTTON', 'Share your details with {orgname}', ['orgname' => $service->config()->metadata_organisation_display_name] ), 'ShowNewWindowIcon' => false - ))->renderWith(self::class . '/RealMeLoginButton'); + ))->renderWith(LoginForm::class . '/RealMeLoginButton'); } else { // Login button $loginButtonContent = ArrayData::create(array( - 'Label' => _t(self::class . '.LOGINBUTTON2', 'Log in'), + 'Label' => _t(LoginForm::class . '.LOGINBUTTON2', 'Log in'), 'ShowNewWindowIcon' => true - ))->renderWith(self::class . '/RealMeLoginButton'); + ))->renderWith(LoginForm::class . '/RealMeLoginButton'); } return FieldList::create(array( - FormAction::create('doLogin', _t(self::class . '.LOGINBUTTON2', 'Log in')) + FormAction::create('doLogin', _t(LoginForm::class . '.LOGINBUTTON2', 'Log in')) ->setUseButtonTag(true) ->setButtonContent($loginButtonContent) ->setAttribute('class', 'realme_button') diff --git a/src/Authenticator/MiniLoginForm.php b/src/Authenticator/MiniLoginForm.php index a563e96..bb3fe75 100644 --- a/src/Authenticator/MiniLoginForm.php +++ b/src/Authenticator/MiniLoginForm.php @@ -9,7 +9,7 @@ class MiniLoginForm extends LoginForm { /** * @var string The position at which the 'What's RealMe?' popup appears on hover. Can be either 'left' or 'right'. - * @see self::setMiniLoginFormPopupPosition() + * @see MiniLoginForm::setMiniLoginFormPopupPosition() */ private $popupPosition = 'left'; @@ -18,14 +18,14 @@ public function __construct($controller, $name) parent::__construct($controller, $name); $this->setFormMethod('GET', true); - $buttonName = sprintf('action_%s', self::$action_button_name); + $buttonName = sprintf('action_%s', MiniLoginForm::$action_button_name); $this->Actions()->fieldByName($buttonName)->addExtraClass('mini'); } public function getRealMeMiniLoginLink() { $fields = $this->Fields(); - $buttonName = sprintf('action_%s', self::$action_button_name); + $buttonName = sprintf('action_%s', MiniLoginForm::$action_button_name); $action = $this->Actions()->fieldByName($buttonName); $authMethod = $fields->dataFieldByName('AuthenticationMethod')->Value(); diff --git a/src/Model/FederatedIdentity.php b/src/Model/FederatedIdentity.php index d9afbec..efe8c99 100644 --- a/src/Model/FederatedIdentity.php +++ b/src/Model/FederatedIdentity.php @@ -145,7 +145,7 @@ public function __construct($nameId) */ public static function createFromXML(DOMDocument $identityDocument, $nameId) { - $identity = new self($nameId); + $identity = new FederatedIdentity($nameId); $xpath = new DOMXPath($identityDocument); $xpath->registerNamespace('p', 'urn:oasis:names:tc:ciq:xpil:3'); @@ -155,50 +155,54 @@ public static function createFromXML(DOMDocument $identityDocument, $nameId) $xpath->registerNamespace('addr', 'urn:oasis:names:tc:ciq:xal:3'); // Name elements - $identity->FirstName = self::getNodeValue( + $identity->FirstName = FederatedIdentity::getNodeValue( $xpath, "/p:Party/p:PartyName/n:PersonName/n:NameElement[@n:ElementType='FirstName']" ); - $identity->MiddleName = self::getNodeValue( + $identity->MiddleName = FederatedIdentity::getNodeValue( $xpath, "/p:Party/p:PartyName/n:PersonName/n:NameElement[@n:ElementType='MiddleName']" ); - $identity->LastName = self::getNodeValue( + $identity->LastName = FederatedIdentity::getNodeValue( $xpath, "/p:Party/p:PartyName/n:PersonName/n:NameElement[@n:ElementType='LastName']" ); // Gender - $identity->Gender = self::getNamedItemNodeValue($xpath, '/p:Party/p:PersonInfo[@p:Gender]', 'Gender'); + $identity->Gender = FederatedIdentity::getNamedItemNodeValue( + $xpath, + '/p:Party/p:PersonInfo[@p:Gender]', + 'Gender' + ); // Birth info $identity->BirthInfoQuality = $xpath->query("/p:Party/p:BirthInfo[@dataQuality:DataQualityType]"); // Birth date - $identity->BirthYear = self::getNodeValue( + $identity->BirthYear = FederatedIdentity::getNodeValue( $xpath, "/p:Party/p:BirthInfo/p:BirthInfoElement[@p:Type='BirthYear']" ); - $identity->BirthMonth = self::getNodeValue( + $identity->BirthMonth = FederatedIdentity::getNodeValue( $xpath, "/p:Party/p:BirthInfo/p:BirthInfoElement[@p:Type='BirthMonth']" ); - $identity->BirthDay = self::getNodeValue( + $identity->BirthDay = FederatedIdentity::getNodeValue( $xpath, "/p:Party/p:BirthInfo/p:BirthInfoElement[@p:Type='BirthDay']" ); // Birth place - $identity->BirthPlaceQuality = self::getNamedItemNodeValue( + $identity->BirthPlaceQuality = FederatedIdentity::getNamedItemNodeValue( $xpath, '/p:Party/p:BirthInfo/p:BirthPlaceDetails[@dataQuality:DataQualityType]', 'DataQualityType' ); - $identity->BirthPlaceCountry = self::getNodeValue( + $identity->BirthPlaceCountry = FederatedIdentity::getNodeValue( $xpath, "/p:Party/p:BirthInfo/p:BirthPlaceDetails/addr:Country/addr:NameElement[@addr:NameType='Name']" ); - $identity->BirthPlaceLocality = self::getNodeValue( + $identity->BirthPlaceLocality = FederatedIdentity::getNodeValue( $xpath, "/p:Party/p:BirthInfo/p:BirthPlaceDetails/addr:Locality/addr:NameElement[@addr:NameType='Name']" ); @@ -268,7 +272,7 @@ private static function getNodeValue(DOMXPath $xpath, $query) */ public static function createFromJSON($identityHashMap, $nameId) { - $identity = new self($nameId); + $identity = new FederatedIdentity($nameId); $identityMap = json_decode($identityHashMap ?? '', true); diff --git a/src/RealMeService.php b/src/RealMeService.php index fb3d84e..54178d6 100644 --- a/src/RealMeService.php +++ b/src/RealMeService.php @@ -77,7 +77,7 @@ class RealMeService implements TemplateGlobalProvider private static $sync_with_local_member_database = false; /** - * @var User|null User data returned by RealMe. Provided by {@link self::ensureLogin()}. + * @var User|null User data returned by RealMe. Provided by {@link RealMeService::ensureLogin()}. * * Data within this ArrayData is as follows: * - NameID: ArrayData Includes the UserFlt and associated formatting information @@ -104,7 +104,11 @@ class RealMeService implements TemplateGlobalProvider /** * @var array The RealMe environments that can be configured for use with this module. */ - private static $allowed_realme_environments = array(self::ENV_MTS, self::ENV_ITE, self::ENV_PROD); + private static $allowed_realme_environments = array( + RealMeService::ENV_MTS, + RealMeService::ENV_ITE, + RealMeService::ENV_PROD + ); /** * @config @@ -114,7 +118,7 @@ class RealMeService implements TemplateGlobalProvider */ private static $integration_type = 'login'; - private static $allowed_realme_integration_types = array(self::TYPE_LOGIN, self::TYPE_ASSERT); + private static $allowed_realme_integration_types = array(RealMeService::TYPE_LOGIN, RealMeService::TYPE_ASSERT); /** * @config @@ -123,9 +127,9 @@ class RealMeService implements TemplateGlobalProvider * the form of a URL, e.g. https://www.agency.govt.nz/privacy-realm-name/application-name */ private static $sp_entity_ids = array( - self::ENV_MTS => null, - self::ENV_ITE => null, - self::ENV_PROD => null + RealMeService::ENV_MTS => null, + RealMeService::ENV_ITE => null, + RealMeService::ENV_PROD => null ); /** @@ -134,47 +138,47 @@ class RealMeService implements TemplateGlobalProvider * intermediary IdP instead of connecting to RealMe directly. */ private static $idp_entity_ids = array( - self::ENV_MTS => array( - self::TYPE_LOGIN => 'https://login.mts.realme.govt.nz/4af8e0e0-497b-4f52-805c-00fa09b50c16' . + RealMeService::ENV_MTS => array( + RealMeService::TYPE_LOGIN => 'https://login.mts.realme.govt.nz/4af8e0e0-497b-4f52-805c-00fa09b50c16' . '/B2C_1A_DIA_RealMe_MTSLoginService', - self::TYPE_ASSERT => 'https://login.mts.realme.govt.nz/4af8e0e0-497b-4f52-805c-00fa09b50c16' . + RealMeService::TYPE_ASSERT => 'https://login.mts.realme.govt.nz/4af8e0e0-497b-4f52-805c-00fa09b50c16' . '/B2C_1A_DIA_RealMe_MTSAssertionService' ), - self::ENV_ITE => array( - self::TYPE_LOGIN => 'https://login.ite.realme.govt.nz/12c36372-4b2d-4865-b1d1-9599b0d37348' . + RealMeService::ENV_ITE => array( + RealMeService::TYPE_LOGIN => 'https://login.ite.realme.govt.nz/12c36372-4b2d-4865-b1d1-9599b0d37348' . '/B2C_1A_DIA_RealMe_LoginService', - self::TYPE_ASSERT => 'https://login.ite.realme.govt.nz/12c36372-4b2d-4865-b1d1-9599b0d37348' . + RealMeService::TYPE_ASSERT => 'https://login.ite.realme.govt.nz/12c36372-4b2d-4865-b1d1-9599b0d37348' . '/B2C_1A_DIA_RealMe_AssertionService' ), - self::ENV_PROD => array( - self::TYPE_LOGIN => 'https://login.realme.govt.nz/32179062-92f6-4eb0-89bc-df400a9e0367' . + RealMeService::ENV_PROD => array( + RealMeService::TYPE_LOGIN => 'https://login.realme.govt.nz/32179062-92f6-4eb0-89bc-df400a9e0367' . '/B2C_1A_DIA_RealMe_LoginService', - self::TYPE_ASSERT => 'https://login.realme.govt.nz/32179062-92f6-4eb0-89bc-df400a9e0367' . + RealMeService::TYPE_ASSERT => 'https://login.realme.govt.nz/32179062-92f6-4eb0-89bc-df400a9e0367' . '/B2C_1A_DIA_RealMe_AssertionService', ) ); private static $idp_sso_service_urls = array( - self::ENV_MTS => array( - self::TYPE_LOGIN => 'https://login.mts.realme.govt.nz/b2cdiamts01rmpubdir.onmicrosoft.com' . + RealMeService::ENV_MTS => array( + RealMeService::TYPE_LOGIN => 'https://login.mts.realme.govt.nz/b2cdiamts01rmpubdir.onmicrosoft.com' . '/B2C_1A_DIA_RealMe_MTSLoginService/samlp/sso/login', - self::TYPE_ASSERT => 'https://login.mts.realme.govt.nz/b2cdiamts01rmpubdir.onmicrosoft.com' . + RealMeService::TYPE_ASSERT => 'https://login.mts.realme.govt.nz/b2cdiamts01rmpubdir.onmicrosoft.com' . '/B2C_1A_DIA_RealMe_MTSAssertionService/samlp/sso/login' ), - self::ENV_ITE => array( - self::TYPE_LOGIN => 'https://login.ite.realme.govt.nz/b2cdiaite01rmpubdir.onmicrosoft.com' . + RealMeService::ENV_ITE => array( + RealMeService::TYPE_LOGIN => 'https://login.ite.realme.govt.nz/b2cdiaite01rmpubdir.onmicrosoft.com' . '/B2C_1A_DIA_RealMe_LoginService/samlp/sso/login', - self::TYPE_ASSERT => 'https://login.ite.realme.govt.nz/b2cdiaite01rmpubdir.onmicrosoft.com' . + RealMeService::TYPE_ASSERT => 'https://login.ite.realme.govt.nz/b2cdiaite01rmpubdir.onmicrosoft.com' . '/B2C_1A_DIA_RealMe_AssertionService/samlp/sso/login' ), - self::ENV_PROD => array( - self::TYPE_LOGIN => 'https://login.realme.govt.nz/32179062-92f6-4eb0-89bc-df400a9e0367' . + RealMeService::ENV_PROD => array( + RealMeService::TYPE_LOGIN => 'https://login.realme.govt.nz/32179062-92f6-4eb0-89bc-df400a9e0367' . '/B2C_1A_DIA_RealMe_LoginService/samlp/sso/login', - self::TYPE_ASSERT => 'https://login.realme.govt.nz/32179062-92f6-4eb0-89bc-df400a9e0367' . + RealMeService::TYPE_ASSERT => 'https://login.realme.govt.nz/32179062-92f6-4eb0-89bc-df400a9e0367' . '/B2C_1A_DIA_RealMe_AssertionService/samlp/sso/login' ) ); @@ -187,21 +191,21 @@ class RealMeService implements TemplateGlobalProvider * is documentation in the README to ensure the filenames are configured correctly for the various environments. */ private static $idp_x509_cert_filenames = array( - self::ENV_MTS => array( - self::TYPE_LOGIN => 'mts_login_saml_idp.cer', - self::TYPE_ASSERT => 'mts_assert_saml_idp.cer' + RealMeService::ENV_MTS => array( + RealMeService::TYPE_LOGIN => 'mts_login_saml_idp.cer', + RealMeService::TYPE_ASSERT => 'mts_assert_saml_idp.cer' ), // As of the 2021 Azure re-platforming, ITE certificates are the same - a single cert for both logon & assert - self::ENV_ITE => array( - self::TYPE_LOGIN => 'ite.signing.logon.realme.govt.nz.cer', - self::TYPE_ASSERT => 'ite.signing.logon.realme.govt.nz.cer' + RealMeService::ENV_ITE => array( + RealMeService::TYPE_LOGIN => 'ite.signing.logon.realme.govt.nz.cer', + RealMeService::TYPE_ASSERT => 'ite.signing.logon.realme.govt.nz.cer' ), // As of the 2021 Azure re-platforming, prod certificates are the same - a single cert for both logon & assert - self::ENV_PROD => array( - self::TYPE_LOGIN => 'signing.realme.govt.nz.cer', - self::TYPE_ASSERT => 'signing.realme.govt.nz.cer' + RealMeService::ENV_PROD => array( + RealMeService::TYPE_LOGIN => 'signing.realme.govt.nz.cer', + RealMeService::TYPE_ASSERT => 'signing.realme.govt.nz.cer' ) ); @@ -226,9 +230,9 @@ class RealMeService implements TemplateGlobalProvider * - urn:nzl:govt:ict:stds:authn:deployment:GLS:SAML:2.0:ac:classes:ModStrength::OTP:Token:SID */ private static $authn_contexts = array( - self::ENV_MTS => null, - self::ENV_ITE => null, - self::ENV_PROD => null + RealMeService::ENV_MTS => null, + RealMeService::ENV_ITE => null, + RealMeService::ENV_PROD => null ); /** @@ -238,10 +242,10 @@ class RealMeService implements TemplateGlobalProvider * A list of the valid authn context values supported for realme. */ private static $allowed_authn_context_list = array( - self::AUTHN_LOW_STRENGTH, - self::AUTHN_MOD_STRENTH, - self::AUTHN_MOD_MOBILE_SMS, - self::AUTHN_MOD_TOKEN_SID + RealMeService::AUTHN_LOW_STRENGTH, + RealMeService::AUTHN_MOD_STRENTH, + RealMeService::AUTHN_MOD_MOBILE_SMS, + RealMeService::AUTHN_MOD_TOKEN_SID ); /** @@ -249,9 +253,9 @@ class RealMeService implements TemplateGlobalProvider * @var array Domain names for metadata files. Used in @link RealMeSetupTask when outputting metadata XML */ private static $metadata_assertion_service_domains = array( - self::ENV_MTS => null, - self::ENV_ITE => null, - self::ENV_PROD => null + RealMeService::ENV_MTS => null, + RealMeService::ENV_ITE => null, + RealMeService::ENV_PROD => null ); /** @@ -260,16 +264,16 @@ class RealMeService implements TemplateGlobalProvider * translations (found in realme/lang/en.yml for example). */ private static $realme_error_message_overrides = array( - self::ERR_AUTHN_FAILED => null, - self::ERR_TIMEOUT => null, - self::ERR_INTERNAL_ERROR => null, - self::ERR_NO_AVAILABLE_IDP => null, - self::ERR_REQUEST_UNSUPPORTED => null, - self::ERR_NO_PASSIVE => null, - self::ERR_REQUEST_DENIED => null, - self::ERR_UNSUPPORTED_BINDING => null, - self::ERR_UNKNOWN_PRINCIPAL => null, - self::ERR_NO_AUTHN_CONTEXT => null + RealMeService::ERR_AUTHN_FAILED => null, + RealMeService::ERR_TIMEOUT => null, + RealMeService::ERR_INTERNAL_ERROR => null, + RealMeService::ERR_NO_AVAILABLE_IDP => null, + RealMeService::ERR_REQUEST_UNSUPPORTED => null, + RealMeService::ERR_NO_PASSIVE => null, + RealMeService::ERR_REQUEST_DENIED => null, + RealMeService::ERR_UNSUPPORTED_BINDING => null, + RealMeService::ERR_UNKNOWN_PRINCIPAL => null, + RealMeService::ERR_NO_AUTHN_CONTEXT => null ); /** @@ -357,7 +361,7 @@ public static function user_data() return static::$user_data; } - $request = self::getRequest(); + $request = RealMeService::getRequest(); if (!$request) { return null; @@ -393,7 +397,7 @@ public function getUserData() */ public static function current_realme_user() { - $user = self::user_data(); + $user = RealMeService::user_data(); if ($user && !$user->isValid()) { return null; } @@ -408,7 +412,7 @@ public static function current_realme_user() */ public static function currentRealMeUser() { - return self::current_realme_user(); + return RealMeService::current_realme_user(); } /** @@ -586,7 +590,7 @@ public function getAuthData() $federatedIdentity = $this->retrieveFederatedIdentity($auth); // We will have either a FLT or FIT, depending on integration type - if ($this->config()->integration_type == self::TYPE_ASSERT) { + if ($this->config()->integration_type == RealMeService::TYPE_ASSERT) { $userTag = $this->retrieveFederatedIdentityTag($auth); } else { $userTag = $this->retrieveFederatedLogonTag($auth); @@ -699,8 +703,8 @@ public function getCertDir($subdir = null) /** * Returns the appropriate AuthN Context, given the environment passed in. The AuthNContext may be different per - * environment, and should be one of the strings as defined in the static {@link self::$authn_contexts} at the top - * of this class. + * environment, and should be one of the strings as defined in the static + * {@link RealMeService::$authn_contexts} at the top of this class. * * @param string $env The environment to return the AuthNContext for. Must be one of the RealMe environment names * @return string|null Returns the AuthNContext for the given $env, or null if no context exists @@ -907,7 +911,7 @@ public function getAuth(HTTPRequest $request = null) } if (!$request) { - $request = self::getRequest(); + $request = RealMeService::getRequest(); if (!$request) { throw new RealMeException('A request must be provided for session access'); } @@ -980,11 +984,11 @@ public function getAuth(HTTPRequest $request = null) public function getNameIdFormat() { switch ($this->config()->integration_type) { - case self::TYPE_ASSERT: + case RealMeService::TYPE_ASSERT: return 'urn:oasis:names:tc:SAML:2.0:nameid-format:transient'; break; - case self::TYPE_LOGIN: + case RealMeService::TYPE_LOGIN: default: return 'urn:oasis:names:tc:SAML:2.0:nameid-format:persistent'; break; @@ -1036,7 +1040,7 @@ private function getConfigurationVarByEnv($cfgName, $env, $integrationType = nul /** * @param string $certName The certificate name, either 'SIGNING' or 'MUTUAL' * @return string|null Either the full path to the certificate file, or null if it doesn't exist - * @see self::getSigningCertPath() + * @see RealMeService::getSigningCertPath() */ private function getCertPath($certName) { @@ -1163,62 +1167,65 @@ private function findErrorMessageForCode($errorCode) $messageOverrides = $this->config()->realme_error_message_overrides; switch ($errorCode) { - case self::ERR_AUTHN_FAILED: - $message = _t(self::class . '.ERROR_AUTHNFAILED', 'You have chosen to leave RealMe.'); + case RealMeService::ERR_AUTHN_FAILED: + $message = _t(RealMeService::class . '.ERROR_AUTHNFAILED', 'You have chosen to leave RealMe.'); break; - case self::ERR_TIMEOUT: - $message = _t(self::class . '.ERROR_TIMEOUT', 'Your RealMe session has timed out – please try again.'); + case RealMeService::ERR_TIMEOUT: + $message = _t( + RealMeService::class . '.ERROR_TIMEOUT', + 'Your RealMe session has timed out – please try again.' + ); break; - case self::ERR_INTERNAL_ERROR: + case RealMeService::ERR_INTERNAL_ERROR: $message = _t( - self::class . '.ERROR_INTERNAL', + RealMeService::class . '.ERROR_INTERNAL', 'RealMe was unable to process your request due to a RealMe internal error. Please try again. ' . 'If the problem persists, please contact the RealMe Help Desk. From New Zealand dial ' . '0800 664 774 (toll free), from overseas dial +64 4 462 0674 (overseas call charges apply).' ); break; - case self::ERR_NO_AVAILABLE_IDP: + case RealMeService::ERR_NO_AVAILABLE_IDP: $message = _t( - self::class . '.ERROR_NOAVAILABLEIDP', + RealMeService::class . '.ERROR_NOAVAILABLEIDP', 'RealMe reported that the TXT service or the token service is not available. You may try again ' . 'later. If the problem persists, please contact the RealMe Help Desk. From New Zealand dial ' . '0800 664 774 (toll free), from overseas dial +64 4 462 0674 (overseas call charges apply).' ); break; - case self::ERR_REQUEST_UNSUPPORTED: + case RealMeService::ERR_REQUEST_UNSUPPORTED: $message = _t( - self::class . '.ERROR_REQUESTUNSUPPORTED', + RealMeService::class . '.ERROR_REQUESTUNSUPPORTED', 'RealMe reported a serious application error with the message \'Request Unsupported\'. Please try' . ' again later. If the problem persists, please contact the RealMe Help Desk. From New Zealand' . ': 0800 664 774 (toll free), from overseas dial +64 4 462 0674 (overseas call charges apply).' ); break; - case self::ERR_NO_PASSIVE: + case RealMeService::ERR_NO_PASSIVE: $message = _t( - self::class . '.ERROR_NOPASSIVE', + RealMeService::class . '.ERROR_NOPASSIVE', 'RealMe reported a serious application error with the message \'No Passive\'. Please try again ' . 'later. If the problem persists, please contact the RealMe Help Desk. From New Zealand: 0800 ' . '664 774 (toll free), from overseas dial +64 4 462 0674 (overseas call charges apply).' ); break; - case self::ERR_REQUEST_DENIED: + case RealMeService::ERR_REQUEST_DENIED: $message = _t( - self::class . '.ERROR_REQUESTDENIED', + RealMeService::class . '.ERROR_REQUESTDENIED', 'RealMe reported a serious application error with the message \'Request Denied\'. Please try ' . 'again later. If the problem persists, please contact the RealMe Help Desk. From New Zealand:' . ' 0800 664 774 (toll free), from overseas dial +64 4 462 0674 (overseas call charges apply).' ); break; - case self::ERR_UNSUPPORTED_BINDING: + case RealMeService::ERR_UNSUPPORTED_BINDING: $message = _t( - self::class . '.ERROR_UNSUPPORTEDBINDING', + RealMeService::class . '.ERROR_UNSUPPORTEDBINDING', 'RealMe reported a serious application error with the message \'Unsupported Binding\'. Please ' . 'try again later. If the problem persists, please contact the RealMe Help Desk. From New ' . 'Zealand: 0800 664 774 (toll free), from overseas dial +64 4 462 0674 (overseas call charges ' . @@ -1226,17 +1233,17 @@ private function findErrorMessageForCode($errorCode) ); break; - case self::ERR_UNKNOWN_PRINCIPAL: + case RealMeService::ERR_UNKNOWN_PRINCIPAL: $message = _t( - self::class . '.ERROR_UNKNOWNPRINCIPAL', + RealMeService::class . '.ERROR_UNKNOWNPRINCIPAL', 'You are unable to use RealMe to verify your identity if you do not have a RealMe account. ' . 'Visit the RealMe home page for more information and to create an account.' ); break; - case self::ERR_NO_AUTHN_CONTEXT: + case RealMeService::ERR_NO_AUTHN_CONTEXT: $message = _t( - self::class . '.ERROR_NOAUTHNCONTEXT', + RealMeService::class . '.ERROR_NOAUTHNCONTEXT', 'RealMe reported a serious application error with the message \'No AuthN Context\'. Please try ' . 'again later. If the problem persists, please contact the RealMe Help Desk. From New Zealand:' . ' 0800 664 774 (toll free), from overseas dial +64 4 462 0674 (overseas call charges apply).' @@ -1245,7 +1252,7 @@ private function findErrorMessageForCode($errorCode) default: $message = _t( - self::class . '.ERROR_GENERAL', + RealMeService::class . '.ERROR_GENERAL', 'RealMe reported a serious application error. Please try again later. If the problem persists, ' . 'please contact the RealMe Help Desk. From New Zealand: 0800 664 774 (toll free), from ' . 'overseas dial +64 4 462 0674 (overseas call charges apply).' diff --git a/src/Task/RealMeSetupTask.php b/src/Task/RealMeSetupTask.php index 355f9d3..7897da5 100644 --- a/src/Task/RealMeSetupTask.php +++ b/src/Task/RealMeSetupTask.php @@ -58,7 +58,7 @@ public function run($request) // Ensure we are running on the command-line, and not running in a browser if (false === Director::is_cli()) { throw new Exception(_t( - self::class . '.ERR_NOT_CLI', + RealMeSetupTask::class . '.ERR_NOT_CLI', 'This task can only be run from the command-line, not in your browser.' )); } @@ -72,7 +72,7 @@ public function run($request) $this->outputMetadataXmlContent($forEnv); $this->message(PHP_EOL . _t( - self::class . '.BUILD_FINISH', + RealMeSetupTask::class . '.BUILD_FINISH', 'RealMe setup complete. Please copy the XML into a file for upload to the {env} environment or DIA ' . 'to complete the integration', array('env' => $forEnv) @@ -126,7 +126,7 @@ private function validateInputs($forEnv) $errorList = PHP_EOL . ' - ' . join(PHP_EOL . ' - ', $this->errors); throw new Exception(_t( - self::class . '.ERR_VALIDATION', + RealMeSetupTask::class . '.ERR_VALIDATION', 'There were {numissues} issue(s) found during validation that must be fixed prior to setup: {issues}', array( 'numissues' => sizeof($this->errors ?? []), @@ -136,7 +136,7 @@ private function validateInputs($forEnv) } $this->message(_t( - self::class . '.VALIDATION_SUCCESS', + RealMeSetupTask::class . '.VALIDATION_SUCCESS', 'Validation succeeded, continuing with setup...' )); } @@ -150,7 +150,7 @@ private function outputMetadataXmlContent($forEnv) { // Output metadata XML so that it can be sent to RealMe via the agency $this->message(_t( - self::class . '.OUPUT_PREFIX', + RealMeSetupTask::class . '.OUPUT_PREFIX', 'Metadata XML is listed below for the \'{env}\' RealMe environment, this should be sent to the agency so ' . 'they can pass it on to RealMe Operations staff', ['env' => $forEnv] @@ -259,7 +259,7 @@ private function validateEntityID($forEnv) if (is_null($entityId)) { $this->errors[] = _t( - self::class . '.ERR_CONFIG_NO_ENTITYID', + RealMeSetupTask::class . '.ERR_CONFIG_NO_ENTITYID', 'No entityID specified for environment \'{env}\'. Specify this in your YML configuration, see the ' . 'module documentation for more details', array('env' => $forEnv) @@ -270,7 +270,7 @@ private function validateEntityID($forEnv) $entityId = filter_var($entityId, FILTER_VALIDATE_URL); if ($entityId === false) { $this->errors[] = _t( - self::class . '.ERR_CONFIG_ENTITYID', + RealMeSetupTask::class . '.ERR_CONFIG_ENTITYID', 'The Entity ID (\'{entityId}\') must be https, not be \'localhost\', and must contain a valid ' . 'service name and privacy realm e.g. https://my-realme-integration.govt.nz/p-realm/s-name', array( @@ -286,7 +286,7 @@ private function validateEntityID($forEnv) $urlParts = parse_url($entityId ?? ''); if ($urlParts['host'] === 'localhost' || $urlParts['scheme'] === 'http') { $this->errors[] = _t( - self::class . '.ERR_CONFIG_ENTITYID', + RealMeSetupTask::class . '.ERR_CONFIG_ENTITYID', 'The Entity ID (\'{entityId}\') must be https, not be \'localhost\', and must contain a valid ' . 'service name and privacy realm e.g. https://my-realme-integration.govt.nz/p-realm/s-name', array( @@ -307,7 +307,7 @@ private function validateEntityID($forEnv) $serviceName = array_pop($urlParts); if (mb_strlen($serviceName ?? '') > 20 || 0 === mb_strlen($serviceName ?? '')) { $this->errors[] = _t( - self::class . '.ERR_CONFIG_ENTITYID_SERVICE_NAME', + RealMeSetupTask::class . '.ERR_CONFIG_ENTITYID_SERVICE_NAME', 'The service name \'{serviceName}\' must be a maximum of 20 characters and not blank for entityID ' . '\'{entityId}\'', array( @@ -321,7 +321,7 @@ private function validateEntityID($forEnv) $privacyRealm = array_pop($urlParts); if (null === $privacyRealm || 0 === mb_strlen($privacyRealm ?? '')) { $this->errors[] = _t( - self::class . '.ERR_CONFIG_ENTITYID_PRIVACY_REALM', + RealMeSetupTask::class . '.ERR_CONFIG_ENTITYID_PRIVACY_REALM', 'The privacy realm \'{privacyRealm}\' must not be blank for entityID \'{entityId}\'', array( 'privacyRealm' => $privacyRealm, @@ -342,7 +342,7 @@ private function validateAuthNContext() $context = $this->service->getAuthnContextForEnvironment($env); if (is_null($context)) { $this->errors[] = _t( - self::class . '.ERR_CONFIG_NO_AUTHNCONTEXT', + RealMeSetupTask::class . '.ERR_CONFIG_NO_AUTHNCONTEXT', 'No AuthnContext specified for environment \'{env}\'. Specify this in your YML configuration, ' . 'see the module documentation for more details', array('env' => $env) @@ -351,7 +351,7 @@ private function validateAuthNContext() if (!in_array($context, $this->service->getAllowedAuthNContextList() ?? [])) { $this->errors[] = _t( - self::class . '.ERR_CONFIG_INVALID_AUTHNCONTEXT', + RealMeSetupTask::class . '.ERR_CONFIG_INVALID_AUTHNCONTEXT', 'The AuthnContext specified for environment \'{env}\' is invalid, please check your configuration', array('env' => $env) ); @@ -369,7 +369,7 @@ private function validateRealMeEnvironments($forEnv) $allowedEnvs = $this->service->getAllowedRealMeEnvironments(); if (0 === mb_strlen($forEnv ?? '')) { $this->errors[] = _t( - self::class . '.ERR_ENV_NOT_SPECIFIED', + RealMeSetupTask::class . '.ERR_ENV_NOT_SPECIFIED', 'The RealMe environment was not specified on the cli It must be one of: {allowedEnvs} ' . 'e.g. vendor/bin/sake dev/tasks/RealMeSetupTask forEnv=mts', array( @@ -381,7 +381,7 @@ private function validateRealMeEnvironments($forEnv) if (false === in_array($forEnv, $allowedEnvs ?? [])) { $this->errors[] = _t( - self::class . '.ERR_ENV_NOT_ALLOWED', + RealMeSetupTask::class . '.ERR_ENV_NOT_ALLOWED', 'The RealMe environment specified on the cli (\'{env}\') is not allowed. ' . 'It must be one of: {allowedEnvs}', array( @@ -399,12 +399,12 @@ private function validateDirectoryStructure() { if (is_null($this->service->getCertDir())) { $this->errors[] = _t( - self::class . '.ERR_CERT_DIR_MISSING', + RealMeSetupTask::class . '.ERR_CERT_DIR_MISSING', 'No certificate dir is specified. Define the REALME_CERT_DIR environment variable in your .env file' ); } elseif (!$this->isReadable($this->service->getCertDir())) { $this->errors[] = _t( - self::class . '.ERR_CERT_DIR_NOT_READABLE', + RealMeSetupTask::class . '.ERR_CERT_DIR_NOT_READABLE', 'Certificate dir specified (\'{dir}\') must be created and be readable. Ensure permissions are set ' . 'correctly and the directory is absolute', array('dir' => $this->service->getCertDir()) @@ -419,7 +419,7 @@ private function validateMetadata() { if (is_null($this->service->getMetadataOrganisationName())) { $this->errors[] = _t( - self::class . '.ERR_CONFIG_NO_ORGANISATION_NAME', + RealMeSetupTask::class . '.ERR_CONFIG_NO_ORGANISATION_NAME', 'No organisation name is specified in YML configuration. Ensure the \'metadata_organisation_name\' ' . 'value is defined in your YML configuration' ); @@ -427,7 +427,7 @@ private function validateMetadata() if (is_null($this->service->getMetadataOrganisationDisplayName())) { $this->errors[] = _t( - self::class . '.ERR_CONFIG_NO_ORGANISATION_DISPLAY_NAME', + RealMeSetupTask::class . '.ERR_CONFIG_NO_ORGANISATION_DISPLAY_NAME', 'No organisation display name is specified in YML configuration. Ensure the ' . '\'metadata_organisation_display_name\' value is defined in your YML configuration' ); @@ -435,7 +435,7 @@ private function validateMetadata() if (is_null($this->service->getMetadataOrganisationUrl())) { $this->errors[] = _t( - self::class . '.ERR_CONFIG_NO_ORGANISATION_URL', + RealMeSetupTask::class . '.ERR_CONFIG_NO_ORGANISATION_URL', 'No organisation URL is specified in YML configuration. Ensure the \'metadata_organisation_url\' ' . 'value is defined in your YML configuration' ); @@ -444,7 +444,7 @@ private function validateMetadata() $contact = $this->service->getMetadataContactSupport(); if (is_null($contact['company']) || is_null($contact['firstNames']) || is_null($contact['surname'])) { $this->errors[] = _t( - self::class . '.ERR_CONFIG_NO_SUPPORT_CONTACT', + RealMeSetupTask::class . '.ERR_CONFIG_NO_SUPPORT_CONTACT', 'Support contact detail is missing from YML configuration. Ensure the following values are defined ' . 'in the YML configuration: metadata_contact_support_company, metadata_contact_support_firstnames,' . ' metadata_contact_support_surname' @@ -460,7 +460,7 @@ private function validateCertificates() $signingCertFile = $this->service->getSigningCertPath(); if (is_null($signingCertFile) || !$this->isReadable($signingCertFile)) { $this->errors[] = _t( - self::class . '.ERR_CERT_NO_SIGNING_CERT', + RealMeSetupTask::class . '.ERR_CERT_NO_SIGNING_CERT', 'No SAML signing PEM certificate defined, or the file can\'t be read. Define the {const} environment ' . 'variable in your .env file, and ensure the file exists in the certificate directory', array( @@ -470,7 +470,7 @@ private function validateCertificates() } elseif (is_null($this->service->getSPCertContent())) { // Signing cert exists, but doesn't include BEGIN/END CERTIFICATE lines, or doesn't contain the cert $this->errors[] = _t( - self::class . '.ERR_CERT_SIGNING_CERT_CONTENT', + RealMeSetupTask::class . '.ERR_CERT_SIGNING_CERT_CONTENT', 'The file specified for the signing certificate ({file}) does not contain a valid certificate ' . '(beginning with -----BEGIN CERTIFICATE-----). Check this file to ensure it contains the ' . 'certificate and private key', diff --git a/tests/RealMeServiceTest.php b/tests/RealMeServiceTest.php index ed8232b..f2212cf 100644 --- a/tests/RealMeServiceTest.php +++ b/tests/RealMeServiceTest.php @@ -22,7 +22,7 @@ class RealMeServiceTest extends SapphireTest public function testGetCertificateContents() { - self::$pathForTempCertificate = TempFolder::getTempFolder(BASE_PATH) . '/tmpcert.pem'; + RealMeServiceTest::$pathForTempCertificate = TempFolder::getTempFolder(BASE_PATH) . '/tmpcert.pem'; /** * Test standard certificate @@ -33,7 +33,7 @@ public function testGetCertificateContents() // Strip carriage returns $contents = str_replace("\r", '', $contents ?? ''); - $path = self::$pathForTempCertificate; + $path = RealMeServiceTest::$pathForTempCertificate; file_put_contents($path ?? '', $contents); /** @var RealMeService $service */ @@ -53,7 +53,7 @@ public function testGetCertificateContents() // Strip carriage returns $contents = str_replace("\r", '', $contents ?? ''); - $path = self::$pathForTempCertificate; + $path = RealMeServiceTest::$pathForTempCertificate; file_put_contents($path ?? '', $contents); /** @var RealMeService $service */ @@ -160,9 +160,10 @@ public static function tearDownAfterClass(): void { parent::tearDownAfterClass(); - // Ensure self::$pathForTempCertificate is unlink'd (otherwise it won't get unlinked if the test fails) - if (file_exists(self::$pathForTempCertificate)) { - unlink(self::$pathForTempCertificate); + // Ensure RealMeServiceTest::$pathForTempCertificate is unlink'd + // (otherwise it won't get unlinked if the test fails) + if (file_exists(RealMeServiceTest::$pathForTempCertificate)) { + unlink(RealMeServiceTest::$pathForTempCertificate); } } } diff --git a/tests/RealMeSetupTaskTest.php b/tests/RealMeSetupTaskTest.php index 9cfd39c..6c1819c 100644 --- a/tests/RealMeSetupTaskTest.php +++ b/tests/RealMeSetupTaskTest.php @@ -121,7 +121,7 @@ public function testValidateEntityID() // Test valid entityIds just in case they're different in this configuration. $config = Config::inst(); - $config->merge(RealMeService::class, 'sp_entity_ids', self::$validEntityIDs); + $config->merge(RealMeService::class, 'sp_entity_ids', RealMeSetupTaskTest::$validEntityIDs); // validate our list of valid entity IDs; $validateEntityId = new ReflectionMethod($realMeSetupTask, 'validateEntityID'); @@ -132,7 +132,7 @@ public function testValidateEntityID() $this->assertCount(0, $errors->getValue($realMeSetupTask)); // TEST entityId missing. - $entityIdList = self::$validEntityIDs; + $entityIdList = RealMeSetupTaskTest::$validEntityIDs; $entityIdList[RealMeService::ENV_MTS] = 'destroy-humans-with-incorrect-entity-ids'; $config->merge(RealMeService::class, 'sp_entity_ids', $entityIdList); $validateEntityId->invoke($realMeSetupTask, 'mts'); @@ -143,7 +143,7 @@ public function testValidateEntityID() $this->assertCount(0, $errors->getValue($realMeSetupTask)); // TEST entityId localhost. - $entityIdList = self::$validEntityIDs; + $entityIdList = RealMeSetupTaskTest::$validEntityIDs; $entityIdList[RealMeService::ENV_MTS] = 'https://localhost/'; $config->merge(RealMeService::class, 'sp_entity_ids', $entityIdList); $validateEntityId->invoke($realMeSetupTask, 'mts'); @@ -153,7 +153,7 @@ public function testValidateEntityID() $this->assertCount(0, $errors->getValue($realMeSetupTask)); // TEST entityId not http - $entityIdList = self::$validEntityIDs; + $entityIdList = RealMeSetupTaskTest::$validEntityIDs; $entityIdList[RealMeService::ENV_MTS] = 'http://dev.realme-integration.govt.nz/p-realm/s-name'; $config->merge(RealMeService::class, 'sp_entity_ids', $entityIdList); $validateEntityId->invoke($realMeSetupTask, 'mts'); @@ -163,7 +163,7 @@ public function testValidateEntityID() $this->assertCount(0, $errors->getValue($realMeSetupTask)); // TEST privacy realm /service name missing - $entityIdList = self::$validEntityIDs; + $entityIdList = RealMeSetupTaskTest::$validEntityIDs; $entityIdList[RealMeService::ENV_MTS] = 'https://dev.realme-integration.govt.nz/'; $config->merge(RealMeService::class, 'sp_entity_ids', $entityIdList); $validateEntityId->invoke($realMeSetupTask, 'mts'); @@ -178,7 +178,7 @@ public function testValidateEntityID() // TEST privacy realm // "https://www.domain.govt.nz//" - $entityIdList = self::$validEntityIDs; + $entityIdList = RealMeSetupTaskTest::$validEntityIDs; $entityIdList[RealMeService::ENV_MTS] = 'https://dev.realme-integration.govt.nz/s-name/privacy-realm-is-too-big'; $config->merge(RealMeService::class, 'sp_entity_ids', $entityIdList); @@ -193,7 +193,7 @@ public function testValidateEntityID() $this->assertCount(0, $errors->getValue($realMeSetupTask)); // "https://www.domain.govt.nz//" - $entityIdList = self::$validEntityIDs; + $entityIdList = RealMeSetupTaskTest::$validEntityIDs; $entityIdList[RealMeService::ENV_MTS] = 'https://dev.realme-integration.govt.nz/s-name'; $config->merge(RealMeService::class, 'sp_entity_ids', $entityIdList); $validateEntityId->invoke($realMeSetupTask, 'mts'); @@ -229,7 +229,7 @@ public function testValidateAuthNContext() // Test valid authnContexts just in case they're different in this configuration. $config = Config::inst(); - $config->merge(RealMeService::class, 'authn_contexts', self::$authnEnvContexts); + $config->merge(RealMeService::class, 'authn_contexts', RealMeSetupTaskTest::$authnEnvContexts); // validate our list of valid entity IDs; $validateAuthNContext = new ReflectionMethod($realMeSetupTask, 'validateAuthNContext'); @@ -237,7 +237,7 @@ public function testValidateAuthNContext() $validateAuthNContext->invoke($realMeSetupTask); $this->assertCount(0, $errors->getValue($realMeSetupTask)); - $invalidAuthNContextList = self::$authnEnvContexts; + $invalidAuthNContextList = RealMeSetupTaskTest::$authnEnvContexts; $invalidAuthNContextList[RealMeService::ENV_MTS] = 'im-an-invalid-context'; $config->merge(RealMeService::class, 'authn_contexts', $invalidAuthNContextList); From bf5ee1c7a094c289f92f7be7f5b11952b12ab457 Mon Sep 17 00:00:00 2001 From: Guy Sartorelli <36352093+GuySartorelli@users.noreply.github.com> Date: Wed, 12 Jun 2024 11:43:24 +1200 Subject: [PATCH 2/3] MNT Fix scss lint warnings (#145) --- client/dist/styles/realme.css | 2 +- client/src/styles/_base.scss | 17 +- client/src/styles/_buttons.scss | 5 +- client/src/styles/_components.scss | 5 +- client/src/styles/_icons.scss | 3 +- client/src/styles/_popup.scss | 66 +- client/src/styles/_typography.scss | 18 +- client/src/styles/_variables.scss | 5 +- package.json | 4 +- yarn.lock | 1290 ++++++++++------------------ 10 files changed, 521 insertions(+), 894 deletions(-) diff --git a/client/dist/styles/realme.css b/client/dist/styles/realme.css index 9c392e9..8bdf5e7 100644 --- a/client/dist/styles/realme.css +++ b/client/dist/styles/realme.css @@ -1 +1 @@ -.realme_widget,.realme_button,.realme_popup_position,.realme_login,.realme_create_account,.realme_link,.realme_popup,.realme_find_out_more{position:relative}.realme_login_lockup img,.realme_arrow_top_left .arrow,.realme_arrow_top_right .arrow,.realme_popup_wrapper,.realme_arrow_side_left .arrow,.realme_arrow_side_right .arrow,.realme_icon_find_out_more,.realme_icon_link{position:absolute}.realme_login_lockup form img{border:0;margin:0;padding:0;background:rgba(0,0,0,0)}.realme_widget,.realme_secondary_login,.realme_login_lockup,.realme_popup{*zoom:1}.realme_widget:before,.realme_secondary_login:before,.realme_login_lockup:before,.realme_popup:before,.realme_widget:after,.realme_secondary_login:after,.realme_login_lockup:after,.realme_popup:after{content:" ";display:table}.realme_widget:after,.realme_secondary_login:after,.realme_login_lockup:after,.realme_popup:after{clear:both}.realme_title,.realme_mini_title,.realme_button{font-weight:bold}.realme_secondary_login,.realme_secondary_login .realme_popup_position,.realme_login,.realme_create_account,.realme_link,.realme_icon_new_window,.realme_text_icon_new_window{display:inline-block;vertical-align:bottom}.realme_button,.realme_button_padding,.realme_icon_find_out_more,.realme_icon_link{display:block}.realme_icon_find_out_more,.realme_icon_link,.realme_icon_new_window,.realme_text_icon_new_window{background-color:rgba(0,0,0,0);background-repeat:no-repeat;background-position:0 0}.realme_secondary_login,.realme_secondary_login .realme_popup_position,.realme_login,.realme_create_account,.realme_link,.realme_find_out_more,.realme_icon_new_window,.realme_text_icon_new_window{*display:inline;*zoom:1}.realme_primary_login,.realme_alternative_login,.realme_assert{border-width:1px;border-style:solid}.realme_icon_new_window{_overflow:hidden}.realme_primary_login,.realme_alternative_login,.realme_assert{_width:320px}.realme_widget{background-color:#fff;color:#000;padding:.76923em 1.07692em;font-family:sans-serif;font-size:13px;line-height:1.53846}.realme_widget p{margin-top:.5em;margin-bottom:1em;font-family:sans-serif}.realme_widget a{text-decoration:none;font-family:sans-serif}.realme_widget .realme_login,.realme_widget .realme_create_account,.realme_widget .realme_link{color:#d64309}.realme_widget .realme_login:hover,.realme_widget .realme_create_account:hover,.realme_widget .realme_link:hover,.realme_widget .realme_login:active,.realme_widget .realme_create_account:active,.realme_widget .realme_link:active{text-decoration:underline;border:0}.realme_title{margin-top:0;margin-bottom:0;font-size:2.3125rem;font-family:inter,sans-serif;font-weight:300;line-height:1.46;color:#ff2c00}.realme_title_brand{font-weight:800}.realme_mini_title{font-size:1.076923077em}.realme_primary_login{max-width:28em;min-width:16.30769em;padding:1.38462em}.realme_primary_login p{font-size:14px}.realme_primary_login .realme_create_account{float:right}.realme_alternative_login{max-width:18em;min-width:10.30769em}.realme_alternative_login .realme_title{font-size:1.076923077em;margin-bottom:.5em}.realme_assert .whats_realme,.realme_assert .realme_create_account,.realme_primary_login .whats_realme,.realme_primary_login .realme_create_account,.realme_alternative_login .whats_realme,.realme_alternative_login .realme_create_account{margin-top:.5em}.realme_assert{max-width:28em}.realme_secondary_login{padding-right:2.76923em;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI3LjUuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgogICAgdmlld0JveD0iMTAyLjMwMDAwMzA1MTc1NzgxIDEwMi41ODkyNDg2NTcyMjY1NiAxMzggMTUyLjIxMDc1NDM5NDUzMTI1IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAzNDMgMzU4OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cgkuc3Qwe2ZpbGw6I0Q2NDMwOTt9Cjwvc3R5bGU+CjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xNzEuMywxMDIuNmMwLDAtNjktMi4xLTY5LDUyLjRjMCw1NC41LDMyLjgsOTkuOCw2OSw5OS44YzM2LjIsMCw2OS00NS40LDY5LTk5LjgKICAgIEMyNDAuMywxMDAuNSwxNzEuMywxMDIuNiwxNzEuMywxMDIuNnogTTE1NC42LDE3MS4xYy0xLjcsMy43LTUuMSw1LjYtOS45LDUuNmMtNC45LDAtOC4zLTEuOS05LjktNS42Yy0wLjctMS41LTEtMy4yLTEtNS40CiAgICBjMC0yLjMsMC4zLTMuOSwxLTUuNWMxLjctMy43LDUtNS41LDkuOS01LjVjNC44LDAsOC4yLDEuOCw5LjksNS41YzAuNywxLjYsMSwzLjIsMSw1LjVDMTU1LjYsMTY3LjksMTU1LjMsMTY5LjYsMTU0LjYsMTcxLjF6CiAgICBNMjE0LjEsMTUyLjFjLTQuMy0wLjYtMTcuMS0wLjctMjMuOSw1LjNjLTMuNCwzLTUuMSw3LjQtNS4xLDEzLjN2NDAuMmgtMTUuNHYtNDAuMmMwLTEwLjQsMy42LTE5LDEwLjQtMjQuOQogICAgYzEzLjMtMTEuNiwzMy43LTkuMiwzNi04LjlMMjE0LjEsMTUyLjF6Ii8+Cjwvc3ZnPgo=);background-repeat:no-repeat;background-position:right center}.realme_secondary_login .realme_login,.realme_secondary_login .realme_link,.realme_secondary_login .realme_create_account{padding-right:1.75em;padding-top:0}.realme_secondary_login .realme_pipe{border-right:solid 1px;padding-left:.5em}.realme_secondary_login .realme_pipe:first-child{padding-left:0}.realme_secondary_login .whats_realme{font-weight:bold;padding-right:.3em;padding-left:.3em;*padding-left:.5em;padding-top:0}.realme_secondary_login .realme_link{margin-right:.75em}.realme_secondary_login .realme_icon_link{right:.615384615em}.realme_button{cursor:pointer;line-height:1;margin-top:1px;color:#fff;background-color:#d64309;border-radius:1rem;border:none;-webkit-appearance:none;-webkit-border-image:none;font-size:1.107692308rem;line-height:1.2em;width:100%;text-align:left;padding:0}.realme_button_padding{display:flex;align-items:center;padding:1em 1.25em}.realme_button_login-icon{display:inline-block;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI3LjUuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgogICAgdmlld0JveD0iMTAyLjMwMDAwMzA1MTc1NzgxIDEwMi41ODkyNDg2NTcyMjY1NiAxMzggMTUyLjIxMDc1NDM5NDUzMTI1IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAzNDMgMzU4OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cgkuc3Qwe2ZpbGw6I0ZGRkZGRjt9Cjwvc3R5bGU+CjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xNzEuMywxMDIuNmMwLDAtNjktMi4xLTY5LDUyLjRjMCw1NC41LDMyLjgsOTkuOCw2OSw5OS44YzM2LjIsMCw2OS00NS40LDY5LTk5LjgKICAgIEMyNDAuMywxMDAuNSwxNzEuMywxMDIuNiwxNzEuMywxMDIuNnogTTE1NC42LDE3MS4xYy0xLjcsMy43LTUuMSw1LjYtOS45LDUuNmMtNC45LDAtOC4zLTEuOS05LjktNS42Yy0wLjctMS41LTEtMy4yLTEtNS40CiAgICBjMC0yLjMsMC4zLTMuOSwxLTUuNWMxLjctMy43LDUtNS41LDkuOS01LjVjNC44LDAsOC4yLDEuOCw5LjksNS41YzAuNywxLjYsMSwzLjIsMSw1LjVDMTU1LjYsMTY3LjksMTU1LjMsMTY5LjYsMTU0LjYsMTcxLjF6CiAgICBNMjE0LjEsMTUyLjFjLTQuMy0wLjYtMTcuMS0wLjctMjMuOSw1LjNjLTMuNCwzLTUuMSw3LjQtNS4xLDEzLjN2NDAuMmgtMTUuNHYtNDAuMmMwLTEwLjQsMy42LTE5LDEwLjQtMjQuOQogICAgYzEzLjMtMTEuNiwzMy43LTkuMiwzNi04LjlMMjE0LjEsMTUyLjF6Ii8+Cjwvc3ZnPgo=);background-repeat:no-repeat;margin-right:.5em;height:2em;width:2em}.realme_hr{margin:0;border:0;padding:.1em 0 .38462em;border-bottom:1px solid #ddd;height:1px}.realme_login_lockup{margin-bottom:1em;_position:relative}.realme_login_lockup form{width:100%}.realme_login,.realme_create_account,.realme_link{padding-right:1.2em}.realme_link{text-decoration:none}.realme_arrow_top_left,.realme_arrow_top_right,.realme_arrow_side_left,.realme_arrow_side_right{padding-top:1.2em}.realme_arrow_top_left .arrow,.realme_arrow_top_right .arrow{width:0;height:0;border-style:solid;border-color:rgba(0,0,0,0);border-width:11px;display:block;border-bottom-color:#d0d0d0;left:-1px;top:-22px}.ie6 .realme_arrow_top_left .arrow,.realme_arrow_top_left .ie6 .arrow,.ie6 .realme_arrow_top_right .arrow,.realme_arrow_top_right .ie6 .arrow{border-right-color:pink;border-left-color:pink;border-top-color:pink;border-top-width:0}.ie6 .realme_arrow_top_left .arrow,.realme_arrow_top_left .ie6 .arrow,.ie6 .realme_arrow_top_right .arrow,.realme_arrow_top_right .ie6 .arrow{filter:chroma(color=pink);font-size:0;line-height:0}.realme_arrow_top_left .arrow .front,.realme_arrow_top_right .arrow .front{width:0;height:0;border-style:solid;border-color:rgba(0,0,0,0);border-width:10px;display:block;border-bottom-color:#fff;position:absolute;left:-10px;bottom:-11px}.ie6 .realme_arrow_top_left .arrow .front,.realme_arrow_top_left .ie6 .arrow .front,.ie6 .realme_arrow_top_right .arrow .front,.realme_arrow_top_right .ie6 .arrow .front{border-right-color:pink;border-left-color:pink;border-top-color:pink;border-top-width:0}.ie6 .realme_arrow_top_left .arrow .front,.realme_arrow_top_left .ie6 .arrow .front,.ie6 .realme_arrow_top_right .arrow .front,.realme_arrow_top_right .ie6 .arrow .front{filter:chroma(color=pink);font-size:0;line-height:0}.ie6 .realme_arrow_top_left .arrow .front,.realme_arrow_top_left .ie6 .arrow .front,.ie6 .realme_arrow_top_right .arrow .front,.realme_arrow_top_right .ie6 .arrow .front{top:1px}.ie6 label.radio .realme_arrow_top_left .arrow .front,.realme_arrow_top_left .ie6 label.radio .arrow .front,.ie6 label.radio .realme_arrow_top_right .arrow .front,.realme_arrow_top_right .ie6 label.radio .arrow .front{display:none}.ie6 label.radio .realme_arrow_top_left .arrow,.realme_arrow_top_left .ie6 label.radio .arrow,.ie6 label.radio .realme_arrow_top_right .arrow,.realme_arrow_top_right .ie6 label.radio .arrow{display:none}.realme_popup_wrapper{transition:opacity .3s;opacity:0;visibility:hidden;z-index:2;_display:none}.realme_arrow_top_left{top:1.6em;left:-1.7em}.realme_arrow_top_left .arrow{left:1.35em;right:auto}.realme_arrow_top_right{top:1.6em;right:-1.7em}.realme_arrow_top_right .arrow{left:auto;right:1.35em}.realme_arrow_side_left{top:-26em;left:calc(100% + 25px)}.realme_arrow_side_left .arrow{width:0;height:0;border-style:solid;border-color:rgba(0,0,0,0);border-width:11px;display:block;border-right-color:#d0d0d0;left:-1px;top:-22px;top:1.25em;left:-22px}.ie6 .realme_arrow_side_left .arrow{filter:chroma(color=pink);font-size:0;line-height:0}.realme_arrow_side_left .arrow .front{width:0;height:0;border-style:solid;border-color:rgba(0,0,0,0);border-width:10px;display:block;border-right-color:#fff;position:absolute;left:-9px;top:-10px}.ie6 .realme_arrow_side_left .arrow .front{filter:chroma(color=pink);font-size:0;line-height:0}.ie6 label.radio .realme_arrow_side_left .arrow{display:none}.realme_arrow_side_right{top:-1em;right:100%}.realme_arrow_side_right .arrow{width:0;height:0;border-style:solid;border-color:rgba(0,0,0,0);border-width:11px;display:block;border-left-color:#d0d0d0;left:-1px;top:-22px;top:1.25em;left:auto;right:-22px}.ie6 .realme_arrow_side_right .arrow{filter:chroma(color=pink);font-size:0;line-height:0}.realme_arrow_side_right .arrow .front{width:0;height:0;border-style:solid;border-color:rgba(0,0,0,0);border-width:10px;display:block;border-left-color:#fff;position:absolute;right:-9px;top:-10px}.ie6 .realme_arrow_side_right .arrow .front{filter:chroma(color=pink);font-size:0;line-height:0}.ie6 label.radio .realme_arrow_side_right .arrow{display:none}.realme_popup{padding:.5em 1.5em .5em;background-color:#fff;border:solid 1px #ddd;border-radius:3px}.realme_popup p,.realme_popup ul,.realme_popup strong,.realme_popup b{color:#333}.realme_popup p,.realme_popup ul,.realme_popup a{line-height:1.35em}.realme_popup ul{padding-left:1em;margin-bottom:1em}.realme_popup a,.realme_popup a:hover,.realme_popup a:active{color:#d64309}.realme_popup_title,.realme_popup h2{font-size:1.07692em;color:#e1001e;margin-bottom:.5em}.no_touch .whats_realme:hover+.realme_popup_wrapper,.no_touch .realme_popup_wrapper:hover{opacity:1 !important;visibility:visible !important}.realme_find_out_more{display:inline-block;padding-right:1em}.realme_icon_find_out_more{top:.35em;right:0;width:9px;height:9px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAMAAADXT/YiAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAZQTFRFEXenAAAA9qN1kgAAAAJ0Uk5T/wDltzBKAAAAJklEQVR42mJgBAEGEGBkRLBBPAZGqCADI5QF4UEUMuBiwbQDBBgACWwANEE3UAYAAAAASUVORK5CYII=)}.realme_icon_link{right:0;bottom:0;width:9px;height:100%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAMAAADXT/YiAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAZQTFRFEXenAAAA9qN1kgAAAAJ0Uk5T/wDltzBKAAAAJklEQVR42mJgBAEGEGBkRLBBPAZGqCADI5QF4UEUMuBiwbQDBBgACWwANEE3UAYAAAAASUVORK5CYII=);background-position:right center;_margin-bottom:2px}.realme_icon_new_window{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAMAAADXT/YiAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAZQTFRF////AAAAVcLTfgAAAAJ0Uk5T/wDltzBKAAAAJklEQVR42mJgBAEGEGBkRLBBPAZGqCADI5QF4UEUMuBiwbQDBBgACWwANEE3UAYAAAAASUVORK5CYII=);width:9px;height:9px;vertical-align:baseline;position:relative;*top:-0.2em}.realme_text_icon_new_window{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAMAAADXT/YiAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAZQTFRF////AAAAVcLTfgAAAAJ0Uk5T/wDltzBKAAAAJklEQVR42mJgBAEGEGBkRLBBPAZGqCADI5QF4UEUMuBiwbQDBBgACWwANEE3UAYAAAAASUVORK5CYII=);padding-right:1.2em;background-position:right center;*zoom:1;vertical-align:baseline} +.realme_widget,.realme_button,.realme_popup_position,.realme_login,.realme_create_account,.realme_link,.realme_popup,.realme_find_out_more{position:relative}.realme_login_lockup img,.realme_arrow_top_left .arrow,.realme_arrow_top_right .arrow,.realme_popup_wrapper,.realme_arrow_side_left .arrow,.realme_arrow_side_right .arrow,.realme_icon_find_out_more,.realme_icon_link{position:absolute}.realme_login_lockup form img{border:0;margin:0;padding:0;background:rgba(0,0,0,0)}.realme_widget,.realme_secondary_login,.realme_login_lockup,.realme_popup{*zoom:1}.realme_widget:before,.realme_secondary_login:before,.realme_login_lockup:before,.realme_popup:before,.realme_widget:after,.realme_secondary_login:after,.realme_login_lockup:after,.realme_popup:after{content:" ";display:table}.realme_widget:after,.realme_secondary_login:after,.realme_login_lockup:after,.realme_popup:after{clear:both}.realme_title,.realme_mini_title,.realme_button{font-weight:bold}.realme_secondary_login,.realme_secondary_login .realme_popup_position,.realme_login,.realme_create_account,.realme_link,.realme_icon_new_window,.realme_text_icon_new_window{display:inline-block;vertical-align:bottom}.realme_button,.realme_button_padding,.realme_icon_find_out_more,.realme_icon_link{display:block}.realme_icon_find_out_more,.realme_icon_link,.realme_icon_new_window,.realme_text_icon_new_window{background-color:rgba(0,0,0,0);background-repeat:no-repeat;background-position:0 0}.realme_secondary_login,.realme_secondary_login .realme_popup_position,.realme_login,.realme_create_account,.realme_link,.realme_find_out_more,.realme_icon_new_window,.realme_text_icon_new_window{*display:inline;*zoom:1}.realme_primary_login,.realme_alternative_login,.realme_assert{border-width:1px;border-style:solid}.realme_widget{background-color:#fff;color:#000;padding:.76923em 1.07692em;font-family:sans-serif;font-size:13px;line-height:1.53846}.realme_widget p{margin-top:.5em;margin-bottom:1em;font-family:sans-serif}.realme_widget a{text-decoration:none;font-family:sans-serif}.realme_widget .realme_login,.realme_widget .realme_create_account,.realme_widget .realme_link{color:#d64309}.realme_widget .realme_login:hover,.realme_widget .realme_create_account:hover,.realme_widget .realme_link:hover,.realme_widget .realme_login:active,.realme_widget .realme_create_account:active,.realme_widget .realme_link:active{text-decoration:underline;border:0}.realme_title{margin-top:0;margin-bottom:0;font-size:2.3125rem;font-family:"inter",sans-serif;font-weight:300;line-height:1.46;color:#ff2c00}.realme_title_brand{font-weight:800}.realme_mini_title{font-size:1.07692em}.realme_primary_login{max-width:28em;min-width:16.30769em;padding:1.38462em}.realme_primary_login p{font-size:14px}.realme_primary_login .realme_create_account{float:right}.realme_alternative_login{max-width:18em;min-width:10.30769em}.realme_alternative_login .realme_title{font-size:1.07692em;margin-bottom:.5em}.realme_assert .whats_realme,.realme_assert .realme_create_account,.realme_primary_login .whats_realme,.realme_primary_login .realme_create_account,.realme_alternative_login .whats_realme,.realme_alternative_login .realme_create_account{margin-top:.5em}.realme_assert{max-width:28em}.realme_secondary_login{padding-right:2.76923em;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI3LjUuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgogICAgdmlld0JveD0iMTAyLjMwMDAwMzA1MTc1NzgxIDEwMi41ODkyNDg2NTcyMjY1NiAxMzggMTUyLjIxMDc1NDM5NDUzMTI1IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAzNDMgMzU4OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cgkuc3Qwe2ZpbGw6I0Q2NDMwOTt9Cjwvc3R5bGU+CjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xNzEuMywxMDIuNmMwLDAtNjktMi4xLTY5LDUyLjRjMCw1NC41LDMyLjgsOTkuOCw2OSw5OS44YzM2LjIsMCw2OS00NS40LDY5LTk5LjgKICAgIEMyNDAuMywxMDAuNSwxNzEuMywxMDIuNiwxNzEuMywxMDIuNnogTTE1NC42LDE3MS4xYy0xLjcsMy43LTUuMSw1LjYtOS45LDUuNmMtNC45LDAtOC4zLTEuOS05LjktNS42Yy0wLjctMS41LTEtMy4yLTEtNS40CiAgICBjMC0yLjMsMC4zLTMuOSwxLTUuNWMxLjctMy43LDUtNS41LDkuOS01LjVjNC44LDAsOC4yLDEuOCw5LjksNS41YzAuNywxLjYsMSwzLjIsMSw1LjVDMTU1LjYsMTY3LjksMTU1LjMsMTY5LjYsMTU0LjYsMTcxLjF6CiAgICBNMjE0LjEsMTUyLjFjLTQuMy0wLjYtMTcuMS0wLjctMjMuOSw1LjNjLTMuNCwzLTUuMSw3LjQtNS4xLDEzLjN2NDAuMmgtMTUuNHYtNDAuMmMwLTEwLjQsMy42LTE5LDEwLjQtMjQuOQogICAgYzEzLjMtMTEuNiwzMy43LTkuMiwzNi04LjlMMjE0LjEsMTUyLjF6Ii8+Cjwvc3ZnPgo=);background-repeat:no-repeat;background-position:right center}.realme_secondary_login .realme_login,.realme_secondary_login .realme_link,.realme_secondary_login .realme_create_account{padding-right:1.75em;padding-top:0}.realme_secondary_login .realme_pipe{border-right:solid 1px;padding-left:.5em}.realme_secondary_login .realme_pipe:first-child{padding-left:0}.realme_secondary_login .whats_realme{font-weight:bold;padding-right:.3em;*padding-left:.5em;padding-top:0}.realme_secondary_login .realme_link{margin-right:.75em}.realme_secondary_login .realme_icon_link{right:.61538em}.realme_button{cursor:pointer;margin-top:1px;color:#fff;background-color:#d64309;border-radius:1rem;border:0;-webkit-appearance:none;-webkit-border-image:none;font-size:1.10769rem;line-height:1.2em;width:100%;text-align:left;padding:0}.realme_button_padding{display:flex;align-items:center;padding:1em 1.25em}.realme_button_login-icon{display:inline-block;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI3LjUuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgogICAgdmlld0JveD0iMTAyLjMwMDAwMzA1MTc1NzgxIDEwMi41ODkyNDg2NTcyMjY1NiAxMzggMTUyLjIxMDc1NDM5NDUzMTI1IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAzNDMgMzU4OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cgkuc3Qwe2ZpbGw6I0ZGRkZGRjt9Cjwvc3R5bGU+CjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xNzEuMywxMDIuNmMwLDAtNjktMi4xLTY5LDUyLjRjMCw1NC41LDMyLjgsOTkuOCw2OSw5OS44YzM2LjIsMCw2OS00NS40LDY5LTk5LjgKICAgIEMyNDAuMywxMDAuNSwxNzEuMywxMDIuNiwxNzEuMywxMDIuNnogTTE1NC42LDE3MS4xYy0xLjcsMy43LTUuMSw1LjYtOS45LDUuNmMtNC45LDAtOC4zLTEuOS05LjktNS42Yy0wLjctMS41LTEtMy4yLTEtNS40CiAgICBjMC0yLjMsMC4zLTMuOSwxLTUuNWMxLjctMy43LDUtNS41LDkuOS01LjVjNC44LDAsOC4yLDEuOCw5LjksNS41YzAuNywxLjYsMSwzLjIsMSw1LjVDMTU1LjYsMTY3LjksMTU1LjMsMTY5LjYsMTU0LjYsMTcxLjF6CiAgICBNMjE0LjEsMTUyLjFjLTQuMy0wLjYtMTcuMS0wLjctMjMuOSw1LjNjLTMuNCwzLTUuMSw3LjQtNS4xLDEzLjN2NDAuMmgtMTUuNHYtNDAuMmMwLTEwLjQsMy42LTE5LDEwLjQtMjQuOQogICAgYzEzLjMtMTEuNiwzMy43LTkuMiwzNi04LjlMMjE0LjEsMTUyLjF6Ii8+Cjwvc3ZnPgo=);background-repeat:no-repeat;margin-right:.5em;height:2em;width:2em}.realme_hr{margin:0;border:0;padding:.1em 0 .38462em;border-bottom:1px solid #ddd;height:1px}.realme_login_lockup{margin-bottom:1em;_position:relative}.realme_login_lockup form{width:100%}.realme_login,.realme_create_account,.realme_link{padding-right:1.2em}.realme_link{text-decoration:none}.realme_arrow_top_left,.realme_arrow_top_right,.realme_arrow_side_left,.realme_arrow_side_right{padding-top:1.2em}.realme_arrow_top_left .arrow,.realme_arrow_top_right .arrow{width:0;height:0;border-style:solid;border-color:rgba(0,0,0,0);border-width:11px;display:block;border-bottom-color:#d0d0d0;left:-1px;top:-22px}.ie6 .realme_arrow_top_left .arrow,.realme_arrow_top_left .ie6 .arrow,.ie6 .realme_arrow_top_right .arrow,.realme_arrow_top_right .ie6 .arrow{border-right-color:pink;border-left-color:pink;border-top-color:pink;border-top-width:0;filter:chroma(color=#ffc0cb);font-size:0;line-height:0}.realme_arrow_top_left .arrow .front,.realme_arrow_top_right .arrow .front{width:0;height:0;border-style:solid;border-color:rgba(0,0,0,0);border-width:10px;display:block;border-bottom-color:#fff;position:absolute;left:-10px;bottom:-11px}.ie6 .realme_arrow_top_left .arrow .front,.realme_arrow_top_left .ie6 .arrow .front,.ie6 .realme_arrow_top_right .arrow .front,.realme_arrow_top_right .ie6 .arrow .front{border-right-color:pink;border-left-color:pink;border-top-color:pink;border-top-width:0;filter:chroma(color=#ffc0cb);font-size:0;line-height:0;top:1px}.ie6 label.radio .realme_arrow_top_left .arrow .front,.realme_arrow_top_left .ie6 label.radio .arrow .front,.ie6 label.radio .realme_arrow_top_right .arrow .front,.realme_arrow_top_right .ie6 label.radio .arrow .front{display:none}.ie6 label.radio .realme_arrow_top_left .arrow,.realme_arrow_top_left .ie6 label.radio .arrow,.ie6 label.radio .realme_arrow_top_right .arrow,.realme_arrow_top_right .ie6 label.radio .arrow{display:none}.realme_popup_wrapper{transition:opacity .3s;opacity:0;visibility:hidden;z-index:2;_display:none}.realme_arrow_top_left{top:1.6em;left:-1.7em}.realme_arrow_top_left .arrow{left:1.35em;right:auto}.realme_arrow_top_right{top:1.6em;right:-1.7em}.realme_arrow_top_right .arrow{left:auto;right:1.35em}.realme_arrow_side_left{top:-26em;left:calc(100% + 25px)}.realme_arrow_side_left .arrow{width:0;height:0;border-style:solid;border-color:rgba(0,0,0,0);border-width:11px;display:block;border-right-color:#d0d0d0;top:1.25em;left:-22px}.ie6 .realme_arrow_side_left .arrow{filter:chroma(color=#ffc0cb);font-size:0;line-height:0}.realme_arrow_side_left .arrow .front{width:0;height:0;border-style:solid;border-color:rgba(0,0,0,0);border-width:10px;display:block;border-right-color:#fff;position:absolute;left:-9px;top:-10px}.ie6 .realme_arrow_side_left .arrow .front{filter:chroma(color=#ffc0cb);font-size:0;line-height:0}.ie6 label.radio .realme_arrow_side_left .arrow{display:none}.realme_arrow_side_right{top:-1em;right:100%}.realme_arrow_side_right .arrow{width:0;height:0;border-style:solid;border-color:rgba(0,0,0,0);border-width:11px;display:block;border-left-color:#d0d0d0;top:1.25em;left:auto;right:-22px}.ie6 .realme_arrow_side_right .arrow{filter:chroma(color=#ffc0cb);font-size:0;line-height:0}.realme_arrow_side_right .arrow .front{width:0;height:0;border-style:solid;border-color:rgba(0,0,0,0);border-width:10px;display:block;border-left-color:#fff;position:absolute;right:-9px;top:-10px}.ie6 .realme_arrow_side_right .arrow .front{filter:chroma(color=#ffc0cb);font-size:0;line-height:0}.ie6 label.radio .realme_arrow_side_right .arrow{display:none}.realme_popup{padding:.5em 1.5em;background-color:#fff;border:solid 1px #ddd;border-radius:3px}.realme_popup p,.realme_popup ul,.realme_popup strong,.realme_popup b{color:#333}.realme_popup p,.realme_popup ul,.realme_popup a{line-height:1.35em}.realme_popup ul{padding-left:1em;margin-bottom:1em}.realme_popup a,.realme_popup a:hover,.realme_popup a:active{color:#d64309}.realme_popup_title,.realme_popup h2{font-size:1.07692em;color:#e1001e;margin-bottom:.5em}.no_touch .whats_realme:hover+.realme_popup_wrapper,.no_touch .realme_popup_wrapper:hover{opacity:1 !important;visibility:visible !important}.realme_find_out_more{display:inline-block;padding-right:1em}.realme_icon_find_out_more{top:.35em;right:0;width:9px;height:9px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAMAAADXT/YiAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAZQTFRFEXenAAAA9qN1kgAAAAJ0Uk5T/wDltzBKAAAAJklEQVR42mJgBAEGEGBkRLBBPAZGqCADI5QF4UEUMuBiwbQDBBgACWwANEE3UAYAAAAASUVORK5CYII=)}.realme_icon_link{right:0;bottom:0;width:9px;height:100%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAMAAADXT/YiAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAZQTFRFEXenAAAA9qN1kgAAAAJ0Uk5T/wDltzBKAAAAJklEQVR42mJgBAEGEGBkRLBBPAZGqCADI5QF4UEUMuBiwbQDBBgACWwANEE3UAYAAAAASUVORK5CYII=);background-position:right center;_margin-bottom:2px}.realme_icon_new_window{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAMAAADXT/YiAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAZQTFRF////AAAAVcLTfgAAAAJ0Uk5T/wDltzBKAAAAJklEQVR42mJgBAEGEGBkRLBBPAZGqCADI5QF4UEUMuBiwbQDBBgACWwANEE3UAYAAAAASUVORK5CYII=);width:9px;height:9px;vertical-align:baseline;position:relative;*top:-0.2em}.realme_text_icon_new_window{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAMAAADXT/YiAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAZQTFRF////AAAAVcLTfgAAAAJ0Uk5T/wDltzBKAAAAJklEQVR42mJgBAEGEGBkRLBBPAZGqCADI5QF4UEUMuBiwbQDBBgACWwANEE3UAYAAAAASUVORK5CYII=);padding-right:1.2em;background-position:right center;*zoom:1;vertical-align:baseline} diff --git a/client/src/styles/_base.scss b/client/src/styles/_base.scss index b29cc78..ee79090 100644 --- a/client/src/styles/_base.scss +++ b/client/src/styles/_base.scss @@ -21,10 +21,12 @@ */ *zoom: 1; } + .realme_widget:before, .realme_secondary_login:before, .realme_login_lockup:before, .realme_popup:before, .realme_widget:after, .realme_secondary_login:after, .realme_login_lockup:after, .realme_popup:after { content: " "; display: table; } + .realme_widget:after, .realme_secondary_login:after, .realme_login_lockup:after, .realme_popup:after { clear: both; } @@ -59,16 +61,6 @@ border-style: solid; } -.realme_icon_new_window { - _overflow: hidden; - /*ie6*/ -} - -.realme_primary_login, .realme_alternative_login, .realme_assert { - _width: 320px; - /*ie6*/ -} - /* The base RealMe widget ----------------------------------------------------- @@ -79,15 +71,19 @@ color: $brand-color-text; padding: 0.76923em 1.07692em; font-family: sans-serif; font-size: 13px; + /* Set font-size explicitly to avoid cascade from the page. */ line-height: 1.53846; + /* Reset the line-height to something senisble inside the widget */ } + .realme_widget p { margin-top: 0.5em; margin-bottom: 1em; font-family: sans-serif; } + .realme_widget a { text-decoration: none; font-family: sans-serif; @@ -96,6 +92,7 @@ color: $brand-color-text; .realme_widget .realme_login, .realme_widget .realme_create_account, .realme_widget .realme_link { color: $brand-color-main-accessible; } + .realme_widget .realme_login:hover, .realme_widget .realme_create_account:hover, .realme_widget .realme_link:hover, .realme_widget .realme_login:active, .realme_widget .realme_create_account:active, .realme_widget .realme_link:active { text-decoration: underline; border: 0; diff --git a/client/src/styles/_buttons.scss b/client/src/styles/_buttons.scss index e87e153..05d3d77 100644 --- a/client/src/styles/_buttons.scss +++ b/client/src/styles/_buttons.scss @@ -1,14 +1,13 @@ .realme_button { cursor: pointer; - line-height: 1; margin-top: 1px; color: $brand-color-main-contrast; background-color: $brand-color-main-accessible; border-radius: $btn-border-radius; - border: none; + border: 0; -webkit-appearance: none; -webkit-border-image: none; - font-size: 1.107692308rem; + font-size: 1.10769rem; line-height: 1.2em; /** diff --git a/client/src/styles/_components.scss b/client/src/styles/_components.scss index 6922724..167d4a0 100644 --- a/client/src/styles/_components.scss +++ b/client/src/styles/_components.scss @@ -1,4 +1,4 @@ -/* Used to separate elements vertically. Can be themed*/ +/* Used to separate elements vertically. Can be themed */ .realme_hr { margin: 0; border: 0; @@ -10,7 +10,8 @@ .realme_login_lockup { margin-bottom: 1em; _position: relative; - /*ie6*/ + + /* ie6 */ } .realme_login_lockup form { diff --git a/client/src/styles/_icons.scss b/client/src/styles/_icons.scss index d447d1d..4dcdb7d 100644 --- a/client/src/styles/_icons.scss +++ b/client/src/styles/_icons.scss @@ -14,7 +14,8 @@ background-image: url('../images/icon-new-window-blue.png'); background-position: right center; _margin-bottom: 2px; - /*ie6*/ + + /* ie6 */ } .realme_icon_new_window { diff --git a/client/src/styles/_popup.scss b/client/src/styles/_popup.scss index ff11728..4ac20f3 100644 --- a/client/src/styles/_popup.scss +++ b/client/src/styles/_popup.scss @@ -13,17 +13,17 @@ left: -1px; top: -22px; } + .ie6 .realme_arrow_top_left .arrow, .realme_arrow_top_left .ie6 .arrow, .ie6 .realme_arrow_top_right .arrow, .realme_arrow_top_right .ie6 .arrow { - border-right-color: pink; - border-left-color: pink; - border-top-color: pink; + border-right-color: $color-pink; + border-left-color: $color-pink; + border-top-color: $color-pink; border-top-width: 0; -} -.ie6 .realme_arrow_top_left .arrow, .realme_arrow_top_left .ie6 .arrow, .ie6 .realme_arrow_top_right .arrow, .realme_arrow_top_right .ie6 .arrow { - filter: chroma(color=pink); + filter: chroma(color=$color-pink); font-size: 0; line-height: 0; } + .realme_arrow_top_left .arrow .front, .realme_arrow_top_right .arrow .front { width: 0; height: 0; @@ -31,28 +31,27 @@ border-color: transparent; border-width: 10px; display: block; - border-bottom-color: white; + border-bottom-color: #fff; position: absolute; left: -10px; bottom: -11px; } + .ie6 .realme_arrow_top_left .arrow .front, .realme_arrow_top_left .ie6 .arrow .front, .ie6 .realme_arrow_top_right .arrow .front, .realme_arrow_top_right .ie6 .arrow .front { - border-right-color: pink; - border-left-color: pink; - border-top-color: pink; + border-right-color: $color-pink; + border-left-color: $color-pink; + border-top-color: $color-pink; border-top-width: 0; -} -.ie6 .realme_arrow_top_left .arrow .front, .realme_arrow_top_left .ie6 .arrow .front, .ie6 .realme_arrow_top_right .arrow .front, .realme_arrow_top_right .ie6 .arrow .front { - filter: chroma(color=pink); + filter: chroma(color=$color-pink); font-size: 0; line-height: 0; -} -.ie6 .realme_arrow_top_left .arrow .front, .realme_arrow_top_left .ie6 .arrow .front, .ie6 .realme_arrow_top_right .arrow .front, .realme_arrow_top_right .ie6 .arrow .front { top: 1px; } + .ie6 label.radio .realme_arrow_top_left .arrow .front, .realme_arrow_top_left .ie6 label.radio .arrow .front, .ie6 label.radio .realme_arrow_top_right .arrow .front, .realme_arrow_top_right .ie6 label.radio .arrow .front { display: none; } + .ie6 label.radio .realme_arrow_top_left .arrow, .realme_arrow_top_left .ie6 label.radio .arrow, .ie6 label.radio .realme_arrow_top_right .arrow, .realme_arrow_top_right .ie6 label.radio .arrow { display: none; } @@ -66,13 +65,15 @@ visibility: hidden; z-index: 2; _display: none; - /*ie6*/ + + /* ie6 */ } .realme_arrow_top_left { top: 1.6em; left: -1.7em; } + .realme_arrow_top_left .arrow { left: 1.35em; right: auto; @@ -82,6 +83,7 @@ top: 1.6em; right: -1.7em; } + .realme_arrow_top_right .arrow { left: auto; right: 1.35em; @@ -91,6 +93,7 @@ top: -26em; left: calc(100% + 25px); } + .realme_arrow_side_left .arrow { width: 0; height: 0; @@ -99,16 +102,16 @@ border-width: 11px; display: block; border-right-color: #d0d0d0; - left: -1px; - top: -22px; top: 1.25em; left: -22px; } + .ie6 .realme_arrow_side_left .arrow { - filter: chroma(color=pink); + filter: chroma(color=$color-pink); font-size: 0; line-height: 0; } + .realme_arrow_side_left .arrow .front { width: 0; height: 0; @@ -116,16 +119,18 @@ border-color: transparent; border-width: 10px; display: block; - border-right-color: white; + border-right-color: #fff; position: absolute; left: -9px; top: -10px; } + .ie6 .realme_arrow_side_left .arrow .front { - filter: chroma(color=pink); + filter: chroma(color=$color-pink); font-size: 0; line-height: 0; } + .ie6 label.radio .realme_arrow_side_left .arrow { display: none; } @@ -134,6 +139,7 @@ top: -1em; right: 100%; } + .realme_arrow_side_right .arrow { width: 0; height: 0; @@ -142,17 +148,17 @@ border-width: 11px; display: block; border-left-color: #d0d0d0; - left: -1px; - top: -22px; top: 1.25em; left: auto; right: -22px; } + .ie6 .realme_arrow_side_right .arrow { - filter: chroma(color=pink); + filter: chroma(color=$color-pink); font-size: 0; line-height: 0; } + .realme_arrow_side_right .arrow .front { width: 0; height: 0; @@ -160,22 +166,24 @@ border-color: transparent; border-width: 10px; display: block; - border-left-color: white; + border-left-color: #fff; position: absolute; right: -9px; top: -10px; } + .ie6 .realme_arrow_side_right .arrow .front { - filter: chroma(color=pink); + filter: chroma(color=$color-pink); font-size: 0; line-height: 0; } + .ie6 label.radio .realme_arrow_side_right .arrow { display: none; } .realme_popup { - padding: 0.5em 1.5em 0.5em; + padding: 0.5em 1.5em; background-color: #fff; border: solid 1px #ddd; -webkit-border-radius: 3px; @@ -184,16 +192,20 @@ -o-border-radius: 3px; border-radius: 3px; } + .realme_popup p, .realme_popup ul, .realme_popup strong, .realme_popup b { color: #333; } + .realme_popup p, .realme_popup ul, .realme_popup a { line-height: 1.35em; } + .realme_popup ul { padding-left: 1em; margin-bottom: 1em; } + .realme_popup a, .realme_popup a:hover, .realme_popup a:active { diff --git a/client/src/styles/_typography.scss b/client/src/styles/_typography.scss index 1c3b394..2589ad0 100644 --- a/client/src/styles/_typography.scss +++ b/client/src/styles/_typography.scss @@ -2,7 +2,7 @@ margin-top: 0; margin-bottom: 0; font-size: 2.3125rem; - font-family: inter, sans-serif; + font-family: "inter", sans-serif; font-weight: 300; line-height: 1.46; color: $brand-color-main; @@ -13,8 +13,8 @@ } .realme_mini_title { - font-size: 1.076923077em; /* 14px */ + font-size: 1.07692em; } .realme_primary_login { @@ -22,9 +22,11 @@ min-width: 16.30769em; padding: 1.38462em; } + .realme_primary_login p { font-size: 14px; } + .realme_primary_login .realme_create_account { float: right; } @@ -33,8 +35,9 @@ max-width: 18em; min-width: 10.30769em; } + .realme_alternative_login .realme_title { - font-size: 1.076923077em; + font-size: 1.07692em; margin-bottom: 0.5em; } @@ -52,27 +55,32 @@ background-repeat: no-repeat; background-position: right center; } + .realme_secondary_login .realme_login, .realme_secondary_login .realme_link, .realme_secondary_login .realme_create_account { padding-right: 1.75em; padding-top: 0; } + .realme_secondary_login .realme_pipe { border-right: solid 1px; padding-left: 0.5em; } + .realme_secondary_login .realme_pipe:first-child { padding-left: 0; } + .realme_secondary_login .whats_realme { font-weight: bold; padding-right: 0.3em; - padding-left: 0.3em; *padding-left: 0.5em; padding-top: 0; } + .realme_secondary_login .realme_link { margin-right: 0.75em; } + .realme_secondary_login .realme_icon_link { - right: .615384615em; + right: .61538em; } diff --git a/client/src/styles/_variables.scss b/client/src/styles/_variables.scss index 6914f2d..239ee92 100644 --- a/client/src/styles/_variables.scss +++ b/client/src/styles/_variables.scss @@ -1,7 +1,8 @@ // See the brand guidelines at https://developers.realme.govt.nz/how-to-integrate/application-design-and-branding-guide/realme-new-page-elements/ $brand-color-main: #FF2C00; $brand-color-main-accessible: #D64309; -$brand-color-main-contrast: white; -$brand-color-text: black; +$brand-color-main-contrast: #fff; +$brand-color-text: #000; +$color-pink: #ffc0cb; $btn-border-radius: 1rem; diff --git a/package.json b/package.json index 2712ee7..1d56fe3 100644 --- a/package.json +++ b/package.json @@ -9,11 +9,11 @@ "build": "yarn && yarn lint && rm -rf client/dist/* && NODE_ENV=production webpack --mode production --bail --progress", "dev": "NODE_ENV=development webpack --progress", "watch": "NODE_ENV=development webpack --watch --progress", - "lint": "eslint client/src/js && stylelint client/src/styles" + "lint": "eslint client/src/js && stylelint client/src" }, "dependencies": {}, "devDependencies": { - "@silverstripe/eslint-config": "^1.2.1", + "@silverstripe/eslint-config": "^1.3.0", "@silverstripe/webpack-config": "^2.1.0", "webpack": "^5.74.0", "webpack-cli": "^5.0.0" diff --git a/yarn.lock b/yarn.lock index 64ef99e..aebff21 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1005,11 +1005,36 @@ resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== +"@csstools/css-parser-algorithms@^2.6.3": + version "2.6.3" + resolved "https://registry.yarnpkg.com/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.6.3.tgz#b5e7eb2bd2a42e968ef61484f1490a8a4148a8eb" + integrity sha512-xI/tL2zxzEbESvnSxwFgwvy5HS00oCXxL4MLs6HUiDcYfwowsoQaABKxUElp1ARITrINzBnsECOc1q0eg2GOrA== + +"@csstools/css-tokenizer@^2.3.1": + version "2.3.1" + resolved "https://registry.yarnpkg.com/@csstools/css-tokenizer/-/css-tokenizer-2.3.1.tgz#3d47e101ad48d815a4bdce8159fb5764f087f17a" + integrity sha512-iMNHTyxLbBlWIfGtabT157LH9DUx9X8+Y3oymFEuMj8HNc+rpE3dPFGFgHjpKfjeFDjLjYIAIhXPGvS2lKxL9g== + +"@csstools/media-query-list-parser@^2.1.11": + version "2.1.11" + resolved "https://registry.yarnpkg.com/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.11.tgz#465aa42f268599729350e305e1ae14a30c1daf51" + integrity sha512-uox5MVhvNHqitPP+SynrB1o8oPxPMt2JLgp5ghJOWf54WGQ5OKu47efne49r1SWqs3wRP8xSWjnO9MBKxhB1dA== + +"@csstools/selector-specificity@^3.1.1": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-3.1.1.tgz#63085d2995ca0f0e55aa8b8a07d69bfd48b844fe" + integrity sha512-a7cxGcJ2wIlMFLlh8z2ONm+715QkPHiyJcxwQlKOz/03GPw1COpfhcmC9wm4xlZfp//jWHNNMwzjtqHXVWU9KA== + "@discoveryjs/json-ext@0.5.7", "@discoveryjs/json-ext@^0.5.0": version "0.5.7" resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== +"@dual-bundle/import-meta-resolve@^4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@dual-bundle/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz#519c1549b0e147759e7825701ecffd25e5819f7b" + integrity sha512-+nxncfwHM5SgAtrVzgpzJOI1ol0PkumhVo469KCf9lUi21IGcY90G98VuHm9VRrUypmAzawAHO9bs6hqeADaVg== + "@eslint-community/eslint-utils@^4.2.0": version "4.4.0" resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" @@ -1119,12 +1144,12 @@ "@nodelib/fs.stat" "2.0.5" run-parallel "^1.1.9" -"@nodelib/fs.stat@2.0.5": +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": version "2.0.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== -"@nodelib/fs.walk@^1.2.8": +"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": version "1.2.8" resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== @@ -1314,10 +1339,10 @@ resolved "https://registry.yarnpkg.com/@sect/modernizr-loader/-/modernizr-loader-1.0.5.tgz#512afc60c715cd658fdffab244123661e1339083" integrity sha512-L8y2BTVeLtdSe1XzBcD2DOlc+7fR7Z/uNdhsKvf3d3x3gmEKz9sfl2wJ3VzFhEd+a/O6qgacuhbziphG2p4s8g== -"@silverstripe/eslint-config@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@silverstripe/eslint-config/-/eslint-config-1.1.0.tgz#3bf3d233b4ccfec4eeca362a621968ba2f70af59" - integrity sha512-7Y3zjAQzNyWceDDvd+cK0NdeI7MP0LJdL7JeF+JUBOmT14hOaBWvGrmcQLmYhZb2sTwh6JEgQI0+9ExVr/60nQ== +"@silverstripe/eslint-config@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@silverstripe/eslint-config/-/eslint-config-1.3.0.tgz#fa88f47cacd6103f6b759d81e1d86f9e93799413" + integrity sha512-Q3+sQKO1ysyMLhJ91kOl2LqJhQICfHFeqMx09EH0xx3dRHgjsQvqHIzVWEzPkM/l7D79m+Ma/WBnon30S7TVlA== dependencies: eslint "^8.26.0" eslint-config-airbnb "^19.0.4" @@ -1326,11 +1351,17 @@ eslint-plugin-jsx-a11y "^6.6.1" eslint-plugin-react "^7.31.10" eslint-webpack-plugin "^3.2.0" - -"@silverstripe/webpack-config@^2.0.0": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@silverstripe/webpack-config/-/webpack-config-2.0.1.tgz#f2613571bc552ff310cbf3dca80011e30cfd05a1" - integrity sha512-qXN+tzhukQ4QBIEG+GjILj/vf1qP/GqMOnCeoh4S5VRQRjWy8kTmPl4W9+YXVyEwkKzplzvvGoUvEdeGlMJxcA== + stylelint "^16.3.1" + stylelint-config-recommended "^14.0.0" + stylelint-config-recommended-scss "^14.0.0" + stylelint-config-sass-guidelines "^11.1.0" + stylelint-config-standard "^36.0.0" + stylelint-scss "^6.2.1" + +"@silverstripe/webpack-config@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@silverstripe/webpack-config/-/webpack-config-2.1.0.tgz#9d6409498126db766299fa40f209f618515932a4" + integrity sha512-8rE2K3AXkIP6crDTBXdHz/3hiNVp2XpINkWGDBKzvMS6sGRcVTluPs12BdOXYo1aUZEeqDk9QYOLLGGgZxnOdw== dependencies: "@babel/core" "^7.19.6" "@babel/preset-env" "^7.19.4" @@ -1354,7 +1385,6 @@ postcss-loader "^7.0.1" resolve-url-loader "^5.0.0" sass "^1.55.0" - sass-lint "^1.13.1" sass-loader "^13.1.0" webpack "^5.74.0" webpack-bundle-analyzer "^4.7.0" @@ -1563,13 +1593,6 @@ acorn-import-assertions@^1.9.0: resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz#507276249d684797c84e0734ef84860334cfb1ac" integrity sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA== -acorn-jsx@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" - integrity sha512-AU7pnZkguthwBjKgCg6998ByQNIMjbuDQZ8bb78QAFZwPfmKia8AIzgY/gWgqCjnht8JLdXmB4YxA0KaV60ncQ== - dependencies: - acorn "^3.0.4" - acorn-jsx@^5.3.2: version "5.3.2" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" @@ -1580,16 +1603,6 @@ acorn-walk@^8.0.0: resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.1.tgz#2f10f5b69329d90ae18c58bf1fa8fccd8b959a43" integrity sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw== -acorn@^3.0.4: - version "3.3.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" - integrity sha512-OLUyIIZ7mF5oaAUT1w0TFqQS81q3saT46x8t7ukpPjMNk+nbs4ZHhs7ToV8EWnLYLepjETXd4XaCE4uxkMeqUw== - -acorn@^5.5.0: - version "5.7.4" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e" - integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg== - acorn@^8.0.4, acorn@^8.7.1, acorn@^8.8.2, acorn@^8.9.0: version "8.11.3" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" @@ -1632,11 +1645,6 @@ ajv-formats@^2.1.1: dependencies: ajv "^8.0.0" -ajv-keywords@^1.0.0: - version "1.5.1" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c" - integrity sha512-vuBv+fm2s6cqUyey2A7qYcvsik+GMDJsw8BARP2sDE76cqmaZVarsvHf7Vx6VJ0Xk8gLl+u3MoAPf6gKzJefeA== - ajv-keywords@^3.5.2: version "3.5.2" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" @@ -1649,14 +1657,6 @@ ajv-keywords@^5.1.0: dependencies: fast-deep-equal "^3.1.3" -ajv@^4.7.0: - version "4.11.8" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" - integrity sha512-I/bSHSNEcFFqXLf91nchoNB9D1Kie3QKcWdchYUaoIg1+1bdWDkdfdlvdIOJbi9U8xR0y+MWc5D+won9v95WlQ== - dependencies: - co "^4.6.0" - json-stable-stringify "^1.0.1" - ajv@^6.12.4, ajv@^6.12.5: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" @@ -1677,30 +1677,25 @@ ajv@^8.0.0, ajv@^8.9.0: require-from-string "^2.0.2" uri-js "^4.2.2" -ansi-escapes@^1.1.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" - integrity sha512-wiXutNjDUlNEDWHcYH3jtZUhd3c4/VojassD8zHdHCY13xbZy2XbW+NKQwA0tWGBVzDA9qEzYwfoSsWmviidhw== - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA== - -ansi-regex@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1" - integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw== +ajv@^8.0.1: + version "8.16.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.16.0.tgz#22e2a92b94f005f7e0f9c9d39652ef0b8f6f0cb4" + integrity sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw== + dependencies: + fast-deep-equal "^3.1.3" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.4.1" ansi-regex@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - integrity sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA== +ansi-regex@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" + integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== ansi-styles@^3.2.1: version "3.2.1" @@ -1742,13 +1737,6 @@ are-we-there-yet@^3.0.0: delegates "^1.0.0" readable-stream "^3.6.0" -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - argparse@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" @@ -1780,6 +1768,11 @@ array-includes@^3.1.6, array-includes@^3.1.7: get-intrinsic "^1.2.1" is-string "^1.0.7" +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + array.prototype.findlastindex@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz#b37598438f97b579166940814e2c0493a4f50207" @@ -1845,6 +1838,11 @@ ast-types-flow@^0.0.8: resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.8.tgz#0a85e1c92695769ac13a428bb653e7538bea27d6" integrity sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ== +astral-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== + asynciterator.prototype@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz#8c5df0514936cdd133604dfcc9d3fb93f09b2b62" @@ -1918,6 +1916,11 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== +balanced-match@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-2.0.0.tgz#dc70f920d78db8b858535795867bf48f820633d9" + integrity sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA== + big.js@^5.2.2: version "5.2.2" resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" @@ -1962,6 +1965,13 @@ braces@^3.0.2, braces@~3.0.2: dependencies: fill-range "^7.0.1" +braces@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== + dependencies: + fill-range "^7.1.1" + browserslist@^4.14.5, browserslist@^4.21.10, browserslist@^4.22.2: version "4.22.2" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.2.tgz#704c4943072bd81ea18997f3bd2180e89c77874b" @@ -2017,18 +2027,6 @@ call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.4, call-bind@^1.0.5: get-intrinsic "^1.2.1" set-function-length "^1.1.1" -caller-path@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" - integrity sha512-UJiE1otjXPF5/x+T3zTnSFiTOEmJoGTD9HmBoxnCUwho61a2eSNn/VwtwuIBDAo2SEOv1AJ7ARI5gCmohFLu/g== - dependencies: - callsites "^0.2.0" - -callsites@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" - integrity sha512-Zv4Dns9IbXXmPkgRRUjAaJQgfN4xX5p6+RQFhWUqscdvvK2xK/ZL8b3IXIJsj+4sD+f24NwnWy2BY8AJ82JB0A== - callsites@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" @@ -2044,17 +2042,6 @@ caniuse-lite@^1.0.30001538, caniuse-lite@^1.0.30001565: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001572.tgz#1ccf7dc92d2ee2f92ed3a54e11b7b4a3041acfa0" integrity sha512-1Pbh5FLmn5y4+QhNyJE9j3/7dK44dGB83/ZMjv/qJk86TvDbjk0LosiZo0i0WB0Vx607qMX9jYrn1VLHCkN4rw== -chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - integrity sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A== - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" @@ -2104,11 +2091,6 @@ cidr-regex@^3.1.1: dependencies: ip-regex "^4.1.0" -circular-json@^0.3.1: - version "0.3.3" - resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" - integrity sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A== - clean-stack@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" @@ -2122,13 +2104,6 @@ cli-columns@^4.0.0: string-width "^4.2.3" strip-ansi "^6.0.1" -cli-cursor@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" - integrity sha512-25tABq090YNKkF6JH7lcwO0zFJTRke4Jcq9iX2nr/Sz0Cjjv4gckmwlW6Ty/aoyFd6z3ysR2hMGC2GFugmBo6A== - dependencies: - restore-cursor "^1.0.1" - cli-table3@^0.6.2: version "0.6.3" resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.3.tgz#61ab765aac156b52f222954ffc607a6f01dbeeb2" @@ -2138,11 +2113,6 @@ cli-table3@^0.6.2: optionalDependencies: "@colors/colors" "1.5.0" -cli-width@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" - integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== - cliui@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" @@ -2173,16 +2143,6 @@ cmd-shim@^5.0.0: dependencies: mkdirp-infer-owner "^2.0.0" -co@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== - -code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - integrity sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA== - color-convert@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" @@ -2212,6 +2172,11 @@ color-support@^1.1.3: resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== +colord@^2.9.3: + version "2.9.3" + resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43" + integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== + colorette@^2.0.14: version "2.0.20" resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" @@ -2235,7 +2200,7 @@ commander@^10.0.1: resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== -commander@^2.20.0, commander@^2.8.1: +commander@^2.20.0: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== @@ -2260,16 +2225,6 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== -concat-stream@^1.4.6: - version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - confusing-browser-globals@^1.0.10: version "1.0.11" resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz#ae40e9b57cdd3915408a2805ebd3a5585608dc81" @@ -2302,11 +2257,6 @@ core-js@^3.26.0: resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.35.0.tgz#58e651688484f83c34196ca13f099574ee53d6b4" integrity sha512-ntakECeqg81KqMueeGJ79Q5ZgQNR+6eaE8sxGCx62zMbAIj65q+uYvatToew3m6eAGdU4gNZwpZ34NMe4GYswg== -core-util-is@~1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" - integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== - cosmiconfig@^8.3.5: version "8.3.6" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.3.6.tgz#060a2b871d66dba6c8538ea1118ba1ac16f5fae3" @@ -2317,6 +2267,16 @@ cosmiconfig@^8.3.5: parse-json "^5.2.0" path-type "^4.0.0" +cosmiconfig@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-9.0.0.tgz#34c3fc58287b915f3ae905ab6dc3de258b55ad9d" + integrity sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg== + dependencies: + env-paths "^2.2.1" + import-fresh "^3.3.0" + js-yaml "^4.1.0" + parse-json "^5.2.0" + cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" @@ -2326,6 +2286,11 @@ cross-spawn@^7.0.2, cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" +css-functions-list@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/css-functions-list/-/css-functions-list-3.2.2.tgz#9a54c6dd8416ed25c1079cd88234e927526c1922" + integrity sha512-c+N0v6wbKVxTu5gOBBFkr9BEdBWaqqjQeiJ8QvSRIJOf+UxlJh930m8e6/WNeODIK0mYLFkoONrnj16i2EcvfQ== + css-loader@^6.7.1: version "6.8.1" resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.8.1.tgz#0f8f52699f60f5e679eab4ec0fcd68b8e8a50a88" @@ -2340,19 +2305,19 @@ css-loader@^6.7.1: postcss-value-parser "^4.2.0" semver "^7.3.8" +css-tree@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.3.1.tgz#10264ce1e5442e8572fc82fbe490644ff54b5c20" + integrity sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw== + dependencies: + mdn-data "2.0.30" + source-map-js "^1.0.1" + cssesc@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== -d@1, d@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" - integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== - dependencies: - es5-ext "^0.10.50" - type "^1.0.1" - damerau-levenshtein@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7" @@ -2370,13 +2335,6 @@ debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3: dependencies: ms "2.1.2" -debug@^2.1.1: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - debug@^3.2.7: version "3.2.7" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" @@ -2384,6 +2342,13 @@ debug@^3.2.7: dependencies: ms "^2.1.1" +debug@^4.3.4: + version "4.3.5" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.5.tgz#e83444eceb9fedd4a1da56d671ae2446a01a6e1e" + integrity sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg== + dependencies: + ms "2.1.2" + debuglog@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" @@ -2394,7 +2359,7 @@ decamelize@^1.2.0: resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== -deep-is@^0.1.3, deep-is@~0.1.3: +deep-is@^0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== @@ -2447,13 +2412,12 @@ diff@^5.1.0: resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40" integrity sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw== -doctrine@^1.2.2: - version "1.5.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" - integrity sha512-lsGyRuYr4/PIB0txi+Fy2xOMI2dGaTguCaotzFGkVZuKR5usKfcRWIFKNM3QNrU7hh/+w2bwTW+ZeXPK5l8uVg== +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== dependencies: - esutils "^2.0.2" - isarray "^1.0.0" + path-type "^4.0.0" doctrine@^2.1.0: version "2.1.0" @@ -2514,7 +2478,7 @@ entities@~3.0.1: resolved "https://registry.yarnpkg.com/entities/-/entities-3.0.1.tgz#2b887ca62585e96db3903482d336c1006c3001d4" integrity sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q== -env-paths@^2.2.0: +env-paths@^2.2.0, env-paths@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== @@ -2631,72 +2595,12 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@^0.10.62, es5-ext@~0.10.14: - version "0.10.62" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.62.tgz#5e6adc19a6da524bf3d1e02bbc8960e5eb49a9a5" - integrity sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA== - dependencies: - es6-iterator "^2.0.3" - es6-symbol "^3.1.3" - next-tick "^1.1.0" - -es6-iterator@^2.0.3, es6-iterator@~2.0.1, es6-iterator@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" - integrity sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g== - dependencies: - d "1" - es5-ext "^0.10.35" - es6-symbol "^3.1.1" - -es6-map@^0.1.3: - version "0.1.5" - resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" - integrity sha512-mz3UqCh0uPCIqsw1SSAkB/p0rOzF/M0V++vyN7JqlPtSW/VsYgQBvVvqMLmfBuyMzTpLnNqi6JmcSizs4jy19A== - dependencies: - d "1" - es5-ext "~0.10.14" - es6-iterator "~2.0.1" - es6-set "~0.1.5" - es6-symbol "~3.1.1" - event-emitter "~0.3.5" - -es6-set@~0.1.5: - version "0.1.6" - resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.6.tgz#5669e3b2aa01d61a50ba79964f733673574983b8" - integrity sha512-TE3LgGLDIBX332jq3ypv6bcOpkLO0AslAQo7p2VqX/1N46YNsvIWgvjojjSEnWEGWMhr1qUbYeTSir5J6mFHOw== - dependencies: - d "^1.0.1" - es5-ext "^0.10.62" - es6-iterator "~2.0.3" - es6-symbol "^3.1.3" - event-emitter "^0.3.5" - type "^2.7.2" - -es6-symbol@^3.1.1, es6-symbol@^3.1.3, es6-symbol@~3.1.1: - version "3.1.3" - resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" - integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== - dependencies: - d "^1.0.1" - ext "^1.1.2" - -es6-weak-map@^2.0.1: - version "2.0.3" - resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.3.tgz#b6da1f16cc2cc0d9be43e6bdbfc5e7dfcdf31d53" - integrity sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA== - dependencies: - d "1" - es5-ext "^0.10.46" - es6-iterator "^2.0.3" - es6-symbol "^3.1.1" - escalade@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== -escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: +escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== @@ -2706,16 +2610,6 @@ escape-string-regexp@^4.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== -escope@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" - integrity sha512-75IUQsusDdalQEW/G/2esa87J7raqdJF+Ca0/Xm5C3Q58Nr4yVYjZGp/P1+2xiEVgXRrA39dpRb8LcshajbqDQ== - dependencies: - es6-map "^0.1.3" - es6-weak-map "^2.0.1" - esrecurse "^4.1.0" - estraverse "^4.1.1" - eslint-config-airbnb-base@^15.0.0: version "15.0.0" resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz#6b09add90ac79c2f8d723a2580e07f3925afd236" @@ -2850,45 +2744,6 @@ eslint-webpack-plugin@^3.2.0: normalize-path "^3.0.0" schema-utils "^4.0.0" -eslint@^2.7.0: - version "2.13.1" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-2.13.1.tgz#e4cc8fa0f009fb829aaae23855a29360be1f6c11" - integrity sha512-29PFGeV6lLQrPaPHeCkjfgLRQPFflDiicoNZOw+c/JkaQ0Am55yUICdYZbmCiM+DSef+q7oCercimHvjNI0GAw== - dependencies: - chalk "^1.1.3" - concat-stream "^1.4.6" - debug "^2.1.1" - doctrine "^1.2.2" - es6-map "^0.1.3" - escope "^3.6.0" - espree "^3.1.6" - estraverse "^4.2.0" - esutils "^2.0.2" - file-entry-cache "^1.1.1" - glob "^7.0.3" - globals "^9.2.0" - ignore "^3.1.2" - imurmurhash "^0.1.4" - inquirer "^0.12.0" - is-my-json-valid "^2.10.0" - is-resolvable "^1.0.0" - js-yaml "^3.5.1" - json-stable-stringify "^1.0.0" - levn "^0.3.0" - lodash "^4.0.0" - mkdirp "^0.5.0" - optionator "^0.8.1" - path-is-absolute "^1.0.0" - path-is-inside "^1.0.1" - pluralize "^1.2.1" - progress "^1.1.8" - require-uncached "^1.0.2" - shelljs "^0.6.0" - strip-json-comments "~1.0.1" - table "^3.7.8" - text-table "~0.2.0" - user-home "^2.0.0" - eslint@^8.26.0: version "8.56.0" resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.56.0.tgz#4957ce8da409dc0809f99ab07a1b94832ab74b15" @@ -2933,14 +2788,6 @@ eslint@^8.26.0: strip-ansi "^6.0.1" text-table "^0.2.0" -espree@^3.1.6: - version "3.5.4" - resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7" - integrity sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A== - dependencies: - acorn "^5.5.0" - acorn-jsx "^3.0.0" - espree@^9.6.0, espree@^9.6.1: version "9.6.1" resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" @@ -2950,11 +2797,6 @@ espree@^9.6.0, espree@^9.6.1: acorn-jsx "^5.3.2" eslint-visitor-keys "^3.4.1" -esprima@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - esquery@^1.4.2: version "1.5.0" resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" @@ -2962,14 +2804,14 @@ esquery@^1.4.2: dependencies: estraverse "^5.1.0" -esrecurse@^4.1.0, esrecurse@^4.3.0: +esrecurse@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== dependencies: estraverse "^5.2.0" -estraverse@^4.1.1, estraverse@^4.2.0: +estraverse@^4.1.1: version "4.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== @@ -2984,24 +2826,11 @@ esutils@^2.0.2: resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== -event-emitter@^0.3.5, event-emitter@~0.3.5: - version "0.3.5" - resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" - integrity sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA== - dependencies: - d "1" - es5-ext "~0.10.14" - events@^3.2.0: version "3.3.0" resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== -exit-hook@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" - integrity sha512-MsG3prOVw1WtLXAZbM3KiYtooKR1LvxHh3VHsVtIy0uiUu8usxgB/94DP2HxtD/661lLdB6yzQ09lGJSQr6nkg== - exponential-backoff@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/exponential-backoff/-/exponential-backoff-3.1.1.tgz#64ac7526fe341ab18a39016cd22c787d01e00bf6" @@ -3012,29 +2841,33 @@ expose-loader@^4.0.0: resolved "https://registry.yarnpkg.com/expose-loader/-/expose-loader-4.1.0.tgz#9c6d55d24e3ac0e5d50ee5dc7930d564fc475d48" integrity sha512-oLAesnzerwDGGADzBMnu0LPqqnlVz6e2V9lTa+/4X6VeW9W93x/nJpw05WBrcIdbqXm/EdnEQpiVDFFiQXuNfg== -ext@^1.1.2: - version "1.7.0" - resolved "https://registry.yarnpkg.com/ext/-/ext-1.7.0.tgz#0ea4383c0103d60e70be99e9a7f11027a33c4f5f" - integrity sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw== - dependencies: - type "^2.7.2" - fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== +fast-glob@^3.2.9, fast-glob@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + fast-json-stable-stringify@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: +fast-levenshtein@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== -fastest-levenshtein@^1.0.12: +fastest-levenshtein@^1.0.12, fastest-levenshtein@^1.0.16: version "1.0.16" resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5" integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== @@ -3046,22 +2879,6 @@ fastq@^1.6.0: dependencies: reusify "^1.0.4" -figures@^1.3.5: - version "1.7.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" - integrity sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ== - dependencies: - escape-string-regexp "^1.0.5" - object-assign "^4.1.0" - -file-entry-cache@^1.1.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-1.3.1.tgz#44c61ea607ae4be9c1402f41f44270cbfe334ff8" - integrity sha512-JyVk7P0Hvw6uEAwH4Y0j+rZMvaMWvLBYRmRGAF2S6jKTycf0mMDcC7d21Y2KyrKJk3XI8YghSsk5KmRdbvg0VQ== - dependencies: - flat-cache "^1.2.1" - object-assign "^4.0.1" - file-entry-cache@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" @@ -3069,6 +2886,13 @@ file-entry-cache@^6.0.1: dependencies: flat-cache "^3.0.4" +file-entry-cache@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-9.0.0.tgz#4478e7ceaa5191fa9676a2daa7030211c31b1e7e" + integrity sha512-6MgEugi8p2tiUhqO7GnPsmbCCzj0YRCwwaTbpGRyKZesjRSzkqkAE9fPp7V2yMs5hwfgbQLgdvSSkGNg1s5Uvw== + dependencies: + flat-cache "^5.0.0" + file@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/file/-/file-0.2.2.tgz#c3dfd8f8cf3535ae455c2b423c2e52635d76b4d3" @@ -3081,6 +2905,13 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" +fill-range@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== + dependencies: + to-regex-range "^5.0.1" + find-cache-dir@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-4.0.0.tgz#a30ee0448f81a3990708f6453633c733e2f6eec2" @@ -3113,16 +2944,6 @@ find-up@^6.3.0: locate-path "^7.1.0" path-exists "^5.0.0" -flat-cache@^1.2.1: - version "1.3.4" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.4.tgz#2c2ef77525cc2929007dfffa1dd314aa9c9dee6f" - integrity sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg== - dependencies: - circular-json "^0.3.1" - graceful-fs "^4.1.2" - rimraf "~2.6.2" - write "^0.2.1" - flat-cache@^3.0.4: version "3.2.0" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" @@ -3132,6 +2953,14 @@ flat-cache@^3.0.4: keyv "^4.5.3" rimraf "^3.0.2" +flat-cache@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-5.0.0.tgz#26c4da7b0f288b408bb2b506b2cb66c240ddf062" + integrity sha512-JrqFmyUl2PnPi1OvLyTVHnQvwQ0S+e6lGSwu8OkAZlSaNIZciTY2H/cOOROxsBA1m/LZNHDsqAgDZt6akWcjsQ== + dependencies: + flatted "^3.3.1" + keyv "^4.5.4" + flat@^5.0.2: version "5.0.2" resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" @@ -3142,6 +2971,11 @@ flatted@^3.2.9: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.9.tgz#7eb4c67ca1ba34232ca9d2d93e9886e611ad7daf" integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ== +flatted@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.1.tgz#21db470729a6734d4997002f439cb308987f567a" + integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw== + for-each@^0.3.3: version "0.3.3" resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" @@ -3154,22 +2988,6 @@ fraction.js@^4.3.6: resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7" integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== -front-matter@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/front-matter/-/front-matter-2.1.2.tgz#f75983b9f2f413be658c93dfd7bd8ce4078f5cdb" - integrity sha512-wH9JJVUi/MUfRpSvYWltdC9FGFZdkcc2H7US7Sp3iYihXTpYWWEL7ZUHMBicA9MsFBR/EatSbYN5EtCaytfiNA== - dependencies: - js-yaml "^3.4.6" - -fs-extra@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-3.0.1.tgz#3794f378c58b342ea7dbbb23095109c4b3b62291" - integrity sha512-V3Z3WZWVUYd8hoCL5xfXJCaHWYzmtwW5XWYSlLgERi8PWd8bx1kUHUk8L1BT57e49oKnDDD180mjfrHc1yA9rg== - dependencies: - graceful-fs "^4.1.2" - jsonfile "^3.0.0" - universalify "^0.1.0" - fs-minipass@^2.0.0, fs-minipass@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" @@ -3221,20 +3039,6 @@ gauge@^4.0.3: strip-ansi "^6.0.1" wide-align "^1.1.5" -generate-function@^2.0.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.3.1.tgz#f069617690c10c868e73b8465746764f97c3479f" - integrity sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ== - dependencies: - is-property "^1.0.2" - -generate-object-property@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" - integrity sha512-TuOwZWgJ2VAMEGJvAyPWvpqxSANF0LDpmyHauMjFYzaACvn+QTT/AZomvPCzVBV7yDN3OmwHQ5OvHaeLKre3JQ== - dependencies: - is-property "^1.0.0" - gensync@^1.0.0-beta.2: version "1.0.0-beta.2" resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" @@ -3263,6 +3067,13 @@ get-symbol-description@^1.0.0: call-bind "^1.0.2" get-intrinsic "^1.1.1" +glob-parent@^5.1.2, glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + glob-parent@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" @@ -3270,19 +3081,12 @@ glob-parent@^6.0.2: dependencies: is-glob "^4.0.3" -glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - glob-to-regexp@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== -glob@^7.0.0, glob@^7.0.3, glob@^7.1.3, glob@^7.1.4: +glob@^7.1.3, glob@^7.1.4: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -3305,17 +3109,21 @@ glob@^8.0.1: minimatch "^5.0.1" once "^1.3.0" -glob@~7.1.1: - version "7.1.7" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" - integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== +global-modules@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" + integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" + global-prefix "^3.0.0" + +global-prefix@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" + integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== + dependencies: + ini "^1.3.5" + kind-of "^6.0.2" + which "^1.3.1" globals@^11.1.0: version "11.12.0" @@ -3329,11 +3137,6 @@ globals@^13.19.0: dependencies: type-fest "^0.20.2" -globals@^9.2.0: - version "9.18.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" - integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== - globalthis@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" @@ -3341,21 +3144,22 @@ globalthis@^1.0.3: dependencies: define-properties "^1.1.3" -globule@^1.0.0: - version "1.3.4" - resolved "https://registry.yarnpkg.com/globule/-/globule-1.3.4.tgz#7c11c43056055a75a6e68294453c17f2796170fb" - integrity sha512-OPTIfhMBh7JbBYDpa5b+Q5ptmMWKwcNcFSR/0c6t8V4f3ZAVBEsKNY37QdVqmLRYSMhOUGYrY0QhSoEpzGr/Eg== +globby@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== dependencies: - glob "~7.1.1" - lodash "^4.17.21" - minimatch "~3.0.2" + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^3.0.0" -gonzales-pe-sl@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/gonzales-pe-sl/-/gonzales-pe-sl-4.2.3.tgz#6a868bc380645f141feeb042c6f97fcc71b59fe6" - integrity sha512-EdOTnR11W0edkA1xisx4UYtobMSTYj+UNyffW3/b9LziI7RpmHiBIqMs+VL43LrCbiPcLQllCxyzqOB+l5RTdQ== - dependencies: - minimist "1.1.x" +globjoin@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/globjoin/-/globjoin-0.1.4.tgz#2f4494ac8919e3767c5cbb691e9f463324285d43" + integrity sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg== gopd@^1.0.1: version "1.0.1" @@ -3364,7 +3168,7 @@ gopd@^1.0.1: dependencies: get-intrinsic "^1.1.3" -graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.10, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: +graceful-fs@^4.1.2, graceful-fs@^4.2.10, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: version "4.2.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== @@ -3381,13 +3185,6 @@ gzip-size@^6.0.0: dependencies: duplexer "^0.1.2" -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - integrity sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg== - dependencies: - ansi-regex "^2.0.0" - has-bigints@^1.0.1, has-bigints@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" @@ -3451,6 +3248,11 @@ html-escaper@^2.0.2: resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== +html-tags@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.3.1.tgz#a04026a18c882e4bba8a01a3d39cfe465d40b5ce" + integrity sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ== + http-cache-semantics@^4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" @@ -3504,16 +3306,16 @@ ignore-walk@^5.0.1: dependencies: minimatch "^5.0.1" -ignore@^3.1.2: - version "3.3.10" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" - integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== - ignore@^5.2.0: version "5.3.0" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.0.tgz#67418ae40d34d6999c95ff56016759c718c82f78" integrity sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg== +ignore@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" + integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== + immutable@^4.0.0: version "4.3.4" resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.4.tgz#2e07b33837b4bb7662f288c244d1ced1ef65a78f" @@ -3566,15 +3368,15 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@^2.0.3, inherits@~2.0.3: +inherits@2, inherits@^2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -inherits@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== +ini@^1.3.5: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== ini@^3.0.0, ini@^3.0.1: version "3.0.1" @@ -3594,25 +3396,6 @@ init-package-json@^3.0.2: validate-npm-package-license "^3.0.4" validate-npm-package-name "^4.0.0" -inquirer@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e" - integrity sha512-bOetEz5+/WpgaW4D1NYOk1aD+JCqRjqu/FwRFgnIfiP7FC/zinsrfyO1vlS3nyH/R7S0IH3BIHBu4DBIDSqiGQ== - dependencies: - ansi-escapes "^1.1.0" - ansi-regex "^2.0.0" - chalk "^1.0.0" - cli-cursor "^1.0.1" - cli-width "^2.0.0" - figures "^1.3.5" - lodash "^4.3.0" - readline2 "^1.0.1" - run-async "^0.1.0" - rx-lite "^3.1.2" - string-width "^1.0.1" - strip-ansi "^3.0.0" - through "^2.3.6" - internal-slot@^1.0.5: version "1.0.6" resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.6.tgz#37e756098c4911c5e912b8edbf71ed3aa116f930" @@ -3718,18 +3501,6 @@ is-finalizationregistry@^1.0.2: dependencies: call-bind "^1.0.2" -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - integrity sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw== - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w== - is-fullwidth-code-point@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" @@ -3759,22 +3530,6 @@ is-map@^2.0.1: resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== -is-my-ip-valid@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-my-ip-valid/-/is-my-ip-valid-1.0.1.tgz#f7220d1146257c98672e6fba097a9f3f2d348442" - integrity sha512-jxc8cBcOWbNK2i2aTkCZP6i7wkHF1bqKFrwEHuN5Jtg5BSaZHUZQ/JTOJwoV41YvHnOaRyWWh72T/KvfNz9DJg== - -is-my-json-valid@^2.10.0: - version "2.20.6" - resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.20.6.tgz#a9d89e56a36493c77bda1440d69ae0dc46a08387" - integrity sha512-1JQwulVNjx8UqkPE/bqDaxtH4PXCe/2VRh/y3p99heOV87HG4Id5/VfDswd+YiAfHcRTfDlWgISycnHuhZq1aw== - dependencies: - generate-function "^2.0.0" - generate-object-property "^1.1.0" - is-my-ip-valid "^1.0.0" - jsonpointer "^5.0.0" - xtend "^4.0.0" - is-negative-zero@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" @@ -3809,11 +3564,6 @@ is-plain-object@^5.0.0: resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== -is-property@^1.0.0, is-property@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" - integrity sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g== - is-regex@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" @@ -3822,11 +3572,6 @@ is-regex@^1.1.4: call-bind "^1.0.2" has-tostringtag "^1.0.0" -is-resolvable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" - integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== - is-set@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec" @@ -3880,11 +3625,6 @@ is-weakset@^2.0.1: call-bind "^1.0.2" get-intrinsic "^1.1.1" -isarray@^1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== - isarray@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" @@ -3939,14 +3679,6 @@ jiti@^1.20.0: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@^3.4.6, js-yaml@^3.5.1, js-yaml@^3.5.4: - version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - js-yaml@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" @@ -3994,16 +3726,6 @@ json-stable-stringify-without-jsonify@^1.0.1: resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== -json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.1.0.tgz#43d39c7c8da34bfaf785a61a56808b0def9f747d" - integrity sha512-zfA+5SuwYN2VWqN1/5HZaDzQKLJHaBVMZIIM+wuYjdptkaQsqzDdqjqf+lZZJUuJq1aanHiY8LhH8LmH+qBYJA== - dependencies: - call-bind "^1.0.5" - isarray "^2.0.5" - jsonify "^0.0.1" - object-keys "^1.1.1" - json-stringify-nice@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/json-stringify-nice/-/json-stringify-nice-1.1.4.tgz#2c937962b80181d3f317dd39aa323e14f5a60a67" @@ -4021,28 +3743,11 @@ json5@^2.1.2, json5@^2.2.3: resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== -jsonfile@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-3.0.1.tgz#a5ecc6f65f53f662c4415c7675a0331d0992ec66" - integrity sha512-oBko6ZHlubVB5mRFkur5vgYR1UyqX+S6Y/oCfLhqNdcc2fYFlDpIoNc7AfKS1KOGcnNAkvsr0grLck9ANM815w== - optionalDependencies: - graceful-fs "^4.1.6" - -jsonify@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.1.tgz#2aa3111dae3d34a0f151c63f3a45d995d9420978" - integrity sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg== - jsonparse@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== -jsonpointer@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-5.0.1.tgz#2110e0af0900fd37467b5907ecd13a7884a1b559" - integrity sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ== - "jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.3.5: version "3.3.5" resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz#4766bd05a8e2a11af222becd19e15575e52a853a" @@ -4063,7 +3768,7 @@ just-diff@^5.0.1: resolved "https://registry.yarnpkg.com/just-diff/-/just-diff-5.2.0.tgz#60dca55891cf24cd4a094e33504660692348a241" integrity sha512-6ufhP9SHjb7jibNFrNxyFZ6od3g+An6Ai9mhGRvcYe8UJlH0prseN64M+6ZBBUoKYHZsitDP42gAJ8+eVWr3lw== -keyv@^4.5.3: +keyv@^4.5.3, keyv@^4.5.4: version "4.5.4" resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== @@ -4075,10 +3780,10 @@ kind-of@^6.0.2: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== -known-css-properties@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.3.0.tgz#a3d135bbfc60ee8c6eacf2f7e7e6f2d4755e49a4" - integrity sha512-QMQcnKAiQccfQTqtBh/qwquGZ2XK/DXND1jrcN9M8gMMy99Gwla7GQjndVUsEqIaRyP6bsFRuhwRj5poafBGJQ== +known-css-properties@^0.31.0: + version "0.31.0" + resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.31.0.tgz#5c8d9d8777b3ca09482b2397f6a241e5d69a1023" + integrity sha512-sBPIUGTNF0czz0mwGGUoKKJC8Q7On1GPbCSFPfyEsfHb2DyBG0Y4QtV+EVWpINSaiGKZblDNuF5AezxSgOhesQ== language-subtag-registry@^0.3.20: version "0.3.22" @@ -4092,14 +3797,6 @@ language-tags@^1.0.9: dependencies: language-subtag-registry "^0.3.20" -levn@^0.3.0, levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - levn@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" @@ -4273,27 +3970,22 @@ locate-path@^7.1.0: dependencies: p-locate "^6.0.0" -lodash.capitalize@^4.1.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/lodash.capitalize/-/lodash.capitalize-4.2.1.tgz#f826c9b4e2a8511d84e3aca29db05e1a4f3b72a9" - integrity sha512-kZzYOKspf8XVX5AvmQF94gQW0lejFVgb80G85bU4ZWzoJ6C03PQg3coYAUpSTpQWelrZELd3XWgHzw4Ck5kaIw== - lodash.debounce@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== -lodash.kebabcase@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" - integrity sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g== - lodash.merge@^4.6.2: version "4.6.2" resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== -lodash@^4.0.0, lodash@^4.17.21, lodash@^4.3.0: +lodash.truncate@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" + integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== + +lodash@^4.17.21: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -4357,20 +4049,43 @@ markdown-it@^13.0.1: mdurl "^1.0.1" uc.micro "^1.0.5" +mathml-tag-names@^2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz#4ddadd67308e780cf16a47685878ee27b736a0a3" + integrity sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg== + +mdn-data@2.0.30: + version "2.0.30" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.30.tgz#ce4df6f80af6cfbe218ecd5c552ba13c4dfa08cc" + integrity sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA== + mdurl@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" integrity sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g== +meow@^13.2.0: + version "13.2.0" + resolved "https://registry.yarnpkg.com/meow/-/meow-13.2.0.tgz#6b7d63f913f984063b3cc261b6e8800c4cd3474f" + integrity sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA== + merge-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== -merge@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.1.tgz#38bebf80c3220a8a487b6fcfb3941bb11720c145" - integrity sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ== +merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +micromatch@^4.0.4, micromatch@^4.0.7: + version "4.0.7" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.7.tgz#33e8190d9fe474a9895525f5618eee136d46c2e5" + integrity sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q== + dependencies: + braces "^3.0.3" + picomatch "^2.3.1" micromatch@^4.0.5: version "4.0.5" @@ -4399,7 +4114,7 @@ mini-css-extract-plugin@^2.6.1: dependencies: schema-utils "^4.0.0" -minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: +minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== @@ -4413,18 +4128,6 @@ minimatch@^5.0.1, minimatch@^5.1.0: dependencies: brace-expansion "^2.0.1" -minimatch@~3.0.2: - version "3.0.8" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.8.tgz#5e6a59bd11e2ab0de1cfb843eb2d82e546c321c1" - integrity sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q== - dependencies: - brace-expansion "^1.1.7" - -minimist@1.1.x: - version "1.1.3" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.1.3.tgz#3bedfd91a92d39016fcfaa1c681e8faa1a1efda8" - integrity sha512-2RbeLaM/Hbo9vJ1+iRrxzfDnX9108qb2m923U+s+Ot2eMey0IYGdSjzHmvtg2XsxoCuMnzOMw7qc573RvnLgwg== - minimist@^1.2.0, minimist@^1.2.6: version "1.2.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" @@ -4506,7 +4209,7 @@ mkdirp-infer-owner@^2.0.0: infer-owner "^1.0.4" mkdirp "^1.0.3" -mkdirp@0.5.6, mkdirp@^0.5.0, mkdirp@^0.5.1: +mkdirp@0.5.6: version "0.5.6" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== @@ -4536,11 +4239,6 @@ mrmime@^2.0.0: resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-2.0.0.tgz#151082a6e06e59a9a39b46b3e14d5cfe92b3abb4" integrity sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw== -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== - ms@2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" @@ -4551,11 +4249,6 @@ ms@^2.0.0, ms@^2.1.1, ms@^2.1.2: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -mute-stream@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0" - integrity sha512-EbrziT4s8cWPmzr47eYVW3wimS4HsvlnV5ri1xw1aR6JQo/OrJX5rkl32K/QQHdxeabJETtfeaROGhd8W7uBgg== - mute-stream@~0.0.4: version "0.0.8" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" @@ -4581,11 +4274,6 @@ neo-async@^2.6.2: resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== -next-tick@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" - integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== - node-gyp@^9.0.0, node-gyp@^9.1.0: version "9.4.1" resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-9.4.1.tgz#8a1023e0d6766ecb52764cc3a734b36ff275e185" @@ -4818,12 +4506,7 @@ npmlog@^6.0.0, npmlog@^6.0.2: gauge "^4.0.3" set-blocking "^2.0.0" -number-is-nan@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - integrity sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ== - -object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: +object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== @@ -4900,28 +4583,11 @@ once@^1.3.0: dependencies: wrappy "1" -onetime@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" - integrity sha512-GZ+g4jayMqzCRMgB2sol7GiCLjKfS1PINkjmx8spcKce1LiVqcbQreXwqs2YAFXC6R03VIG28ZS31t8M866v6A== - opener@^1.5.2: version "1.5.2" resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== -optionator@^0.8.1: - version "0.8.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" - integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.6" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - word-wrap "~1.2.3" - optionator@^0.9.3: version "0.9.3" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" @@ -4934,11 +4600,6 @@ optionator@^0.9.3: prelude-ls "^1.2.1" type-check "^0.4.0" -os-homedir@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - integrity sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ== - p-limit@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" @@ -5061,11 +4722,6 @@ path-is-absolute@^1.0.0: resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== -path-is-inside@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - integrity sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w== - path-key@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" @@ -5086,6 +4742,11 @@ picocolors@^1.0.0: resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== +picocolors@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1" + integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew== + picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" @@ -5105,11 +4766,6 @@ pkg-dir@^7.0.0: dependencies: find-up "^6.3.0" -pluralize@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45" - integrity sha512-TH+BeeL6Ct98C7as35JbZLf8lgsRzlNJb5gklRIGHKaPkGl1esOKBc5ALUMd+q08Sr6tiEKM+Icbsxg5vuhMKQ== - postcss-custom-properties@^12.1.10: version "12.1.11" resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-12.1.11.tgz#d14bb9b3989ac4d40aaa0e110b43be67ac7845cf" @@ -5134,6 +4790,11 @@ postcss-loader@^7.0.1: jiti "^1.20.0" semver "^7.5.4" +postcss-media-query-parser@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz#27b39c6f4d94f81b1a73b8f76351c609e5cef244" + integrity sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig== + postcss-modules-extract-imports@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d" @@ -5162,6 +4823,21 @@ postcss-modules-values@^4.0.0: dependencies: icss-utils "^5.0.0" +postcss-resolve-nested-selector@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz#29ccbc7c37dedfac304e9fff0bf1596b3f6a0e4e" + integrity sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw== + +postcss-safe-parser@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-7.0.0.tgz#6273d4e5149e286db5a45bc6cf6eafcad464014a" + integrity sha512-ovehqRNVCpuFzbXoTb4qLtyzK3xn3t/CUBxOs8LsnQjQrShaB4lKiHoVqY8ANaC0hBMHq5QVWk77rwGklFUDrg== + +postcss-scss@^4.0.9: + version "4.0.9" + resolved "https://registry.yarnpkg.com/postcss-scss/-/postcss-scss-4.0.9.tgz#a03c773cd4c9623cb04ce142a52afcec74806685" + integrity sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A== + postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4: version "6.0.15" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz#11cc2b21eebc0b99ea374ffb9887174855a01535" @@ -5170,6 +4846,14 @@ postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.2, postcss-selecto cssesc "^3.0.0" util-deprecate "^1.0.2" +postcss-selector-parser@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz#49694cb4e7c649299fea510a29fa6577104bcf53" + integrity sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" @@ -5184,31 +4868,25 @@ postcss@^8.2.14, postcss@^8.4.18, postcss@^8.4.21: picocolors "^1.0.0" source-map-js "^1.0.2" +postcss@^8.4.38: + version "8.4.38" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.38.tgz#b387d533baf2054288e337066d81c6bee9db9e0e" + integrity sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A== + dependencies: + nanoid "^3.3.7" + picocolors "^1.0.0" + source-map-js "^1.2.0" + prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== - proc-log@^2.0.0, proc-log@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-2.0.1.tgz#8f3f69a1f608de27878f91f5c688b225391cb685" integrity sha512-Kcmo2FhfDTXdcbfDH76N7uBYHINxc/8GW7UAVuVP9I+Va3uHSerrnKV6dLooga/gh7GlgzuCCr/eoldnL1muGw== -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -progress@^1.1.8: - version "1.1.8" - resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" - integrity sha512-UdA8mJ4weIkUBO224tIarHzuHs4HuYiJvsuGT7j/SPQiUJVjYvNDBIPa0hAorduOfjGohB/qHWRa/lrrWX/mXw== - promise-all-reject-late@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/promise-all-reject-late/-/promise-all-reject-late-1.0.1.tgz#f8ebf13483e5ca91ad809ccc2fcf25f26f8643c2" @@ -5305,19 +4983,6 @@ read@1, read@^1.0.7, read@~1.0.7: dependencies: mute-stream "~0.0.4" -readable-stream@^2.2.2: - version "2.3.8" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" - integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - readable-stream@^3.6.0: version "3.6.2" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" @@ -5344,15 +5009,6 @@ readdirp@~3.6.0: dependencies: picomatch "^2.2.1" -readline2@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/readline2/-/readline2-1.0.1.tgz#41059608ffc154757b715d9989d199ffbf372e35" - integrity sha512-8/td4MmwUB6PkZUbV25uKz7dfrmjYWxsW8DVfibWdlHRk/l/DfHKn4pU+dfcoGLFgWOdyGCzINRQD7jn+Bv+/g== - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - mute-stream "0.0.5" - rechoir@^0.8.0: version "0.8.0" resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.8.0.tgz#49f866e0d32146142da3ad8f0eff352b3215ff22" @@ -5444,14 +5100,6 @@ require-main-filename@^2.0.0: resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== -require-uncached@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" - integrity sha512-Xct+41K3twrbBHdxAgMoOS+cNcoqIjfM2/VxBF4LL2hVph7YsF8VSKyQ3BDFZwEVbok9yeDl2le/qo0S77WG2w== - dependencies: - caller-path "^0.1.0" - resolve-from "^1.0.0" - requirejs@^2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/requirejs/-/requirejs-2.3.6.tgz#e5093d9601c2829251258c0b9445d4d19fa9e7c9" @@ -5464,11 +5112,6 @@ resolve-cwd@^3.0.0: dependencies: resolve-from "^5.0.0" -resolve-from@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" - integrity sha512-kT10v4dhrlLNcnO084hEjvXCI1wUG9qZLoz2RogxqDQQYy7IxjI/iMUkOtQTNEh6rzHxvdQWHsJyel1pKOVCxg== - resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" @@ -5508,14 +5151,6 @@ resolve@^2.0.0-next.4: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -restore-cursor@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" - integrity sha512-reSjH4HuiFlxlaBaFCiS6O76ZGG2ygKoSlCsipKdaZuKSPx/+bt9mULkn4l0asVzbEfQQmXRg6Wp6gv6m0wElw== - dependencies: - exit-hook "^1.0.0" - onetime "^1.0.0" - retry@^0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" @@ -5533,20 +5168,6 @@ rimraf@^3.0.0, rimraf@^3.0.2: dependencies: glob "^7.1.3" -rimraf@~2.6.2: - version "2.6.3" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" - integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== - dependencies: - glob "^7.1.3" - -run-async@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389" - integrity sha512-qOX+w+IxFgpUpJfkv2oGN0+ExPs68F4sZHfaRRx4dDexAQkG83atugKVEylyT5ARees3HBbfmuvnjbrd8j9Wjw== - dependencies: - once "^1.3.0" - run-parallel@^1.1.9: version "1.2.0" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" @@ -5554,11 +5175,6 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -rx-lite@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102" - integrity sha512-1I1+G2gteLB8Tkt8YI1sJvSIfa0lWuRtC8GjvtyPBcLSF5jBCCJJqKrpER5JU5r6Bhe+i9/pK3VMuUcXu0kdwQ== - safe-array-concat@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.1.tgz#91686a63ce3adbea14d61b14c99572a8ff84754c" @@ -5574,11 +5190,6 @@ safe-buffer@^5.1.0, safe-buffer@~5.2.0: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== -safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - safe-regex-test@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" @@ -5593,26 +5204,6 @@ safe-regex-test@^1.0.0: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sass-lint@^1.13.1: - version "1.13.1" - resolved "https://registry.yarnpkg.com/sass-lint/-/sass-lint-1.13.1.tgz#5fd2b2792e9215272335eb0f0dc607f61e8acc8f" - integrity sha512-DSyah8/MyjzW2BWYmQWekYEKir44BpLqrCFsgs9iaWiVTcwZfwXHF586hh3D1n+/9ihUNMfd8iHAyb9KkGgs7Q== - dependencies: - commander "^2.8.1" - eslint "^2.7.0" - front-matter "2.1.2" - fs-extra "^3.0.1" - glob "^7.0.0" - globule "^1.0.0" - gonzales-pe-sl "^4.2.3" - js-yaml "^3.5.4" - known-css-properties "^0.3.0" - lodash.capitalize "^4.1.0" - lodash.kebabcase "^4.0.0" - merge "^1.2.0" - path-is-absolute "^1.0.0" - util "^0.10.3" - sass-loader@^13.1.0: version "13.3.3" resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-13.3.3.tgz#60df5e858788cffb1a3215e5b92e9cba61e7e133" @@ -5710,11 +5301,6 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -shelljs@^0.6.0: - version "0.6.1" - resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.6.1.tgz#ec6211bed1920442088fe0f70b2837232ed2c8a8" - integrity sha512-B1vvzXQlJ77SURr3SIUQ/afh+LwecDKAVKE1wqkBlr2PCHoZDaF6MFD+YX1u9ddQjR4z2CKx1tdqvS2Xfs5h1A== - side-channel@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" @@ -5729,6 +5315,11 @@ signal-exit@^3.0.7: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== +signal-exit@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + sirv@^2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/sirv/-/sirv-2.0.4.tgz#5dd9a725c578e34e449f332703eb2a74e46a29b0" @@ -5738,10 +5329,19 @@ sirv@^2.0.3: mrmime "^2.0.0" totalist "^3.0.0" -slice-ansi@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" - integrity sha512-up04hB2hR92PgjpyU3y/eg91yIBILyjVY26NvvciY3EVVPjybkMszMpXQ9QAkcS3I5rtJBDLoTxxg+qvW8c7rw== +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slice-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" + integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" smart-buffer@^4.2.0: version "4.2.0" @@ -5770,6 +5370,11 @@ socks@^2.6.2: resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== +source-map-js@^1.0.1, source-map-js@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af" + integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== + source-map-support@~0.5.20: version "0.5.21" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" @@ -5809,11 +5414,6 @@ spdx-license-ids@^3.0.0: resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz#a14f64e0954f6e25cc6587bd4f392522db0d998f" integrity sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw== -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== - ssri@^9.0.0, ssri@^9.0.1: version "9.0.1" resolved "https://registry.yarnpkg.com/ssri/-/ssri-9.0.1.tgz#544d4c357a8d7b71a19700074b6883fcb4eae057" @@ -5821,15 +5421,6 @@ ssri@^9.0.0, ssri@^9.0.1: dependencies: minipass "^3.1.1" -string-width@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - integrity sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw== - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" - "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" @@ -5839,14 +5430,6 @@ string-width@^1.0.1: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string-width@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - string.prototype.matchall@^4.0.8: version "4.0.10" resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz#a1553eb532221d4180c51581d6072cd65d1ee100" @@ -5896,27 +5479,6 @@ string_decoder@^1.1.1: dependencies: safe-buffer "~5.2.0" -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -strip-ansi@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg== - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - integrity sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow== - dependencies: - ansi-regex "^3.0.0" - strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" @@ -5924,6 +5486,13 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1: dependencies: ansi-regex "^5.0.1" +strip-ansi@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" + integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== + dependencies: + ansi-regex "^6.0.1" + strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" @@ -5939,15 +5508,90 @@ strip-json-comments@^3.1.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== -strip-json-comments@~1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-1.0.4.tgz#1e15fbcac97d3ee99bf2d73b4c656b082bbafb91" - integrity sha512-AOPG8EBc5wAikaG1/7uFCNFJwnKOuQwFTpYBdTW6OvWHeZBQBrAA/amefHGrEiOnCPcLFZK6FUPtWVKpQVIRgg== +stylelint-config-recommended-scss@^14.0.0: + version "14.0.0" + resolved "https://registry.yarnpkg.com/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-14.0.0.tgz#d3482c9817dada80b5ec01685b38fc8af8f7263f" + integrity sha512-HDvpoOAQ1RpF+sPbDOT2Q2/YrBDEJDnUymmVmZ7mMCeNiFSdhRdyGEimBkz06wsN+HaFwUh249gDR+I9JR7Onw== + dependencies: + postcss-scss "^4.0.9" + stylelint-config-recommended "^14.0.0" + stylelint-scss "^6.0.0" -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - integrity sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g== +stylelint-config-recommended@^14.0.0: + version "14.0.0" + resolved "https://registry.yarnpkg.com/stylelint-config-recommended/-/stylelint-config-recommended-14.0.0.tgz#b395c7014838d2aaca1755eebd914d0bb5274994" + integrity sha512-jSkx290CglS8StmrLp2TxAppIajzIBZKYm3IxT89Kg6fGlxbPiTiyH9PS5YUuVAFwaJLl1ikiXX0QWjI0jmgZQ== + +stylelint-config-sass-guidelines@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/stylelint-config-sass-guidelines/-/stylelint-config-sass-guidelines-11.1.0.tgz#0106f3ec4991a598823b55841bf45fce63268c8c" + integrity sha512-mVE3UmN8MlshK4Gb3eYk6f8tw9DkQ9yjMF4W9krlmpaNZpSXOdh13AL0sU7l/9l4Pnpt4KMobNNIRI0tJl56Cw== + dependencies: + postcss-scss "^4.0.9" + stylelint-scss "^6.2.1" + +stylelint-config-standard@^36.0.0: + version "36.0.0" + resolved "https://registry.yarnpkg.com/stylelint-config-standard/-/stylelint-config-standard-36.0.0.tgz#6704c044d611edc12692d4a5e37b039a441604d4" + integrity sha512-3Kjyq4d62bYFp/Aq8PMKDwlgUyPU4nacXsjDLWJdNPRUgpuxALu1KnlAHIj36cdtxViVhXexZij65yM0uNIHug== + dependencies: + stylelint-config-recommended "^14.0.0" + +stylelint-scss@^6.0.0, stylelint-scss@^6.2.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/stylelint-scss/-/stylelint-scss-6.3.1.tgz#eb56f23f4d3e0896647365ab1681653a00bdbc2b" + integrity sha512-w/czBoWUZxJNk5fBRPODcXSN4qcPv3WHjTSSpFovVY+TE3MZTMR0yRlbmaDYrm8tTWHvpwQAuEBZ0lk2wwkboQ== + dependencies: + known-css-properties "^0.31.0" + postcss-media-query-parser "^0.2.3" + postcss-resolve-nested-selector "^0.1.1" + postcss-selector-parser "^6.1.0" + postcss-value-parser "^4.2.0" + +stylelint@^16.3.1: + version "16.6.1" + resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-16.6.1.tgz#84735aca2bb5cde535572b7a9b878d2ec983a570" + integrity sha512-yNgz2PqWLkhH2hw6X9AweV9YvoafbAD5ZsFdKN9BvSDVwGvPh+AUIrn7lYwy1S7IHmtFin75LLfX1m0D2tHu8Q== + dependencies: + "@csstools/css-parser-algorithms" "^2.6.3" + "@csstools/css-tokenizer" "^2.3.1" + "@csstools/media-query-list-parser" "^2.1.11" + "@csstools/selector-specificity" "^3.1.1" + "@dual-bundle/import-meta-resolve" "^4.1.0" + balanced-match "^2.0.0" + colord "^2.9.3" + cosmiconfig "^9.0.0" + css-functions-list "^3.2.2" + css-tree "^2.3.1" + debug "^4.3.4" + fast-glob "^3.3.2" + fastest-levenshtein "^1.0.16" + file-entry-cache "^9.0.0" + global-modules "^2.0.0" + globby "^11.1.0" + globjoin "^0.1.4" + html-tags "^3.3.1" + ignore "^5.3.1" + imurmurhash "^0.1.4" + is-plain-object "^5.0.0" + known-css-properties "^0.31.0" + mathml-tag-names "^2.1.3" + meow "^13.2.0" + micromatch "^4.0.7" + normalize-path "^3.0.0" + picocolors "^1.0.1" + postcss "^8.4.38" + postcss-resolve-nested-selector "^0.1.1" + postcss-safe-parser "^7.0.0" + postcss-selector-parser "^6.1.0" + postcss-value-parser "^4.2.0" + resolve-from "^5.0.0" + string-width "^4.2.3" + strip-ansi "^7.1.0" + supports-hyperlinks "^3.0.0" + svg-tags "^1.0.0" + table "^6.8.2" + write-file-atomic "^5.0.1" supports-color@^5.3.0: version "5.5.0" @@ -5956,7 +5600,7 @@ supports-color@^5.3.0: dependencies: has-flag "^3.0.0" -supports-color@^7.1.0: +supports-color@^7.0.0, supports-color@^7.1.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== @@ -5970,22 +5614,34 @@ supports-color@^8.0.0: dependencies: has-flag "^4.0.0" +supports-hyperlinks@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-3.0.0.tgz#c711352a5c89070779b4dad54c05a2f14b15c94b" + integrity sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA== + dependencies: + has-flag "^4.0.0" + supports-color "^7.0.0" + supports-preserve-symlinks-flag@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== -table@^3.7.8: - version "3.8.3" - resolved "https://registry.yarnpkg.com/table/-/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f" - integrity sha512-RZuzIOtzFbprLCE0AXhkI0Xi42ZJLZhCC+qkwuMLf/Vjz3maWpA8gz1qMdbmNoI9cOROT2Am/DxeRyXenrL11g== +svg-tags@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764" + integrity sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA== + +table@^6.8.2: + version "6.8.2" + resolved "https://registry.yarnpkg.com/table/-/table-6.8.2.tgz#c5504ccf201213fa227248bdc8c5569716ac6c58" + integrity sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA== dependencies: - ajv "^4.7.0" - ajv-keywords "^1.0.0" - chalk "^1.1.1" - lodash "^4.0.0" - slice-ansi "0.0.4" - string-width "^2.0.0" + ajv "^8.0.1" + lodash.truncate "^4.4.2" + slice-ansi "^4.0.0" + string-width "^4.2.3" + strip-ansi "^6.0.1" tapable@^2.1.1, tapable@^2.2.0: version "2.2.1" @@ -6030,11 +5686,6 @@ text-table@^0.2.0, text-table@~0.2.0: resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== -through@^2.3.6: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== - tiny-relative-date@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/tiny-relative-date/-/tiny-relative-date-1.3.0.tgz#fa08aad501ed730f31cc043181d995c39a935e07" @@ -6079,28 +5730,11 @@ type-check@^0.4.0, type-check@~0.4.0: dependencies: prelude-ls "^1.2.1" -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== - dependencies: - prelude-ls "~1.1.2" - type-fest@^0.20.2: version "0.20.2" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== -type@^1.0.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" - integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== - -type@^2.7.2: - version "2.7.2" - resolved "https://registry.yarnpkg.com/type/-/type-2.7.2.tgz#2376a15a3a28b1efa0f5350dcf72d24df6ef98d0" - integrity sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw== - typed-array-buffer@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60" @@ -6140,11 +5774,6 @@ typed-array-length@^1.0.4: for-each "^0.3.3" is-typed-array "^1.1.9" -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== - uc.micro@^1.0.1, uc.micro@^1.0.5: version "1.0.6" resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" @@ -6202,11 +5831,6 @@ unique-slug@^3.0.0: dependencies: imurmurhash "^0.1.4" -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - update-browserslist-db@^1.0.13: version "1.0.13" resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4" @@ -6215,32 +5839,18 @@ update-browserslist-db@^1.0.13: escalade "^3.1.1" picocolors "^1.0.0" -uri-js@^4.2.2: +uri-js@^4.2.2, uri-js@^4.4.1: version "4.4.1" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== dependencies: punycode "^2.1.0" -user-home@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f" - integrity sha512-KMWqdlOcjCYdtIJpicDSFBQ8nFwS2i9sslAd6f4+CBGcU4gist2REnr2fxj2YocvJFxSF3ZOHLYLVZnUxv4BZQ== - dependencies: - os-homedir "^1.0.0" - -util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: +util-deprecate@^1.0.1, util-deprecate@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== -util@^0.10.3: - version "0.10.4" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901" - integrity sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A== - dependencies: - inherits "2.0.3" - validate-npm-package-license@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" @@ -6413,6 +6023,13 @@ which-typed-array@^1.1.11, which-typed-array@^1.1.13, which-typed-array@^1.1.9: gopd "^1.0.1" has-tostringtag "^1.0.0" +which@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + which@^2.0.1, which@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" @@ -6432,11 +6049,6 @@ wildcard@^2.0.0: resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.1.tgz#5ab10d02487198954836b6349f74fff961e10f67" integrity sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ== -word-wrap@~1.2.3: - version "1.2.5" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" - integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== - wrap-ansi@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" @@ -6459,23 +6071,19 @@ write-file-atomic@^4.0.0, write-file-atomic@^4.0.1: imurmurhash "^0.1.4" signal-exit "^3.0.7" -write@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" - integrity sha512-CJ17OoULEKXpA5pef3qLj5AxTJ6mSt7g84he2WIskKwqFO4T97d5V7Tadl0DYDk7qyUOQD5WlUlOMChaYrhxeA== +write-file-atomic@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-5.0.1.tgz#68df4717c55c6fa4281a7860b4c2ba0a6d2b11e7" + integrity sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw== dependencies: - mkdirp "^0.5.1" + imurmurhash "^0.1.4" + signal-exit "^4.0.1" ws@^7.3.1: version "7.5.9" resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== -xtend@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - y18n@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" From fba6110aebac9a68d2767241d7d944a0f44e7c22 Mon Sep 17 00:00:00 2001 From: Guy Sartorelli <36352093+GuySartorelli@users.noreply.github.com> Date: Thu, 20 Jun 2024 12:19:28 +1200 Subject: [PATCH 3/3] MNT Run module-standardiser (#148) --- .github/workflows/add-prs-to-project.yml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 .github/workflows/add-prs-to-project.yml diff --git a/.github/workflows/add-prs-to-project.yml b/.github/workflows/add-prs-to-project.yml new file mode 100644 index 0000000..2d3f41a --- /dev/null +++ b/.github/workflows/add-prs-to-project.yml @@ -0,0 +1,22 @@ +name: Add new PRs to github project + +on: + pull_request_target: + types: + - opened + - ready_for_review + +permissions: {} + +jobs: + addprtoproject: + name: Add PR to GitHub Project + # Only run on the silverstripe account + if: github.repository_owner == 'silverstripe' + runs-on: ubuntu-latest + steps: + - name: Add PR to github project + uses: silverstripe/gha-add-pr-to-project@v1 + with: + app_id: ${{ vars.PROJECT_PERMISSIONS_APP_ID }} + private_key: ${{ secrets.PROJECT_PERMISSIONS_APP_PRIVATE_KEY }}