diff --git a/all_in_one_seo_pack.php b/all_in_one_seo_pack.php
index b897ad1ff..1753a9e0f 100644
--- a/all_in_one_seo_pack.php
+++ b/all_in_one_seo_pack.php
@@ -5,7 +5,7 @@
* Description: SEO for WordPress. Features like XML Sitemaps, SEO for custom post types, SEO for blogs, business sites, ecommerce sites, and much more. More than 100 million downloads since 2007.
* Author: All in One SEO Team
* Author URI: https://aioseo.com/
- * Version: 4.5.3.1
+ * Version: 4.5.4
* Text Domain: all-in-one-seo-pack
* Domain Path: /languages
*
diff --git a/app/Common/Admin/Admin.php b/app/Common/Admin/Admin.php
index 695e485d9..c3e93b1ef 100644
--- a/app/Common/Admin/Admin.php
+++ b/app/Common/Admin/Admin.php
@@ -646,6 +646,7 @@ public function addMenu() {
$slug,
[ $this, 'page' ]
);
+
add_action( "load-{$hook}", [ $this, 'hooks' ] );
}
diff --git a/app/Common/Models/Post.php b/app/Common/Models/Post.php
index 08b519b6d..dee97ddd0 100644
--- a/app/Common/Models/Post.php
+++ b/app/Common/Models/Post.php
@@ -393,7 +393,7 @@ private static function sanitizePageAnalysis( $data ) {
* @param array $data The data.
* @return Post The Post object with data set.
*/
- private static function sanitizeAndSetDefaults( $postId, $thePost, $data ) {
+ protected static function sanitizeAndSetDefaults( $postId, $thePost, $data ) {
// General
$thePost->post_id = $postId;
$thePost->title = ! empty( $data['title'] ) ? sanitize_text_field( $data['title'] ) : null;
@@ -464,6 +464,13 @@ private static function sanitizeAndSetDefaults( $postId, $thePost, $data ) {
$thePost->created = gmdate( 'Y-m-d H:i:s' );
}
+ // Update defaults from addons.
+ foreach ( aioseo()->addons->getLoadedAddons() as $addon ) {
+ if ( isset( $addon->postModel ) && method_exists( $addon->postModel, 'sanitizeAndSetDefaults' ) ) {
+ $thePost = $addon->postModel->sanitizeAndSetDefaults( $postId, $thePost, $data );
+ }
+ }
+
return $thePost;
}
diff --git a/app/Common/Schema/Graphs/Article/Article.php b/app/Common/Schema/Graphs/Article/Article.php
index a4064a391..37412d66e 100644
--- a/app/Common/Schema/Graphs/Article/Article.php
+++ b/app/Common/Schema/Graphs/Article/Article.php
@@ -94,6 +94,16 @@ public function get( $graphData = null ) {
$data['pagination'] = $pageNumber;
}
+ // Check if our addons need to modify this graph.
+ $addonsArticleData = array_filter( aioseo()->addons->doAddonFunction( 'article', 'get', [
+ 'postId' => $post->ID,
+ 'data' => $data
+ ] ) );
+
+ foreach ( $addonsArticleData as $addonArticleData ) {
+ $data = array_merge( $data, $addonArticleData );
+ }
+
return $data;
}
diff --git a/app/Common/Schema/Graphs/WebPage/PersonAuthor.php b/app/Common/Schema/Graphs/WebPage/PersonAuthor.php
index 755927701..e54b3281a 100644
--- a/app/Common/Schema/Graphs/WebPage/PersonAuthor.php
+++ b/app/Common/Schema/Graphs/WebPage/PersonAuthor.php
@@ -20,22 +20,29 @@ class PersonAuthor extends Graphs\Graph {
*
* @since 4.0.0
*
- * @return array $data The graph data.
+ * @param int $userId The user ID.
+ * @return array $data The graph data.
*/
- public function get() {
+ public function get( $userId = null ) {
$post = aioseo()->helpers->getPost();
$user = get_queried_object();
$isAuthorPage = is_author() && is_a( $user, 'WP_User' );
if (
- ( ! is_singular() && ! $isAuthorPage ) ||
- ( is_singular() && ! is_a( $post, 'WP_Post' ) )
+ (
+ ( ! is_singular() && ! $isAuthorPage ) ||
+ ( is_singular() && ! is_a( $post, 'WP_Post' ) )
+ ) &&
+ ! $userId
) {
return [];
}
- $userId = $isAuthorPage ? $user->ID : $post->post_author;
- if ( function_exists( 'bp_is_user' ) && bp_is_user() ) {
- $userId = intval( wp_get_current_user()->ID );
+ // Dynamically determine the User ID.
+ if ( ! $userId ) {
+ $userId = $isAuthorPage ? $user->ID : $post->post_author;
+ if ( function_exists( 'bp_is_user' ) && bp_is_user() ) {
+ $userId = intval( wp_get_current_user()->ID );
+ }
}
if ( ! $userId ) {
@@ -67,6 +74,16 @@ public function get() {
];
}
+ // Check if our addons need to modify this graph.
+ $addonsPersonAuthorData = array_filter( aioseo()->addons->doAddonFunction( 'personAuthor', 'get', [
+ 'userId' => $userId,
+ 'data' => $data
+ ] ) );
+
+ foreach ( $addonsPersonAuthorData as $addonPersonAuthorData ) {
+ $data = array_merge( $data, $addonPersonAuthorData );
+ }
+
return $data;
}
}
\ No newline at end of file
diff --git a/app/Common/Schema/Graphs/WebPage/ProfilePage.php b/app/Common/Schema/Graphs/WebPage/ProfilePage.php
index c37d038c0..15bdbd9a5 100644
--- a/app/Common/Schema/Graphs/WebPage/ProfilePage.php
+++ b/app/Common/Schema/Graphs/WebPage/ProfilePage.php
@@ -13,11 +13,23 @@
*/
class ProfilePage extends WebPage {
/**
- * The graph type.
+ * Returns the graph data.
*
- * @since 4.0.0
+ * @since 4.5.4
*
- * @var string
+ * @return array The graph data.
*/
- protected $type = 'ProfilePage';
+ public function get() {
+ $data = parent::get();
+
+ $data['@type'] = 'ProfilePage';
+
+ // Check if our addons need to add more data.
+ $addonsPersonAuthorData = array_filter( aioseo()->addons->doAddonFunction( 'profilePage', 'get' ) );
+ foreach ( $addonsPersonAuthorData as $addonPersonAuthorData ) {
+ $data = array_merge( $data, $addonPersonAuthorData );
+ }
+
+ return $data;
+ }
}
\ No newline at end of file
diff --git a/app/Common/Schema/Graphs/WebPage/WebPage.php b/app/Common/Schema/Graphs/WebPage/WebPage.php
index e9eaede25..60b2a8310 100644
--- a/app/Common/Schema/Graphs/WebPage/WebPage.php
+++ b/app/Common/Schema/Graphs/WebPage/WebPage.php
@@ -45,10 +45,9 @@ public function get() {
'breadcrumb' => [ '@id' => aioseo()->schema->context['url'] . '#breadcrumblist' ]
];
- if ( is_singular() && ! is_page() ) {
+ if ( is_singular() && 'page' !== get_post_type() ) {
$post = aioseo()->helpers->getPost();
-
- if ( is_a( $post, 'WP_Post' ) ) {
+ if ( is_a( $post, 'WP_Post' ) && post_type_supports( $post->post_type, 'author' ) ) {
$author = get_author_posts_url( $post->post_author );
if ( ! empty( $author ) ) {
if ( ! in_array( 'PersonAuthor', aioseo()->schema->graphs, true ) ) {
diff --git a/app/Common/Schema/Schema.php b/app/Common/Schema/Schema.php
index 6a7666e3a..a64414247 100644
--- a/app/Common/Schema/Schema.php
+++ b/app/Common/Schema/Schema.php
@@ -244,7 +244,7 @@ protected function determineSmartGraphsAndContext( $isValidator = false ) {
}
if ( is_author() ) {
- $this->graphs[] = 'CollectionPage';
+ $this->graphs[] = 'ProfilePage';
$this->graphs[] = 'PersonAuthor';
$this->context = $contextInstance->author();
}
diff --git a/app/Common/Standalone/Standalone.php b/app/Common/Standalone/Standalone.php
index c5edf6522..7d2325002 100644
--- a/app/Common/Standalone/Standalone.php
+++ b/app/Common/Standalone/Standalone.php
@@ -54,6 +54,15 @@ class Standalone {
*/
public $primaryTerm = null;
+ /**
+ * UserProfileTab class instance.
+ *
+ * @since 4.5.4
+ *
+ * @var UserProfileTab
+ */
+ public $userProfileTab = null;
+
/**
* List of page builder integration class instances.
*
@@ -83,6 +92,7 @@ public function __construct() {
$this->seoPreview = new SeoPreview();
$this->setupWizard = new SetupWizard();
$this->primaryTerm = aioseo()->pro ? new ProStandalone\PrimaryTerm() : new PrimaryTerm();
+ $this->userProfileTab = new UserProfileTab();
aioseo()->pro ? new ProStandalone\DetailsColumn() : new DetailsColumn();
diff --git a/app/Common/Standalone/UserProfileTab.php b/app/Common/Standalone/UserProfileTab.php
index 8290ecb6d..aaf5c65a4 100644
--- a/app/Common/Standalone/UserProfileTab.php
+++ b/app/Common/Standalone/UserProfileTab.php
@@ -59,7 +59,7 @@ public function enqueueScript() {
*
* @return array
*/
- private function getVueData() {
+ public function getVueData() {
global $user_id;
$socialProfiles = $this->getSocialProfiles();
diff --git a/app/Common/Traits/Assets.php b/app/Common/Traits/Assets.php
index ae735cfda..47443f956 100644
--- a/app/Common/Traits/Assets.php
+++ b/app/Common/Traits/Assets.php
@@ -527,7 +527,7 @@ public function skipModuleTag( $handle ) {
* sub-domains that don't have the proper CORS headers. Those sites will need
* manual fixes.
*
- * 4.1.10
+ * @since 4.1.10
*
* @param string $path The path to normalize.
* @return string The normalized path.
diff --git a/app/Common/Traits/Helpers/Arrays.php b/app/Common/Traits/Helpers/Arrays.php
index e087903f1..111ee91b7 100644
--- a/app/Common/Traits/Helpers/Arrays.php
+++ b/app/Common/Traits/Helpers/Arrays.php
@@ -126,6 +126,7 @@ public function arrayReplaceRecursive( $targetArray, $replacementArray ) {
* Recursively intersects the two given arrays.
* You can pass in an optional argument (allowedKey) to restrict the intersect to arrays with a specific key.
* This is needed when we are e.g. sanitizing array values before setting/saving them to an option.
+ * This helper method was mainly built to support our complex options architecture.
*
* @since 4.2.5
*
@@ -137,7 +138,7 @@ public function arrayReplaceRecursive( $targetArray, $replacementArray ) {
*/
public function arrayIntersectRecursive( $array1, $array2, $allowedKey = '', $parentKey = '' ) {
if ( ! $allowedKey || $allowedKey === $parentKey ) {
- $array1 = array_intersect_assoc( $array1, $array2 );
+ $array1 = $this->arrayIntersectRecursiveHelper( $array1, $array2 );
}
if ( empty( $array1 ) ) {
@@ -157,6 +158,54 @@ public function arrayIntersectRecursive( $array1, $array2, $allowedKey = '', $pa
return $array1;
}
+ /**
+ * Recursively intersects the two given arrays. Supports arrays with a mix of nested arrays and primitive values.
+ * Helper function for arrayIntersectRecursive().
+ *
+ * @since 4.5.4
+ *
+ * @param array $array1 The first array.
+ * @param array $array2 The second array.
+ * @return array The intersected array.
+ */
+ private function arrayIntersectRecursiveHelper( $array1, $array2 ) {
+ if ( null === $array2 ) {
+ $array2 = [];
+ }
+
+ if ( is_array( $array1 ) ) {
+ // First, check with keys are nested arrays and which are primitive values.
+ $arrays = [];
+ $primitives = [];
+ foreach ( $array1 as $k => $v ) {
+ if ( is_array( $v ) ) {
+ $arrays[ $k ] = $v;
+ } else {
+ $primitives[ $k ] = $v;
+ }
+ }
+
+ // Then, intersect the primitive values.
+ $intersectedPrimitives = array_intersect_assoc( $primitives, $array2 );
+
+ // Finally, recursively intersect the nested arrays.
+ $intersectedArrays = [];
+ foreach ( $arrays as $k => $v ) {
+ if ( isset( $array2[ $k ] ) ) {
+ $intersectedArrays[ $k ] = $this->arrayIntersectRecursiveHelper( $v, $array2[ $k ] );
+ } else {
+ // If the nested array doesn't exist in the second array, we can just unset it.
+ unset( $arrays[ $k ] );
+ }
+ }
+
+ // Merge the intersected arrays and primitive values.
+ return array_merge( $intersectedPrimitives, $intersectedArrays );
+ }
+
+ return array_intersect_assoc( $array1, $array2 );
+ }
+
/**
* Sorts the keys of an array alphabetically.
* The array is passed by reference, so it's not returned the same as in `ksort()`.
diff --git a/app/Common/Traits/Helpers/Strings.php b/app/Common/Traits/Helpers/Strings.php
index e73a57b3c..b50800b6a 100644
--- a/app/Common/Traits/Helpers/Strings.php
+++ b/app/Common/Traits/Helpers/Strings.php
@@ -475,7 +475,7 @@ public function isValidRegex( $pattern ) {
$isValid = true;
- if ( false === preg_match( $pattern, null ) ) {
+ if ( false === preg_match( $pattern, '' ) ) {
$isValid = false;
}
diff --git a/app/Common/Traits/Options.php b/app/Common/Traits/Options.php
index 7714e5481..7bdf43309 100644
--- a/app/Common/Traits/Options.php
+++ b/app/Common/Traits/Options.php
@@ -787,6 +787,11 @@ public function sanitizeField( $value, $type, $preserveHtml = false ) {
case 'array':
$array = [];
foreach ( (array) $value as $k => $v ) {
+ if ( is_array( $v ) ) {
+ $array[ $k ] = $this->sanitizeField( $v, 'array' );
+ continue;
+ }
+
$array[ $k ] = sanitize_text_field( $preserveHtml ? htmlspecialchars( $v, ENT_NOQUOTES, 'UTF-8' ) : $v );
}
diff --git a/app/Common/Utils/Addons.php b/app/Common/Utils/Addons.php
index 62ed5bf9a..64a58e0f1 100644
--- a/app/Common/Utils/Addons.php
+++ b/app/Common/Utils/Addons.php
@@ -96,7 +96,7 @@ class Addons {
private $videoSitemap = null;
/**
- * The main LinkAssistant addon class.
+ * The main Link Assistant addon class.
*
* @since 4.4.2
*
@@ -104,6 +104,15 @@ class Addons {
*/
private $linkAssistant = null;
+ /**
+ * The main EEAT addon class.
+ *
+ * @since 4.5.4
+ *
+ * @var \AIOSEO\Plugin\Addon\LinkAssistant\LinkAssistant
+ */
+ private $eeat = null;
+
/**
* Returns our addons.
*
@@ -131,6 +140,10 @@ public function getAddons( $flushCache = false ) {
$installedPlugins = array_keys( get_plugins() );
foreach ( $addons as $key => $addon ) {
+ if ( ! is_object( $addon ) ) {
+ continue;
+ }
+
$addons[ $key ]->basename = $this->getAddonBasename( $addon->sku );
$addons[ $key ]->installed = in_array( $this->getAddonBasename( $addon->sku ), $installedPlugins, true );
$addons[ $key ]->isActive = is_plugin_active( $addons[ $key ]->basename );
@@ -201,6 +214,10 @@ public function unlicensedAddons() {
$addons = $this->getAddons();
foreach ( $addons as $addon ) {
+ if ( ! is_object( $addon ) ) {
+ continue;
+ }
+
if ( $addon->isActive ) {
$unlicensed['addons'][] = $addon;
}
@@ -568,6 +585,38 @@ public function getDefaultAddon( $sku ) {
*/
protected function getDefaultAddons() {
return json_decode( wp_json_encode( [
+ [
+ 'sku' => 'aioseo-eeat',
+ 'name' => 'Author SEO (E-E-A-T)',
+ 'version' => '1.0.0',
+ 'image' => null,
+ 'icon' => 'svg-eeat',
+ 'levels' => [
+ 'plus',
+ 'pro',
+ 'elite',
+ ],
+ 'currentLevels' => [
+ 'plus',
+ 'pro',
+ 'elite'
+ ],
+ 'requiresUpgrade' => true,
+ 'description' => '
Optimize your site for Google\'s E-E-A-T ranking factor by proving your writer\'s expertise through author schema markup and new UI elements.
',
+ 'descriptionVersion' => 0,
+ 'productUrl' => 'https://aioseo.com/author-seo-eeat/',
+ 'learnMoreUrl' => 'https://aioseo.com/author-seo-eeat/',
+ 'manageUrl' => '',
+ 'basename' => 'aioseo-eeat/aioseo-eeat.php',
+ 'installed' => false,
+ 'isActive' => false,
+ 'canInstall' => false,
+ 'canActivate' => false,
+ 'canUpdate' => false,
+ 'capability' => $this->getManageCapability( 'aioseo-eeat' ),
+ 'minimumVersion' => '0.0.0',
+ 'hasMinimumVersion' => false
+ ],
[
'sku' => 'aioseo-redirects',
'name' => 'Redirection Manager',
diff --git a/app/Common/Utils/Tags.php b/app/Common/Utils/Tags.php
index 7fa120610..bbf3ad5d6 100644
--- a/app/Common/Utils/Tags.php
+++ b/app/Common/Utils/Tags.php
@@ -930,11 +930,7 @@ public function getTagValue( $tag, $id, $sampleData = false ) {
case 'taxonomy_title':
$title = $this->getTaxonomyTitle( $postId );
- if ( empty( $postId ) ) {
- return $sampleData ? __( 'Sample Taxonomy Title', 'all-in-one-seo-pack' ) : '';
- }
-
- return $title;
+ return ! $title && $sampleData ? __( 'Sample Taxonomy Title', 'all-in-one-seo-pack' ) : $title;
case 'tax_parent_name':
$termObject = get_term( $id );
$parentTermObject = ! empty( $termObject->parent ) ? get_term( $termObject->parent ) : '';
diff --git a/app/Common/Utils/VueSettings.php b/app/Common/Utils/VueSettings.php
index 6157564e3..03c11dafe 100644
--- a/app/Common/Utils/VueSettings.php
+++ b/app/Common/Utils/VueSettings.php
@@ -115,7 +115,8 @@ class VueSettings {
'htmlSitemapAdvancedSettings' => true,
'linkAssistantSettings' => true,
'domainActivations' => true,
- '404Settings' => true
+ '404Settings' => true,
+ 'userProfiles' => true
],
'toggledRadio' => [
'breadcrumbsShowMoreSeparators' => false,
@@ -158,8 +159,10 @@ public function __construct( $settings = '_aioseo_settings' ) {
$this->addDynamicDefaults();
$this->settingsName = $settings;
- $this->settings = get_user_meta( get_current_user_id(), $settings, true )
- ? array_replace_recursive( $this->defaults, get_user_meta( get_current_user_id(), $settings, true ) )
+
+ $dbSettings = get_user_meta( get_current_user_id(), $settings, true );
+ $this->settings = $dbSettings
+ ? array_replace_recursive( $this->defaults, $dbSettings )
: $this->defaults;
}
@@ -188,6 +191,12 @@ private function addDynamicDefaults() {
$this->defaults['toggledCards'][ $postType['name'] . 'ArchiveArchives' ] = true;
$this->defaults['internalTabs'][ $postType['name'] . 'ArchiveArchives' ] = 'title-description';
}
+
+ // Check any addons for defaults.
+ $addonsDefaults = array_filter( aioseo()->addons->doAddonFunction( 'vueSettings', 'addDynamicDefaults' ) );
+ foreach ( $addonsDefaults as $addonDefaults ) {
+ $this->defaults = array_merge_recursive( $this->defaults, $addonDefaults );
+ }
}
/**
diff --git a/app/init/blocks.js b/app/init/blocks.js
index 5cf345ac1..4fa25b020 100644
--- a/app/init/blocks.js
+++ b/app/init/blocks.js
@@ -33,4 +33,13 @@ registerBlockType('aioseo/locationmap', {
})
registerBlockType('aioseo/openinghours', {
title : 'AIOSEO - Local Business Opening Hours'
+})
+registerBlockType('aioseo/openinghours', {
+ title : 'AIOSEO - Author Bio (E-E-A-T)'
+})
+registerBlockType('aioseo/openinghours', {
+ title : 'AIOSEO - Author Name (E-E-A-T)'
+})
+registerBlockType('aioseo/openinghours', {
+ title : 'AIOSEO - Reviewer Name (E-E-A-T)'
})
\ No newline at end of file
diff --git a/languages/aioseo-lite.php b/languages/aioseo-lite.php
index c743dfee2..26e51ab16 100644
--- a/languages/aioseo-lite.php
+++ b/languages/aioseo-lite.php
@@ -35,7 +35,7 @@
// Reference: /src/vue/components/common/cta/Index.vue:85
// Reference: /src/vue/pages/about/views/GettingStarted.vue:130
- // Reference: /src/vue/pages/feature-manager/views/FeatureManager.vue:112
+ // Reference: /src/vue/pages/feature-manager/views/FeatureManager.vue:114
// Translators: 1 - Plugin short name ("AIOSEO"), 2 - "Pro".
__( '%1$s %2$s comes with many additional features to help take your site\'s SEO to the next level!', 'all-in-one-seo-pack' ),
@@ -381,7 +381,7 @@
// Reference: /src/vue/composables/SeoSiteScore.js:21
__( 'A valid license key is required', 'all-in-one-seo-pack' ),
- // Reference: /src/vue/pages/feature-manager/views/FeatureManager.vue:81
+ // Reference: /src/vue/pages/feature-manager/views/FeatureManager.vue:83
__( 'A valid license key is required in order to use our addons.', 'all-in-one-seo-pack' ),
// Reference: /src/react/headline-analyzer/constants.js:23
@@ -439,9 +439,12 @@
// Translators: 1 - The name of one of our partner plugins.
__( 'Activate %1$s', 'all-in-one-seo-pack' ),
- // Reference: /src/vue/pages/feature-manager/views/FeatureManager.vue:72
+ // Reference: /src/vue/pages/feature-manager/views/FeatureManager.vue:74
__( 'Activate All Features', 'all-in-one-seo-pack' ),
+ // Reference: /src/vue/composables/EeatCta.js:25
+ __( 'Activate Author SEO (E-E-A-T)', 'all-in-one-seo-pack' ),
+
// Reference: /src/vue/pages/settings/views/partials/WebmasterTools/IndexNowSettings.vue:49
__( 'Activate IndexNow', 'all-in-one-seo-pack' ),
@@ -506,6 +509,9 @@
// Reference: /src/vue/plugins/constants.js:1158
__( 'Add IndexNow support to instantly notify search engines when your content has changed.', 'all-in-one-seo-pack' ),
+ // Reference: /src/vue/pages/search-appearance/views/partials/eeat/EeatBlur.vue:65
+ __( 'Add Item', 'all-in-one-seo-pack' ),
+
// Reference: /src/vue/standalone/post-settings/views/partials/general/FocusKeyphrase.vue:69
__( 'Add Keyphrase', 'all-in-one-seo-pack' ),
@@ -562,6 +568,9 @@
// Reference: /src/vue/standalone/setup-wizard/views/AdditionalInformation.vue:51
__( 'Additional Site Information', 'all-in-one-seo-pack' ),
+ // Reference: /src/vue/pages/search-appearance/views/partials/eeat/EeatBlur.vue:69
+ __( 'Additional URLs to help identify the item (e.g. "https://en.wikipedia.org/wiki/Amazon_(company)").', 'all-in-one-seo-pack' ),
+
// Reference: /src/vue/standalone/blocks/business-info/BusinessInfoSidebar.vue:32
// Reference: /src/vue/standalone/blocks/business-info/BusinessInfoSidebar.vue:40
// Reference: /src/vue/standalone/local-business-seo/views/BusinessInfo.vue:38
@@ -607,7 +616,7 @@
// Reference: /src/vue/components/common/core/DisplayInfo.vue:50
// Reference: /src/vue/components/common/core/add-redirection/Index.vue:75
// Reference: /src/vue/components/common/html-sitemap/DisplayInfo.vue:72
- // Reference: /src/vue/pages/search-appearance/views/Advanced.vue:46
+ // Reference: /src/vue/pages/search-appearance/views/Advanced.vue:48
// Reference: /src/vue/pages/search-appearance/views/Media.vue:61
// Reference: /src/vue/pages/settings/views/Advanced.vue:47
// Reference: /src/vue/pages/sitemaps/views/GeneralSitemap.vue:72
@@ -628,7 +637,7 @@
// Reference: /src/vue/pages/settings/views/partials/WebmasterTools/GoogleSearchConsoleSettings.vue:39
__( 'Advanced tracking and actionable reports require the following plan:', 'all-in-one-seo-pack' ),
- // Reference: /src/vue/pages/feature-manager/views/FeatureManager.vue:69
+ // Reference: /src/vue/pages/feature-manager/views/FeatureManager.vue:71
__( 'Advanced WooCommerce', 'all-in-one-seo-pack' ),
// Reference: /src/vue/standalone/post-settings/views/lite/partials-links/Links.vue:209
@@ -757,6 +766,9 @@
// Reference: /src/vue/classes/SiteAnalysis.js:439
__( 'Alternatively, you can use a CMS plugin to simplify the process - it\'s a more user-friendly option. WordPress has a host of caching plugins, and most of them give you options to control the caching headers.', 'all-in-one-seo-pack' ),
+ // Reference: /src/vue/standalone/user-profile-tab/partials/EeatBlur.vue:26
+ __( 'Alumni Of', 'all-in-one-seo-pack' ),
+
// Reference: /src/vue/plugins/constants.js:20
__( 'always', 'all-in-one-seo-pack' ),
@@ -767,8 +779,8 @@
__( 'An alternate name for your site. This could be an acronym or shorter version of your website name.', 'all-in-one-seo-pack' ),
// Reference: /src/vue/components/common/core/FeatureCard.vue:72
- // Reference: /src/vue/components/common/core/addon/Activate.vue:48
- // Reference: /src/vue/components/common/core/addon/Update.vue:51
+ // Reference: /src/vue/components/common/core/addon/Activate.vue:49
+ // Reference: /src/vue/components/common/core/addon/Update.vue:52
// Reference: /src/vue/pages/tools/views/WpCode.vue:37
__( 'An error occurred while activating the addon. Please upload it manually or contact support for more information.', 'all-in-one-seo-pack' ),
@@ -828,7 +840,7 @@
// Reference: /src/vue/components/common/core/add-redirection/Url.vue:163
__( 'Anchor values are not sent to the server and cannot be redirected.', 'all-in-one-seo-pack' ),
- // Reference: /src/vue/pages/feature-manager/views/FeatureManager.vue:71
+ // Reference: /src/vue/pages/feature-manager/views/FeatureManager.vue:73
__( 'And many more...', 'all-in-one-seo-pack' ),
// Reference: /src/vue/pages/local-seo/views/lite/locations/Blur.vue:34
@@ -884,13 +896,13 @@
// Translators: 1 - The plugin short name ("AIOSEO").
__( 'Are you enjoying %1$s?', 'all-in-one-seo-pack' ),
- // Reference: /src/vue/pages/feature-manager/views/FeatureManager.vue:126
+ // Reference: /src/vue/pages/feature-manager/views/FeatureManager.vue:128
__( 'Are you sure you want to activate these addons across the network?', 'all-in-one-seo-pack' ),
// Reference: /src/vue/components/common/core/FeatureCard.vue:92
__( 'Are you sure you want to activate this addon across the network?', 'all-in-one-seo-pack' ),
- // Reference: /src/vue/pages/feature-manager/views/FeatureManager.vue:123
+ // Reference: /src/vue/pages/feature-manager/views/FeatureManager.vue:125
__( 'Are you sure you want to deactivate these addons across the network?', 'all-in-one-seo-pack' ),
// Reference: /src/vue/components/common/core/FeatureCard.vue:89
@@ -914,7 +926,7 @@
// Reference: /src/vue/pages/sitemaps/views/AdditionalPages.vue:55
__( 'Are you sure you want to delete this page?', 'all-in-one-seo-pack' ),
- // Reference: /src/vue/stores/index.js:170
+ // Reference: /src/vue/stores/index.js:172
__( 'Are you sure you want to leave? you have unsaved changes!', 'all-in-one-seo-pack' ),
// Reference: /src/vue/components/common/core/ResetSettings.vue:46
@@ -991,12 +1003,36 @@
// Reference: /src/vue/plugins/constants.js:1224
__( 'Author', 'all-in-one-seo-pack' ),
+ // Reference: /src/vue/composables/EeatCta.js:9
+ __( 'Author Bio Block', 'all-in-one-seo-pack' ),
+
+ // Reference: /src/vue/composables/EeatCta.js:16
+ // Reference: /src/vue/pages/search-appearance/views/partials/eeat/EeatBlur.vue:55
+ __( 'Author Experience Topics (E-E-A-T)', 'all-in-one-seo-pack' ),
+
// Reference: /src/vue/pages/search-appearance/views/Advanced.vue:106
__( 'Author Feeds', 'all-in-one-seo-pack' ),
+ // Reference: /src/vue/composables/EeatCta.js:15
+ __( 'Author Info (E-E-A-T)', 'all-in-one-seo-pack' ),
+
// Reference: /src/vue/components/common/core/PriorityScore.vue:46
__( 'Author Pages', 'all-in-one-seo-pack' ),
+ // Reference: /src/vue/composables/EeatCta.js:8
+ __( 'Author Schema', 'all-in-one-seo-pack' ),
+
+ // Reference: /src/vue/standalone/user-profile-tab/App.vue:84
+ // Reference: /src/vue/standalone/user-profile-tab/follow-up-emails-nav-bar.js:18
+ __( 'Author SEO', 'all-in-one-seo-pack' ),
+
+ // Reference: /src/vue/mixins/ToolsSettings.js:109
+ __( 'Author SEO (E-E-A-T)', 'all-in-one-seo-pack' ),
+
+ // Reference: /src/vue/composables/EeatCta.js:19
+ // Translators: 1 - "PRO".
+ __( 'Author SEO (E-E-A-T) is a %1$s Feature', 'all-in-one-seo-pack' ),
+
// Reference: /src/vue/pages/sitemaps/views/GeneralSitemap.vue:66
// Reference: /src/vue/pages/sitemaps/views/RssSitemap.vue:50
__( 'Author Sitemap', 'all-in-one-seo-pack' ),
@@ -1778,7 +1814,7 @@
// Translators: 1 - "PRO".
__( 'Custom Taxonomy Support is a %1$s Feature', 'all-in-one-seo-pack' ),
- // Reference: /src/vue/standalone/user-profile-tab/App.vue:90
+ // Reference: /src/vue/standalone/user-profile-tab/App.vue:92
__( 'Customer Data', 'all-in-one-seo-pack' ),
// Reference: /src/vue/pages/about/views/lite/LiteVsPro.vue:223
@@ -1834,7 +1870,7 @@
// Reference: /src/vue/components/lite/settings/NetworkSitesActivation.vue:21
__( 'Deactivate', 'all-in-one-seo-pack' ),
- // Reference: /src/vue/pages/feature-manager/views/FeatureManager.vue:73
+ // Reference: /src/vue/pages/feature-manager/views/FeatureManager.vue:75
__( 'Deactivate All Features', 'all-in-one-seo-pack' ),
// Reference: /src/vue/components/lite/settings/NetworkSitesActivation.vue:17
@@ -1928,6 +1964,7 @@
// Reference: /src/vue/components/common/core/Keyphrase.vue:27
// Reference: /src/vue/components/common/core/add-redirection/CustomRules.vue:34
// Reference: /src/vue/composables/link-assistant/Links.js:23
+ // Reference: /src/vue/pages/search-appearance/views/partials/eeat/EeatBlur.vue:66
// Reference: /src/vue/pages/sitemaps/views/AdditionalPages.vue:47
// Reference: /src/vue/pages/sitemaps/views/AdditionalPages.vue:52
// Reference: /src/vue/pages/tools/views/partials/BackupSettings.vue:58
@@ -2150,6 +2187,9 @@
// Reference: /src/vue/pages/search-appearance/views/Advanced.vue:80
__( 'Dynamically Generate Meta Keywords', 'all-in-one-seo-pack' ),
+ // Reference: /src/vue/composables/EeatCta.js:11
+ __( 'E-E-A-T for Higher Rankings', 'all-in-one-seo-pack' ),
+
// Reference: /src/vue/components/common/html-sitemap/DisplayInfo.vue:59
// Translators: 1 - A URL.
__( 'e.g. %1$s', 'all-in-one-seo-pack' ),
@@ -2251,9 +2291,18 @@
// Reference: /src/vue/mixins/HeadlineResult.js:43
__( 'Emotionally triggered headlines are likely to drive more clicks.', 'all-in-one-seo-pack' ),
+ // Reference: /src/vue/standalone/user-profile-tab/partials/EeatBlur.vue:30
+ __( 'Employer', 'all-in-one-seo-pack' ),
+
// Reference: /src/vue/plugins/constants.js:1331
__( 'Employment Agency', 'all-in-one-seo-pack' ),
+ // Reference: /src/vue/standalone/user-profile-tab/partials/EeatBlur.vue:25
+ __( 'Enable Author Info', 'all-in-one-seo-pack' ),
+
+ // Reference: /src/vue/composables/EeatCta.js:22
+ __( 'Enable Author SEO (E-E-A-T) on Your Site', 'all-in-one-seo-pack' ),
+
// Reference: /src/vue/pages/settings/views/Breadcrumbs.vue:82
__( 'Enable Breadcrumbs', 'all-in-one-seo-pack' ),
@@ -2321,7 +2370,7 @@
// Reference: /src/vue/classes/SiteAnalysis.js:78
__( 'Ensure your page\'s title includes your target keywords, and design it to encourage users to click.', 'all-in-one-seo-pack' ),
- // Reference: /src/vue/components/common/base/Editor.vue:76
+ // Reference: /src/vue/components/common/base/Editor.vue:78
__( 'Enter a custom field/taxonomy name...', 'all-in-one-seo-pack' ),
// Reference: /src/react/headline-analyzer/components/HeadlineTabNewScore.jsx:13
@@ -2338,6 +2387,9 @@
// Translators: 1 - Oening link tag, 2 - Closing link tag.
__( 'Enter a relative URL to redirect from or start by typing in page or post title, slug or ID. You can also use regex (%1$s)', 'all-in-one-seo-pack' ),
+ // Reference: /src/vue/pages/search-appearance/views/partials/eeat/EeatBlur.vue:70
+ __( 'Enter a URL and press enter', 'all-in-one-seo-pack' ),
+
// Reference: /src/vue/components/common/core/add-redirection/Index.vue:68
__( 'Enter a URL or start by typing a page or post title, slug or ID.', 'all-in-one-seo-pack' ),
@@ -2357,7 +2409,7 @@
// Reference: /src/vue/pages/seo-analysis/views/AnalyzeCompetitorSite.vue:47
__( 'Enter Competitor URL', 'all-in-one-seo-pack' ),
- // Reference: /src/vue/pages/feature-manager/views/FeatureManager.vue:82
+ // Reference: /src/vue/pages/feature-manager/views/FeatureManager.vue:84
__( 'Enter License Key', 'all-in-one-seo-pack' ),
// Reference: /src/vue/components/common/core/add-redirection/CustomRules.vue:109
@@ -2839,7 +2891,7 @@
// Reference: /src/vue/pages/search-appearance/views/Advanced.vue:100
__( 'Global Comments RSS Feed', 'all-in-one-seo-pack' ),
- // Reference: /src/vue/pages/search-appearance/views/Advanced.vue:47
+ // Reference: /src/vue/pages/search-appearance/views/Advanced.vue:49
__( 'Global Robots Meta', 'all-in-one-seo-pack' ),
// Reference: /src/vue/pages/search-appearance/views/Advanced.vue:96
@@ -2848,7 +2900,7 @@
// Reference: /src/vue/pages/search-appearance/router/paths.js:19
__( 'Global Settings', 'all-in-one-seo-pack' ),
- // Reference: /src/vue/pages/feature-manager/views/FeatureManager.vue:90
+ // Reference: /src/vue/pages/feature-manager/views/FeatureManager.vue:92
__( 'Globally control the Title attribute and Alt text for images in your content. These attributes are essential for both accessibility and SEO.', 'all-in-one-seo-pack' ),
// Reference: /src/vue/plugins/constants.js:1110
@@ -3261,7 +3313,7 @@
// Translators: 1 - "PRO".
__( 'Image SEO is a %1$s Feature', 'all-in-one-seo-pack' ),
- // Reference: /src/vue/pages/feature-manager/views/FeatureManager.vue:67
+ // Reference: /src/vue/pages/feature-manager/views/FeatureManager.vue:69
__( 'Image SEO Optimization', 'all-in-one-seo-pack' ),
// Reference: /src/vue/standalone/post-settings/views/Facebook.vue:53
@@ -3456,6 +3508,9 @@
// Reference: /src/vue/composables/IndexStatus.js:139
__( 'Indexing not allowed, \'noindex\' detected in \'X-Robots-Tag\' http header', 'all-in-one-seo-pack' ),
+ // Reference: /src/vue/composables/IndexStatus.js:141
+ __( 'Indexing not allowed, blocking robots.txt rule detected', 'all-in-one-seo-pack' ),
+
// Reference: /src/vue/pages/settings/views/WebmasterTools.vue:182
__( 'IndexNow', 'all-in-one-seo-pack' ),
@@ -3729,7 +3784,10 @@
// Reference: /src/vue/standalone/post-settings/views/lite/partials-ai/Modal.vue:34
__( 'Learn more about all the features', 'all-in-one-seo-pack' ),
- // Reference: /src/vue/components/common/base/Editor.vue:77
+ // Reference: /src/vue/composables/EeatCta.js:27
+ __( 'Learn more about Author SEO (E-E-A-T)', 'all-in-one-seo-pack' ),
+
+ // Reference: /src/vue/components/common/base/Editor.vue:79
__( 'Learn more about Smart Tags', 'all-in-one-seo-pack' ),
// Reference: /src/vue/pages/tools/views/WpCode.vue:35
@@ -3836,7 +3894,7 @@
// Reference: /src/vue/pages/about/views/lite/LiteVsPro.vue:179
__( 'Local Business schema (multiple locations supported) + Business Info & Location blocks, widgets & shortcodes (Plus, Pro & Elite plans only)', 'all-in-one-seo-pack' ),
- // Reference: /src/vue/pages/feature-manager/views/FeatureManager.vue:102
+ // Reference: /src/vue/pages/feature-manager/views/FeatureManager.vue:104
__( 'Local Business schema markup enables you to tell Google about your business, including your business name, address and phone number, opening hours and price range. This information may be displayed as a Knowledge Graph card or business carousel.', 'all-in-one-seo-pack' ),
// Reference: /src/vue/pages/local-seo/views/lite/locations/Locations.vue:33
@@ -3844,7 +3902,7 @@
__( 'Local Business schema markup informs Google about your business details like name, address, phone number, hours, and price range, which can appear in a Knowledge Graph card or business carousel.', 'all-in-one-seo-pack' ),
// Reference: /src/vue/mixins/ToolsSettings.js:85
- // Reference: /src/vue/pages/feature-manager/views/FeatureManager.vue:68
+ // Reference: /src/vue/pages/feature-manager/views/FeatureManager.vue:70
__( 'Local Business SEO', 'all-in-one-seo-pack' ),
// Reference: /src/vue/pages/about/views/lite/LiteVsPro.vue:173
@@ -4125,6 +4183,7 @@
// Reference: /src/vue/pages/local-seo/views/lite/locations/Blur.vue:19
__( 'name', 'all-in-one-seo-pack' ),
+ // Reference: /src/vue/pages/search-appearance/views/partials/eeat/EeatBlur.vue:62
// Reference: /src/vue/standalone/blocks/business-info/BusinessInfoSidebar.vue:31
// Reference: /src/vue/standalone/local-business-seo/views/BusinessInfo.vue:31
// Reference: /src/vue/standalone/setup-wizard/views/AdditionalInformation.vue:57
@@ -4355,7 +4414,7 @@
// Reference: /src/vue/components/common/core/FeatureCard.vue:81
// Reference: /src/vue/composables/link-assistant/Links.js:19
- // Reference: /src/vue/pages/feature-manager/views/FeatureManager.vue:86
+ // Reference: /src/vue/pages/feature-manager/views/FeatureManager.vue:88
// Reference: /src/vue/pages/sitemaps/views/AdditionalPages.vue:61
// Reference: /src/vue/pages/tools/views/partials/BackupSettings.vue:53
__( 'No, I changed my mind', 'all-in-one-seo-pack' ),
@@ -4363,9 +4422,6 @@
// Reference: /src/vue/components/common/core/ResetSettings.vue:54
__( 'No, I need to make a backup', 'all-in-one-seo-pack' ),
- // Reference: /src/vue/pages/search-appearance/views/Advanced.vue:48
- __( 'Noindex Empty Category and Tag Archives', 'all-in-one-seo-pack' ),
-
// Reference: /src/vue/pages/sitemaps/composables/NewsSitemap.js:16
// Reference: /src/vue/pages/sitemaps/composables/VideoSitemap.js:14
// Reference: /src/vue/pages/sitemaps/views/GeneralSitemap.vue:57
@@ -4581,6 +4637,9 @@
// Reference: /src/vue/pages/local-seo/views/lite/opening-hours/OpeningHours.vue:33
__( 'Opening Hours Settings', 'all-in-one-seo-pack' ),
+ // Reference: /src/vue/composables/EeatCta.js:23
+ __( 'Optimize your site for Google\'s E-E-A-T ranking factor by proving your writer\'s expertise through author schema markup and new UI elements.', 'all-in-one-seo-pack' ),
+
// Reference: /src/vue/plugins/constants.js:1066
__( 'Optimized Search Appearance', 'all-in-one-seo-pack' ),
@@ -4626,7 +4685,7 @@
// Reference: /src/vue/pages/about/views/AboutUs.vue:63
__( 'Our goal is to take the pain out of optimizing your website for search engines.', 'all-in-one-seo-pack' ),
- // Reference: /src/vue/pages/feature-manager/views/FeatureManager.vue:98
+ // Reference: /src/vue/pages/feature-manager/views/FeatureManager.vue:100
__( 'Our Google News Sitemap lets you control which content you submit to Google News and only contains articles that were published in the last 48 hours. In order to submit a News Sitemap to Google, you must have added your site to Google’s Publisher Center and had it approved.', 'all-in-one-seo-pack' ),
// Reference: /src/vue/pages/seo-analysis/views/HeadlineAnalyzer.vue:39
@@ -4761,7 +4820,7 @@
// Reference: /src/vue/standalone/setup-wizard/views/AdditionalInformation.vue:52
__( 'Person or Organization', 'all-in-one-seo-pack' ),
- // Reference: /src/vue/standalone/user-profile-tab/App.vue:78
+ // Reference: /src/vue/standalone/user-profile-tab/App.vue:80
__( 'Personal Options', 'all-in-one-seo-pack' ),
// Reference: /src/vue/standalone/blocks/business-info/BusinessInfoSidebar.vue:43
@@ -5055,7 +5114,7 @@
// Reference: /src/vue/standalone/setup-wizard/views/SmartRecommendations.vue:74
__( 'Purchase and Install Now', 'all-in-one-seo-pack' ),
- // Reference: /src/vue/pages/feature-manager/views/FeatureManager.vue:83
+ // Reference: /src/vue/pages/feature-manager/views/FeatureManager.vue:85
__( 'Purchase License', 'all-in-one-seo-pack' ),
// Reference: /src/vue/components/common/core/add-redirection/Index.vue:76
@@ -5209,12 +5268,9 @@
// Reference: /src/vue/pages/search-appearance/views/Advanced.vue:70
__( 'Remove Query Args', 'all-in-one-seo-pack' ),
- // Reference: /src/vue/components/common/base/Editor.vue:78
+ // Reference: /src/vue/components/common/base/Editor.vue:80
__( 'Remove Smart Tag', 'all-in-one-seo-pack' ),
- // Reference: /src/vue/pages/search-appearance/views/Advanced.vue:49
- __( 'Remove Stopwords from Permalinks', 'all-in-one-seo-pack' ),
-
// Reference: /src/vue/pages/search-appearance/views/Advanced.vue:95
__( 'Removing unrecognized query arguments from URLs and disabling unnecessary RSS feeds can help save search engine crawl quota and speed up content indexing for larger sites. If you choose to disable any feeds, those feed links will automatically redirect to your homepage or applicable archive page.', 'all-in-one-seo-pack' ),
@@ -5237,9 +5293,6 @@
// Reference: /src/vue/plugins/constants.js:1058
__( 'Reservations', 'all-in-one-seo-pack' ),
- // Reference: /src/vue/composables/IndexStatus.js:141
- __( 'Reserved, no longer in use', 'all-in-one-seo-pack' ),
-
// Reference: /src/vue/pages/tools/views/lite/DatabaseTools.vue:21
// Reference: /src/vue/pages/tools/views/partials/DatabaseTools.vue:40
__( 'Reset / Restore Settings', 'all-in-one-seo-pack' ),
@@ -5263,6 +5316,9 @@
// Reference: /src/vue/composables/IndexStatus.js:203
__( 'Reveals the canonical URL chosen by Googlebot. Sometimes, Googlebot may select a different canonical URL than the user-declared one.', 'all-in-one-seo-pack' ),
+ // Reference: /src/vue/composables/EeatCta.js:10
+ __( 'Reviewed By Schema', 'all-in-one-seo-pack' ),
+
// Reference: /src/vue/pages/search-appearance/views/partials/Advanced.vue:53
__( 'Robots Meta Settings', 'all-in-one-seo-pack' ),
@@ -5306,6 +5362,9 @@
// Reference: /src/vue/plugins/constants.js:1059
__( 'Sales', 'all-in-one-seo-pack' ),
+ // Reference: /src/vue/pages/search-appearance/views/partials/eeat/EeatBlur.vue:64
+ __( 'Same As URLs', 'all-in-one-seo-pack' ),
+
// Reference: /src/vue/utils/tags.js:71
__( 'Sample short description for your product.', 'all-in-one-seo-pack' ),
@@ -5375,6 +5434,9 @@
// Reference: /src/vue/plugins/constants.js:1215
__( 'School', 'all-in-one-seo-pack' ),
+ // Reference: /src/vue/standalone/user-profile-tab/partials/EeatBlur.vue:28
+ __( 'School, college, or university URL', 'all-in-one-seo-pack' ),
+
// Reference: /src/react/headline-analyzer/components/HeadlineTabCurrentScore.jsx:11
__( 'Score', 'all-in-one-seo-pack' ),
@@ -5404,10 +5466,10 @@
// Reference: /src/vue/pages/search-appearance/views/Advanced.vue:110
__( 'Search Feed', 'all-in-one-seo-pack' ),
- // Reference: /src/vue/components/common/base/Editor.vue:75
+ // Reference: /src/vue/components/common/base/Editor.vue:77
__( 'Search for an item...', 'all-in-one-seo-pack' ),
- // Reference: /src/vue/pages/feature-manager/views/FeatureManager.vue:74
+ // Reference: /src/vue/pages/feature-manager/views/FeatureManager.vue:76
__( 'Search for Features...', 'all-in-one-seo-pack' ),
// Reference: /src/vue/pages/search-statistics/views/lite/seo-statistics/Blur.vue:54
@@ -5609,7 +5671,7 @@
// Reference: /src/vue/pages/settings/views/lite/AccessControl.vue:32
__( 'SEO Editor Role', 'all-in-one-seo-pack' ),
- // Reference: /src/vue/pages/feature-manager/views/FeatureManager.vue:70
+ // Reference: /src/vue/pages/feature-manager/views/FeatureManager.vue:72
// Reference: /src/vue/plugins/constants.js:1491
__( 'SEO for Categories, Tags and Custom Taxonomies', 'all-in-one-seo-pack' ),
@@ -5894,9 +5956,7 @@
// Reference: /src/vue/pages/social-networks/router/paths.js:19
// Reference: /src/vue/pages/social-networks/views/SocialProfiles.vue:13
- // Reference: /src/vue/standalone/user-profile-tab/App.vue:27
- // Reference: /src/vue/standalone/user-profile-tab/App.vue:82
- // Reference: /src/vue/standalone/user-profile-tab/follow-up-emails-nav-bar.js:18
+ // Reference: /src/vue/standalone/user-profile-tab/App.vue:29
__( 'Social Profiles', 'all-in-one-seo-pack' ),
// Reference: /src/vue/composables/IndexStatus.js:163
@@ -6223,6 +6283,9 @@
// Reference: /src/vue/pages/about/views/AboutUs.vue:188
__( 'The fastest drag & drop landing page builder for WordPress. Create custom landing pages without writing code, connect them with your CRM, collect subscribers, and grow your audience. Trusted by 1 million sites.', 'all-in-one-seo-pack' ),
+ // Reference: /src/vue/standalone/user-profile-tab/partials/EeatBlur.vue:24
+ __( 'The fields below provide structured information for search engines about the current author. By filling out these fields, you will enhance your online presence and improve search engine visibility. This increases the chances of your author details appearing prominently in search results, making it easier for readers, publishers, and media representatives to discover and connect with you.', 'all-in-one-seo-pack' ),
+
// Reference: /src/vue/pages/sitemaps/views/partials/AddAdditionalPage.vue:90
__( 'The file that you\'ve currently selected is not a CSV file.', 'all-in-one-seo-pack' ),
@@ -6244,6 +6307,10 @@
// Reference: /src/vue/pages/search-statistics/views/lite/seo-statistics/Blur.vue:32
__( 'The following SEO Statistics graphs are useful metrics for understanding the visibility of your website or pages in search results and can help you identify trends or changes over time.
Note: This data is capped at the top 100 keywords per day to speed up processing and to help you prioritize your SEO efforts, so while the data may seem inconsistent with Google Search Console, this is intentional.', 'all-in-one-seo-pack' ),
+ // Reference: /src/vue/pages/search-appearance/views/partials/eeat/EeatBlur.vue:58
+ // Translators: 1 - Opening tag, 2 - Closing
tag.
+ __( 'The following settings will be added directly to an author\'s schema meta data via the %1$sknowsAbout%2$s property. This property helps with the Experience aspect of Google\'s E-E-A-T guidelines. After setting the global options here, you can add them directly in an authors profile page.', 'all-in-one-seo-pack' ),
+
// Reference: /src/vue/components/common/html-sitemap/DisplayInfo.vue:70
__( 'The following shortcode attributes can be used to override the default settings:', 'all-in-one-seo-pack' ),
@@ -6318,6 +6385,9 @@
// Reference: /src/vue/pages/about/views/AboutUs.vue:308
__( 'The most advanced WordPress search plugin. Customize your WordPress search algorithm, reorder search results, track search metrics, and everything you need to leverage search to grow your business.', 'all-in-one-seo-pack' ),
+ // Reference: /src/vue/pages/search-appearance/views/partials/eeat/EeatBlur.vue:67
+ __( 'The name of the item the author knows about (e.g. "Amazon").', 'all-in-one-seo-pack' ),
+
// Reference: /src/vue/pages/tools/views/partials/robots-editor/RuleErrors.vue:85
__( 'The network rule takes precedence.', 'all-in-one-seo-pack' ),
@@ -6325,6 +6395,9 @@
// Translators: 1 - The plugin name ("All in One SEO"), 2 - Opening HTML link tag, 3 - Closing HTML link tag.
__( 'The options below are disabled because you are using %1$s to manage your SEO. They can be changed in the %2$sSearch Appearance menu%3$s.', 'all-in-one-seo-pack' ),
+ // Reference: /src/vue/standalone/user-profile-tab/partials/EeatBlur.vue:31
+ __( 'The organization the author works for.', 'all-in-one-seo-pack' ),
+
// Reference: /src/vue/classes/SiteAnalysis.js:282
__( 'The page contains a noindex header or meta tag.', 'all-in-one-seo-pack' ),
@@ -6391,6 +6464,9 @@
// Reference: /src/vue/classes/SiteAnalysis.js:330
__( 'The robots.txt file is missing or unavailable.', 'all-in-one-seo-pack' ),
+ // Reference: /src/vue/standalone/user-profile-tab/partials/EeatBlur.vue:27
+ __( 'The school, college, or university where the author studied.', 'all-in-one-seo-pack' ),
+
// Reference: /src/vue/pages/search-appearance/views/Advanced.vue:111
__( 'The search feed allows visitors to subscribe to your content based on a specific search term.', 'all-in-one-seo-pack' ),
@@ -6463,6 +6539,12 @@
// Reference: /src/vue/pages/social-networks/views/Facebook.vue:65
__( 'The Title of the Page or Site you are Sharing', 'all-in-one-seo-pack' ),
+ // Reference: /src/vue/pages/search-appearance/views/partials/eeat/EeatBlur.vue:68
+ __( 'The URL of the item the author knows about (e.g. "https://amazon.com").', 'all-in-one-seo-pack' ),
+
+ // Reference: /src/vue/standalone/user-profile-tab/partials/EeatBlur.vue:29
+ __( 'The URL of the school, college, or university where the author studied.', 'all-in-one-seo-pack' ),
+
// Reference: /src/vue/components/common/core/site-score/Analyze.vue:62
// Reference: /src/vue/components/common/core/site-score/Dashboard.vue:53
// Reference: /src/vue/pages/seo-analysis/views/AnalyzeCompetitorSite.vue:65
@@ -6471,7 +6553,7 @@
// Reference: /src/vue/pages/sitemaps/composables/VideoSitemap.js:10
__( 'The Video Sitemap generates an XML Sitemap for video content on your site. Search engines use this information to display rich snippet information in search results.', 'all-in-one-seo-pack' ),
- // Reference: /src/vue/pages/feature-manager/views/FeatureManager.vue:94
+ // Reference: /src/vue/pages/feature-manager/views/FeatureManager.vue:96
// Reference: /src/vue/pages/sitemaps/composables/VideoSitemap.js:11
__( 'The Video Sitemap works in much the same way as the XML Sitemap module, it generates an XML Sitemap specifically for video content on your site. Search engines use this information to display rich snippet information in search results.', 'all-in-one-seo-pack' ),
@@ -6532,7 +6614,7 @@
// Translators: 1 - Opening bold tag, 2 - Closing bold tag.
__( 'This action cannot be undone. Before taking this action, we recommend that you make a %1$sfull website backup first%2$s.', 'all-in-one-seo-pack' ),
- // Reference: /src/vue/components/common/core/addon/Update.vue:55
+ // Reference: /src/vue/components/common/core/addon/Update.vue:56
// Translators: 1 - Plugin Short Name ("AIOSEO"), 2 - Pro, 3 - Version Number (e.g. "1.0.0"), 4 - Addon name (e.g. "Redirection Manager"), 5 - Version Number (e.g. "1.0.0").
__( 'This addon requires an update. %1$s %2$s requires a minimum version of %3$s for the %4$s addon. You currently have %5$s installed.', 'all-in-one-seo-pack' ),
@@ -6602,7 +6684,7 @@
__( 'This is a global feed of your site output in the RDF/RSS 1.0 format. %1$s', 'all-in-one-seo-pack' ),
// Reference: /src/vue/components/common/core/FeatureCard.vue:79
- // Reference: /src/vue/pages/feature-manager/views/FeatureManager.vue:84
+ // Reference: /src/vue/pages/feature-manager/views/FeatureManager.vue:86
__( 'This is a network-wide change.', 'all-in-one-seo-pack' ),
// Reference: /src/app/tru-seo/analyzer/analysis/lengthContent.js:52
@@ -6760,7 +6842,7 @@
// Reference: /src/vue/pages/social-networks/views/SocialProfiles.vue:14
__( 'To let search engines know which profiles are associated with this site, enter them below:', 'all-in-one-seo-pack' ),
- // Reference: /src/vue/standalone/user-profile-tab/App.vue:28
+ // Reference: /src/vue/standalone/user-profile-tab/App.vue:30
__( 'To let search engines know which profiles are associated with this user, enter them below:', 'all-in-one-seo-pack' ),
// Reference: /src/vue/components/common/core/add-redirection/Url.vue:178
@@ -7014,9 +7096,12 @@
// Reference: /src/vue/pages/settings/views/lite/AccessControl.vue:35
__( 'Unlock Access Control', 'all-in-one-seo-pack' ),
- // Reference: /src/vue/pages/feature-manager/views/FeatureManager.vue:80
+ // Reference: /src/vue/pages/feature-manager/views/FeatureManager.vue:82
__( 'Unlock All Features', 'all-in-one-seo-pack' ),
+ // Reference: /src/vue/composables/EeatCta.js:24
+ __( 'Unlock Author SEO (E-E-A-T)', 'all-in-one-seo-pack' ),
+
// Reference: /src/vue/pages/settings/views/lite/Breadcrumbs.vue:22
__( 'Unlock Breadcrumb Templates', 'all-in-one-seo-pack' ),
@@ -7092,6 +7177,9 @@
// Reference: /src/vue/components/common/core/FeatureCard.vue:69
__( 'Update Addon', 'all-in-one-seo-pack' ),
+ // Reference: /src/vue/composables/EeatCta.js:26
+ __( 'Update Author SEO (E-E-A-T)', 'all-in-one-seo-pack' ),
+
// Reference: /src/vue/pages/settings/views/partials/WebmasterTools/IndexNowSettings.vue:60
__( 'Update IndexNow', 'all-in-one-seo-pack' ),
@@ -7110,7 +7198,7 @@
// Reference: /src/vue/components/common/notifications/UnlicensedAddons.vue:25
__( 'Upgrade', 'all-in-one-seo-pack' ),
- // Reference: /src/vue/pages/feature-manager/views/FeatureManager.vue:77
+ // Reference: /src/vue/pages/feature-manager/views/FeatureManager.vue:79
// Translators: 1 - The plugin name ("All in One SEO").
__( 'Upgrade %1$s to Pro and Unlock all Features!', 'all-in-one-seo-pack' ),
@@ -7163,6 +7251,9 @@
// Reference: /src/vue/pages/local-seo/views/lite/locations/Blur.vue:24
__( 'Upload or Select Image', 'all-in-one-seo-pack' ),
+ // Reference: /src/vue/pages/search-appearance/views/partials/eeat/EeatBlur.vue:63
+ __( 'URL', 'all-in-one-seo-pack' ),
+
// Reference: /src/vue/pages/sitemaps/views/partials/AddAdditionalPage.vue:95
__( 'URL already exists.', 'all-in-one-seo-pack' ),
@@ -7316,7 +7407,7 @@
// Reference: /src/vue/standalone/post-settings/views/mixins/Graphs.js:182
__( 'Video', 'all-in-one-seo-pack' ),
- // Reference: /src/vue/pages/feature-manager/views/FeatureManager.vue:66
+ // Reference: /src/vue/pages/feature-manager/views/FeatureManager.vue:68
__( 'Video and News Sitemaps', 'all-in-one-seo-pack' ),
// Reference: /src/vue/pages/about/views/lite/LiteVsPro.vue:143
@@ -7687,7 +7778,7 @@
__( 'Yes, I want to restore this backup', 'all-in-one-seo-pack' ),
// Reference: /src/vue/components/common/core/FeatureCard.vue:80
- // Reference: /src/vue/pages/feature-manager/views/FeatureManager.vue:85
+ // Reference: /src/vue/pages/feature-manager/views/FeatureManager.vue:87
__( 'Yes, process this network change', 'all-in-one-seo-pack' ),
// Reference: /src/vue/pages/local-seo/views/lite/import/Import.vue:35
@@ -7756,8 +7847,8 @@
// Reference: /src/vue/pages/sitemaps/views/AdditionalPages.vue:54
__( 'You can use this section to add any URLs to your sitemap which aren\'t a part of your WordPress installation. For example, if you have a contact form that you would like to be included on your sitemap you can enter the information manually.', 'all-in-one-seo-pack' ),
- // Reference: /src/vue/components/common/core/addon/Activate.vue:49
- // Reference: /src/vue/components/common/core/addon/Update.vue:52
+ // Reference: /src/vue/components/common/core/addon/Activate.vue:50
+ // Reference: /src/vue/components/common/core/addon/Update.vue:53
// Reference: /src/vue/pages/tools/views/WpCode.vue:38
__( 'You currently don\'t have permission to activate this addon. Please ask a site administrator to activate first.', 'all-in-one-seo-pack' ),
@@ -8056,7 +8147,7 @@
// Reference: /src/vue/components/common/core/add-redirection/Url.vue:106
__( 'Your URL is invalid.', 'all-in-one-seo-pack' ),
- // Reference: /src/vue/components/common/base/Input.vue:124
+ // Reference: /src/vue/components/common/base/Input.vue:128
__( 'Your URL is invalid. Please check the format and try again.', 'all-in-one-seo-pack' ),
// Reference: /src/vue/components/common/core/alert/UnfilteredHtml.vue:21
diff --git a/package-lock.json b/package-lock.json
index 2f6cc0541..2516d281d 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -98,16 +98,16 @@
}
},
"node_modules/@ariakit/core": {
- "version": "0.3.8",
- "resolved": "https://registry.npmjs.org/@ariakit/core/-/core-0.3.8.tgz",
- "integrity": "sha512-LlSCwbyyozMX4ZEobpYGcv1LFqOdBTdTYPZw3lAVgLcFSNivsazi3NkKM9qNWNIu00MS+xTa0+RuIcuWAjlB2Q=="
+ "version": "0.3.11",
+ "resolved": "https://registry.npmjs.org/@ariakit/core/-/core-0.3.11.tgz",
+ "integrity": "sha512-+MnOeqnA4FLI/7vqsZLbZQHHN4ofd9kvkNjz44fNi0gqmD+ZbMWiDkFAvZII75dYnxYw5ZPpWjA4waK22VBWig=="
},
"node_modules/@ariakit/react": {
- "version": "0.3.10",
- "resolved": "https://registry.npmjs.org/@ariakit/react/-/react-0.3.10.tgz",
- "integrity": "sha512-XRY69IOm8Oy+HSPoaspcVLAhLo3ToLhhJKSLK1voTAZtSzu5kUeUf4nUPxTzYFsvirKORZgOLAeNwuo1gPr61g==",
+ "version": "0.3.13",
+ "resolved": "https://registry.npmjs.org/@ariakit/react/-/react-0.3.13.tgz",
+ "integrity": "sha512-J7ajCe62eeQVkQrnEQiUpRr21IHAM1iKjFtPd9YafhC/fjoKye3sxbVXHCn3mcHuMwADAiL8uTA+665Nw9V4nA==",
"dependencies": {
- "@ariakit/react-core": "0.3.10"
+ "@ariakit/react-core": "0.3.13"
},
"funding": {
"type": "opencollective",
@@ -119,11 +119,11 @@
}
},
"node_modules/@ariakit/react-core": {
- "version": "0.3.10",
- "resolved": "https://registry.npmjs.org/@ariakit/react-core/-/react-core-0.3.10.tgz",
- "integrity": "sha512-CzSffcNlOyS2xuy21UB6fgJXi5LriJ9JrTSJzcgJmE+P9/WfQlplJC3L75d8O2yKgaGPeFnQ0hhDA6ItsI98eQ==",
+ "version": "0.3.13",
+ "resolved": "https://registry.npmjs.org/@ariakit/react-core/-/react-core-0.3.13.tgz",
+ "integrity": "sha512-I/4h9FC4QsKfw6in3hwL96Mep48a55VnVlrmtLWavjxQ6t6AQrDk33NKwlO9Xw3prLneypi0I/4UozGavhcaCQ==",
"dependencies": {
- "@ariakit/core": "0.3.8",
+ "@ariakit/core": "0.3.11",
"@floating-ui/dom": "^1.0.0",
"use-sync-external-store": "^1.2.0"
},
@@ -154,9 +154,9 @@
}
},
"node_modules/@babel/core": {
- "version": "7.23.6",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.6.tgz",
- "integrity": "sha512-FxpRyGjrMJXh7X3wGLGhNDCRiwpWEF74sKjTLDJSG5Kyvow3QZaG0Adbqzi9ZrVjTWpsX+2cxWXD71NMg93kdw==",
+ "version": "7.23.7",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.7.tgz",
+ "integrity": "sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw==",
"dev": true,
"dependencies": {
"@ampproject/remapping": "^2.2.0",
@@ -164,10 +164,10 @@
"@babel/generator": "^7.23.6",
"@babel/helper-compilation-targets": "^7.23.6",
"@babel/helper-module-transforms": "^7.23.3",
- "@babel/helpers": "^7.23.6",
+ "@babel/helpers": "^7.23.7",
"@babel/parser": "^7.23.6",
"@babel/template": "^7.22.15",
- "@babel/traverse": "^7.23.6",
+ "@babel/traverse": "^7.23.7",
"@babel/types": "^7.23.6",
"convert-source-map": "^2.0.0",
"debug": "^4.1.0",
@@ -337,13 +337,13 @@
}
},
"node_modules/@babel/helpers": {
- "version": "7.23.6",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.6.tgz",
- "integrity": "sha512-wCfsbN4nBidDRhpDhvcKlzHWCTlgJYUUdSJfzXb2NuBssDSIjc3xcb+znA7l+zYsFljAcGM0aFkN40cR3lXiGA==",
+ "version": "7.23.8",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.8.tgz",
+ "integrity": "sha512-KDqYz4PiOWvDFrdHLPhKtCThtIcKVy6avWD2oG4GEvyQ+XDZwHD4YQd+H2vNMnq2rkdxsDkU82T+Vk8U/WXHRQ==",
"dev": true,
"dependencies": {
"@babel/template": "^7.22.15",
- "@babel/traverse": "^7.23.6",
+ "@babel/traverse": "^7.23.7",
"@babel/types": "^7.23.6"
},
"engines": {
@@ -405,9 +405,9 @@
}
},
"node_modules/@babel/runtime": {
- "version": "7.23.6",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.6.tgz",
- "integrity": "sha512-zHd0eUrf5GZoOWVCXp6koAKQTfZV07eit6bGPmJgnZdnSAvvZee6zniW2XMF7Cmc4ISOOnPy3QaSiIJGJkVEDQ==",
+ "version": "7.23.8",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.8.tgz",
+ "integrity": "sha512-Y7KbAP984rn1VGMbGqKmBLio9V7y5Je9GvU4rQPCPinCyNfUcToxIXl06d59URp/F3LwinvODxab5N/G6qggkw==",
"dependencies": {
"regenerator-runtime": "^0.14.0"
},
@@ -430,9 +430,9 @@
}
},
"node_modules/@babel/traverse": {
- "version": "7.23.6",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.6.tgz",
- "integrity": "sha512-czastdK1e8YByZqezMPFiZ8ahwVMh/ESl9vPgvgdB9AmFMGP5jfpFax74AQgl5zj4XHzqeYAg2l8PuUeRS1MgQ==",
+ "version": "7.23.7",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.7.tgz",
+ "integrity": "sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg==",
"dev": true,
"dependencies": {
"@babel/code-frame": "^7.23.5",
@@ -515,12 +515,12 @@
}
},
"node_modules/@codemirror/commands": {
- "version": "6.3.2",
- "resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-6.3.2.tgz",
- "integrity": "sha512-tjoi4MCWDNxgIpoLZ7+tezdS9OEB6pkiDKhfKx9ReJ/XBcs2G2RXIu+/FxXBlWsPTsz6C9q/r4gjzrsxpcnqCQ==",
+ "version": "6.3.3",
+ "resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-6.3.3.tgz",
+ "integrity": "sha512-dO4hcF0fGT9tu1Pj1D2PvGvxjeGkbC6RGcZw6Qs74TH+Ed1gw98jmUgd2axWvIZEqTeTuFrg1lEB1KV6cK9h1A==",
"dependencies": {
"@codemirror/language": "^6.0.0",
- "@codemirror/state": "^6.2.0",
+ "@codemirror/state": "^6.4.0",
"@codemirror/view": "^6.0.0",
"@lezer/common": "^1.1.0"
}
@@ -535,18 +535,28 @@
}
},
"node_modules/@codemirror/language": {
- "version": "6.9.3",
- "resolved": "https://registry.npmjs.org/@codemirror/language/-/language-6.9.3.tgz",
- "integrity": "sha512-qq48pYzoi6ldYWV/52+Z9Ou6QouVI+8YwvxFbUypI33NbjG2UeRHKENRyhwljTTiOqjQ33FjyZj6EREQ9apAOQ==",
+ "version": "6.10.0",
+ "resolved": "https://registry.npmjs.org/@codemirror/language/-/language-6.10.0.tgz",
+ "integrity": "sha512-2vaNn9aPGCRFKWcHPFksctzJ8yS5p7YoaT+jHpc0UGKzNuAIx4qy6R5wiqbP+heEEdyaABA582mNqSHzSoYdmg==",
"dependencies": {
"@codemirror/state": "^6.0.0",
- "@codemirror/view": "^6.0.0",
+ "@codemirror/view": "^6.23.0",
"@lezer/common": "^1.1.0",
"@lezer/highlight": "^1.0.0",
"@lezer/lr": "^1.0.0",
"style-mod": "^4.0.0"
}
},
+ "node_modules/@codemirror/language/node_modules/@codemirror/view": {
+ "version": "6.23.0",
+ "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.23.0.tgz",
+ "integrity": "sha512-/51px9N4uW8NpuWkyUX+iam5+PM6io2fm+QmRnzwqBy5v/pwGg9T0kILFtYeum8hjuvENtgsGNKluOfqIICmeQ==",
+ "dependencies": {
+ "@codemirror/state": "^6.4.0",
+ "style-mod": "^4.1.0",
+ "w3c-keyname": "^2.2.4"
+ }
+ },
"node_modules/@codemirror/lint": {
"version": "6.4.2",
"resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-6.4.2.tgz",
@@ -568,9 +578,9 @@
}
},
"node_modules/@codemirror/state": {
- "version": "6.3.3",
- "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.3.3.tgz",
- "integrity": "sha512-0wufKcTw2dEwEaADajjHf6hBy1sh3M6V0e+q4JKIhLuiMSe5td5HOWpUdvKth1fT1M9VYOboajoBHpkCd7PG7A=="
+ "version": "6.4.0",
+ "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.4.0.tgz",
+ "integrity": "sha512-hm8XshYj5Fo30Bb922QX9hXB/bxOAVH+qaqHBzw5TKa72vOeslyGwd4X8M0c1dJ9JqxlaMceOQ8RsL9tC7gU0A=="
},
"node_modules/@codemirror/view": {
"version": "6.22.2",
@@ -678,14 +688,14 @@
"integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA=="
},
"node_modules/@emotion/react": {
- "version": "11.11.1",
- "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.11.1.tgz",
- "integrity": "sha512-5mlW1DquU5HaxjLkfkGN1GA/fvVGdyHURRiX/0FHl2cfIfRxSOfmxEH5YS43edp0OldZrZ+dkBKbngxcNCdZvA==",
+ "version": "11.11.3",
+ "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.11.3.tgz",
+ "integrity": "sha512-Cnn0kuq4DoONOMcnoVsTOR8E+AdnKFf//6kUWc4LCdnxj31pZWn7rIULd6Y7/Js1PiPHzn7SKCM9vB/jBni8eA==",
"dependencies": {
"@babel/runtime": "^7.18.3",
"@emotion/babel-plugin": "^11.11.0",
"@emotion/cache": "^11.11.0",
- "@emotion/serialize": "^1.1.2",
+ "@emotion/serialize": "^1.1.3",
"@emotion/use-insertion-effect-with-fallbacks": "^1.0.1",
"@emotion/utils": "^1.2.1",
"@emotion/weak-memoize": "^0.3.1",
@@ -701,9 +711,9 @@
}
},
"node_modules/@emotion/serialize": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.2.tgz",
- "integrity": "sha512-zR6a/fkFP4EAcCMQtLOhIgpprZOwNmCldtpaISpvz348+DP4Mz8ZoKaGGCQpbzepNIUWbq4w6hNZkwDyKoS+HA==",
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.3.tgz",
+ "integrity": "sha512-iD4D6QVZFDhcbH0RAG1uVu1CwVLMWUkCvAqqlewO/rxf8+87yIBAlt4+AxMiiKPLs5hFc0owNk/sLLAOROw3cA==",
"dependencies": {
"@emotion/hash": "^0.9.1",
"@emotion/memoize": "^0.8.1",
@@ -1198,28 +1208,28 @@
}
},
"node_modules/@floating-ui/core": {
- "version": "1.5.2",
- "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.5.2.tgz",
- "integrity": "sha512-Ii3MrfY/GAIN3OhXNzpCKaLxHQfJF9qvwq/kEJYdqDxeIHa01K8sldugal6TmeeXl+WMvhv9cnVzUTaFFJF09A==",
+ "version": "1.5.3",
+ "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.5.3.tgz",
+ "integrity": "sha512-O0WKDOo0yhJuugCx6trZQj5jVJ9yR0ystG2JaNAemYUWce+pmM6WUEFIibnWyEJKdrDxhm75NoSRME35FNaM/Q==",
"dependencies": {
- "@floating-ui/utils": "^0.1.3"
+ "@floating-ui/utils": "^0.2.0"
}
},
"node_modules/@floating-ui/dom": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.5.3.tgz",
- "integrity": "sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA==",
+ "version": "1.5.4",
+ "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.5.4.tgz",
+ "integrity": "sha512-jByEsHIY+eEdCjnTVu+E3ephzTOzkQ8hgUfGwos+bg7NlH33Zc5uO+QHz1mrQUOgIKKDD1RtS201P9NvAfq3XQ==",
"dependencies": {
- "@floating-ui/core": "^1.4.2",
- "@floating-ui/utils": "^0.1.3"
+ "@floating-ui/core": "^1.5.3",
+ "@floating-ui/utils": "^0.2.0"
}
},
"node_modules/@floating-ui/react-dom": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.4.tgz",
- "integrity": "sha512-CF8k2rgKeh/49UrnIBs4BdxPUV6vize/Db1d/YbCLyp9GiVZ0BEwf5AiDSxJRCr6yOkGqTFHtmrULxkEfYZ7dQ==",
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.5.tgz",
+ "integrity": "sha512-UsBK30Bg+s6+nsgblXtZmwHhgS2vmbuQK22qgt2pTQM6M3X6H1+cQcLXqgRY3ihVLcZJE6IvqDQozhsnIVqK/Q==",
"dependencies": {
- "@floating-ui/dom": "^1.5.1"
+ "@floating-ui/dom": "^1.5.4"
},
"peerDependencies": {
"react": ">=16.8.0",
@@ -1227,9 +1237,9 @@
}
},
"node_modules/@floating-ui/utils": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.1.6.tgz",
- "integrity": "sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A=="
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.1.tgz",
+ "integrity": "sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q=="
},
"node_modules/@gar/promisify": {
"version": "1.1.3",
@@ -1379,9 +1389,9 @@
}
},
"node_modules/@lezer/common": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.1.2.tgz",
- "integrity": "sha512-V+GqBsga5+cQJMfM0GdnHmg4DgWvLzgMWjbldBg0+jC3k9Gu6nJNZDLJxXEBT1Xj8KhRN4jmbC5CY7SIL++sVw=="
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.2.0.tgz",
+ "integrity": "sha512-Wmvlm4q6tRpwiy20TnB3yyLTZim38Tkc50dPY8biQRwqE+ati/wD84rm3N15hikvdT4uSg9phs9ubjvcLmkpKg=="
},
"node_modules/@lezer/highlight": {
"version": "1.2.0",
@@ -1392,10 +1402,11 @@
}
},
"node_modules/@lezer/json": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@lezer/json/-/json-1.0.1.tgz",
- "integrity": "sha512-nkVC27qiEZEjySbi6gQRuMwa2sDu2PtfjSgz0A4QF81QyRGm3kb2YRzLcOPcTEtmcwvrX/cej7mlhbwViA4WJw==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@lezer/json/-/json-1.0.2.tgz",
+ "integrity": "sha512-xHT2P4S5eeCYECyKNPhr4cbEL9tc8w83SPwRC373o9uEdrvGKTZoJVAGxpOsZckMlEh9W23Pc72ew918RWQOBQ==",
"dependencies": {
+ "@lezer/common": "^1.2.0",
"@lezer/highlight": "^1.0.0",
"@lezer/lr": "^1.0.0"
}
@@ -1409,9 +1420,9 @@
}
},
"node_modules/@mazui/cli": {
- "version": "3.29.10",
- "resolved": "https://registry.npmjs.org/@mazui/cli/-/cli-3.29.10.tgz",
- "integrity": "sha512-qOibwQaqaM8j+Be+qwvkC7mKOZj7O6Miz7MDk7Scpnhwc1H9ObWWGeAkvw1a9SBayibFKhEfh6tXrMJz8o9A3g==",
+ "version": "3.31.6",
+ "resolved": "https://registry.npmjs.org/@mazui/cli/-/cli-3.31.6.tgz",
+ "integrity": "sha512-lsdbAKr1n8yWpfwg09FpULPvYFysC8ksOuUqgLye6x8q+vz4KWI0v71Rc5BbLMfQPa5q6C1SIIyIE9K2OVOTFQ==",
"dependencies": {
"@clack/prompts": "^0.7.0",
"clear": "^0.1.0",
@@ -2523,18 +2534,18 @@
}
},
"node_modules/@types/babel__traverse": {
- "version": "7.20.4",
- "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.4.tgz",
- "integrity": "sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==",
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz",
+ "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==",
"dev": true,
"dependencies": {
"@babel/types": "^7.20.7"
}
},
"node_modules/@types/eslint": {
- "version": "8.56.0",
- "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.0.tgz",
- "integrity": "sha512-FlsN0p4FhuYRjIxpbdXovvHQhtlG05O1GG/RNWvdAxTboR438IOTwmrY/vLA+Xfgg06BTkP045M3vpFwTMv1dg==",
+ "version": "8.56.1",
+ "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.1.tgz",
+ "integrity": "sha512-18PLWRzhy9glDQp3+wOgfLYRWlhgX0azxgJ63rdpoUHyrC9z0f5CkFburjQx4uD7ZCruw85ZtMt6K+L+R8fLJQ==",
"dev": true,
"dependencies": {
"@types/estree": "*",
@@ -2615,9 +2626,9 @@
"integrity": "sha512-qL0hyIMNPow317QWW/63RvL1x5MVMV+Ru3NaY9f/CuEpCqrmb7WeuK2071ZY5hczOnm38qExWM2i2WtkXLSqFw=="
},
"node_modules/@types/node": {
- "version": "20.10.5",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.5.tgz",
- "integrity": "sha512-nNPsNE65wjMxEKI93yOP+NPGGBJz/PoN3kZsVLee0XMiJolxSekEVD8wRwBUBqkwc7UWop0edW50yrCQW4CyRw==",
+ "version": "20.10.8",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.8.tgz",
+ "integrity": "sha512-f8nQs3cLxbAFc00vEU59yf9UyGUftkPaLGfvbVOIDdx2i1b8epBqj2aNGyP19fiyXWvlmZ7qC1XLjAzw/OKIeA==",
"dependencies": {
"undici-types": "~5.26.4"
}
@@ -2645,9 +2656,9 @@
"integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng=="
},
"node_modules/@types/react": {
- "version": "18.2.45",
- "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.45.tgz",
- "integrity": "sha512-TtAxCNrlrBp8GoeEp1npd5g+d/OejJHFxS3OWmrPBMFaVQMSN0OFySozJio5BHxTuTeug00AVXVAjfDSfk+lUg==",
+ "version": "18.2.47",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.47.tgz",
+ "integrity": "sha512-xquNkkOirwyCgoClNk85BjP+aqnIS+ckAJ8i37gAbDs14jfW/J23f2GItAf33oiUPQnqNMALiFeoM9Y5mbjpVQ==",
"dependencies": {
"@types/prop-types": "*",
"@types/scheduler": "*",
@@ -2759,9 +2770,9 @@
}
},
"node_modules/@vitejs/plugin-vue": {
- "version": "4.5.2",
- "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.5.2.tgz",
- "integrity": "sha512-UGR3DlzLi/SaVBPX0cnSyE37vqxU3O6chn8l0HJNzQzDia6/Au2A4xKv+iIJW8w2daf80G7TYHhi1pAUjdZ0bQ==",
+ "version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.6.2.tgz",
+ "integrity": "sha512-kqf7SGFoG+80aZG6Pf+gsZIVvGSCKE98JbiWqcCV9cThtg91Jav0yvYFC9Zb+jKetNGF6ZKeoaxgZfND21fWKw==",
"dev": true,
"engines": {
"node": "^14.18.0 || >=16.0.0"
@@ -4443,9 +4454,9 @@
"integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
},
"node_modules/acorn": {
- "version": "8.11.2",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz",
- "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==",
+ "version": "8.11.3",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
+ "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
"dev": true,
"bin": {
"acorn": "bin/acorn"
@@ -5213,9 +5224,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001570",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001570.tgz",
- "integrity": "sha512-+3e0ASu4sw1SWaoCtvPeyXp+5PsjigkSt8OXZbF9StH5pQWbxEjLAZE3n8Aup5udop1uRiKA7a4utUk/uoSpUw==",
+ "version": "1.0.30001576",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001576.tgz",
+ "integrity": "sha512-ff5BdakGe2P3SQsMsiqmt1Lc8221NR1VzHj5jXN5vBny9A6fpze94HiVV/n7XRosOlsShJcvMv5mdnpjOGCEgg==",
"dev": true,
"funding": [
{
@@ -5344,9 +5355,9 @@
}
},
"node_modules/classnames": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz",
- "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw=="
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz",
+ "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow=="
},
"node_modules/clean-stack": {
"version": "2.2.0",
@@ -6077,9 +6088,9 @@
"integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA=="
},
"node_modules/electron-to-chromium": {
- "version": "1.4.615",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.615.tgz",
- "integrity": "sha512-/bKPPcgZVUziECqDc+0HkT87+0zhaWSZHNXqF8FLd2lQcptpmUFwoCSWjCdOng9Gdq+afKArPdEg/0ZW461Eng==",
+ "version": "1.4.626",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.626.tgz",
+ "integrity": "sha512-f7/be56VjRRQk+Ric6PmIrEtPcIqsn3tElyAu9Sh6egha2VLJ82qwkcOdcnT06W+Pb6RUulV1ckzrGbKzVcTHg==",
"dev": true
},
"node_modules/element-plus": {
@@ -7140,9 +7151,9 @@
}
},
"node_modules/framer-motion": {
- "version": "10.16.16",
- "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-10.16.16.tgz",
- "integrity": "sha512-je6j91rd7NmUX7L1XHouwJ4v3R+SO4umso2LUcgOct3rHZ0PajZ80ETYZTajzEXEl9DlKyzjyt4AvGQ+lrebOw==",
+ "version": "10.17.12",
+ "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-10.17.12.tgz",
+ "integrity": "sha512-6aaBLN2EgH/GilXwOzEalTfw5Rx9DTQJJjTrxq5bfDbGtPCzXz2GCN6ePGRpTi1ZGugLHxdU273h38ENbcdFKQ==",
"dependencies": {
"tslib": "^2.4.0"
},
@@ -8485,9 +8496,9 @@
}
},
"node_modules/libphonenumber-js": {
- "version": "1.10.52",
- "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.10.52.tgz",
- "integrity": "sha512-6vCuCHgem+OW1/VCAKgkasfegItCea8zIT7s9/CG/QxdCMIM7GfzbEBG5d7lGO3rzipjt5woOQL3DiHa8Fy78Q=="
+ "version": "1.10.53",
+ "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.10.53.tgz",
+ "integrity": "sha512-sDTnnqlWK4vH4AlDQuswz3n4Hx7bIQWTpIcScJX+Sp7St3LXHmfiax/ZFfyYxHmkdCvydOLSuvtAO/XpXiSySw=="
},
"node_modules/line-height": {
"version": "0.3.1",
@@ -9122,17 +9133,17 @@
}
},
"node_modules/moment": {
- "version": "2.29.4",
- "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz",
- "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==",
+ "version": "2.30.1",
+ "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz",
+ "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==",
"engines": {
"node": "*"
}
},
"node_modules/moment-timezone": {
- "version": "0.5.43",
- "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.43.tgz",
- "integrity": "sha512-72j3aNyuIsDxdF1i7CEgV2FfxM1r6aaqJyLB2vwb33mXYyoyLly+F1zbWqhA3/bVIoJ4szlUoMbUnVdid32NUQ==",
+ "version": "0.5.44",
+ "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.44.tgz",
+ "integrity": "sha512-nv3YpzI/8lkQn0U6RkLd+f0W/zy/JnoR5/EyPz/dNkPTBjA2jNLCVxaiQ8QpeLymhSZvX0wCL5s27NQWdOPwAw==",
"dependencies": {
"moment": "^2.29.4"
},
@@ -10442,9 +10453,9 @@
"deprecated": "You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1"
},
"node_modules/postcss": {
- "version": "8.4.32",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz",
- "integrity": "sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==",
+ "version": "8.4.33",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.33.tgz",
+ "integrity": "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==",
"funding": [
{
"type": "opencollective",
@@ -10469,9 +10480,9 @@
}
},
"node_modules/postcss-prefixwrap": {
- "version": "1.43.0",
- "resolved": "https://registry.npmjs.org/postcss-prefixwrap/-/postcss-prefixwrap-1.43.0.tgz",
- "integrity": "sha512-9qGvIHCgc8zbPRW2TXBUfZd6rZ0pV41a2i0LVPN8PKimT0lMG2y7CPlhu6mmj1NdUkkZtyUIk/6aiEfuCjlgjg==",
+ "version": "1.44.0",
+ "resolved": "https://registry.npmjs.org/postcss-prefixwrap/-/postcss-prefixwrap-1.44.0.tgz",
+ "integrity": "sha512-h9MJGaIvT5hnzFc7Vuo+2ulBw6ecmmfcd8SKKH2TziUzcIA04gUoXIbptuM+tR+htmsQIKNEluiQlmCQ2p5a2g==",
"peerDependencies": {
"postcss": "*"
}
@@ -10492,9 +10503,9 @@
}
},
"node_modules/postcss-selector-parser": {
- "version": "6.0.13",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz",
- "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==",
+ "version": "6.0.15",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz",
+ "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==",
"dev": true,
"dependencies": {
"cssesc": "^3.0.0",
@@ -11570,15 +11581,18 @@
]
},
"node_modules/safe-regex-test": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz",
- "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.1.tgz",
+ "integrity": "sha512-Y5NejJTTliTyY4H7sipGqY+RX5P87i3F7c4Rcepy72nq+mNLhIsD0W4c7kEmduMDQCSqtPsXPlSTsFhh2LQv+g==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.2",
- "get-intrinsic": "^1.1.3",
+ "call-bind": "^1.0.5",
+ "get-intrinsic": "^1.2.2",
"is-regex": "^1.1.4"
},
+ "engines": {
+ "node": ">= 0.4"
+ },
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
@@ -11589,9 +11603,9 @@
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
},
"node_modules/sass": {
- "version": "1.69.5",
- "resolved": "https://registry.npmjs.org/sass/-/sass-1.69.5.tgz",
- "integrity": "sha512-qg2+UCJibLr2LCVOt3OlPhr/dqVHWOa9XtZf2OjbLs/T4VPSJ00udtgJxH3neXZm+QqX8B+3cU7RaLqp1iVfcQ==",
+ "version": "1.69.7",
+ "resolved": "https://registry.npmjs.org/sass/-/sass-1.69.7.tgz",
+ "integrity": "sha512-rzj2soDeZ8wtE2egyLXgOOHQvaC2iosZrkF6v3EUG+tBwEvhqUCzm0VP3k9gHF9LXbSrRhT5SksoI56Iw8NPnQ==",
"dev": true,
"dependencies": {
"chokidar": ">=3.0.0 <4.0.0",
@@ -12639,15 +12653,15 @@
}
},
"node_modules/unplugin": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.5.1.tgz",
- "integrity": "sha512-0QkvG13z6RD+1L1FoibQqnvTwVBXvS4XSPwAyinVgoOCl2jAgwzdUKmEj05o4Lt8xwQI85Hb6mSyYkcAGwZPew==",
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.6.0.tgz",
+ "integrity": "sha512-BfJEpWBu3aE/AyHx8VaNE/WgouoQxgH9baAiH82JjX8cqVyi3uJQstqwD5J+SZxIK326SZIhsSZlALXVBCknTQ==",
"dev": true,
"dependencies": {
"acorn": "^8.11.2",
"chokidar": "^3.5.3",
"webpack-sources": "^3.2.3",
- "webpack-virtual-modules": "^0.6.0"
+ "webpack-virtual-modules": "^0.6.1"
}
},
"node_modules/unplugin-element-plus": {
@@ -12813,9 +12827,9 @@
"dev": true
},
"node_modules/use-callback-ref": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.0.tgz",
- "integrity": "sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==",
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.1.tgz",
+ "integrity": "sha512-Lg4Vx1XZQauB42Hw3kK7JM6yjVjgFmFC5/Ab797s79aARomD2nEErc4mCgM8EZrARLmmbWpi5DGCadmK50DcAQ==",
"dependencies": {
"tslib": "^2.0.0"
},
@@ -12846,17 +12860,26 @@
}
},
"node_modules/use-lilius": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/use-lilius/-/use-lilius-2.0.3.tgz",
- "integrity": "sha512-+Q7nspdv+QGnyHGVMd6yAdLrqv5EGB4n3ix4GJH0JEE27weKCLCLmZSuAr5Nw+yPBCZn/iZ+KjL5+UykLCWXrw==",
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/use-lilius/-/use-lilius-2.0.4.tgz",
+ "integrity": "sha512-5y4yKCDivylrUOB5V19BKLWFVyjInC/nkOHjiy4M5qjZzRR0HJQtNKVOZ+o5SMW+mOj1wIg65qXZ0uJF40Iv4w==",
"dependencies": {
- "date-fns": "^2.29.2"
+ "date-fns": "^3.0.0"
},
"peerDependencies": {
"react": "*",
"react-dom": "*"
}
},
+ "node_modules/use-lilius/node_modules/date-fns": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-3.2.0.tgz",
+ "integrity": "sha512-E4KWKavANzeuusPi0jUjpuI22SURAznGkx7eZV+4i6x2A+IZxAMcajgkvuDAU1bg40+xuhW1zRdVIIM/4khuIg==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/kossnocorp"
+ }
+ },
"node_modules/use-memo-one": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/use-memo-one/-/use-memo-one-1.1.3.tgz",
@@ -13115,9 +13138,9 @@
}
},
"node_modules/vue-eslint-parser": {
- "version": "9.3.2",
- "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.3.2.tgz",
- "integrity": "sha512-q7tWyCVaV9f8iQyIA5Mkj/S6AoJ9KBN8IeUSf3XEmBrOtxOZnfTg5s4KClbZBCK3GtnT/+RyCLZyDHuZwTuBjg==",
+ "version": "9.4.0",
+ "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.4.0.tgz",
+ "integrity": "sha512-7KsNBb6gHFA75BtneJsoK/dbZ281whUIwFYdQxA68QrCrGMXYzUMbPDHGcOQ0OocIVKrWSKWXZ4mL7tonCXoUw==",
"dev": true,
"dependencies": {
"debug": "^4.3.4",
@@ -13501,9 +13524,9 @@
}
},
"node_modules/ws": {
- "version": "8.15.1",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.15.1.tgz",
- "integrity": "sha512-W5OZiCjXEmk0yZ66ZN82beM5Sz7l7coYxpRkzS+p9PP+ToQry8szKh+61eNktr7EA9DOwvFGhfC605jDHbP6QQ==",
+ "version": "8.16.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz",
+ "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==",
"optional": true,
"engines": {
"node": ">=10.0.0"
diff --git a/readme.txt b/readme.txt
index 0e29de6a4..33caaded7 100644
--- a/readme.txt
+++ b/readme.txt
@@ -4,7 +4,7 @@ Tags: SEO, Google Search Console, XML Sitemap, meta description, schema, meta ti
Tested up to: 6.4.2
Requires at least: 4.9
Requires PHP: 7.0
-Stable tag: 4.5.3.1
+Stable tag: 4.5.4
License: GPLv3 or later
License URI: https://www.gnu.org/licenses/gpl-3.0.txt
@@ -148,6 +148,7 @@ Since redirect speed is important for SEO, we built in both Apache / NGINX serve
* **Advanced SEO Schema** - Easily add advanced SEO schema markups like FAQ schema, product schema, recipe schema (food blogger SEO), software application schema markup (SaaS SEO), online course schema (for course SEO), and more using our Schema Generator.
* **Sitelinks Search Box** - Helps you get a search box in Google SEO rankings.
* **Google Site Links** - Our SEO markup can help you get sitelinks for your brand.
+* **Author SEO** - Boost your SEO performance by highlighting the professional expertise and trustworthiness of your authors, aligning with Google's E-E-A-T standards.
* **Robots.txt Editor** - Control what SEO robots can see with our easy SEO robots.txt editor.
* **SEO Audit Checklist** - Improve your website's SEO ranking with our SEO audit checklist.
* **Google Search Console** - Connect your WordPress site with Google webmaster tools and Google Search Console to see additional SEO insights (like content rankings, keyword rankings, keyword tracking, page speed insights and more) directly in your WordPress dashboard and submit your XML sitemaps within minutes.
@@ -213,6 +214,9 @@ Since redirect speed is important for SEO, we built in both Apache / NGINX serve
* **Local Business Maps** - embed maps directly on your location pages to allow your customers to easily find your location with driving directions and reviews.
* **Local Business Opening Hours** - display the hours that your local business is open or closed.
* **Breadcrumbs** - output a breadcrumb trail for your current page or post.
+* **Author Bio** - display an author bio for the author of your current post or author archive page.
+* **Author Name** - display the name of the author of your current post or author archive page.
+* **Reviewer Name** - display the name of the reviewer of your current post.
**After reading this feature list, you can probably imagine why AIOSEO is the best WordPress SEO plugin in the market.**
@@ -261,6 +265,12 @@ Visit WPBeg
== Changelog ==
+**New in Version 4.5.4**
+
+* New: Author SEO (E-E-A-T) Addon - Optimize your site for Google's E-E-A-T ranking factor by proving your writer's expertise through author schema markup and new UI elements.
+* Fixed: Plugin conflict where post content sometimes disappeared in the post editor when using AIOSEO, Avada and the Classic Editor.
+* Fixed: Taxonomy title smart tag not outputting proper value when archive page has no posts.
+
**New in Version 4.5.3.1**
* Fixed: AIOSEO Settings modal sometimes opening in Divi visual editor when user performs unrelated action.
@@ -727,6 +737,6 @@ Additionally, AIOSEO can also provide you with data on the most frequently used
== Upgrade Notice ==
-= 4.5.3.1 =
+= 4.5.4 =
This update adds major improvements and bug fixes.
\ No newline at end of file
diff --git a/src/vue/assets/scss/redirects/table.scss b/src/vue/assets/scss/redirects/table.scss
index 953557b31..2c83cd14b 100644
--- a/src/vue/assets/scss/redirects/table.scss
+++ b/src/vue/assets/scss/redirects/table.scss
@@ -1,4 +1,5 @@
-.redirects-options-table {
+.redirects-options-table,
+.topics-table {
position: relative;
margin: 0;
border: none;
diff --git a/src/vue/components/common/base/Editor.vue b/src/vue/components/common/base/Editor.vue
index 99cac5079..4060245bd 100644
--- a/src/vue/components/common/base/Editor.vue
+++ b/src/vue/components/common/base/Editor.vue
@@ -128,6 +128,7 @@ import '@/vue/plugins/quill/quill-character-counter'
import '@/vue/plugins/quill/quill-auto-link'
import '@/vue/plugins/quill/quill-phrase-editor-formats'
import '@/vue/plugins/quill/quill-preserve-whitespace'
+import BaseInput from '@/vue/components/common/base/Input'
import SvgCaret from '@/vue/components/common/svg/Caret'
import SvgPlus from '@/vue/components/common/svg/Plus'
import SvgTrash from '@/vue/components/common/svg/Trash'
@@ -143,6 +144,7 @@ export default {
},
emits : [ 'counter', 'selection-change', 'updateEditor', 'focus', 'blur', 'update:modelValue' ],
components : {
+ BaseInput,
SvgCaret,
SvgPlus,
SvgTrash
diff --git a/src/vue/components/common/base/Input.vue b/src/vue/components/common/base/Input.vue
index 2b9210a28..2350f98a0 100644
--- a/src/vue/components/common/base/Input.vue
+++ b/src/vue/components/common/base/Input.vue
@@ -48,7 +48,7 @@
/>
@@ -751,6 +723,7 @@ import CorePostTypeOptions from '@/vue/components/common/core/PostTypeOptions'
import CoreRobotsMeta from '@/vue/components/common/core/RobotsMeta'
import CoreSettingsRow from '@/vue/components/common/core/SettingsRow'
import CoreTooltip from '@/vue/components/common/core/Tooltip'
+import EeatCta from './EeatCta'
import SvgCircleQuestionMark from '@/vue/components/common/svg/circle/QuestionMark'
import SvgExternal from '@/vue/components/common/svg/External'
export default {
@@ -772,6 +745,7 @@ export default {
CoreRobotsMeta,
CoreSettingsRow,
CoreTooltip,
+ EeatCta,
SvgCircleQuestionMark,
SvgExternal
},
@@ -781,8 +755,6 @@ export default {
strings : {
advanced : this.$t.__('Advanced Settings', this.$td),
globalRobotsMeta : this.$t.__('Global Robots Meta', this.$td),
- noIndexEmptyCat : this.$t.__('Noindex Empty Category and Tag Archives', this.$td),
- removeStopWords : this.$t.__('Remove Stopwords from Permalinks', this.$td),
autogenerateDescriptions : this.$t.__('Autogenerate Descriptions', this.$td),
useContentForAutogeneratedDescriptions : this.$t.__('Use Content for Autogenerated Descriptions', this.$td),
runShortcodes : this.$t.__('Run Shortcodes', this.$td),
diff --git a/src/vue/pages/search-appearance/views/EeatCta.vue b/src/vue/pages/search-appearance/views/EeatCta.vue
new file mode 100644
index 000000000..02f5cc4ac
--- /dev/null
+++ b/src/vue/pages/search-appearance/views/EeatCta.vue
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/vue/pages/search-appearance/views/lite/eeat/EeatCta.vue b/src/vue/pages/search-appearance/views/lite/eeat/EeatCta.vue
new file mode 100644
index 000000000..ade8e7692
--- /dev/null
+++ b/src/vue/pages/search-appearance/views/lite/eeat/EeatCta.vue
@@ -0,0 +1,67 @@
+
+
+
+ {{ strings.globalAuthor }}
+
+
+
+
+
+
+
+ {{ strings.headerText }}
+
+
+
+
+
+ {{ strings.description }}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/vue/pages/search-appearance/views/partials/eeat/EeatBlur.vue b/src/vue/pages/search-appearance/views/partials/eeat/EeatBlur.vue
new file mode 100644
index 000000000..811895438
--- /dev/null
+++ b/src/vue/pages/search-appearance/views/partials/eeat/EeatBlur.vue
@@ -0,0 +1,198 @@
+
+
+
+
+
+
+
+
+
+
+ {{ strings.name }}
+
+
+
+
+
+ {{ strings.nameTooltip }}
+
+
+
+ |
+
+
+ {{ strings.url }}
+
+
+
+
+
+ {{ strings.urlTooltip }}
+
+
+
+ |
+
+
+ {{ strings.sameAsUrls }}
+
+
+
+
+
+ {{ strings.sameAsUrlsTooltip }}
+
+
+
+ |
+ |
+
+
+
+
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+
+
+
+ {{ strings.delete }}
+
+
+ |
+
+
+
+
+
+
+
+ {{ strings.addItem }}
+
+ |
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/vue/pages/sitemaps/views/lite/news-sitemap/NewsSitemap.vue b/src/vue/pages/sitemaps/views/lite/news-sitemap/NewsSitemap.vue
index 481b97ffb..5163edb67 100644
--- a/src/vue/pages/sitemaps/views/lite/news-sitemap/NewsSitemap.vue
+++ b/src/vue/pages/sitemaps/views/lite/news-sitemap/NewsSitemap.vue
@@ -41,10 +41,10 @@ import {
import { useNewsSitemap } from '@/vue/pages/sitemaps/composables'
import Blur from './Blur'
-import RequiredPlans from '@/vue/components/lite/core/upsells/RequiredPlans'
import CoreCard from '@/vue/components/common/core/Card'
import CoreProBadge from '@/vue/components/common/core/ProBadge'
import Cta from '@/vue/components/common/cta/Index'
+import RequiredPlans from '@/vue/components/lite/core/upsells/RequiredPlans'
export default {
setup () {
const { strings } = useNewsSitemap()
@@ -56,10 +56,10 @@ export default {
},
components : {
Blur,
- RequiredPlans,
CoreCard,
CoreProBadge,
- Cta
+ Cta,
+ RequiredPlans
}
}
diff --git a/src/vue/standalone/page-builders/avada/watcher.js b/src/vue/standalone/page-builders/avada/watcher.js
index 3f7981e88..4f62a6ccf 100644
--- a/src/vue/standalone/page-builders/avada/watcher.js
+++ b/src/vue/standalone/page-builders/avada/watcher.js
@@ -74,6 +74,10 @@ const enableSaveButton = () => {
}
export default () => {
+ if (!(window.FusionApp || window.FusionPageBuilderApp)?.builderActive) {
+ return
+ }
+
processContent()
const fusionEvents = window.FusionEvents || window.FusionPageBuilderEvents || {}
diff --git a/src/vue/standalone/user-profile-tab/App.vue b/src/vue/standalone/user-profile-tab/App.vue
index 551dbfb7e..1d5a00ab8 100644
--- a/src/vue/standalone/user-profile-tab/App.vue
+++ b/src/vue/standalone/user-profile-tab/App.vue
@@ -17,22 +17,25 @@
-
-
- {{ strings.description }}
+
+
+
+
+
+
+ {{ strings.description }}
+
+
+ updateHiddenInputField(newSocialProfiles)"
+ />
+
-
- updateHiddenInputField(newSocialProfiles)"
- />
-
+
@@ -44,6 +47,7 @@ import {
import CoreCard from '@/vue/components/common/core/Card'
import CoreSocialProfiles from '@/vue/components/common/core/SocialProfiles'
+import EeatCta from './EeatCta'
import SvgLogoGear from '@/vue/components/common/svg/aioseo/LogoGear'
export default {
@@ -56,6 +60,7 @@ export default {
components : {
CoreCard,
CoreSocialProfiles,
+ EeatCta,
SvgLogoGear
},
data () {
@@ -83,7 +88,7 @@ export default {
case 'social-profiles':
document.getElementById('your-profile').childNodes.forEach(node => {
if (
- 'aioseo-user-profile-tab' === node.id ||
+ 'aioseo-user-profile-tab-wrapper' === node.id ||
'submit' === node.className ||
!node.style
) {
@@ -117,7 +122,7 @@ export default {
slug : 'personal-options'
},
{
- label : this.$t.__('Social Profiles', this.$td),
+ label : this.$t.__('Author SEO', this.$td),
slug : 'social-profiles',
svg : 'svg-logo-gear'
}
@@ -140,6 +145,11 @@ export default {
// Set the initial values.
this.updateHiddenInputField(this.settingsStore.userProfile.profiles)
},
+ beforeMount () {
+ if (new URLSearchParams(window.location.search).has('authorInfo')) {
+ this.setActiveTab(1)
+ }
+ },
mounted () {
const params = new URLSearchParams(window.location.search)
if (params && params.get('social-profiles')) {
diff --git a/src/vue/standalone/user-profile-tab/EeatCta.vue b/src/vue/standalone/user-profile-tab/EeatCta.vue
new file mode 100644
index 000000000..89d50eb3f
--- /dev/null
+++ b/src/vue/standalone/user-profile-tab/EeatCta.vue
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/vue/standalone/user-profile-tab/follow-up-emails-nav-bar.js b/src/vue/standalone/user-profile-tab/follow-up-emails-nav-bar.js
index 8fbb6abb2..498ed1c2b 100644
--- a/src/vue/standalone/user-profile-tab/follow-up-emails-nav-bar.js
+++ b/src/vue/standalone/user-profile-tab/follow-up-emails-nav-bar.js
@@ -15,7 +15,7 @@ document.addEventListener('animationstart', function (event) {
const newLink = document.createElement('a')
newLink.href = location.origin + '/wp-admin/profile.php?social-profiles=1'
- newLink.innerHTML = getSvg() + __('Social Profiles', import.meta.env.VITE_TEXTDOMAIN)
+ newLink.innerHTML = getSvg() + __('Author SEO', import.meta.env.VITE_TEXTDOMAIN)
newLink.className = 'nav-tab'
newLink.style.display = 'flex'
newLink.style.alignItems = 'center'
diff --git a/src/vue/standalone/user-profile-tab/lite/EeatCta.vue b/src/vue/standalone/user-profile-tab/lite/EeatCta.vue
new file mode 100644
index 000000000..c96810b94
--- /dev/null
+++ b/src/vue/standalone/user-profile-tab/lite/EeatCta.vue
@@ -0,0 +1,67 @@
+
+
+
+ {{ strings.authorInfo }}
+
+
+
+
+
+
+
+ {{ strings.headerText }}
+
+
+
+
+
+ {{ strings.description }}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/vue/standalone/user-profile-tab/main.js b/src/vue/standalone/user-profile-tab/main.js
index 512c348f2..c43912c02 100644
--- a/src/vue/standalone/user-profile-tab/main.js
+++ b/src/vue/standalone/user-profile-tab/main.js
@@ -19,7 +19,7 @@ const insertRequiredElements = () => {
}
// Add our tab bar and hidden form field.
const targetElement = document.createElement('div')
- targetElement.id = 'aioseo-user-profile-tab'
+ targetElement.id = 'aioseo-user-profile-tab-wrapper'
const hiddenInputElement = document.createElement('input')
hiddenInputElement.id = 'aioseo-user-social-profiles'
@@ -39,7 +39,7 @@ const mountApp = () => {
// Use the pinia store.
loadPiniaStores(app)
- app.mount('#aioseo-user-profile-tab')
+ app.mount('#aioseo-user-profile-tab-wrapper')
}
elemLoaded('#your-profile', 'profilePageLoaded')
diff --git a/src/vue/standalone/user-profile-tab/partials/EeatBlur.vue b/src/vue/standalone/user-profile-tab/partials/EeatBlur.vue
new file mode 100644
index 000000000..798b95d49
--- /dev/null
+++ b/src/vue/standalone/user-profile-tab/partials/EeatBlur.vue
@@ -0,0 +1,86 @@
+
+
+
+ {{ strings.description }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ strings.alumniOfDescription }}
+
+
+
+
+
+
+
+ {{ strings.alumniOfUrlDescription }}
+
+
+
+
+
+
+
+
+
+ {{ strings.worksForDescription }}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/vue/stores/DirtyOptionsStore.js b/src/vue/stores/DirtyOptionsStore.js
index 293c5d335..3b31b3a77 100644
--- a/src/vue/stores/DirtyOptionsStore.js
+++ b/src/vue/stores/DirtyOptionsStore.js
@@ -6,7 +6,7 @@ import {
useRedirectsStore
} from '@/vue/stores'
-import { decodeHTMLEntities } from '@/vue/utils/helpers'
+import { useDirtyOptions } from '@/vue/composables/DirtyOptions'
export const useDirtyOptionsStore = defineStore('DirtyOptionsStore', {
state : () => ({
@@ -19,6 +19,7 @@ export const useDirtyOptionsStore = defineStore('DirtyOptionsStore', {
}),
getters : {
isDirty : state => {
+ const dirtyOptions = useDirtyOptions()
const indexNowStore = useIndexNowStore()
const optionsStore = useOptionsStore()
const redirectsStore = useRedirectsStore()
@@ -57,45 +58,10 @@ export const useDirtyOptionsStore = defineStore('DirtyOptionsStore', {
])
}
- return !all.every(([ a, b ]) => normalize(a) === normalize(b))
+ return !all.every(([ a, b ]) => dirtyOptions.normalize(a) === dirtyOptions.normalize(b))
}
},
actions : {
- updateOriginalOptions (key, payload) {
- this[key] = JSON.parse(JSON.stringify(payload))
- },
- disableDirtyCheck (key) {
- this.disabled.push(key)
- }
- }
-})
-
-// We need to stringify, then parse, then stringify in order to make a clone of these options.
-const normalize = object => {
- if (!object) {
- return {}
- }
-
- return JSON.stringify(JSON.parse(JSON.stringify(object)), replacer)
-}
-
-const replacer = (key, value) => {
- if ('licenseKey' === key) {
- value = ''
+ ...useDirtyOptions().actions
}
-
- if ('rules' === key && Array.isArray(value)) {
- value.forEach((rule, index) => {
- const r = JSON.parse(rule)
- if (null === r.userAgent && 'allow' === r.rule && null === r.directoryPath) {
- value.splice(index, 1)
- }
- })
- }
-
- if ('separator' === key) {
- value = decodeHTMLEntities(value)
- }
-
- return null === value ? '' : value
-}
\ No newline at end of file
+})
\ No newline at end of file
diff --git a/src/vue/stores/index.js b/src/vue/stores/index.js
index 8edae6108..b438a547f 100644
--- a/src/vue/stores/index.js
+++ b/src/vue/stores/index.js
@@ -40,7 +40,7 @@ import { markRaw } from 'vue'
const pinia = createPinia()
let isDirtyWatcher = false
-const loadPiniaStores = (app, router = null) => {
+const loadPiniaStores = (app, router = null, loadStoresCallback = () => {}) => {
loadPinia(app, router)
const rootStore = useRootStore()
@@ -111,6 +111,8 @@ const loadPiniaStores = (app, router = null) => {
wpCodeStore.$state = merge({ ...wpCodeStore.$state }, { ...aioseo.integrations.wpcode || {} })
}
+ loadStoresCallback(aioseo)
+
// Default AIOSEO root store without the above data.
delete aioseo.addons
delete aioseo.backups
diff --git a/src/vue/utils/context.js b/src/vue/utils/context.js
index f144efdbe..42d839f74 100644
--- a/src/vue/utils/context.js
+++ b/src/vue/utils/context.js
@@ -36,7 +36,7 @@ export const isWPBakeryEditor = () => {
}
export const isAvadaEditor = () => {
- return !!(window.FusionApp || window.FusionPageBuilderApp)
+ return (window.FusionApp || window.FusionPageBuilderApp)?.builderActive
}
export const isWooCommerceProduct = () => {
diff --git a/src/vue/utils/links.js b/src/vue/utils/links.js
index d25c95969..dc294fa49 100644
--- a/src/vue/utils/links.js
+++ b/src/vue/utils/links.js
@@ -104,7 +104,9 @@ const docLinks = {
openAi : `${marketingSite}docs/using-openai-to-generate-seo-titles-and-meta-descriptions/`,
wpcode : `${marketingSite}docs/wpcode-snippet-library/`,
primaryTerm : `${marketingSite}docs/setting-the-primary-term-for-breadcrumbs/`,
- cornerstoneContent : `${marketingSite}docs/cornerstone-content/`
+ cornerstoneContent : `${marketingSite}docs/cornerstone-content/`,
+ eeat : `${marketingSite}docs/adding-author-seo-e-e-a-t-to-your-site/`,
+ eeatAuthorBioInjection : `${marketingSite}docs/adding-author-seo-e-e-a-t-to-your-site/#aioseo-automatically-displaying-the-author-excerpt`
}
const upsellLinks = {
diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php
index 2c06db8b3..132791126 100644
--- a/vendor/composer/installed.php
+++ b/vendor/composer/installed.php
@@ -1,9 +1,9 @@
array(
'name' => 'awesomemotive/all-in-one-seo-pack-pro',
- 'pretty_version' => '1.0.0+no-version-set',
- 'version' => '1.0.0.0',
- 'reference' => NULL,
+ 'pretty_version' => 'dev-develop',
+ 'version' => 'dev-develop',
+ 'reference' => '1d57ba47cae90943c43aace25b69e4e543e4b197',
'type' => 'library',
'install_path' => __DIR__ . '/../../',
'aliases' => array(),
@@ -11,9 +11,9 @@
),
'versions' => array(
'awesomemotive/all-in-one-seo-pack-pro' => array(
- 'pretty_version' => '1.0.0+no-version-set',
- 'version' => '1.0.0.0',
- 'reference' => NULL,
+ 'pretty_version' => 'dev-develop',
+ 'version' => 'dev-develop',
+ 'reference' => '1d57ba47cae90943c43aace25b69e4e543e4b197',
'type' => 'library',
'install_path' => __DIR__ . '/../../',
'aliases' => array(),