diff --git a/admin/class-admin-asset-manager.php b/admin/class-admin-asset-manager.php index d9c16f15333..5904b2d592d 100644 --- a/admin/class-admin-asset-manager.php +++ b/admin/class-admin-asset-manager.php @@ -482,6 +482,7 @@ protected function load_renamed_scripts() { 'feature-flag' => 'feature-flag-package', 'helpers' => 'helpers-package', 'jed' => 'jed-package', + 'chart.js' => 'chart.js-package', 'legacy-components' => 'components-package', 'network-admin-script' => 'network-admin', 'redux' => 'redux-package', diff --git a/admin/views/redirects.php b/admin/views/redirects.php index f37a264bfa9..bae929682f4 100644 --- a/admin/views/redirects.php +++ b/admin/views/redirects.php @@ -17,7 +17,7 @@
- { __( "Tracking", "wordpress-seo" ) } - | -
+ |
+
{ > { __( "Position over time", "wordpress-seo" ) } | -+ { __( "Last updated", "wordpress-seo" ) } + | ++ { __( "Tracking", "wordpress-seo" ) } + | ? | -? | -- | + { __( "Activate tracking to show the ranking position", "wordpress-seo" ) } + | ); } if ( ! hasFreshData ) { return ( -
- |
-
+ |
);
}
return (
{ getKeyphrasePosition( rowData ) } | -{ |
-
- {
-
+ |
+
+ |
+ { formatLastUpdated( rowData.updated_at ) } |
);
}
@@ -201,10 +301,14 @@ export default function WincherTableRow( props ) {
isFocusKeyphrase,
isDisabled,
isLoading,
+ isSelected,
+ onSelectKeyphrases,
} = props;
const isEnabled = ! isEmpty( rowData );
+ const hasHistory = ! isEmpty( rowData?.position?.history );
+
const toggleAction = useCallback(
() => {
if ( isDisabled ) {
@@ -220,14 +324,35 @@ export default function WincherTableRow( props ) {
[ keyphrase, onTrackKeyphrase, onUntrackKeyphrase, isEnabled, rowData, isDisabled ]
);
- return
- { renderToggleState( { keyphrase, isEnabled, toggleAction, isLoading } ) }
- |
- { keyphrase }{ isFocusKeyphrase && * } |
+ /**
+ * Fires when checkbox value changes
+ *
+ * @returns {void}
+ */
+ const onChange = useCallback( () => {
+ onSelectKeyphrases( prev => isSelected ? prev.filter( e => e !== keyphrase ) : prev.concat( keyphrase ) );
+ }, [ onSelectKeyphrases, isSelected, keyphrase ] );
+
+ return
-
+
{ sprintf(
/* translators: %1$s expands to Yoast SEO Premium. */
__( "New to %1$s", "wordpress-seo" ),
@@ -76,7 +76,11 @@ export const AiGenerateTitlesAndDescriptionsUpsell = ( { learnMoreLink, upsellLi
ref={ initialFocus }
>
', \sprintf( - /* translators: %s expands to Wincher */ - \esc_html__( 'Currently, the %s integration is not available for multisites.', 'wordpress-seo' ), - 'Wincher' - ), ' '; + public function after_network_integration_toggle( $integration ) { + \_deprecated_function( __METHOD__, 'Yoast SEO 21.6' ); } } diff --git a/src/integrations/third-party/wordproof-integration-toggle.php b/src/deprecated/src/integrations/third-party/wordproof-integration-toggle.php similarity index 63% rename from src/integrations/third-party/wordproof-integration-toggle.php rename to src/deprecated/src/integrations/third-party/wordproof-integration-toggle.php index d352e7f9045..7c8074f5cb9 100644 --- a/src/integrations/third-party/wordproof-integration-toggle.php +++ b/src/deprecated/src/integrations/third-party/wordproof-integration-toggle.php @@ -10,6 +10,9 @@ /** * Class WordProofIntegrationToggle. * + * @deprecated 21.6 + * @codeCoverageIgnore + * * @package Yoast\WP\SEO\Integrations\Third_Party */ class Wordproof_Integration_Toggle implements Integration_Interface { @@ -24,6 +27,9 @@ class Wordproof_Integration_Toggle implements Integration_Interface { /** * The WordProof integration toggle constructor. * + * @deprecated 21.6 + * @codeCoverageIgnore + * * @param Wordproof_Helper $wordproof The WordProof helper instance. */ public function __construct( Wordproof_Helper $wordproof ) { @@ -33,6 +39,9 @@ public function __construct( Wordproof_Helper $wordproof ) { /** * Returns the conditionals based in which this loadable should be active. * + * @deprecated 21.6 + * @codeCoverageIgnore + * * @return array */ public static function get_conditionals() { @@ -44,51 +53,27 @@ public static function get_conditionals() { * * This is the place to register hooks and filters. * + * @deprecated 21.6 + * @codeCoverageIgnore + * * @return void */ public function register_hooks() { - /** - * Called by Yoast_Integration_Toggles to add extra toggles to the ones defined there. - */ - \add_filter( 'wpseo_integration_toggles', [ $this, 'add_integration_toggle' ] ); - - /** - * Update the default wordproof_integration_active depending if the integration is disabled or not. - */ - \add_filter( 'wpseo_option_wpseo_defaults', [ $this, 'default_values' ] ); - - /** - * Add extra text after the network integration toggle if the toggle is disabled. - */ - \add_action( 'Yoast\WP\SEO\admin_network_integration_after', [ $this, 'after_network_integration_toggle' ] ); + \_deprecated_function( __METHOD__, 'Yoast SEO 21.6' ); } /** * Adds the WordProof integration toggle to the array. * + * @deprecated 21.6 + * @codeCoverageIgnore + * * @param array $integration_toggles The integration toggles array. * * @return array The updated integration toggles array. */ public function add_integration_toggle( $integration_toggles ) { - if ( \is_array( $integration_toggles ) ) { - $integration_toggles[] = (object) [ - /* translators: %s expands to WordProof */ - 'name' => \sprintf( \__( '%s integration', 'wordpress-seo' ), 'WordProof' ), - 'setting' => 'wordproof_integration_active', - 'label' => \sprintf( - /* translators: %s expands to WordProof */ - \__( '%1$s can be used to timestamp your privacy page.', 'wordpress-seo' ), - 'WordProof' - ), - /* translators: %s expands to WordProof */ - 'read_more_label' => \sprintf( \__( 'Read more about how %s works.', 'wordpress-seo' ), 'WordProof ' ), - 'read_more_url' => 'https://yoa.st/wordproof-integration', - 'order' => 16, - 'disabled' => $this->wordproof->integration_is_disabled(), - 'new' => true, - ]; - } + \_deprecated_function( __METHOD__, 'Yoast SEO 21.6' ); return $integration_toggles; } @@ -144,14 +129,6 @@ public function after_integration_toggle( $integration ) { * @param Yoast_Feature_Toggle $integration The integration toggle class. */ public function after_network_integration_toggle( $integration ) { - if ( $integration->setting === 'wordproof_integration_active' ) { - if ( $integration->disabled ) { - echo '' . \sprintf( - /* translators: %s expands to WordProof */ - \esc_html__( 'Currently, the %s integration is not available for multisites.', 'wordpress-seo' ), - 'WordProof' - ) . ' '; - } - } + \_deprecated_function( __METHOD__, 'Yoast SEO 21.6' ); } } diff --git a/src/introductions/application/ai-generate-titles-and-descriptions-introduction-upsell.php b/src/introductions/application/ai-generate-titles-and-descriptions-introduction-upsell.php index fd99ebc96a2..14932c2b9c1 100644 --- a/src/introductions/application/ai-generate-titles-and-descriptions-introduction-upsell.php +++ b/src/introductions/application/ai-generate-titles-and-descriptions-introduction-upsell.php @@ -10,8 +10,6 @@ * Represents the introduction for the AI generate titles and introduction upsell. * * @phpcs:disable Yoast.NamingConventions.ObjectNameDepth.MaxExceeded - * - * @makePublic */ class Ai_Generate_Titles_And_Descriptions_Introduction_Upsell implements Introduction_Interface { diff --git a/src/introductions/application/introductions-collector.php b/src/introductions/application/introductions-collector.php index d0d4fd5efb4..a1361efac5a 100644 --- a/src/introductions/application/introductions-collector.php +++ b/src/introductions/application/introductions-collector.php @@ -8,8 +8,6 @@ /** * Manages the collection of introductions. - * - * @makePublic */ class Introductions_Collector { diff --git a/src/introductions/user-interface/wistia-embed-permission-route.php b/src/introductions/user-interface/wistia-embed-permission-route.php index 40ccfce0634..6ada268deea 100644 --- a/src/introductions/user-interface/wistia-embed-permission-route.php +++ b/src/introductions/user-interface/wistia-embed-permission-route.php @@ -14,8 +14,6 @@ /** * Registers a route to offer get/set of the wistia embed permission for a user. - * - * @makePublic */ class Wistia_Embed_Permission_Route implements Route_Interface { diff --git a/src/promotions/application/promotion-manager-interface.php b/src/promotions/application/promotion-manager-interface.php index 0b244c9e7bb..a2ef7a3b5dc 100644 --- a/src/promotions/application/promotion-manager-interface.php +++ b/src/promotions/application/promotion-manager-interface.php @@ -4,8 +4,6 @@ /** * Interface for the promotion manager. - * - * @makePublic */ interface Promotion_Manager_Interface { diff --git a/src/promotions/domain/black-friday-checklist-promotion.php b/src/promotions/domain/black-friday-checklist-promotion.php index 8ef4e6dd661..55a4c0be44b 100644 --- a/src/promotions/domain/black-friday-checklist-promotion.php +++ b/src/promotions/domain/black-friday-checklist-promotion.php @@ -4,8 +4,6 @@ /** * Class to manage the Black Friday checklist promotion. - * - * @makePublic */ class Black_Friday_Checklist_Promotion extends Abstract_Promotion implements Promotion_Interface { diff --git a/src/promotions/domain/black-friday-promotion.php b/src/promotions/domain/black-friday-promotion.php index 1693d315350..4fabea28650 100644 --- a/src/promotions/domain/black-friday-promotion.php +++ b/src/promotions/domain/black-friday-promotion.php @@ -4,8 +4,6 @@ /** * Class to manage the Black Friday promotion. - * - * @makePublic */ class Black_Friday_Promotion extends Abstract_Promotion implements Promotion_Interface { diff --git a/src/routes/wincher-route.php b/src/routes/wincher-route.php index 9c1c0126031..85c3ad72ccd 100644 --- a/src/routes/wincher-route.php +++ b/src/routes/wincher-route.php @@ -173,6 +173,9 @@ public function register_routes() { 'permalink' => [ 'required' => false, ], + 'startAt' => [ + 'required' => false, + ], ], ]; @@ -256,7 +259,7 @@ public function track_keyphrases( WP_REST_Request $request ) { * @return WP_REST_Response The response. */ public function get_tracked_keyphrases( WP_REST_Request $request ) { - $data = $this->keyphrases_action->get_tracked_keyphrases( $request['keyphrases'], $request['permalink'] ); + $data = $this->keyphrases_action->get_tracked_keyphrases( $request['keyphrases'], $request['permalink'], $request['startAt'] ); return new WP_REST_Response( $data, $data->status ); } diff --git a/src/user-profiles-additions/user-interface/user-profiles-additions-ui.php b/src/user-profiles-additions/user-interface/user-profiles-additions-ui.php index e58d64ca8e8..4c9c9789ea9 100644 --- a/src/user-profiles-additions/user-interface/user-profiles-additions-ui.php +++ b/src/user-profiles-additions/user-interface/user-profiles-additions-ui.php @@ -2,6 +2,8 @@ namespace Yoast\WP\SEO\User_Profiles_Additions\User_Interface; +use WPSEO_Admin_Asset_Manager; +use Yoast\WP\SEO\Helpers\Product_Helper; use Yoast\WP\SEO\Conditionals\User_Profile_Conditional; use Yoast\WP\SEO\Integrations\Integration_Interface; @@ -10,6 +12,34 @@ */ class User_Profiles_Additions_Ui implements Integration_Interface { + /** + * Holds the Product_Helper. + * + * @var Product_Helper + */ + private $product_helper; + + /** + * Holds the WPSEO_Admin_Asset_Manager. + * + * @var WPSEO_Admin_Asset_Manager + */ + private $asset_manager; + + /** + * Constructs Academy_Integration. + * + * @param WPSEO_Admin_Asset_Manager $asset_manager The WPSEO_Admin_Asset_Manager. + * @param Product_Helper $product_helper The Product_Helper. + */ + public function __construct( + WPSEO_Admin_Asset_Manager $asset_manager, + Product_Helper $product_helper + ) { + $this->asset_manager = $asset_manager; + $this->product_helper = $product_helper; + } + /** * Returns the conditionals based in which this loadable should be active. * @@ -31,13 +61,24 @@ public function register_hooks() { \add_action( 'edit_user_profile', [ $this, 'add_hook_to_user_profile' ] ); } + /** + * Enqueues the assets needed for this integration. + * + * @return void + */ + public function enqueue_assets() { + if ( $this->product_helper->is_premium() ) { + $this->asset_manager->enqueue_style( 'introductions' ); + } + } + /** * Add the inputs needed for SEO values to the User Profile page. * * @param WP_User $user User instance to output for. */ public function add_hook_to_user_profile( $user ) { - + $this->enqueue_assets(); echo '';
/**
diff --git a/tests/unit/actions/wincher/wincher-account-action-test.php b/tests/unit/actions/wincher/wincher-account-action-test.php
index 7c6855f404f..bb6c82eed96 100644
--- a/tests/unit/actions/wincher/wincher-account-action-test.php
+++ b/tests/unit/actions/wincher/wincher-account-action-test.php
@@ -81,10 +81,11 @@ public function test_check_limit() {
->andReturn(
[
'limits' => [
- 'keywords' => [
+ 'keywords' => [
'usage' => 10,
'limit' => 100,
],
+ 'history_days' => 31,
],
'status' => 200,
]
@@ -92,10 +93,11 @@ public function test_check_limit() {
$this->assertEquals(
(object) [
- 'canTrack' => true,
- 'limit' => 100,
- 'usage' => 10,
- 'status' => 200,
+ 'canTrack' => true,
+ 'limit' => 100,
+ 'usage' => 10,
+ 'status' => 200,
+ 'historyDays' => 31,
],
$this->instance->check_limit()
);
@@ -113,10 +115,11 @@ public function test_invalid_check_limit() {
->andReturn(
[
'limits' => [
- 'keywords' => [
+ 'keywords' => [
'usage' => 100,
'limit' => 100,
],
+ 'history_days' => 31,
],
'status' => 200,
]
@@ -124,10 +127,11 @@ public function test_invalid_check_limit() {
$this->assertEquals(
(object) [
- 'canTrack' => false,
- 'limit' => 100,
- 'usage' => 100,
- 'status' => 200,
+ 'canTrack' => false,
+ 'limit' => 100,
+ 'usage' => 100,
+ 'status' => 200,
+ 'historyDays' => 31,
],
$this->instance->check_limit()
);
@@ -145,10 +149,11 @@ public function test_unlimited_check_limit() {
->andReturn(
[
'limits' => [
- 'keywords' => [
+ 'keywords' => [
'usage' => 100000,
'limit' => null,
],
+ 'history_days' => 31,
],
'status' => 200,
]
@@ -156,10 +161,11 @@ public function test_unlimited_check_limit() {
$this->assertEquals(
(object) [
- 'canTrack' => true,
- 'limit' => null,
- 'usage' => 100000,
- 'status' => 200,
+ 'canTrack' => true,
+ 'limit' => null,
+ 'usage' => 100000,
+ 'status' => 200,
+ 'historyDays' => 31,
],
$this->instance->check_limit()
);
@@ -248,4 +254,25 @@ public function test_valid_get_upgrade_campaign() {
$this->instance->get_upgrade_campaign()
);
}
+
+ /**
+ * Tests empty get upgrade campaign.
+ *
+ * @covers ::get_upgrade_campaign
+ */
+ public function test_empty_get_upgrade_campaign() {
+ $this->client_instance
+ ->expects( 'get' )
+ ->with( 'https://api.wincher.com/v1/yoast/upgrade-campaign' )
+ ->andReturn( [] );
+
+ $this->assertEquals(
+ (object) [
+ 'discount' => null,
+ 'months' => null,
+ 'status' => 200,
+ ],
+ $this->instance->get_upgrade_campaign()
+ );
+ }
}
diff --git a/tests/unit/actions/wincher/wincher-keyphrases-action-test.php b/tests/unit/actions/wincher/wincher-keyphrases-action-test.php
index 03ddc04fcca..812140c2013 100644
--- a/tests/unit/actions/wincher/wincher-keyphrases-action-test.php
+++ b/tests/unit/actions/wincher/wincher-keyphrases-action-test.php
@@ -264,6 +264,7 @@ public function test_get_tracked_keyphrases() {
[
'keywords' => [ 'yoast seo', 'wincher' ],
'url' => null,
+ 'start_at' => null,
]
),
[
@@ -324,6 +325,7 @@ public function test_get_tracked_keyphrases_no_data_key() {
[
'keywords' => [ 'yoast seo' ],
'url' => null,
+ 'start_at' => null,
]
),
[
@@ -384,6 +386,7 @@ public function test_get_tracked_keyphrases_filtered_by_used_keyphrases() {
[
'keywords' => [ 'yoast seo' ],
'url' => null,
+ 'start_at' => null,
]
),
[
@@ -440,6 +443,7 @@ public function test_get_tracked_keyphrases_with_permalink() {
[
'keywords' => [ 'yoast seo', 'blog seo' ],
'url' => 'https://yoast.com/blog/',
+ 'start_at' => null,
]
),
[
diff --git a/tests/unit/bootstrap.php b/tests/unit/bootstrap.php
index 4538a077a9d..4fc6bfb17b0 100644
--- a/tests/unit/bootstrap.php
+++ b/tests/unit/bootstrap.php
@@ -36,7 +36,7 @@
define( 'YOAST_VENDOR_PREFIX_DIRECTORY', 'vendor_prefixed' );
define( 'YOAST_SEO_PHP_REQUIRED', '7.2.5' );
-define( 'YOAST_SEO_WP_TESTED', '6.3.2' );
+define( 'YOAST_SEO_WP_TESTED', '6.4' );
define( 'YOAST_SEO_WP_REQUIRED', '6.2' );
if ( ! defined( 'WPSEO_NAMESPACES' ) ) {
diff --git a/tests/unit/integrations/third-party/wincher-test.php b/tests/unit/integrations/third-party/wincher-test.php
deleted file mode 100644
index 0d2308f2ac7..00000000000
--- a/tests/unit/integrations/third-party/wincher-test.php
+++ /dev/null
@@ -1,168 +0,0 @@
-stubEscapeFunctions();
- $this->stubTranslationFunctions();
-
- $this->wincher = Mockery::mock( Wincher_Helper::class );
- $this->instance = Mockery::mock( Wincher::class, [ $this->wincher ] )
- ->makePartial()
- ->shouldAllowMockingProtectedMethods();
- }
-
- /**
- * Tests if given dependencies are set as expected.
- *
- * @covers ::__construct
- */
- public function test_constructor() {
- $this->assertInstanceOf( Wincher::class, $this->instance );
- $this->assertInstanceOf(
- Wincher_Helper::class,
- $this->getPropertyValue( $this->instance, 'wincher' )
- );
- }
-
- /**
- * Tests if the expected conditionals are in place.
- *
- * @covers ::get_conditionals
- */
- public function test_get_conditionals() {
- $this->assertEquals(
- [
- Admin_Conditional::class,
- ],
- Wincher::get_conditionals()
- );
- }
-
- /**
- * Tests the registration of the hooks.
- *
- * @covers ::register_hooks
- */
- public function test_register_hooks() {
- $this->instance->register_hooks();
-
- $this->assertNotFalse( Monkey\Filters\has( 'wpseo_integration_toggles', [ $this->instance, 'add_integration_toggle' ] ) );
- }
-
- /**
- * Tests the add_integration_toggle request function.
- *
- * @covers ::add_integration_toggle
- */
- public function test_add_integration_toggle() {
- $result = $this->instance->add_integration_toggle( $this->get_integration_toggles() );
- $this->assertEquals(
- (object) [
- 'name' => 'Wincher integration',
- 'setting' => 'wincher_integration_active',
- 'label' => 'The Wincher integration offers the option to track specific keyphrases and gain insights in their positions.',
- 'order' => 11,
- 'disabled' => false,
- ],
- $result[2]
- );
- }
-
- /**
- * Tests the disabled add_integration_toggle request function.
- *
- * @covers ::add_integration_toggle
- */
- public function test_add_integration_toggle_disabled() {
- Monkey\Functions\stubs( [ 'is_multisite' => true ] );
-
- $result = $this->instance->add_integration_toggle( $this->get_integration_toggles() );
- $this->assertEquals(
- (object) [
- 'name' => 'Wincher integration',
- 'setting' => 'wincher_integration_active',
- 'label' => 'The Wincher integration offers the option to track specific keyphrases and gain insights in their positions.',
- 'order' => 11,
- 'disabled' => true,
- ],
- $result[2]
- );
- }
-
- /**
- * Tests the after_network_integration_toggle method.
- *
- * @covers ::after_network_integration_toggle
- */
- public function test_after_network_integration_toggle() {
-
- $wincher_integration_toggle = (object) [
- 'setting' => 'wincher_integration_active',
- 'disabled' => true,
- ];
-
- $this->instance->expects( 'get_disabled_note' )->once();
-
- $this->instance->after_network_integration_toggle( $wincher_integration_toggle );
- }
-
- /**
- * The integration toggles to test with.
- *
- * @return array The integration toggles.
- */
- private function get_integration_toggles() {
- return [
- (object) [
- 'name' => 'Semrush integration',
- 'setting' => 'semrush_integration_active',
- 'label' => 'The Semrush integration offers suggestions and insights for keywords related to the entered focus keyphrase.',
- 'order' => 10,
- ],
- (object) [
- 'name' => 'Ryte integration',
- 'setting' => 'ryte_indexability',
- 'label' => 'Ryte will check weekly if your site is still indexable by search engines and Yoast SEO will notify you when this is not the case.',
- 'read_more_label' => 'Read more about how Ryte works.',
- 'read_more_url' => 'https://yoa.st/2an',
- 'order' => 15,
- ],
- ];
- }
-}
diff --git a/tests/unit/routes/wincher-route-test.php b/tests/unit/routes/wincher-route-test.php
index 30cc30cbcf8..d3320d57d43 100644
--- a/tests/unit/routes/wincher-route-test.php
+++ b/tests/unit/routes/wincher-route-test.php
@@ -168,6 +168,9 @@ public function test_register_routes() {
'permalink' => [
'required' => false,
],
+ 'startAt' => [
+ 'required' => false,
+ ],
],
]
);
@@ -357,11 +360,17 @@ public function test_get_tracked_keyphrases() {
->with( 'keyphrases' )
->andReturn( [ 'seo' ] );
+ $request
+ ->expects( 'offsetGet' )
+ ->with( 'startAt' )
+ ->andReturn( '2023-01-01' );
+
$this->keyphrases_action
->expects( 'get_tracked_keyphrases' )
->with(
[ 'seo' ],
- 'https://example.com'
+ 'https://example.com',
+ '2023-01-01'
)
->andReturn( (object) [ 'status' => '200' ] );
@@ -387,11 +396,17 @@ public function test_get_tracked_keyphrases_without_permalink() {
->with( 'keyphrases' )
->andReturn( [ 'seo' ] );
+ $request
+ ->expects( 'offsetGet' )
+ ->with( 'startAt' )
+ ->andReturn( '2023-01-01' );
+
$this->keyphrases_action
->expects( 'get_tracked_keyphrases' )
->with(
[ 'seo' ],
- ''
+ '',
+ '2023-01-01'
)
->andReturn( (object) [ 'status' => '200' ] );
diff --git a/tests/unit/user-profiles-additions/user-interface/user-profiles-additions-ui-test.php b/tests/unit/user-profiles-additions/user-interface/user-profiles-additions-ui-test.php
index 8f200078a33..41358e6c81b 100644
--- a/tests/unit/user-profiles-additions/user-interface/user-profiles-additions-ui-test.php
+++ b/tests/unit/user-profiles-additions/user-interface/user-profiles-additions-ui-test.php
@@ -4,6 +4,8 @@
use Brain\Monkey;
use Mockery;
+use WPSEO_Admin_Asset_Manager;
+use Yoast\WP\SEO\Helpers\Product_Helper;
use Yoast\WP\SEO\Conditionals\User_Profile_Conditional;
use Yoast\WP\SEO\Tests\Unit\TestCase;
use Yoast\WP\SEO\User_Profiles_Additions\User_Interface\User_Profiles_Additions_Ui;
@@ -18,6 +20,20 @@
*/
class User_Profiles_Additions_Ui_Test extends TestCase {
+ /**
+ * The mocked asset manager.
+ *
+ * @var Mockery\MockInterface|WPSEO_Admin_Asset_Manager
+ */
+ protected $asset_manager;
+
+ /**
+ * The mocked asset product helper.
+ *
+ * @var Mockery\MockInterface|Product_Helper
+ */
+ protected $product_helper;
+
/**
* The User_Profiles_Additions_Ui.
*
@@ -30,8 +46,26 @@ class User_Profiles_Additions_Ui_Test extends TestCase {
*/
protected function set_up() {
parent::set_up();
+ $this->asset_manager = Mockery::mock( 'WPSEO_Admin_Asset_Manager' );
+ $this->product_helper = Mockery::mock( 'Yoast\WP\SEO\Helpers\Product_Helper' );
+
+ $this->instance = new User_Profiles_Additions_Ui( $this->asset_manager, $this->product_helper );
+ }
- $this->instance = new User_Profiles_Additions_Ui();
+ /**
+ * Test construct method.
+ *
+ * @covers ::__construct
+ */
+ public function test_construct() {
+ $this->assertInstanceOf(
+ WPSEO_Admin_Asset_Manager::class,
+ $this->getPropertyValue( $this->instance, 'asset_manager' )
+ );
+ $this->assertInstanceOf(
+ Product_Helper::class,
+ $this->getPropertyValue( $this->instance, 'product_helper' )
+ );
}
/**
@@ -46,6 +80,26 @@ public function test_get_conditionals() {
);
}
+ /**
+ * Test enqueue_assets method.
+ *
+ * @covers ::enqueue_assets
+ */
+ public function test_enqueue_assets() {
+
+ $this->product_helper
+ ->expects( 'is_premium' )
+ ->once()
+ ->andReturn( true );
+
+ $this->asset_manager
+ ->expects( 'enqueue_style' )
+ ->with( 'introductions' )
+ ->once();
+
+ $this->instance->enqueue_assets();
+ }
+
/**
* Tests the registration of the hooks.
*
@@ -67,6 +121,11 @@ public function test_add_hook_to_user_profile() {
$user = Mockery::mock( \WP_User::class );
+ $this->product_helper
+ ->expects( 'is_premium' )
+ ->once()
+ ->andReturn( false );
+
Monkey\Actions\expectDone( 'wpseo_user_profile_additions' )
->once()
->with( $user );
diff --git a/wp-seo-main.php b/wp-seo-main.php
index a51197bafed..34bf056e95a 100644
--- a/wp-seo-main.php
+++ b/wp-seo-main.php
@@ -15,7 +15,7 @@
* {@internal Nobody should be able to overrule the real version number as this can cause
* serious issues with the options, so no if ( ! defined() ).}}
*/
-define( 'WPSEO_VERSION', '21.5-RC1' );
+define( 'WPSEO_VERSION', '21.5-RC4' );
if ( ! defined( 'WPSEO_PATH' ) ) {
@@ -35,7 +35,7 @@
define( 'YOAST_VENDOR_PREFIX_DIRECTORY', 'vendor_prefixed' );
define( 'YOAST_SEO_PHP_REQUIRED', '7.2.5' );
-define( 'YOAST_SEO_WP_TESTED', '6.3.2' );
+define( 'YOAST_SEO_WP_TESTED', '6.4' );
define( 'YOAST_SEO_WP_REQUIRED', '6.2' );
if ( ! defined( 'WPSEO_NAMESPACES' ) ) {
diff --git a/wp-seo.php b/wp-seo.php
index 2d7e1e6a731..e1cfb103a6d 100644
--- a/wp-seo.php
+++ b/wp-seo.php
@@ -8,7 +8,7 @@
*
* @wordpress-plugin
* Plugin Name: Yoast SEO
- * Version: 21.5-RC1
+ * Version: 21.5-RC4
* Plugin URI: https://yoa.st/1uj
* Description: The first true all-in-one SEO solution for WordPress, including on-page content analysis, XML sitemaps and much more.
* Author: Team Yoast
diff --git a/yarn.lock b/yarn.lock
index b472ce0274b..b586be195fe 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -16,6 +16,14 @@
dependencies:
"@jridgewell/trace-mapping" "^0.3.0"
+"@ampproject/remapping@^2.2.0":
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630"
+ integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==
+ dependencies:
+ "@jridgewell/gen-mapping" "^0.3.0"
+ "@jridgewell/trace-mapping" "^0.3.9"
+
"@axe-core/puppeteer@^4.2.0":
version "4.4.0"
resolved "https://registry.yarnpkg.com/@axe-core/puppeteer/-/puppeteer-4.4.0.tgz#7849cd1636d2e82c837ca91d3567e38c852e9957"
@@ -67,6 +75,21 @@
dependencies:
"@babel/highlight" "^7.18.6"
+"@babel/code-frame@^7.21.4":
+ version "7.21.4"
+ resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.21.4.tgz#d0fa9e4413aca81f2b23b9442797bda1826edb39"
+ integrity sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==
+ dependencies:
+ "@babel/highlight" "^7.18.6"
+
+"@babel/code-frame@^7.22.13":
+ version "7.22.13"
+ resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e"
+ integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==
+ dependencies:
+ "@babel/highlight" "^7.22.13"
+ chalk "^2.4.2"
+
"@babel/compat-data@^7.13.11":
version "7.13.15"
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.13.15.tgz#7e8eea42d0b64fda2b375b22d06c605222e848f4"
@@ -92,6 +115,11 @@
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.5.tgz#86f172690b093373a933223b4745deeb6049e733"
integrity sha512-KZXo2t10+/jxmkhNXc7pZTqRvSOIvVv/+lJwHS+B2rErwOyjuVRh60yVpb7liQ1U5t7lLJ1bz+t8tSypUZdm0g==
+"@babel/compat-data@^7.21.4":
+ version "7.21.4"
+ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.21.4.tgz#457ffe647c480dff59c2be092fc3acf71195c87f"
+ integrity sha512-/DYyDpeCfaVinT40FPGdkkb+lYSKvsVuMjDAG7jPOWWiM1ibOaB9CXJAlc4d1QpP/U2q2P9jbrSlClKSErd55g==
+
"@babel/core@7.12.9":
version "7.12.9"
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.9.tgz#fd450c4ec10cdbb980e2928b7aa7a28484593fc8"
@@ -199,46 +227,25 @@
json5 "^2.2.1"
semver "^6.3.0"
-"@babel/core@^7.17.9":
- version "7.17.9"
- resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.9.tgz#6bae81a06d95f4d0dec5bb9d74bbc1f58babdcfe"
- integrity sha512-5ug+SfZCpDAkVp9SFIZAzlW18rlzsOcJGaetCjkySnrXXDUw9AR8cDUm1iByTmdWM6yxX6/zycaV76w3YTF2gw==
- dependencies:
- "@ampproject/remapping" "^2.1.0"
- "@babel/code-frame" "^7.16.7"
- "@babel/generator" "^7.17.9"
- "@babel/helper-compilation-targets" "^7.17.7"
- "@babel/helper-module-transforms" "^7.17.7"
- "@babel/helpers" "^7.17.9"
- "@babel/parser" "^7.17.9"
- "@babel/template" "^7.16.7"
- "@babel/traverse" "^7.17.9"
- "@babel/types" "^7.17.0"
- convert-source-map "^1.7.0"
- debug "^4.1.0"
- gensync "^1.0.0-beta.2"
- json5 "^2.2.1"
- semver "^6.3.0"
-
-"@babel/core@^7.18.5":
- version "7.18.5"
- resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.18.5.tgz#c597fa680e58d571c28dda9827669c78cdd7f000"
- integrity sha512-MGY8vg3DxMnctw0LdvSEojOsumc70g0t18gNyUdAZqB1Rpd1Bqo/svHGvt+UJ6JcGX+DIekGFDxxIWofBxLCnQ==
- dependencies:
- "@ampproject/remapping" "^2.1.0"
- "@babel/code-frame" "^7.16.7"
- "@babel/generator" "^7.18.2"
- "@babel/helper-compilation-targets" "^7.18.2"
- "@babel/helper-module-transforms" "^7.18.0"
- "@babel/helpers" "^7.18.2"
- "@babel/parser" "^7.18.5"
- "@babel/template" "^7.16.7"
- "@babel/traverse" "^7.18.5"
- "@babel/types" "^7.18.4"
+"@babel/core@^7.17.9", "@babel/core@^7.18.5":
+ version "7.21.4"
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.21.4.tgz#c6dc73242507b8e2a27fd13a9c1814f9fa34a659"
+ integrity sha512-qt/YV149Jman/6AfmlxJ04LMIu8bMoyl3RB91yTFrxQmgbrSvQMy7cI8Q62FHx1t8wJ8B5fu0UDoLwHAhUo1QA==
+ dependencies:
+ "@ampproject/remapping" "^2.2.0"
+ "@babel/code-frame" "^7.21.4"
+ "@babel/generator" "^7.21.4"
+ "@babel/helper-compilation-targets" "^7.21.4"
+ "@babel/helper-module-transforms" "^7.21.2"
+ "@babel/helpers" "^7.21.0"
+ "@babel/parser" "^7.21.4"
+ "@babel/template" "^7.20.7"
+ "@babel/traverse" "^7.21.4"
+ "@babel/types" "^7.21.4"
convert-source-map "^1.7.0"
debug "^4.1.0"
gensync "^1.0.0-beta.2"
- json5 "^2.2.1"
+ json5 "^2.2.2"
semver "^6.3.0"
"@babel/core@^7.20.5":
@@ -369,15 +376,6 @@
jsesc "^2.5.1"
source-map "^0.5.0"
-"@babel/generator@^7.18.2":
- version "7.18.2"
- resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.2.tgz#33873d6f89b21efe2da63fe554460f3df1c5880d"
- integrity sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==
- dependencies:
- "@babel/types" "^7.18.2"
- "@jridgewell/gen-mapping" "^0.3.0"
- jsesc "^2.5.1"
-
"@babel/generator@^7.20.5":
version "7.20.5"
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.5.tgz#cb25abee3178adf58d6814b68517c62bdbfdda95"
@@ -387,6 +385,16 @@
"@jridgewell/gen-mapping" "^0.3.2"
jsesc "^2.5.1"
+"@babel/generator@^7.21.4":
+ version "7.21.4"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.21.4.tgz#64a94b7448989f421f919d5239ef553b37bb26bc"
+ integrity sha512-NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA==
+ dependencies:
+ "@babel/types" "^7.21.4"
+ "@jridgewell/gen-mapping" "^0.3.2"
+ "@jridgewell/trace-mapping" "^0.3.17"
+ jsesc "^2.5.1"
+
"@babel/helper-annotate-as-pure@^7.0.0", "@babel/helper-annotate-as-pure@^7.10.4", "@babel/helper-annotate-as-pure@^7.12.13":
version "7.12.13"
resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz#0f58e86dfc4bb3b1fcd7db806570e177d439b6ab"
@@ -408,6 +416,13 @@
dependencies:
"@babel/types" "^7.18.6"
+"@babel/helper-annotate-as-pure@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882"
+ integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==
+ dependencies:
+ "@babel/types" "^7.22.5"
+
"@babel/helper-builder-binary-assignment-operator-visitor@^7.16.7":
version "7.16.7"
resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz#38d138561ea207f0f69eb1626a418e4f7e6a580b"
@@ -426,7 +441,7 @@
browserslist "^4.14.5"
semver "^6.3.0"
-"@babel/helper-compilation-targets@^7.16.7", "@babel/helper-compilation-targets@^7.17.7":
+"@babel/helper-compilation-targets@^7.16.7":
version "7.17.7"
resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz#a3c2924f5e5f0379b356d4cfb313d1414dc30e46"
integrity sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==
@@ -446,16 +461,6 @@
browserslist "^4.20.2"
semver "^6.3.0"
-"@babel/helper-compilation-targets@^7.18.2":
- version "7.18.2"
- resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.2.tgz#67a85a10cbd5fc7f1457fec2e7f45441dc6c754b"
- integrity sha512-s1jnPotJS9uQnzFtiZVBUxe67CuBa679oWFHpxYYnTpRL/1ffhyX44R9uYiXoa/pLXcY9H2moJta0iaanlk/rQ==
- dependencies:
- "@babel/compat-data" "^7.17.10"
- "@babel/helper-validator-option" "^7.16.7"
- browserslist "^4.20.2"
- semver "^6.3.0"
-
"@babel/helper-compilation-targets@^7.20.0":
version "7.20.0"
resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz#6bf5374d424e1b3922822f1d9bdaa43b1a139d0a"
@@ -466,6 +471,17 @@
browserslist "^4.21.3"
semver "^6.3.0"
+"@babel/helper-compilation-targets@^7.21.4":
+ version "7.21.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.4.tgz#770cd1ce0889097ceacb99418ee6934ef0572656"
+ integrity sha512-Fa0tTuOXZ1iL8IeDFUWCzjZcn+sJGd9RZdH9esYVjEejGmzf+FFYQpMi/kZUk2kPy/q1H3/GPw7np8qar/stfg==
+ dependencies:
+ "@babel/compat-data" "^7.21.4"
+ "@babel/helper-validator-option" "^7.21.0"
+ browserslist "^4.21.3"
+ lru-cache "^5.1.1"
+ semver "^6.3.0"
+
"@babel/helper-create-class-features-plugin@^7.16.10", "@babel/helper-create-class-features-plugin@^7.16.7", "@babel/helper-create-class-features-plugin@^7.17.1", "@babel/helper-create-class-features-plugin@^7.17.6":
version "7.17.6"
resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.6.tgz#3778c1ed09a7f3e65e6d6e0f6fbfcc53809d92c9"
@@ -492,6 +508,21 @@
"@babel/helper-replace-supers" "^7.19.1"
"@babel/helper-split-export-declaration" "^7.18.6"
+"@babel/helper-create-class-features-plugin@^7.22.5":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz#97a61b385e57fe458496fad19f8e63b63c867de4"
+ integrity sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.22.5"
+ "@babel/helper-environment-visitor" "^7.22.5"
+ "@babel/helper-function-name" "^7.22.5"
+ "@babel/helper-member-expression-to-functions" "^7.22.15"
+ "@babel/helper-optimise-call-expression" "^7.22.5"
+ "@babel/helper-replace-supers" "^7.22.9"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5"
+ "@babel/helper-split-export-declaration" "^7.22.6"
+ semver "^6.3.1"
+
"@babel/helper-create-regexp-features-plugin@^7.12.13":
version "7.12.17"
resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.17.tgz#a2ac87e9e319269ac655b8d4415e94d38d663cb7"
@@ -543,16 +574,16 @@
dependencies:
"@babel/types" "^7.16.7"
-"@babel/helper-environment-visitor@^7.18.2":
- version "7.18.2"
- resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.2.tgz#8a6d2dedb53f6bf248e31b4baf38739ee4a637bd"
- integrity sha512-14GQKWkX9oJzPiQQ7/J36FTXcD4kSp8egKjO9nINlSKiHITRA9q/R74qu8S9xlc/b/yjsJItQUeeh3xnGN0voQ==
-
"@babel/helper-environment-visitor@^7.18.9":
version "7.18.9"
resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be"
integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==
+"@babel/helper-environment-visitor@^7.22.20", "@babel/helper-environment-visitor@^7.22.5":
+ version "7.22.20"
+ resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167"
+ integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==
+
"@babel/helper-explode-assignable-expression@^7.16.7":
version "7.16.7"
resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz#12a6d8522fdd834f194e868af6354e8650242b7a"
@@ -585,6 +616,22 @@
"@babel/template" "^7.18.10"
"@babel/types" "^7.19.0"
+"@babel/helper-function-name@^7.21.0":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz#d552829b10ea9f120969304023cd0645fa00b1b4"
+ integrity sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==
+ dependencies:
+ "@babel/template" "^7.20.7"
+ "@babel/types" "^7.21.0"
+
+"@babel/helper-function-name@^7.22.5":
+ version "7.23.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759"
+ integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==
+ dependencies:
+ "@babel/template" "^7.22.15"
+ "@babel/types" "^7.23.0"
+
"@babel/helper-get-function-arity@^7.16.7":
version "7.16.7"
resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz#ea08ac753117a669f1508ba06ebcc49156387419"
@@ -627,6 +674,13 @@
dependencies:
"@babel/types" "^7.18.9"
+"@babel/helper-member-expression-to-functions@^7.22.15":
+ version "7.23.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz#9263e88cc5e41d39ec18c9a3e0eced59a3e7d366"
+ integrity sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==
+ dependencies:
+ "@babel/types" "^7.23.0"
+
"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.13.12":
version "7.13.12"
resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz#c6a369a6f3621cb25da014078684da9196b61977"
@@ -683,20 +737,6 @@
"@babel/traverse" "^7.13.0"
"@babel/types" "^7.13.12"
-"@babel/helper-module-transforms@^7.18.0":
- version "7.18.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.18.0.tgz#baf05dec7a5875fb9235bd34ca18bad4e21221cd"
- integrity sha512-kclUYSUBIjlvnzN2++K9f2qzYKFgjmnmjwL4zlmU5f8ZtzgWe8s0rUPSTGy2HmK4P8T52MQsS+HTQAgZd3dMEA==
- dependencies:
- "@babel/helper-environment-visitor" "^7.16.7"
- "@babel/helper-module-imports" "^7.16.7"
- "@babel/helper-simple-access" "^7.17.7"
- "@babel/helper-split-export-declaration" "^7.16.7"
- "@babel/helper-validator-identifier" "^7.16.7"
- "@babel/template" "^7.16.7"
- "@babel/traverse" "^7.18.0"
- "@babel/types" "^7.18.0"
-
"@babel/helper-module-transforms@^7.20.2":
version "7.20.2"
resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz#ac53da669501edd37e658602a21ba14c08748712"
@@ -711,6 +751,20 @@
"@babel/traverse" "^7.20.1"
"@babel/types" "^7.20.2"
+"@babel/helper-module-transforms@^7.21.2":
+ version "7.21.2"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz#160caafa4978ac8c00ac66636cb0fa37b024e2d2"
+ integrity sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==
+ dependencies:
+ "@babel/helper-environment-visitor" "^7.18.9"
+ "@babel/helper-module-imports" "^7.18.6"
+ "@babel/helper-simple-access" "^7.20.2"
+ "@babel/helper-split-export-declaration" "^7.18.6"
+ "@babel/helper-validator-identifier" "^7.19.1"
+ "@babel/template" "^7.20.7"
+ "@babel/traverse" "^7.21.2"
+ "@babel/types" "^7.21.2"
+
"@babel/helper-optimise-call-expression@^7.12.13":
version "7.12.13"
resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz#5c02d171b4c8615b1e7163f888c1c81c30a2aaea"
@@ -732,6 +786,13 @@
dependencies:
"@babel/types" "^7.18.6"
+"@babel/helper-optimise-call-expression@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz#f21531a9ccbff644fdd156b4077c16ff0c3f609e"
+ integrity sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==
+ dependencies:
+ "@babel/types" "^7.22.5"
+
"@babel/helper-plugin-utils@7.10.4":
version "7.10.4"
resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375"
@@ -757,6 +818,11 @@
resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz#d1b9000752b18d0877cff85a5c376ce5c3121629"
integrity sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==
+"@babel/helper-plugin-utils@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295"
+ integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==
+
"@babel/helper-remap-async-to-generator@^7.16.8":
version "7.16.8"
resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz#29ffaade68a367e2ed09c90901986918d25e57e3"
@@ -798,6 +864,15 @@
"@babel/traverse" "^7.19.1"
"@babel/types" "^7.19.0"
+"@babel/helper-replace-supers@^7.22.9":
+ version "7.22.20"
+ resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz#e37d367123ca98fe455a9887734ed2e16eb7a793"
+ integrity sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==
+ dependencies:
+ "@babel/helper-environment-visitor" "^7.22.20"
+ "@babel/helper-member-expression-to-functions" "^7.22.15"
+ "@babel/helper-optimise-call-expression" "^7.22.5"
+
"@babel/helper-simple-access@^7.13.12":
version "7.13.12"
resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz#dd6c538afb61819d205a012c31792a39c7a5eaf6"
@@ -826,6 +901,13 @@
dependencies:
"@babel/types" "^7.16.0"
+"@babel/helper-skip-transparent-expression-wrappers@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz#007f15240b5751c537c40e77abb4e89eeaaa8847"
+ integrity sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==
+ dependencies:
+ "@babel/types" "^7.22.5"
+
"@babel/helper-split-export-declaration@^7.12.13":
version "7.12.13"
resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz#e9430be00baf3e88b0e13e6f9d4eaf2136372b05"
@@ -847,11 +929,23 @@
dependencies:
"@babel/types" "^7.18.6"
+"@babel/helper-split-export-declaration@^7.22.6":
+ version "7.22.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c"
+ integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==
+ dependencies:
+ "@babel/types" "^7.22.5"
+
"@babel/helper-string-parser@^7.19.4":
version "7.19.4"
resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63"
integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==
+"@babel/helper-string-parser@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f"
+ integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==
+
"@babel/helper-validator-identifier@^7.10.4", "@babel/helper-validator-identifier@^7.16.7":
version "7.16.7"
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad"
@@ -867,6 +961,11 @@
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2"
integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==
+"@babel/helper-validator-identifier@^7.22.20":
+ version "7.22.20"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0"
+ integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==
+
"@babel/helper-validator-option@^7.12.17":
version "7.12.17"
resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz#d1fbf012e1a79b7eebbfdc6d270baaf8d9eb9831"
@@ -882,6 +981,11 @@
resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8"
integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==
+"@babel/helper-validator-option@^7.21.0":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz#8224c7e13ace4bafdc4004da2cf064ef42673180"
+ integrity sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==
+
"@babel/helper-wrap-function@^7.16.8":
version "7.16.8"
resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz#58afda087c4cd235de92f7ceedebca2c41274200"
@@ -919,15 +1023,6 @@
"@babel/traverse" "^7.17.9"
"@babel/types" "^7.17.0"
-"@babel/helpers@^7.18.2":
- version "7.18.2"
- resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.18.2.tgz#970d74f0deadc3f5a938bfa250738eb4ac889384"
- integrity sha512-j+d+u5xT5utcQSzrh9p+PaJX94h++KN+ng9b9WEJq7pkUPAd61FGqhjuUEdfknb3E/uDBb7ruwEeKkIxNJPIrg==
- dependencies:
- "@babel/template" "^7.16.7"
- "@babel/traverse" "^7.18.2"
- "@babel/types" "^7.18.2"
-
"@babel/helpers@^7.20.5":
version "7.20.6"
resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.6.tgz#e64778046b70e04779dfbdf924e7ebb45992c763"
@@ -937,6 +1032,15 @@
"@babel/traverse" "^7.20.5"
"@babel/types" "^7.20.5"
+"@babel/helpers@^7.21.0":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.21.0.tgz#9dd184fb5599862037917cdc9eecb84577dc4e7e"
+ integrity sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==
+ dependencies:
+ "@babel/template" "^7.20.7"
+ "@babel/traverse" "^7.21.0"
+ "@babel/types" "^7.21.0"
+
"@babel/highlight@^7.10.4", "@babel/highlight@^7.12.13":
version "7.13.10"
resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.13.10.tgz#a8b2a66148f5b27d666b15d81774347a731d52d1"
@@ -964,6 +1068,15 @@
chalk "^2.0.0"
js-tokens "^4.0.0"
+"@babel/highlight@^7.22.13":
+ version "7.22.20"
+ resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.20.tgz#4ca92b71d80554b01427815e06f2df965b9c1f54"
+ integrity sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==
+ dependencies:
+ "@babel/helper-validator-identifier" "^7.22.20"
+ chalk "^2.4.2"
+ js-tokens "^4.0.0"
+
"@babel/parser@^7.0.0":
version "7.4.5"
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.4.5.tgz#04af8d5d5a2b044a2a1bffacc1e5e6673544e872"
@@ -999,10 +1112,15 @@
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.5.tgz#7f3c7335fe417665d929f34ae5dceae4c04015e8"
integrity sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA==
-"@babel/parser@^7.18.5":
- version "7.18.5"
- resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.5.tgz#337062363436a893a2d22faa60be5bb37091c83c"
- integrity sha512-YZWVaglMiplo7v8f1oMQ5ZPQr0vn7HPeZXxXWsxXJRjGVrzUFn9OxFQl1sb5wzfootjA/yChhW84BV+383FSOw==
+"@babel/parser@^7.20.7", "@babel/parser@^7.21.4":
+ version "7.21.4"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.4.tgz#94003fdfc520bbe2875d4ae557b43ddb6d880f17"
+ integrity sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==
+
+"@babel/parser@^7.22.15":
+ version "7.23.0"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.0.tgz#da950e622420bf96ca0d0f2909cdddac3acd8719"
+ integrity sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.7":
version "7.16.7"
@@ -1401,6 +1519,14 @@
dependencies:
"@babel/helper-plugin-utils" "^7.16.7"
+"@babel/plugin-transform-class-properties@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz#97a56e31ad8c9dc06a0b3710ce7803d5a48cca77"
+ integrity sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==
+ dependencies:
+ "@babel/helper-create-class-features-plugin" "^7.22.5"
+ "@babel/helper-plugin-utils" "^7.22.5"
+
"@babel/plugin-transform-classes@^7.12.1", "@babel/plugin-transform-classes@^7.16.7":
version "7.16.7"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz#8f4b9562850cd973de3b498f1218796eb181ce00"
@@ -2029,6 +2155,24 @@
"@babel/parser" "^7.18.10"
"@babel/types" "^7.18.10"
+"@babel/template@^7.20.7":
+ version "7.20.7"
+ resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8"
+ integrity sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==
+ dependencies:
+ "@babel/code-frame" "^7.18.6"
+ "@babel/parser" "^7.20.7"
+ "@babel/types" "^7.20.7"
+
+"@babel/template@^7.22.15":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38"
+ integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==
+ dependencies:
+ "@babel/code-frame" "^7.22.13"
+ "@babel/parser" "^7.22.15"
+ "@babel/types" "^7.22.15"
+
"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.1.6", "@babel/traverse@^7.12.11", "@babel/traverse@^7.12.9", "@babel/traverse@^7.13.0", "@babel/traverse@^7.16.7", "@babel/traverse@^7.16.8", "@babel/traverse@^7.17.3", "@babel/traverse@^7.4.5", "@babel/traverse@^7.7.2":
version "7.17.3"
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.3.tgz#0ae0f15b27d9a92ba1f2263358ea7c4e7db47b57"
@@ -2093,22 +2237,6 @@
debug "^4.1.0"
globals "^11.1.0"
-"@babel/traverse@^7.18.0", "@babel/traverse@^7.18.2", "@babel/traverse@^7.18.5":
- version "7.18.5"
- resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.5.tgz#94a8195ad9642801837988ab77f36e992d9a20cd"
- integrity sha512-aKXj1KT66sBj0vVzk6rEeAO6Z9aiiQ68wfDgge3nHhA/my6xMM/7HGQUNumKZaoa2qUPQ5whJG9aAifsxUKfLA==
- dependencies:
- "@babel/code-frame" "^7.16.7"
- "@babel/generator" "^7.18.2"
- "@babel/helper-environment-visitor" "^7.18.2"
- "@babel/helper-function-name" "^7.17.9"
- "@babel/helper-hoist-variables" "^7.16.7"
- "@babel/helper-split-export-declaration" "^7.16.7"
- "@babel/parser" "^7.18.5"
- "@babel/types" "^7.18.4"
- debug "^4.1.0"
- globals "^11.1.0"
-
"@babel/traverse@^7.19.1", "@babel/traverse@^7.20.1", "@babel/traverse@^7.20.5":
version "7.20.5"
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.5.tgz#78eb244bea8270fdda1ef9af22a5d5e5b7e57133"
@@ -2125,6 +2253,22 @@
debug "^4.1.0"
globals "^11.1.0"
+"@babel/traverse@^7.21.0", "@babel/traverse@^7.21.2", "@babel/traverse@^7.21.4":
+ version "7.21.4"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.21.4.tgz#a836aca7b116634e97a6ed99976236b3282c9d36"
+ integrity sha512-eyKrRHKdyZxqDm+fV1iqL9UAHMoIg0nDaGqfIOd8rKH17m5snv7Gn4qgjBoFfLz9APvjFU/ICT00NVCv1Epp8Q==
+ dependencies:
+ "@babel/code-frame" "^7.21.4"
+ "@babel/generator" "^7.21.4"
+ "@babel/helper-environment-visitor" "^7.18.9"
+ "@babel/helper-function-name" "^7.21.0"
+ "@babel/helper-hoist-variables" "^7.18.6"
+ "@babel/helper-split-export-declaration" "^7.18.6"
+ "@babel/parser" "^7.21.4"
+ "@babel/types" "^7.21.4"
+ debug "^4.1.0"
+ globals "^11.1.0"
+
"@babel/types@^7.0.0", "@babel/types@^7.3.0":
version "7.3.4"
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.3.4.tgz#bf482eaeaffb367a28abbf9357a94963235d90ed"
@@ -2159,14 +2303,6 @@
"@babel/helper-validator-identifier" "^7.16.7"
to-fast-properties "^2.0.0"
-"@babel/types@^7.18.0", "@babel/types@^7.18.2", "@babel/types@^7.18.4":
- version "7.18.4"
- resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.4.tgz#27eae9b9fd18e9dccc3f9d6ad051336f307be354"
- integrity sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw==
- dependencies:
- "@babel/helper-validator-identifier" "^7.16.7"
- to-fast-properties "^2.0.0"
-
"@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.20.2", "@babel/types@^7.20.5":
version "7.20.5"
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.5.tgz#e206ae370b5393d94dfd1d04cd687cace53efa84"
@@ -2176,6 +2312,24 @@
"@babel/helper-validator-identifier" "^7.19.1"
to-fast-properties "^2.0.0"
+"@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.21.2", "@babel/types@^7.21.4":
+ version "7.21.4"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.21.4.tgz#2d5d6bb7908699b3b416409ffd3b5daa25b030d4"
+ integrity sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA==
+ dependencies:
+ "@babel/helper-string-parser" "^7.19.4"
+ "@babel/helper-validator-identifier" "^7.19.1"
+ to-fast-properties "^2.0.0"
+
+"@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0":
+ version "7.23.0"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.0.tgz#8c1f020c9df0e737e4e247c0619f58c68458aaeb"
+ integrity sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==
+ dependencies:
+ "@babel/helper-string-parser" "^7.22.5"
+ "@babel/helper-validator-identifier" "^7.22.20"
+ to-fast-properties "^2.0.0"
+
"@base2/pretty-print-object@1.0.1":
version "1.0.1"
resolved "https://registry.yarnpkg.com/@base2/pretty-print-object/-/pretty-print-object-1.0.1.tgz#371ba8be66d556812dc7fb169ebc3c08378f69d4"
@@ -2949,6 +3103,14 @@
"@jridgewell/resolve-uri" "3.1.0"
"@jridgewell/sourcemap-codec" "1.4.14"
+"@jridgewell/trace-mapping@^0.3.17":
+ version "0.3.18"
+ resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6"
+ integrity sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==
+ dependencies:
+ "@jridgewell/resolve-uri" "3.1.0"
+ "@jridgewell/sourcemap-codec" "1.4.14"
+
"@jridgewell/trace-mapping@^0.3.8", "@jridgewell/trace-mapping@^0.3.9":
version "0.3.13"
resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz#dcfe3e95f224c8fe97a87a5235defec999aa92ea"
@@ -2957,6 +3119,11 @@
"@jridgewell/resolve-uri" "^3.0.3"
"@jridgewell/sourcemap-codec" "^1.4.10"
+"@kurkle/color@^0.3.0":
+ version "0.3.2"
+ resolved "https://registry.yarnpkg.com/@kurkle/color/-/color-0.3.2.tgz#5acd38242e8bde4f9986e7913c8fdf49d3aa199f"
+ integrity sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw==
+
"@lerna/add@6.4.1":
version "6.4.1"
resolved "https://registry.yarnpkg.com/@lerna/add/-/add-6.4.1.tgz#fa20fe9ff875dc5758141262c8cde0d9a6481ec4"
@@ -10842,6 +11009,18 @@ chardet@^0.7.0:
resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667"
integrity sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=
+chart.js@^4.2.1:
+ version "4.2.1"
+ resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-4.2.1.tgz#d2bd5c98e9a0ae35408975b638f40513b067ba1d"
+ integrity sha512-6YbpQ0nt3NovAgOzbkSSeeAQu/3za1319dPUQTXn9WcOpywM8rGKxJHrhS8V8xEkAlk8YhEfjbuAPfUyp6jIsw==
+ dependencies:
+ "@kurkle/color" "^0.3.0"
+
+chartjs-adapter-moment@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/chartjs-adapter-moment/-/chartjs-adapter-moment-1.0.1.tgz#0f04c30d330b207c14bfb57dfaae9ce332f09102"
+ integrity sha512-Uz+nTX/GxocuqXpGylxK19YG4R3OSVf8326D+HwSTsNw1LgzyIGRo+Qujwro1wy6X+soNSnfj5t2vZ+r6EaDmA==
+
check-node-version@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/check-node-version/-/check-node-version-4.1.0.tgz#12ff45bfeb8dd591700a0ab848c21b2d8ceeeb94"
@@ -26418,6 +26597,11 @@ react-base16-styling@^0.5.1:
lodash.flow "^3.3.0"
pure-color "^1.2.0"
+react-chartjs-2@^5.2.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/react-chartjs-2/-/react-chartjs-2-5.2.0.tgz#43c1e3549071c00a1a083ecbd26c1ad34d385f5d"
+ integrity sha512-98iN5aguJyVSxp5U3CblRLH67J8gkfyGNbiK3c+l1QI/G4irHMPQw44aEPmjVag+YKTyQ260NcF82GTQ3bdscA==
+
react-colorful@4.4.4:
version "4.4.4"
resolved "https://registry.yarnpkg.com/react-colorful/-/react-colorful-4.4.4.tgz#38e7c5b7075bbf63d3cce22d8c61a439a58b7561"
@@ -28268,6 +28452,11 @@ semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0:
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
+semver@^6.3.1:
+ version "6.3.1"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
+ integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
+
semver@^7.0.0, semver@^7.3.7:
version "7.3.8"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798"
|
---|