Below is a differential between the unpatched vulnerable code and the patched update, for reference.
--- a/wordpress-seo/inc/options/class-wpseo-taxonomy-meta.php
+++ b/wordpress-seo/inc/options/class-wpseo-taxonomy-meta.php
@@ -237,7 +237,9 @@
case 'wpseo_keywordsynonyms':
if ( isset( $meta_data[ $key ] ) && is_string( $meta_data[ $key ] ) ) {
// The data is stringified JSON. Use `json_decode` and `json_encode` around the sanitation.
- $input = json_decode( $meta_data[ $key ], true );
+ $input = json_decode( $meta_data[ $key ], true );
+ // If something is wrong with the JSON make sure this cannot break.
+ $input ??= [];
$sanitized = array_map( [ 'WPSEO_Utils', 'sanitize_text_field' ], $input );
$clean[ $key ] = WPSEO_Utils::format_json_encode( $sanitized );
}
--- a/wordpress-seo/src/dashboard/application/score-groups/abstract-score-groups-repository.php
+++ b/wordpress-seo/src/dashboard/application/score-groups/abstract-score-groups-repository.php
@@ -0,0 +1,61 @@
+<?php
+
+// phpcs:disable Yoast.NamingConventions.NamespaceName.TooLong
+namespace YoastWPSEODashboardApplicationScore_Groups;
+
+use YoastWPSEODashboardDomainScore_GroupsScore_Groups_Interface;
+
+/**
+ * Abstract repository to get score groups for a given score.
+ * Used for both SEO and readability score groups.
+ */
+abstract class Abstract_Score_Groups_Repository {
+
+ /**
+ * All score groups.
+ *
+ * @var Score_Groups_Interface[]
+ */
+ private $score_groups;
+
+ /**
+ * The constructor.
+ *
+ * @param Score_Groups_Interface ...$score_groups All score groups.
+ */
+ public function __construct( Score_Groups_Interface ...$score_groups ) {
+ $this->score_groups = $score_groups;
+ }
+
+ /**
+ * Returns the score group to use when no score is available.
+ *
+ * @return Score_Groups_Interface The "no" score group.
+ */
+ abstract protected function get_no_score_group(): Score_Groups_Interface;
+
+ /**
+ * Returns the score group that a score belongs to.
+ *
+ * @param int|null $score The score to be assigned into a group.
+ *
+ * @return Score_Groups_Interface The score group that the score belongs to.
+ */
+ public function get_score_group( ?int $score ): Score_Groups_Interface {
+ if ( $score === null || $score === 0 ) {
+ return $this->get_no_score_group();
+ }
+
+ foreach ( $this->score_groups as $score_group ) {
+ if ( $score_group->get_max_score() === null ) {
+ continue;
+ }
+
+ if ( $score >= $score_group->get_min_score() && $score <= $score_group->get_max_score() ) {
+ return $score_group;
+ }
+ }
+
+ return $this->get_no_score_group();
+ }
+}
--- a/wordpress-seo/src/dashboard/application/score-groups/readability-score-groups/readability-score-groups-repository.php
+++ b/wordpress-seo/src/dashboard/application/score-groups/readability-score-groups/readability-score-groups-repository.php
@@ -0,0 +1,34 @@
+<?php
+
+// phpcs:disable Yoast.NamingConventions.NamespaceName.MaxExceeded
+// phpcs:disable Yoast.NamingConventions.NamespaceName.TooLong
+namespace YoastWPSEODashboardApplicationScore_GroupsReadability_Score_Groups;
+
+use YoastWPSEODashboardApplicationScore_GroupsAbstract_Score_Groups_Repository;
+use YoastWPSEODashboardDomainScore_GroupsReadability_Score_GroupsNo_Readability_Score_Group;
+use YoastWPSEODashboardDomainScore_GroupsReadability_Score_GroupsReadability_Score_Groups_Interface;
+use YoastWPSEODashboardDomainScore_GroupsScore_Groups_Interface;
+
+/**
+ * The repository to get readability score groups.
+ */
+class Readability_Score_Groups_Repository extends Abstract_Score_Groups_Repository {
+
+ /**
+ * The constructor.
+ *
+ * @param Readability_Score_Groups_Interface ...$readability_score_groups All readability score groups.
+ */
+ public function __construct( Readability_Score_Groups_Interface ...$readability_score_groups ) {
+ parent::__construct( ...$readability_score_groups );
+ }
+
+ /**
+ * Returns the score group to use when no score is available.
+ *
+ * @return Score_Groups_Interface The "no" score group.
+ */
+ protected function get_no_score_group(): Score_Groups_Interface {
+ return new No_Readability_Score_Group();
+ }
+}
--- a/wordpress-seo/src/dashboard/application/score-groups/seo-score-groups/seo-score-groups-repository.php
+++ b/wordpress-seo/src/dashboard/application/score-groups/seo-score-groups/seo-score-groups-repository.php
@@ -4,20 +4,15 @@
// phpcs:disable Yoast.NamingConventions.NamespaceName.TooLong
namespace YoastWPSEODashboardApplicationScore_GroupsSEO_Score_Groups;
+use YoastWPSEODashboardApplicationScore_GroupsAbstract_Score_Groups_Repository;
+use YoastWPSEODashboardDomainScore_GroupsScore_Groups_Interface;
use YoastWPSEODashboardDomainScore_GroupsSEO_Score_GroupsNo_SEO_Score_Group;
use YoastWPSEODashboardDomainScore_GroupsSEO_Score_GroupsSEO_Score_Groups_Interface;
/**
* The repository to get SEO score groups.
*/
-class SEO_Score_Groups_Repository {
-
- /**
- * All SEO score groups.
- *
- * @var SEO_Score_Groups_Interface[]
- */
- private $seo_score_groups;
+class SEO_Score_Groups_Repository extends Abstract_Score_Groups_Repository {
/**
* The constructor.
@@ -25,31 +20,15 @@
* @param SEO_Score_Groups_Interface ...$seo_score_groups All SEO score groups.
*/
public function __construct( SEO_Score_Groups_Interface ...$seo_score_groups ) {
- $this->seo_score_groups = $seo_score_groups;
+ parent::__construct( ...$seo_score_groups );
}
/**
- * Returns the SEO score group that a SEO score belongs to.
+ * Returns the score group to use when no score is available.
*
- * @param int $seo_score The SEO score to be assigned into a group.
- *
- * @return SEO_Score_Groups_Interface The SEO score group that the SEO score belongs to.
+ * @return Score_Groups_Interface The "no" score group.
*/
- public function get_seo_score_group( ?int $seo_score ): SEO_Score_Groups_Interface {
- if ( $seo_score === null || $seo_score === 0 ) {
- return new No_SEO_Score_Group();
- }
-
- foreach ( $this->seo_score_groups as $seo_score_group ) {
- if ( $seo_score_group->get_max_score() === null ) {
- continue;
- }
-
- if ( $seo_score >= $seo_score_group->get_min_score() && $seo_score <= $seo_score_group->get_max_score() ) {
- return $seo_score_group;
- }
- }
-
+ protected function get_no_score_group(): Score_Groups_Interface {
return new No_SEO_Score_Group();
}
}
--- a/wordpress-seo/src/dashboard/infrastructure/indexables/top-page-indexable-collector.php
+++ b/wordpress-seo/src/dashboard/infrastructure/indexables/top-page-indexable-collector.php
@@ -60,7 +60,7 @@
$indexable = $this->get_top_page_indexable( $url );
if ( $indexable instanceof Indexable ) {
- $seo_score_group = $this->seo_score_groups_repository->get_seo_score_group( $indexable->primary_focus_keyword_score );
+ $seo_score_group = $this->seo_score_groups_repository->get_score_group( $indexable->primary_focus_keyword_score );
$edit_link = $this->get_top_page_edit_link( $indexable );
$top_page_data_container->add_data( new Top_Page_Data( $top_page, $seo_score_group, $edit_link ) );
--- a/wordpress-seo/src/general/user-interface/general-page-integration.php
+++ b/wordpress-seo/src/general/user-interface/general-page-integration.php
@@ -257,6 +257,7 @@
'preferences' => [
'isPremium' => $this->product_helper->is_premium(),
'isRtl' => is_rtl(),
+ 'userLocale' => get_user_locale(),
'pluginUrl' => plugins_url( '', WPSEO_FILE ),
'upsellSettings' => [
'actionId' => 'load-nfd-ctb',
--- a/wordpress-seo/src/general/user-interface/opt-in-route.php
+++ b/wordpress-seo/src/general/user-interface/opt-in-route.php
@@ -98,8 +98,20 @@
public function set_opt_in_seen( $request ) {
$key = $request->get_param( 'key' );
$current_user_id = $this->user_helper->get_current_user_id();
+ $meta_key = '_yoast_wpseo_' . $key . '_opt_in_notification_seen';
- $result = $this->user_helper->update_meta( $current_user_id, '_yoast_wpseo_' . $key . '_opt_in_notification_seen', true );
+ // If already seen, return success immediately (update_user_meta returns false when the value is unchanged).
+ if ( $this->user_helper->get_meta( $current_user_id, $meta_key, true ) === '1' ) {
+ return new WP_REST_Response(
+ (object) [
+ 'success' => true,
+ 'status' => 200,
+ ],
+ 200,
+ );
+ }
+
+ $result = $this->user_helper->update_meta( $current_user_id, $meta_key, true );
$success = $result !== false;
$status = ( $success ) ? 200 : 400;
--- a/wordpress-seo/src/generated/assets/externals.php
+++ b/wordpress-seo/src/generated/assets/externals.php
@@ -1 +1 @@
-<?php return array('reduxJsToolkit.js' => array('dependencies' => array('wp-polyfill', 'yoast-seo-redux-package'), 'version' => '425acbd30b98c737df6e'), 'aiFrontend.js' => array('dependencies' => array('lodash', 'react', 'wp-compose', 'wp-element', 'wp-i18n', 'wp-polyfill', 'yoast-seo-components-new-package', 'yoast-seo-prop-types-package', 'yoast-seo-replacement-variable-editor-package', 'yoast-seo-search-metadata-previews-package', 'yoast-seo-social-metadata-forms-package', 'yoast-seo-style-guide-package', 'yoast-seo-styled-components-package', 'yoast-seo-ui-library-package'), 'version' => '6a4c5085f186573222f8'), 'analysisReport.js' => array('dependencies' => array('lodash', 'react', 'react-jsx-runtime', 'wp-i18n', 'wp-polyfill', 'yoast-seo-components-new-package', 'yoast-seo-helpers-package', 'yoast-seo-prop-types-package', 'yoast-seo-style-guide-package', 'yoast-seo-styled-components-package'), 'version' => '34eef771ba6c89d4477c'), 'componentsNew.js' => array('dependencies' => array('lodash', 'react', 'react-dom', 'wp-a11y', 'wp-element', 'wp-i18n', 'wp-polyfill', 'yoast-seo-helpers-package', 'yoast-seo-prop-types-package', 'yoast-seo-style-guide-package', 'yoast-seo-styled-components-package'), 'version' => 'dc4603eb5d8a68dce425'), 'dashboardFrontend.js' => array('dependencies' => array('lodash', 'react', 'wp-element', 'wp-i18n', 'wp-polyfill', 'yoast-seo-chart.js-package', 'yoast-seo-redux-js-toolkit-package', 'yoast-seo-ui-library-package'), 'version' => '2e0d313685fbb9a64d1a'), 'featureFlag.js' => array('dependencies' => array('wp-polyfill'), 'version' => '91e54e3dd01f59a724ae'), 'helpers.js' => array('dependencies' => array('lodash', 'react', 'wp-i18n', 'wp-polyfill', 'yoast-seo-prop-types-package', 'yoast-seo-styled-components-package'), 'version' => '9621691b4c958e4df201'), 'relatedKeyphraseSuggestions.js' => array('dependencies' => array('lodash', 'react', 'wp-i18n', 'wp-polyfill', 'yoast-seo-prop-types-package', 'yoast-seo-ui-library-package'), 'version' => '03470a8a1e27cbc8c586'), 'replacementVariableEditor.js' => array('dependencies' => array('lodash', 'react', 'react-dom', 'wp-a11y', 'wp-components', 'wp-hooks', 'wp-i18n', 'wp-polyfill', 'yoast-seo-components-new-package', 'yoast-seo-draft-js-package', 'yoast-seo-helpers-package', 'yoast-seo-prop-types-package', 'yoast-seo-style-guide-package', 'yoast-seo-styled-components-package', 'yoast-seo-ui-library-package'), 'version' => 'fa5c0c2b59b073731c67'), 'searchMetadataPreviews.js' => array('dependencies' => array('lodash', 'react', 'react-dom', 'wp-element', 'wp-i18n', 'wp-polyfill', 'yoast-seo-analysis-package', 'yoast-seo-components-new-package', 'yoast-seo-helpers-package', 'yoast-seo-prop-types-package', 'yoast-seo-replacement-variable-editor-package', 'yoast-seo-style-guide-package', 'yoast-seo-styled-components-package', 'yoast-seo-ui-library-package'), 'version' => 'c046319a21221b3ed4ae'), 'socialMetadataForms.js' => array('dependencies' => array('lodash', 'react', 'wp-i18n', 'wp-polyfill', 'yoast-seo-helpers-package', 'yoast-seo-prop-types-package', 'yoast-seo-redux-package', 'yoast-seo-replacement-variable-editor-package', 'yoast-seo-style-guide-package', 'yoast-seo-styled-components-package', 'yoast-seo-ui-library-package'), 'version' => '854312d0890d517e080f'), 'styleGuide.js' => array('dependencies' => array('wp-polyfill', 'yoast-seo-helpers-package', 'yoast-seo-styled-components-package'), 'version' => 'a65ddb8de826da5fea4d'), 'uiLibrary.js' => array('dependencies' => array('lodash', 'react', 'react-dom', 'wp-polyfill', 'yoast-seo-prop-types-package', 'yoast-seo-redux-js-toolkit-package'), 'version' => '1d5a5e0c2d1ab3855d8a'), 'chart.js.js' => array('dependencies' => array('wp-polyfill'), 'version' => '196fb6740f0ef8ce192a'), 'draftJs.js' => array('dependencies' => array('react', 'react-dom', 'wp-polyfill'), 'version' => '1b760d06a7feabe5d9ae'), 'jed.js' => array('dependencies' => array('wp-polyfill'), 'version' => '28697086e82ae1cd0e88'), 'propTypes.js' => array('dependencies' => array('wp-polyfill'), 'version' => '4c546a0c9e97b70d3fe0'), 'reactHelmet.js' => array('dependencies' => array('react', 'wp-polyfill', 'yoast-seo-prop-types-package'), 'version' => 'b7d9f84f1dc499388f58'), 'redux.js' => array('dependencies' => array('lodash', 'wp-polyfill'), 'version' => '8ab8b1816693779c7200'), 'styledComponents.js' => array('dependencies' => array('react', 'wp-polyfill'), 'version' => '3c7b466139e7508cd799'), 'analysis.js' => array('dependencies' => array('lodash', 'wp-i18n', 'wp-polyfill', 'yoast-seo-feature-flag-package'), 'version' => '52323bdec023947791fc'));
+<?php return array('reduxJsToolkit.js' => array('dependencies' => array('wp-polyfill', 'yoast-seo-redux-package'), 'version' => '425acbd30b98c737df6e'), 'aiFrontend.js' => array('dependencies' => array('lodash', 'react', 'wp-compose', 'wp-element', 'wp-i18n', 'wp-polyfill', 'yoast-seo-components-new-package', 'yoast-seo-prop-types-package', 'yoast-seo-replacement-variable-editor-package', 'yoast-seo-search-metadata-previews-package', 'yoast-seo-social-metadata-forms-package', 'yoast-seo-style-guide-package', 'yoast-seo-styled-components-package', 'yoast-seo-ui-library-package'), 'version' => '6a4c5085f186573222f8'), 'analysisReport.js' => array('dependencies' => array('lodash', 'react', 'react-jsx-runtime', 'wp-i18n', 'wp-polyfill', 'yoast-seo-components-new-package', 'yoast-seo-helpers-package', 'yoast-seo-prop-types-package', 'yoast-seo-style-guide-package', 'yoast-seo-styled-components-package'), 'version' => '34eef771ba6c89d4477c'), 'componentsNew.js' => array('dependencies' => array('lodash', 'react', 'react-dom', 'wp-a11y', 'wp-element', 'wp-i18n', 'wp-polyfill', 'yoast-seo-helpers-package', 'yoast-seo-prop-types-package', 'yoast-seo-style-guide-package', 'yoast-seo-styled-components-package'), 'version' => 'dc4603eb5d8a68dce425'), 'dashboardFrontend.js' => array('dependencies' => array('lodash', 'react', 'wp-element', 'wp-i18n', 'wp-polyfill', 'yoast-seo-chart.js-package', 'yoast-seo-redux-js-toolkit-package', 'yoast-seo-ui-library-package'), 'version' => 'cf70d1a7c9d2710b76b4'), 'featureFlag.js' => array('dependencies' => array('wp-polyfill'), 'version' => '91e54e3dd01f59a724ae'), 'helpers.js' => array('dependencies' => array('lodash', 'react', 'wp-i18n', 'wp-polyfill', 'yoast-seo-prop-types-package', 'yoast-seo-styled-components-package'), 'version' => '9621691b4c958e4df201'), 'relatedKeyphraseSuggestions.js' => array('dependencies' => array('lodash', 'react', 'wp-i18n', 'wp-polyfill', 'yoast-seo-prop-types-package', 'yoast-seo-ui-library-package'), 'version' => '03470a8a1e27cbc8c586'), 'replacementVariableEditor.js' => array('dependencies' => array('lodash', 'react', 'react-dom', 'wp-a11y', 'wp-components', 'wp-hooks', 'wp-i18n', 'wp-polyfill', 'yoast-seo-components-new-package', 'yoast-seo-draft-js-package', 'yoast-seo-helpers-package', 'yoast-seo-prop-types-package', 'yoast-seo-style-guide-package', 'yoast-seo-styled-components-package', 'yoast-seo-ui-library-package'), 'version' => 'fa5c0c2b59b073731c67'), 'searchMetadataPreviews.js' => array('dependencies' => array('lodash', 'react', 'react-dom', 'wp-element', 'wp-i18n', 'wp-polyfill', 'yoast-seo-analysis-package', 'yoast-seo-components-new-package', 'yoast-seo-helpers-package', 'yoast-seo-prop-types-package', 'yoast-seo-replacement-variable-editor-package', 'yoast-seo-style-guide-package', 'yoast-seo-styled-components-package', 'yoast-seo-ui-library-package'), 'version' => '77f4c814cf8fc239d36b'), 'socialMetadataForms.js' => array('dependencies' => array('lodash', 'react', 'wp-i18n', 'wp-polyfill', 'yoast-seo-helpers-package', 'yoast-seo-prop-types-package', 'yoast-seo-redux-package', 'yoast-seo-replacement-variable-editor-package', 'yoast-seo-style-guide-package', 'yoast-seo-styled-components-package', 'yoast-seo-ui-library-package'), 'version' => '854312d0890d517e080f'), 'styleGuide.js' => array('dependencies' => array('wp-polyfill', 'yoast-seo-helpers-package', 'yoast-seo-styled-components-package'), 'version' => 'a65ddb8de826da5fea4d'), 'uiLibrary.js' => array('dependencies' => array('lodash', 'react', 'react-dom', 'wp-polyfill', 'yoast-seo-prop-types-package', 'yoast-seo-redux-js-toolkit-package'), 'version' => 'c1f3f75a19473dcef0e3'), 'chart.js.js' => array('dependencies' => array('wp-polyfill'), 'version' => '196fb6740f0ef8ce192a'), 'draftJs.js' => array('dependencies' => array('react', 'react-dom', 'wp-polyfill'), 'version' => '1b760d06a7feabe5d9ae'), 'jed.js' => array('dependencies' => array('wp-polyfill'), 'version' => '28697086e82ae1cd0e88'), 'propTypes.js' => array('dependencies' => array('wp-polyfill'), 'version' => '4c546a0c9e97b70d3fe0'), 'reactHelmet.js' => array('dependencies' => array('react', 'wp-polyfill', 'yoast-seo-prop-types-package'), 'version' => 'b7d9f84f1dc499388f58'), 'redux.js' => array('dependencies' => array('lodash', 'wp-polyfill'), 'version' => '8ab8b1816693779c7200'), 'styledComponents.js' => array('dependencies' => array('react', 'wp-polyfill'), 'version' => '3c7b466139e7508cd799'), 'analysis.js' => array('dependencies' => array('lodash', 'wp-i18n', 'wp-polyfill', 'yoast-seo-feature-flag-package'), 'version' => '52323bdec023947791fc'));
--- a/wordpress-seo/src/generated/assets/plugin.php
+++ b/wordpress-seo/src/generated/assets/plugin.php
@@ -1 +1 @@
-<?php return array('addon-installation.js' => array('dependencies' => array('react', 'react-jsx-runtime', 'wp-components', 'wp-element', 'wp-i18n', 'wp-polyfill', 'yoast-seo-components-new-package', 'yoast-seo-prop-types-package', 'yoast-seo-styled-components-package'), 'version' => 'de5a3b9ecce640dac8af'), 'admin-global.js' => array('dependencies' => array('jquery', 'wp-polyfill'), 'version' => 'afea66380308b381a3e4'), 'admin-modules.js' => array('dependencies' => array('react', 'react-jsx-runtime', 'wp-data', 'wp-element', 'wp-i18n', 'wp-polyfill', 'yoast-seo-components-new-package', 'yoast-seo-helpers-package', 'yoast-seo-prop-types-package'), 'version' => '7c7be57b5b58ed4a145d'), 'analysis-worker.js' => array('dependencies' => array('wp-polyfill'), 'version' => 'aa04978fbd423b404462'), 'api-client.js' => array('dependencies' => array('wp-polyfill'), 'version' => 'f56d7de163fa219c67e2'), 'block-editor.js' => array('dependencies' => array('lodash', 'moment', 'react', 'react-dom', 'react-jsx-runtime', 'wp-annotations', 'wp-api-fetch', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-data', 'wp-editor', 'wp-element', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-plugins', 'wp-polyfill', 'wp-rich-text', 'wp-sanitize', 'wp-url', 'yoast-seo-analysis-package', 'yoast-seo-chart.js-package', 'yoast-seo-components-new-package', 'yoast-seo-externals-components', 'yoast-seo-externals-contexts', 'yoast-seo-externals-redux', 'yoast-seo-feature-flag-package', 'yoast-seo-helpers-package', 'yoast-seo-prop-types-package', 'yoast-seo-react-helmet-package', 'yoast-seo-related-keyphrase-suggestions-package', 'yoast-seo-replacement-variable-editor-package', 'yoast-seo-search-metadata-previews-package', 'yoast-seo-social-metadata-forms-package', 'yoast-seo-style-guide-package', 'yoast-seo-styled-components-package', 'yoast-seo-ui-library-package'), 'version' => 'ad0f43839b877f154c52'), 'bulk-editor.js' => array('dependencies' => array('jquery', 'wp-polyfill'), 'version' => '308d4f19cc8fcb346d3d'), 'classic-editor.js' => array('dependencies' => array('jquery', 'lodash', 'moment', 'react', 'react-dom', 'react-jsx-runtime', 'wp-api-fetch', 'wp-components', 'wp-compose', 'wp-data', 'wp-element', 'wp-i18n', 'wp-polyfill', 'wp-sanitize', 'wp-url', 'yoast-seo-analysis-package', 'yoast-seo-chart.js-package', 'yoast-seo-components-new-package', 'yoast-seo-externals-components', 'yoast-seo-externals-contexts', 'yoast-seo-externals-redux', 'yoast-seo-feature-flag-package', 'yoast-seo-helpers-package', 'yoast-seo-prop-types-package', 'yoast-seo-react-helmet-package', 'yoast-seo-related-keyphrase-suggestions-package', 'yoast-seo-replacement-variable-editor-package', 'yoast-seo-search-metadata-previews-package', 'yoast-seo-social-metadata-forms-package', 'yoast-seo-style-guide-package', 'yoast-seo-styled-components-package', 'yoast-seo-ui-library-package'), 'version' => 'b551b9cfd3f0b392e89e'), 'crawl-settings.js' => array('dependencies' => array('wp-polyfill'), 'version' => 'd511931b46d0b74648b4'), 'dashboard-widget.js' => array('dependencies' => array('react-jsx-runtime', 'wp-element', 'wp-polyfill', 'yoast-seo-analysis-report-package', 'yoast-seo-components-new-package', 'yoast-seo-helpers-package', 'yoast-seo-style-guide-package'), 'version' => '751474c1233a3eb40fcd'), 'wincher-dashboard-widget.js' => array('dependencies' => array('lodash', 'moment', 'react-jsx-runtime', 'wp-api-fetch', 'wp-element', 'wp-i18n', 'wp-polyfill', 'yoast-seo-components-new-package', 'yoast-seo-helpers-package', 'yoast-seo-prop-types-package', 'yoast-seo-style-guide-package', 'yoast-seo-styled-components-package'), 'version' => '63d0a790229681c72b7e'), 'dynamic-blocks.js' => array('dependencies' => array('react-jsx-runtime', 'wp-block-editor', 'wp-blocks', 'wp-polyfill', 'wp-server-side-render'), 'version' => '0b62afb01d7a49465a20'), 'edit-page.js' => array('dependencies' => array('jquery', 'wp-polyfill'), 'version' => 'afab9d8fdff1d98c8ca9'), 'editor-modules.js' => array('dependencies' => array('lodash', 'react', 'react-dom', 'react-jsx-runtime', 'wp-api-fetch', 'wp-components', 'wp-compose', 'wp-data', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-polyfill', 'wp-sanitize', 'wp-url', 'yoast-seo-ai-frontend-package', 'yoast-seo-analysis-package', 'yoast-seo-analysis-report-package', 'yoast-seo-components-new-package', 'yoast-seo-externals-contexts', 'yoast-seo-externals-redux', 'yoast-seo-helpers-package', 'yoast-seo-prop-types-package', 'yoast-seo-react-helmet-package', 'yoast-seo-redux-js-toolkit-package', 'yoast-seo-related-keyphrase-suggestions-package', 'yoast-seo-replacement-variable-editor-package', 'yoast-seo-search-metadata-previews-package', 'yoast-seo-social-metadata-forms-package', 'yoast-seo-style-guide-package', 'yoast-seo-styled-components-package', 'yoast-seo-ui-library-package'), 'version' => '7b79e8a9c1a0a3e6bbcf'), 'elementor.js' => array('dependencies' => array('elementor-common', 'jquery', 'lodash', 'moment', 'react', 'react-dom', 'react-jsx-runtime', 'wp-annotations', 'wp-api-fetch', 'wp-components', 'wp-compose', 'wp-data', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-polyfill', 'wp-rich-text', 'wp-sanitize', 'wp-url', 'yoast-seo-analysis-package', 'yoast-seo-chart.js-package', 'yoast-seo-components-new-package', 'yoast-seo-externals-components', 'yoast-seo-externals-contexts', 'yoast-seo-externals-redux', 'yoast-seo-feature-flag-package', 'yoast-seo-helpers-package', 'yoast-seo-prop-types-package', 'yoast-seo-react-helmet-package', 'yoast-seo-redux-js-toolkit-package', 'yoast-seo-related-keyphrase-suggestions-package', 'yoast-seo-replacement-variable-editor-package', 'yoast-seo-search-metadata-previews-package', 'yoast-seo-social-metadata-forms-package', 'yoast-seo-style-guide-package', 'yoast-seo-styled-components-package', 'yoast-seo-ui-library-package'), 'version' => '8bbbbb1738f90a71deaa'), 'externals-components.js' => array('dependencies' => array('lodash', 'react', 'react-dom', 'react-jsx-runtime', 'wp-api-fetch', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-data', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-polyfill', 'wp-sanitize', 'wp-url', 'yoast-seo-ai-frontend-package', 'yoast-seo-analysis-package', 'yoast-seo-analysis-report-package', 'yoast-seo-components-new-package', 'yoast-seo-externals-contexts', 'yoast-seo-externals-redux', 'yoast-seo-helpers-package', 'yoast-seo-prop-types-package', 'yoast-seo-react-helmet-package', 'yoast-seo-redux-js-toolkit-package', 'yoast-seo-related-keyphrase-suggestions-package', 'yoast-seo-replacement-variable-editor-package', 'yoast-seo-search-metadata-previews-package', 'yoast-seo-social-metadata-forms-package', 'yoast-seo-style-guide-package', 'yoast-seo-styled-components-package', 'yoast-seo-ui-library-package'), 'version' => '3632e8168f1d55ecaa47'), 'externals-contexts.js' => array('dependencies' => array('react-jsx-runtime', 'wp-element', 'wp-polyfill', 'yoast-seo-prop-types-package'), 'version' => '300c2a3875f94498e3af'), 'externals-redux.js' => array('dependencies' => array('lodash', 'react-jsx-runtime', 'wp-api-fetch', 'wp-data', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-polyfill', 'wp-sanitize', 'wp-url', 'yoast-seo-helpers-package', 'yoast-seo-redux-js-toolkit-package'), 'version' => 'b99979e958e210631820'), 'filter-explanation.js' => array('dependencies' => array('wp-polyfill'), 'version' => '8b3042cee26c58eb9be7'), 'help-scout-beacon.js' => array('dependencies' => array('react-jsx-runtime', 'wp-element', 'wp-i18n', 'wp-polyfill', 'yoast-seo-styled-components-package'), 'version' => '952791cde3e1a9e961cd'), 'import.js' => array('dependencies' => array('jquery', 'lodash', 'wp-i18n', 'wp-polyfill'), 'version' => 'cbe848d7253c616f3a75'), 'indexation.js' => array('dependencies' => array('jquery', 'react-jsx-runtime', 'wp-element', 'wp-i18n', 'wp-polyfill', 'yoast-seo-components-new-package', 'yoast-seo-helpers-package', 'yoast-seo-prop-types-package', 'yoast-seo-style-guide-package', 'yoast-seo-styled-components-package'), 'version' => 'e31d5e05d493adec892a'), 'installation-success.js' => array('dependencies' => array('lodash', 'react', 'react-jsx-runtime', 'wp-dom-ready', 'wp-element', 'wp-i18n', 'wp-polyfill', 'yoast-seo-ui-library-package'), 'version' => '73410c74285694bf48e7'), 'integrations-page.js' => array('dependencies' => array('lodash', 'react', 'react-dom', 'react-jsx-runtime', 'wp-api-fetch', 'wp-components', 'wp-data', 'wp-dom-ready', 'wp-element', 'wp-i18n', 'wp-polyfill', 'yoast-seo-dashboard-frontend-package', 'yoast-seo-externals-contexts', 'yoast-seo-prop-types-package', 'yoast-seo-react-helmet-package', 'yoast-seo-styled-components-package', 'yoast-seo-ui-library-package'), 'version' => '4e41e995edfcf027a2d7'), 'introductions.js' => array('dependencies' => array('lodash', 'react', 'react-jsx-runtime', 'wp-api-fetch', 'wp-data', 'wp-dom-ready', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-polyfill', 'wp-url', 'yoast-seo-prop-types-package', 'yoast-seo-redux-js-toolkit-package', 'yoast-seo-ui-library-package'), 'version' => '241369c77a5a8c009d9b'), 'network-admin.js' => array('dependencies' => array('jquery', 'wp-polyfill'), 'version' => 'c28de4314d03147fca4a'), 'post-edit.js' => array('dependencies' => array('jquery', 'lodash', 'react-jsx-runtime', 'wp-annotations', 'wp-api', 'wp-api-fetch', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-data', 'wp-dom-ready', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-is-shallow-equal', 'wp-polyfill', 'wp-rich-text', 'wp-url', 'yoast-seo-analysis-package', 'yoast-seo-externals-redux', 'yoast-seo-feature-flag-package', 'yoast-seo-prop-types-package', 'yoast-seo-redux-js-toolkit-package', 'yoast-seo-styled-components-package'), 'version' => '4707f2a9996135159c93'), 'quick-edit-handler.js' => array('dependencies' => array('wp-polyfill'), 'version' => 'e7d3f8a9873afbfd1425'), 'reindex-links.js' => array('dependencies' => array('jquery', 'wp-polyfill'), 'version' => 'e4694eb7292052d53fc4'), 'redirect-old-features-tab.js' => array('dependencies' => array('wp-polyfill'), 'version' => 'a792fdd4c0d1c2ef737c'), 'settings.js' => array('dependencies' => array('jquery', 'lodash', 'react', 'react-jsx-runtime', 'wp-compose', 'wp-data', 'wp-dom-ready', 'wp-element', 'wp-i18n', 'wp-polyfill', 'wp-url', 'yoast-seo-externals-redux', 'yoast-seo-prop-types-package', 'yoast-seo-styled-components-package'), 'version' => 'f0bd6577ef9cce7ddb87'), 'new-settings.js' => array('dependencies' => array('lodash', 'react', 'react-dom', 'react-jsx-runtime', 'wp-api-fetch', 'wp-components', 'wp-data', 'wp-dom-ready', 'wp-element', 'wp-html-entities', 'wp-i18n', 'wp-polyfill', 'wp-url', 'yoast-seo-externals-redux', 'yoast-seo-prop-types-package', 'yoast-seo-react-helmet-package', 'yoast-seo-redux-js-toolkit-package', 'yoast-seo-replacement-variable-editor-package', 'yoast-seo-styled-components-package', 'yoast-seo-ui-library-package'), 'version' => '154fd187a8f455e35a8d'), 'redirects.js' => array('dependencies' => array('lodash', 'react', 'react-dom', 'react-jsx-runtime', 'wp-api-fetch', 'wp-components', 'wp-data', 'wp-dom-ready', 'wp-element', 'wp-i18n', 'wp-polyfill', 'wp-url', 'yoast-seo-prop-types-package', 'yoast-seo-react-helmet-package', 'yoast-seo-redux-js-toolkit-package', 'yoast-seo-styled-components-package', 'yoast-seo-ui-library-package'), 'version' => 'e8a481ecbb8f6ff96791'), 'academy.js' => array('dependencies' => array('lodash', 'react', 'react-jsx-runtime', 'wp-api-fetch', 'wp-components', 'wp-data', 'wp-dom-ready', 'wp-element', 'wp-i18n', 'wp-polyfill', 'wp-url', 'yoast-seo-redux-js-toolkit-package', 'yoast-seo-ui-library-package'), 'version' => 'ad100d1f98f9bb316a90'), 'general-page.js' => array('dependencies' => array('lodash', 'react', 'react-dom', 'react-jsx-runtime', 'wp-api-fetch', 'wp-components', 'wp-compose', 'wp-data', 'wp-dom-ready', 'wp-element', 'wp-i18n', 'wp-polyfill', 'wp-url', 'yoast-seo-dashboard-frontend-package', 'yoast-seo-externals-redux', 'yoast-seo-helpers-package', 'yoast-seo-prop-types-package', 'yoast-seo-react-helmet-package', 'yoast-seo-redux-js-toolkit-package', 'yoast-seo-social-metadata-forms-package', 'yoast-seo-ui-library-package'), 'version' => '3b42afd2e0a8bb306819'), 'support.js' => array('dependencies' => array('lodash', 'react', 'react-dom', 'react-jsx-runtime', 'wp-api-fetch', 'wp-components', 'wp-data', 'wp-dom-ready', 'wp-element', 'wp-i18n', 'wp-polyfill', 'wp-url', 'yoast-seo-externals-redux', 'yoast-seo-prop-types-package', 'yoast-seo-react-helmet-package', 'yoast-seo-redux-js-toolkit-package', 'yoast-seo-ui-library-package'), 'version' => '3816080b66dfe5877751'), 'how-to-block.js' => array('dependencies' => array('lodash', 'react', 'react-jsx-runtime', 'wp-a11y', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-element', 'wp-i18n', 'wp-is-shallow-equal', 'wp-polyfill', 'yoast-seo-prop-types-package'), 'version' => 'e49877f2db1ecb000c5c'), 'faq-block.js' => array('dependencies' => array('lodash', 'react', 'react-jsx-runtime', 'wp-a11y', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-element', 'wp-i18n', 'wp-is-shallow-equal', 'wp-polyfill', 'yoast-seo-prop-types-package'), 'version' => '48ce45f1da4fdbf0a6b0'), 'term-edit.js' => array('dependencies' => array('jquery', 'lodash', 'wp-annotations', 'wp-api', 'wp-api-fetch', 'wp-blocks', 'wp-data', 'wp-dom-ready', 'wp-hooks', 'wp-i18n', 'wp-is-shallow-equal', 'wp-polyfill', 'wp-rich-text', 'wp-url', 'yoast-seo-analysis-package', 'yoast-seo-externals-redux', 'yoast-seo-feature-flag-package', 'yoast-seo-redux-js-toolkit-package'), 'version' => 'a5204d5b214052280667'), 'used-keywords-assessment.js' => array('dependencies' => array('wp-polyfill', 'yoast-seo-analysis-package'), 'version' => 'f2d934f4e70fdace40fc'), 'workouts.js' => array('dependencies' => array('lodash', 'react', 'react-jsx-runtime', 'wp-api-fetch', 'wp-components', 'wp-compose', 'wp-data', 'wp-dom-ready', 'wp-element', 'wp-i18n', 'wp-polyfill', 'yoast-seo-components-new-package', 'yoast-seo-externals-contexts', 'yoast-seo-helpers-package', 'yoast-seo-prop-types-package', 'yoast-seo-styled-components-package'), 'version' => 'eb2a96eb9da8c1b5a33b'), 'frontend-inspector-resources.js' => array('dependencies' => array('lodash', 'react', 'react-jsx-runtime', 'wp-i18n', 'wp-polyfill', 'yoast-seo-analysis-package', 'yoast-seo-components-new-package', 'yoast-seo-prop-types-package', 'yoast-seo-style-guide-package'), 'version' => '16b6d236956e635b2cf3'), 'ai-generator.js' => array('dependencies' => array('lodash', 'react', 'react-dom', 'react-jsx-runtime', 'wp-api-fetch', 'wp-components', 'wp-data', 'wp-dom-ready', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-polyfill', 'wp-sanitize', 'wp-url', 'yoast-seo-ai-frontend-package', 'yoast-seo-analysis-package', 'yoast-seo-components-new-package', 'yoast-seo-externals-contexts', 'yoast-seo-helpers-package', 'yoast-seo-prop-types-package', 'yoast-seo-react-helmet-package', 'yoast-seo-redux-js-toolkit-package', 'yoast-seo-replacement-variable-editor-package', 'yoast-seo-search-metadata-previews-package', 'yoast-seo-social-metadata-forms-package', 'yoast-seo-style-guide-package', 'yoast-seo-styled-components-package', 'yoast-seo-ui-library-package'), 'version' => 'a779f591ce2e5bbe250a'), 'ai-consent.js' => array('dependencies' => array('lodash', 'react', 'react-dom', 'react-jsx-runtime', 'wp-api-fetch', 'wp-data', 'wp-dom-ready', 'wp-element', 'wp-i18n', 'wp-polyfill', 'wp-url', 'yoast-seo-prop-types-package', 'yoast-seo-react-helmet-package', 'yoast-seo-redux-js-toolkit-package', 'yoast-seo-ui-library-package'), 'version' => '3eba17584cd7b7181097'), 'plans.js' => array('dependencies' => array('lodash', 'react', 'react-jsx-runtime', 'wp-api-fetch', 'wp-components', 'wp-data', 'wp-dom-ready', 'wp-element', 'wp-i18n', 'wp-polyfill', 'wp-url', 'yoast-seo-externals-redux', 'yoast-seo-redux-js-toolkit-package', 'yoast-seo-ui-library-package'), 'version' => 'acb868e4444a60b1bfa3'));
+<?php return array('addon-installation.js' => array('dependencies' => array('react', 'react-jsx-runtime', 'wp-components', 'wp-element', 'wp-i18n', 'wp-polyfill', 'yoast-seo-components-new-package', 'yoast-seo-prop-types-package', 'yoast-seo-styled-components-package'), 'version' => 'de5a3b9ecce640dac8af'), 'admin-global.js' => array('dependencies' => array('jquery', 'wp-polyfill'), 'version' => 'afea66380308b381a3e4'), 'admin-modules.js' => array('dependencies' => array('react', 'react-jsx-runtime', 'wp-data', 'wp-element', 'wp-i18n', 'wp-polyfill', 'yoast-seo-components-new-package', 'yoast-seo-helpers-package', 'yoast-seo-prop-types-package'), 'version' => '7c7be57b5b58ed4a145d'), 'analysis-worker.js' => array('dependencies' => array('wp-polyfill'), 'version' => 'aa04978fbd423b404462'), 'api-client.js' => array('dependencies' => array('wp-polyfill'), 'version' => 'f56d7de163fa219c67e2'), 'block-editor.js' => array('dependencies' => array('lodash', 'moment', 'react', 'react-dom', 'react-jsx-runtime', 'wp-annotations', 'wp-api-fetch', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-data', 'wp-editor', 'wp-element', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-plugins', 'wp-polyfill', 'wp-rich-text', 'wp-sanitize', 'wp-url', 'yoast-seo-analysis-package', 'yoast-seo-chart.js-package', 'yoast-seo-components-new-package', 'yoast-seo-externals-components', 'yoast-seo-externals-contexts', 'yoast-seo-externals-redux', 'yoast-seo-feature-flag-package', 'yoast-seo-helpers-package', 'yoast-seo-prop-types-package', 'yoast-seo-react-helmet-package', 'yoast-seo-related-keyphrase-suggestions-package', 'yoast-seo-replacement-variable-editor-package', 'yoast-seo-search-metadata-previews-package', 'yoast-seo-social-metadata-forms-package', 'yoast-seo-style-guide-package', 'yoast-seo-styled-components-package', 'yoast-seo-ui-library-package'), 'version' => '03e377cde1cfd7468f49'), 'bulk-editor.js' => array('dependencies' => array('jquery', 'wp-polyfill'), 'version' => '308d4f19cc8fcb346d3d'), 'classic-editor.js' => array('dependencies' => array('jquery', 'lodash', 'moment', 'react', 'react-dom', 'react-jsx-runtime', 'wp-api-fetch', 'wp-components', 'wp-compose', 'wp-data', 'wp-element', 'wp-i18n', 'wp-polyfill', 'wp-sanitize', 'wp-url', 'yoast-seo-analysis-package', 'yoast-seo-chart.js-package', 'yoast-seo-components-new-package', 'yoast-seo-externals-components', 'yoast-seo-externals-contexts', 'yoast-seo-externals-redux', 'yoast-seo-feature-flag-package', 'yoast-seo-helpers-package', 'yoast-seo-prop-types-package', 'yoast-seo-react-helmet-package', 'yoast-seo-related-keyphrase-suggestions-package', 'yoast-seo-replacement-variable-editor-package', 'yoast-seo-search-metadata-previews-package', 'yoast-seo-social-metadata-forms-package', 'yoast-seo-style-guide-package', 'yoast-seo-styled-components-package', 'yoast-seo-ui-library-package'), 'version' => 'b551b9cfd3f0b392e89e'), 'crawl-settings.js' => array('dependencies' => array('wp-polyfill'), 'version' => 'd511931b46d0b74648b4'), 'dashboard-widget.js' => array('dependencies' => array('react-jsx-runtime', 'wp-element', 'wp-polyfill', 'yoast-seo-analysis-report-package', 'yoast-seo-components-new-package', 'yoast-seo-helpers-package', 'yoast-seo-style-guide-package'), 'version' => '751474c1233a3eb40fcd'), 'wincher-dashboard-widget.js' => array('dependencies' => array('lodash', 'moment', 'react-jsx-runtime', 'wp-api-fetch', 'wp-element', 'wp-i18n', 'wp-polyfill', 'yoast-seo-components-new-package', 'yoast-seo-helpers-package', 'yoast-seo-prop-types-package', 'yoast-seo-style-guide-package', 'yoast-seo-styled-components-package'), 'version' => '63d0a790229681c72b7e'), 'dynamic-blocks.js' => array('dependencies' => array('react-jsx-runtime', 'wp-block-editor', 'wp-blocks', 'wp-polyfill', 'wp-server-side-render'), 'version' => '0b62afb01d7a49465a20'), 'edit-page.js' => array('dependencies' => array('jquery', 'wp-polyfill'), 'version' => 'afab9d8fdff1d98c8ca9'), 'editor-modules.js' => array('dependencies' => array('lodash', 'react', 'react-dom', 'react-jsx-runtime', 'wp-api-fetch', 'wp-components', 'wp-compose', 'wp-data', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-polyfill', 'wp-sanitize', 'wp-url', 'yoast-seo-ai-frontend-package', 'yoast-seo-analysis-package', 'yoast-seo-analysis-report-package', 'yoast-seo-components-new-package', 'yoast-seo-externals-contexts', 'yoast-seo-externals-redux', 'yoast-seo-helpers-package', 'yoast-seo-prop-types-package', 'yoast-seo-react-helmet-package', 'yoast-seo-redux-js-toolkit-package', 'yoast-seo-related-keyphrase-suggestions-package', 'yoast-seo-replacement-variable-editor-package', 'yoast-seo-search-metadata-previews-package', 'yoast-seo-social-metadata-forms-package', 'yoast-seo-style-guide-package', 'yoast-seo-styled-components-package', 'yoast-seo-ui-library-package'), 'version' => '7b79e8a9c1a0a3e6bbcf'), 'elementor.js' => array('dependencies' => array('elementor-common', 'jquery', 'lodash', 'moment', 'react', 'react-dom', 'react-jsx-runtime', 'wp-annotations', 'wp-api-fetch', 'wp-components', 'wp-compose', 'wp-data', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-polyfill', 'wp-rich-text', 'wp-sanitize', 'wp-url', 'yoast-seo-analysis-package', 'yoast-seo-chart.js-package', 'yoast-seo-components-new-package', 'yoast-seo-externals-components', 'yoast-seo-externals-contexts', 'yoast-seo-externals-redux', 'yoast-seo-feature-flag-package', 'yoast-seo-helpers-package', 'yoast-seo-prop-types-package', 'yoast-seo-react-helmet-package', 'yoast-seo-redux-js-toolkit-package', 'yoast-seo-related-keyphrase-suggestions-package', 'yoast-seo-replacement-variable-editor-package', 'yoast-seo-search-metadata-previews-package', 'yoast-seo-social-metadata-forms-package', 'yoast-seo-style-guide-package', 'yoast-seo-styled-components-package', 'yoast-seo-ui-library-package'), 'version' => '8bbbbb1738f90a71deaa'), 'externals-components.js' => array('dependencies' => array('lodash', 'react', 'react-dom', 'react-jsx-runtime', 'wp-api-fetch', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-data', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-polyfill', 'wp-sanitize', 'wp-url', 'yoast-seo-ai-frontend-package', 'yoast-seo-analysis-package', 'yoast-seo-analysis-report-package', 'yoast-seo-components-new-package', 'yoast-seo-externals-contexts', 'yoast-seo-externals-redux', 'yoast-seo-helpers-package', 'yoast-seo-prop-types-package', 'yoast-seo-react-helmet-package', 'yoast-seo-redux-js-toolkit-package', 'yoast-seo-related-keyphrase-suggestions-package', 'yoast-seo-replacement-variable-editor-package', 'yoast-seo-search-metadata-previews-package', 'yoast-seo-social-metadata-forms-package', 'yoast-seo-style-guide-package', 'yoast-seo-styled-components-package', 'yoast-seo-ui-library-package'), 'version' => '3632e8168f1d55ecaa47'), 'externals-contexts.js' => array('dependencies' => array('react-jsx-runtime', 'wp-element', 'wp-polyfill', 'yoast-seo-prop-types-package'), 'version' => '300c2a3875f94498e3af'), 'externals-redux.js' => array('dependencies' => array('lodash', 'react-jsx-runtime', 'wp-api-fetch', 'wp-data', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-polyfill', 'wp-sanitize', 'wp-url', 'yoast-seo-helpers-package', 'yoast-seo-redux-js-toolkit-package'), 'version' => '994ba7c1449e905843fa'), 'filter-explanation.js' => array('dependencies' => array('wp-polyfill'), 'version' => '8b3042cee26c58eb9be7'), 'help-scout-beacon.js' => array('dependencies' => array('react-jsx-runtime', 'wp-element', 'wp-i18n', 'wp-polyfill', 'yoast-seo-styled-components-package'), 'version' => '952791cde3e1a9e961cd'), 'import.js' => array('dependencies' => array('jquery', 'lodash', 'wp-i18n', 'wp-polyfill'), 'version' => 'cbe848d7253c616f3a75'), 'indexation.js' => array('dependencies' => array('jquery', 'react-jsx-runtime', 'wp-element', 'wp-i18n', 'wp-polyfill', 'yoast-seo-components-new-package', 'yoast-seo-helpers-package', 'yoast-seo-prop-types-package', 'yoast-seo-style-guide-package', 'yoast-seo-styled-components-package'), 'version' => 'e31d5e05d493adec892a'), 'installation-success.js' => array('dependencies' => array('lodash', 'react', 'react-jsx-runtime', 'wp-dom-ready', 'wp-element', 'wp-i18n', 'wp-polyfill', 'yoast-seo-ui-library-package'), 'version' => '73410c74285694bf48e7'), 'integrations-page.js' => array('dependencies' => array('lodash', 'react', 'react-dom', 'react-jsx-runtime', 'wp-api-fetch', 'wp-components', 'wp-data', 'wp-dom-ready', 'wp-element', 'wp-i18n', 'wp-polyfill', 'yoast-seo-dashboard-frontend-package', 'yoast-seo-externals-contexts', 'yoast-seo-prop-types-package', 'yoast-seo-react-helmet-package', 'yoast-seo-styled-components-package', 'yoast-seo-ui-library-package'), 'version' => '4e41e995edfcf027a2d7'), 'introductions.js' => array('dependencies' => array('lodash', 'react', 'react-jsx-runtime', 'wp-api-fetch', 'wp-data', 'wp-dom-ready', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-polyfill', 'wp-url', 'yoast-seo-prop-types-package', 'yoast-seo-redux-js-toolkit-package', 'yoast-seo-ui-library-package'), 'version' => '241369c77a5a8c009d9b'), 'network-admin.js' => array('dependencies' => array('jquery', 'wp-polyfill'), 'version' => 'c28de4314d03147fca4a'), 'post-edit.js' => array('dependencies' => array('jquery', 'lodash', 'react-jsx-runtime', 'wp-annotations', 'wp-api', 'wp-api-fetch', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-data', 'wp-dom-ready', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-is-shallow-equal', 'wp-polyfill', 'wp-rich-text', 'wp-url', 'yoast-seo-analysis-package', 'yoast-seo-externals-redux', 'yoast-seo-feature-flag-package', 'yoast-seo-prop-types-package', 'yoast-seo-redux-js-toolkit-package', 'yoast-seo-styled-components-package'), 'version' => '4707f2a9996135159c93'), 'quick-edit-handler.js' => array('dependencies' => array('wp-polyfill'), 'version' => 'e7d3f8a9873afbfd1425'), 'reindex-links.js' => array('dependencies' => array('jquery', 'wp-polyfill'), 'version' => 'e4694eb7292052d53fc4'), 'redirect-old-features-tab.js' => array('dependencies' => array('wp-polyfill'), 'version' => 'a792fdd4c0d1c2ef737c'), 'settings.js' => array('dependencies' => array('jquery', 'lodash', 'react', 'react-jsx-runtime', 'wp-compose', 'wp-data', 'wp-dom-ready', 'wp-element', 'wp-i18n', 'wp-polyfill', 'wp-url', 'yoast-seo-externals-redux', 'yoast-seo-prop-types-package', 'yoast-seo-styled-components-package'), 'version' => 'f0bd6577ef9cce7ddb87'), 'new-settings.js' => array('dependencies' => array('lodash', 'react', 'react-dom', 'react-jsx-runtime', 'wp-api-fetch', 'wp-components', 'wp-data', 'wp-dom-ready', 'wp-element', 'wp-html-entities', 'wp-i18n', 'wp-polyfill', 'wp-url', 'yoast-seo-externals-redux', 'yoast-seo-prop-types-package', 'yoast-seo-react-helmet-package', 'yoast-seo-redux-js-toolkit-package', 'yoast-seo-replacement-variable-editor-package', 'yoast-seo-styled-components-package', 'yoast-seo-ui-library-package'), 'version' => '154fd187a8f455e35a8d'), 'redirects.js' => array('dependencies' => array('lodash', 'react', 'react-dom', 'react-jsx-runtime', 'wp-api-fetch', 'wp-components', 'wp-data', 'wp-dom-ready', 'wp-element', 'wp-i18n', 'wp-polyfill', 'wp-url', 'yoast-seo-prop-types-package', 'yoast-seo-react-helmet-package', 'yoast-seo-redux-js-toolkit-package', 'yoast-seo-styled-components-package', 'yoast-seo-ui-library-package'), 'version' => 'e8a481ecbb8f6ff96791'), 'academy.js' => array('dependencies' => array('lodash', 'react', 'react-jsx-runtime', 'wp-api-fetch', 'wp-components', 'wp-data', 'wp-dom-ready', 'wp-element', 'wp-i18n', 'wp-polyfill', 'wp-url', 'yoast-seo-redux-js-toolkit-package', 'yoast-seo-ui-library-package'), 'version' => 'ad100d1f98f9bb316a90'), 'general-page.js' => array('dependencies' => array('lodash', 'react', 'react-dom', 'react-jsx-runtime', 'wp-api-fetch', 'wp-components', 'wp-compose', 'wp-data', 'wp-dom-ready', 'wp-element', 'wp-i18n', 'wp-polyfill', 'wp-url', 'yoast-seo-dashboard-frontend-package', 'yoast-seo-externals-redux', 'yoast-seo-helpers-package', 'yoast-seo-prop-types-package', 'yoast-seo-react-helmet-package', 'yoast-seo-redux-js-toolkit-package', 'yoast-seo-social-metadata-forms-package', 'yoast-seo-ui-library-package'), 'version' => '4e7739cb2f7e10699d71'), 'support.js' => array('dependencies' => array('lodash', 'react', 'react-dom', 'react-jsx-runtime', 'wp-api-fetch', 'wp-components', 'wp-data', 'wp-dom-ready', 'wp-element', 'wp-i18n', 'wp-polyfill', 'wp-url', 'yoast-seo-externals-redux', 'yoast-seo-prop-types-package', 'yoast-seo-react-helmet-package', 'yoast-seo-redux-js-toolkit-package', 'yoast-seo-ui-library-package'), 'version' => '3816080b66dfe5877751'), 'how-to-block.js' => array('dependencies' => array('lodash', 'react', 'react-jsx-runtime', 'wp-a11y', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-element', 'wp-i18n', 'wp-is-shallow-equal', 'wp-polyfill', 'yoast-seo-prop-types-package'), 'version' => 'e49877f2db1ecb000c5c'), 'faq-block.js' => array('dependencies' => array('lodash', 'react', 'react-jsx-runtime', 'wp-a11y', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-element', 'wp-i18n', 'wp-is-shallow-equal', 'wp-polyfill', 'yoast-seo-prop-types-package'), 'version' => '48ce45f1da4fdbf0a6b0'), 'term-edit.js' => array('dependencies' => array('jquery', 'lodash', 'wp-annotations', 'wp-api', 'wp-api-fetch', 'wp-blocks', 'wp-data', 'wp-dom-ready', 'wp-hooks', 'wp-i18n', 'wp-is-shallow-equal', 'wp-polyfill', 'wp-rich-text', 'wp-url', 'yoast-seo-analysis-package', 'yoast-seo-externals-redux', 'yoast-seo-feature-flag-package', 'yoast-seo-redux-js-toolkit-package'), 'version' => 'a5204d5b214052280667'), 'used-keywords-assessment.js' => array('dependencies' => array('wp-polyfill', 'yoast-seo-analysis-package'), 'version' => 'f2d934f4e70fdace40fc'), 'workouts.js' => array('dependencies' => array('lodash', 'react', 'react-jsx-runtime', 'wp-api-fetch', 'wp-components', 'wp-compose', 'wp-data', 'wp-dom-ready', 'wp-element', 'wp-i18n', 'wp-polyfill', 'yoast-seo-components-new-package', 'yoast-seo-externals-contexts', 'yoast-seo-helpers-package', 'yoast-seo-prop-types-package', 'yoast-seo-styled-components-package'), 'version' => 'eb2a96eb9da8c1b5a33b'), 'frontend-inspector-resources.js' => array('dependencies' => array('lodash', 'react', 'react-jsx-runtime', 'wp-i18n', 'wp-polyfill', 'yoast-seo-analysis-package', 'yoast-seo-components-new-package', 'yoast-seo-prop-types-package', 'yoast-seo-style-guide-package'), 'version' => '16b6d236956e635b2cf3'), 'ai-generator.js' => array('dependencies' => array('lodash', 'react', 'react-dom', 'react-jsx-runtime', 'wp-api-fetch', 'wp-components', 'wp-data', 'wp-dom-ready', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-polyfill', 'wp-sanitize', 'wp-url', 'yoast-seo-ai-frontend-package', 'yoast-seo-analysis-package', 'yoast-seo-components-new-package', 'yoast-seo-externals-contexts', 'yoast-seo-helpers-package', 'yoast-seo-prop-types-package', 'yoast-seo-react-helmet-package', 'yoast-seo-redux-js-toolkit-package', 'yoast-seo-replacement-variable-editor-package', 'yoast-seo-search-metadata-previews-package', 'yoast-seo-social-metadata-forms-package', 'yoast-seo-style-guide-package', 'yoast-seo-styled-components-package', 'yoast-seo-ui-library-package'), 'version' => 'a779f591ce2e5bbe250a'), 'ai-consent.js' => array('dependencies' => array('lodash', 'react', 'react-dom', 'react-jsx-runtime', 'wp-api-fetch', 'wp-data', 'wp-dom-ready', 'wp-element', 'wp-i18n', 'wp-polyfill', 'wp-url', 'yoast-seo-prop-types-package', 'yoast-seo-react-helmet-package', 'yoast-seo-redux-js-toolkit-package', 'yoast-seo-ui-library-package'), 'version' => '3eba17584cd7b7181097'), 'plans.js' => array('dependencies' => array('lodash', 'react', 'react-jsx-runtime', 'wp-api-fetch', 'wp-components', 'wp-data', 'wp-dom-ready', 'wp-element', 'wp-i18n', 'wp-polyfill', 'wp-url', 'yoast-seo-externals-redux', 'yoast-seo-redux-js-toolkit-package', 'yoast-seo-ui-library-package'), 'version' => 'acb868e4444a60b1bfa3'));
--- a/wordpress-seo/src/generated/container.php
+++ b/wordpress-seo/src/generated/container.php
@@ -587,6 +587,7 @@
'Yoast\WP\SEO\Dashboard\Application\Content_Types\Content_Types_Repository' => true,
'Yoast\WP\SEO\Dashboard\Application\Endpoints\Endpoints_Repository' => true,
'Yoast\WP\SEO\Dashboard\Application\Filter_Pairs\Filter_Pairs_Repository' => true,
+ 'Yoast\WP\SEO\Dashboard\Application\Score_Groups\Readability_Score_Groups\Readability_Score_Groups_Repository' => true,
'Yoast\WP\SEO\Dashboard\Application\Score_Groups\SEO_Score_Groups\SEO_Score_Groups_Repository' => true,
'Yoast\WP\SEO\Dashboard\Application\Score_Results\Current_Scores_Repository' => true,
'Yoast\WP\SEO\Dashboard\Application\Score_Results\Readability_Score_Results\Readability_Score_Results_Repository' => true,
@@ -811,19 +812,26 @@
'Yoast\WP\SEO\Task_List\Application\Tasks\Create_New_Content' => true,
'Yoast\WP\SEO\Task_List\Application\Tasks\Delete_Hello_World' => true,
'Yoast\WP\SEO\Task_List\Application\Tasks\Enable_Llms_Txt' => true,
+ 'Yoast\WP\SEO\Task_List\Application\Tasks\Improve_Content_Readability' => true,
+ 'Yoast\WP\SEO\Task_List\Application\Tasks\Improve_Content_SEO' => true,
'Yoast\WP\SEO\Task_List\Application\Tasks\Set_Search_Appearance_Templates' => true,
'Yoast\WP\SEO\Task_List\Application\Tasks_Repository' => true,
'Yoast\WP\SEO\Task_List\Domain\Components\Call_To_Action_Entry' => true,
'Yoast\WP\SEO\Task_List\Domain\Components\Copy_Set' => true,
+ 'Yoast\WP\SEO\Task_List\Domain\Components\Score_Task_Analyzer' => true,
+ 'Yoast\WP\SEO\Task_List\Domain\Components\Task_Analyzer_Interface' => true,
+ 'Yoast\WP\SEO\Task_List\Domain\Data\Content_Item_Score_Data' => true,
'Yoast\WP\SEO\Task_List\Domain\Endpoint\Endpoint_List' => true,
'Yoast\WP\SEO\Task_List\Domain\Exceptions\Complete_Hello_World_Task_Exception' => true,
'Yoast\WP\SEO\Task_List\Domain\Exceptions\Complete_LLMS_Task_Exception' => true,
+ 'Yoast\WP\SEO\Task_List\Domain\Exceptions\Incorrect_Child_Task_Usage_Exception' => true,
+ 'Yoast\WP\SEO\Task_List\Domain\Exceptions\Incorrect_Child_Trait_Usage_Exception' => true,
'Yoast\WP\SEO\Task_List\Domain\Exceptions\Invalid_Post_Type_Tasks_Exception' => true,
'Yoast\WP\SEO\Task_List\Domain\Exceptions\Invalid_Tasks_Exception' => true,
'Yoast\WP\SEO\Task_List\Domain\Exceptions\Task_Not_Found_Exception' => true,
- 'Yoast\WP\SEO\Task_List\Domain\Tasks\Post_Type_Task_Interface' => true,
'Yoast\WP\SEO\Task_List\Infrastructure\Endpoints\Complete_Task_Endpoint' => true,
'Yoast\WP\SEO\Task_List\Infrastructure\Endpoints\Get_Tasks_Endpoint' => true,
+ 'Yoast\WP\SEO\Task_List\Infrastructure\Indexables\Recent_Content_Indexable_Collector' => true,
'Yoast\WP\SEO\Task_List\Infrastructure\Tasks_Collectors\Cached_Tasks_Collector' => true,
'Yoast\WP\SEO\Task_List\Infrastructure\Tasks_Collectors\Tasks_Collector' => true,
'Yoast\WP\SEO\Tracking\Application\Action_Tracker' => true,
@@ -2947,7 +2955,7 @@
*/
protected function getReadabilityScoresRouteService()
{
- $a = new YoastWPSEODashboardApplicationScore_ResultsReadability_Score_ResultsReadability_Score_Results_Repository(new YoastWPSEODashboardInfrastructureScore_ResultsReadability_Score_ResultsCached_Readability_Score_Results_Collector(new YoastWPSEODashboardInfrastructureScore_ResultsReadability_Score_ResultsReadability_Score_Results_Collector()), new YoastWPSEODashboardDomainScore_GroupsReadability_Score_GroupsBad_Readability_Score_Group(), new YoastWPSEODashboardDomainScore_GroupsReadability_Score_GroupsGood_Readability_Score_Group(), new YoastWPSEODashboardDomainScore_GroupsReadability_Score_GroupsNo_Readability_Score_Group(), new YoastWPSEODashboardDomainScore_GroupsReadability_Score_GroupsOk_Readability_Score_Group());
+ $a = new YoastWPSEODashboardApplicationScore_ResultsReadability_Score_ResultsReadability_Score_Results_Repository(new YoastWPSEODashboardInfrastructureScore_ResultsReadability_Score_ResultsCached_Readability_Score_Results_Collector(new YoastWPSEODashboardInfrastructureScore_ResultsReadability_Score_ResultsReadability_Score_Results_Collector()), ($this->privates['Yoast\WP\SEO\Dashboard\Domain\Score_Groups\Readability_Score_Groups\Bad_Readability_Score_Group'] ?? ($this->privates['Yoast\WP\SEO\Dashboard\Domain\Score_Groups\Readability_Score_Groups\Bad_Readability_Score_Group'] = new YoastWPSEODashboardDomainScore_GroupsReadability_Score_GroupsBad_Readability_Score_Group())), ($this->privates['Yoast\WP\SEO\Dashboard\Domain\Score_Groups\Readability_Score_Groups\Good_Readability_Score_Group'] ?? ($this->privates['Yoast\WP\SEO\Dashboard\Domain\Score_Groups\Readability_Score_Groups\Good_Readability_Score_Group'] = new YoastWPSEODashboardDomainScore_GroupsReadability_Score_GroupsGood_Readability_Score_Group())), ($this->privates['Yoast\WP\SEO\Dashboard\Domain\Score_Groups\Readability_Score_Groups\No_Readability_Score_Group'] ?? ($this->privates['Yoast\WP\SEO\Dashboard\Domain\Score_Groups\Readability_Score_Groups\No_Readability_Score_Group'] = new YoastWPSEODashboardDomainScore_GroupsReadability_Score_GroupsNo_Readability_Score_Group())), ($this->privates['Yoast\WP\SEO\Dashboard\Domain\Score_Groups\Readability_Score_Groups\Ok_Readability_Score_Group'] ?? ($this->privates['Yoast\WP\SEO\Dashboard\Domain\Score_Groups\Readability_Score_Groups\Ok_Readability_Score_Group'] = new YoastWPSEODashboardDomainScore_GroupsReadability_Score_GroupsOk_Readability_Score_Group())));
$a->set_repositories(($this->privates['Yoast\WP\SEO\Dashboard\Application\Score_Results\Current_Scores_Repository'] ?? $this->getCurrentScoresRepositoryService()));
$this->services['Yoast\WP\SEO\Dashboard\User_Interface\Scores\Readability_Scores_Route'] = $instance = new YoastWPSEODashboardUser_InterfaceScoresReadability_Scores_Route($a);
@@ -3007,7 +3015,7 @@
$b = ($this->privates['Yoast\WP\SEO\Dashboard\Infrastructure\Integrations\Site_Kit'] ?? $this->getSiteKitService());
$c = new YoastWPSEODashboardInfrastructureAnalytics_4Site_Kit_Analytics_4_Adapter(new YoastWPSEODashboardInfrastructureAnalytics_4Site_Kit_Analytics_4_Api_Call());
- return $this->services['Yoast\WP\SEO\Dashboard\User_Interface\Time_Based_SEO_Metrics\Time_Based_SEO_Metrics_Route'] = new YoastWPSEODashboardUser_InterfaceTime_Based_SEO_MetricsTime_Based_SEO_Metrics_Route(new YoastWPSEODashboardApplicationSearch_RankingsTop_Page_Repository($a, new YoastWPSEODashboardInfrastructureIndexablesTop_Page_Indexable_Collector(($this->services['Yoast\WP\SEO\Repositories\Indexable_Repository'] ?? $this->getIndexableRepositoryService()), new YoastWPSEODashboardApplicationScore_GroupsSEO_Score_GroupsSEO_Score_Groups_Repository(($this->privates['Yoast\WP\SEO\Dashboard\Domain\Score_Groups\SEO_Score_Groups\Bad_SEO_Score_Group'] ?? ($this->privates['Yoast\WP\SEO\Dashboard\Domain\Score_Groups\SEO_Score_Groups\Bad_SEO_Score_Group'] = new YoastWPSEODashboardDomainScore_GroupsSEO_Score_GroupsBad_SEO_Score_Group())), ($this->privates['Yoast\WP\SEO\Dashboard\Domain\Score_Groups\SEO_Score_Groups\Good_SEO_Score_Group'] ?? ($this->privates['Yoast\WP\SEO\Dashboard\Domain\Score_Groups\SEO_Score_Groups\Good_SEO_Score_Group'] = new YoastWPSEODashboardDomainScore_GroupsSEO_Score_GroupsGood_SEO_Score_Group())), ($this->privates['Yoast\WP\SEO\Dashboard\Domain\Score_Groups\SEO_Score_Groups\No_SEO_Score_Group'] ?? ($this->privates['Yoast\WP\SEO\Dashboard\Domain\Score_Groups\SEO_Score_Groups\No_SEO_Score_Group'] = new YoastWPSEODashboardDomainScore_GroupsSEO_Score_GroupsNo_SEO_Score_Group())), ($this->privates['Yoast\WP\SEO\Dashboard\Domain\Score_Groups\SEO_Score_Groups\Ok_SEO_Score_Group'] ?? ($this->privates['Yoast\WP\SEO\Dashboard\Domain\Score_Groups\SEO_Score_Groups\Ok_SEO_Score_Group'] = new YoastWPSEODashboardDomainScore_GroupsSEO_Score_GroupsOk_SEO_Score_Group())))), $b), new YoastWPSEODashboardApplicationSearch_RankingsTop_Query_Repository($a, $b), new YoastWPSEODashboardApplicationTrafficOrganic_Sessions_Compare_Repository($c, $b), new YoastWPSEODashboardApplicationTrafficOrganic_Sessions_Daily_Repository($c, $b), new YoastWPSEODashboardApplicationSearch_RankingsSearch_Ranking_Compare_Repository($a, $b), ($this->services['Yoast\WP\SEO\Helpers\Capability_Helper'] ?? ($this->services['Yoast\WP\SEO\Helpers\Capability_Helper'] = new YoastWPSEOHelpersCapability_Helper())));
+ return $this->services['Yoast\WP\SEO\Dashboard\User_Interface\Time_Based_SEO_Metrics\Time_Based_SEO_Metrics_Route'] = new YoastWPSEODashboardUser_InterfaceTime_Based_SEO_MetricsTime_Based_SEO_Metrics_Route(new YoastWPSEODashboardApplicationSearch_RankingsTop_Page_Repository($a, new YoastWPSEODashboardInfrastructureIndexablesTop_Page_Indexable_Collector(($this->services['Yoast\WP\SEO\Repositories\Indexable_Repository'] ?? $this->getIndexableRepositoryService()), ($this->privates['Yoast\WP\SEO\Dashboard\Application\Score_Groups\SEO_Score_Groups\SEO_Score_Groups_Repository'] ?? $this->getSEOScoreGro