From cf91ac0b284047c2f2d6daadffdd9e926b6ab438 Mon Sep 17 00:00:00 2001 From: arthur791004 Date: Fri, 2 Aug 2024 02:03:49 +0000 Subject: [PATCH] MU WPCOM: Port Dotcom FSE feature from ETK (#38212) * MU WPCOM: Port FSE feature from ETK * changelog * Fix some errors * Use functions from Wpcom_Legacy_FSE * changelog * Fix lint * Clean up site-credit block as it's not in use * Track whether the legacy fse blocks are rendered * Fix lint Committed via a GitHub action: https://github.com/Automattic/jetpack/actions/runs/10208611893 Upstream-Ref: Automattic/jetpack@2c5616baacfd82538db53fd179891acc8fe76ca1 --- composer.lock | 58 +- .../automattic/jetpack-mu-wpcom/CHANGELOG.md | 1 + .../src/class-jetpack-mu-wpcom.php | 1 + .../jetpack-mu-wpcom/src/common/index.php | 17 + .../blocks/navigation-menu/index.php | 129 ++++ .../blocks/post-content/index.php | 43 ++ .../blocks/site-description/index.php | 72 +++ .../blocks/site-title/index.php | 66 ++ .../blocks/template/index.php | 45 ++ .../wpcom-legacy-fse/helpers/index.php | 151 +++++ .../templates/class-wp-template-inserter.php | 573 ++++++++++++++++++ .../templates/class-wp-template.php | 204 +++++++ .../wpcom-legacy-fse/wpcom-legacy-fse.php | 137 +++++ vendor/composer/autoload_classmap.php | 2 + vendor/composer/autoload_static.php | 2 + vendor/composer/installed.json | 56 +- vendor/composer/installed.php | 56 +- 17 files changed, 1528 insertions(+), 85 deletions(-) create mode 100644 vendor/automattic/jetpack-mu-wpcom/src/features/wpcom-legacy-fse/blocks/navigation-menu/index.php create mode 100644 vendor/automattic/jetpack-mu-wpcom/src/features/wpcom-legacy-fse/blocks/post-content/index.php create mode 100644 vendor/automattic/jetpack-mu-wpcom/src/features/wpcom-legacy-fse/blocks/site-description/index.php create mode 100644 vendor/automattic/jetpack-mu-wpcom/src/features/wpcom-legacy-fse/blocks/site-title/index.php create mode 100644 vendor/automattic/jetpack-mu-wpcom/src/features/wpcom-legacy-fse/blocks/template/index.php create mode 100644 vendor/automattic/jetpack-mu-wpcom/src/features/wpcom-legacy-fse/helpers/index.php create mode 100644 vendor/automattic/jetpack-mu-wpcom/src/features/wpcom-legacy-fse/templates/class-wp-template-inserter.php create mode 100644 vendor/automattic/jetpack-mu-wpcom/src/features/wpcom-legacy-fse/templates/class-wp-template.php create mode 100644 vendor/automattic/jetpack-mu-wpcom/src/features/wpcom-legacy-fse/wpcom-legacy-fse.php diff --git a/composer.lock b/composer.lock index 0862980e..cf26d153 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "2893347d95e1a69750211da4c5ed7dd4", + "content-hash": "badb516d5bb12ea07290bb54270d723d", "packages": [ { "name": "automattic/jetpack-a8c-mc-stats", @@ -12,7 +12,7 @@ "dist": { "type": "path", "url": "/tmp/jetpack-build/Automattic/jetpack-a8c-mc-stats", - "reference": "e8cd7de94e4267f0d8053414dea3dbf1cefed01d" + "reference": "3f44c400ad082ff0bfaea15cddba9c575994ac1d" }, "require": { "php": ">=7.0" @@ -62,7 +62,7 @@ "dist": { "type": "path", "url": "/tmp/jetpack-build/Automattic/jetpack-admin-ui", - "reference": "18a8d9b2966bad3537b50a88f51c1aec0494a137" + "reference": "60eb5a51999581451c4f6914d5ea477a2343d776" }, "require": { "php": ">=7.0" @@ -124,7 +124,7 @@ "dist": { "type": "path", "url": "/tmp/jetpack-build/Automattic/jetpack-assets", - "reference": "d11cb09581db83d18ba15bf5c52c29302a5ebcc4" + "reference": "456a3d51fa00eb7660364e70d8075ee060d82ef8" }, "require": { "automattic/jetpack-constants": "^2.0.3", @@ -190,7 +190,7 @@ "dist": { "type": "path", "url": "/tmp/jetpack-build/Automattic/jetpack-blaze", - "reference": "79ea2ea0d36ede52b79461befcb2c5e65a903dd4" + "reference": "67aff757932cc83da51e22593799a5c077bc0d70" }, "require": { "automattic/jetpack-assets": "^2.2.0", @@ -268,7 +268,7 @@ "dist": { "type": "path", "url": "/tmp/jetpack-build/Automattic/jetpack-blocks", - "reference": "7849891b82f709214c0088c1cba67caf6fa62957" + "reference": "1b79e3f6417872762e30c19499b2cb2a3f45344a" }, "require": { "automattic/jetpack-constants": "^2.0.3", @@ -327,7 +327,7 @@ "dist": { "type": "path", "url": "/tmp/jetpack-build/Automattic/jetpack-calypsoify", - "reference": "891c8637eaa91aa6c90af576299f904ce42eefce" + "reference": "408b3fb6d6107b09b807c85a75c6d16d3606c0bd" }, "require": { "automattic/jetpack-assets": "^2.2.0", @@ -389,7 +389,7 @@ "dist": { "type": "path", "url": "/tmp/jetpack-build/Automattic/jetpack-classic-theme-helper", - "reference": "251fe3b9c7ba98bfdb8ac445c8a8a845d2320970" + "reference": "f5d975aacfa27bdafbb439a4fafc9412c6032e3d" }, "require": { "automattic/jetpack-assets": "^2.2.0", @@ -457,7 +457,7 @@ "dist": { "type": "path", "url": "/tmp/jetpack-build/Automattic/jetpack-compat", - "reference": "c0d4906b4d20cc6631a4ca63bd583e10c5676b1f" + "reference": "8889fb46b892b3edd92e51338b2d4d78ea6bc3ea" }, "require": { "php": ">=7.0" @@ -494,7 +494,7 @@ "dist": { "type": "path", "url": "/tmp/jetpack-build/Automattic/jetpack-connection", - "reference": "3bb923c29e92e340f13ff12da87d8dd14b7b4a3d" + "reference": "2f6a7ff15d6976083d5d586de6ab0a5741d8404d" }, "require": { "automattic/jetpack-a8c-mc-stats": "^2.0.1", @@ -578,7 +578,7 @@ "dist": { "type": "path", "url": "/tmp/jetpack-build/Automattic/jetpack-constants", - "reference": "f5450411267f7085140042b0ab578c1a3dca03bd" + "reference": "a4d5e5402de6354bc9a86698e36be158e3ac2c26" }, "require": { "php": ">=7.0" @@ -629,7 +629,7 @@ "dist": { "type": "path", "url": "/tmp/jetpack-build/Automattic/jetpack-device-detection", - "reference": "23398f73b8a88c6b82238812ac624005ef65ddba" + "reference": "4e95fb4c12ace7b8f2aa7f1afe8f16f4a652cc7f" }, "require": { "php": ">=7.0" @@ -679,7 +679,7 @@ "dist": { "type": "path", "url": "/tmp/jetpack-build/Automattic/jetpack-google-analytics", - "reference": "4b3658443be7bcd6c18061c647dddfa0dca1ae0a" + "reference": "36a054d70131958551068f6610fdfdf3e4ad854d" }, "require": { "automattic/jetpack-status": "^3.3.2", @@ -747,7 +747,7 @@ "dist": { "type": "path", "url": "/tmp/jetpack-build/Automattic/jetpack-ip", - "reference": "1288410d0af44f3fdfa71aa2aedb069083923a7d" + "reference": "86540954d5f503dbc8ccdc80d2dc341e4fa6a4cf" }, "require": { "php": ">=7.0" @@ -802,7 +802,7 @@ "dist": { "type": "path", "url": "/tmp/jetpack-build/Automattic/jetpack-jitm", - "reference": "f4515bfe82d14b82494cadaaf60325f0e20b8742" + "reference": "8c8c28ae31d2a68416ec54a2319600bad9365476" }, "require": { "automattic/jetpack-a8c-mc-stats": "^2.0.1", @@ -874,7 +874,7 @@ "dist": { "type": "path", "url": "/tmp/jetpack-build/Automattic/jetpack-logo", - "reference": "bfb66b00504626d5d1e83533fccd8cc01ee63261" + "reference": "0c68fa6757b0be0834e054a51b253741490c4917" }, "require": { "php": ">=7.0" @@ -924,7 +924,7 @@ "dist": { "type": "path", "url": "/tmp/jetpack-build/Automattic/jetpack-masterbar", - "reference": "4638208d9e70afd75a4d8c339ef00717f078426b" + "reference": "24ffde45f0717037c009bd4210bcfc9e7c0d903a" }, "require": { "automattic/jetpack-assets": "^2.2.0", @@ -999,11 +999,11 @@ }, { "name": "automattic/jetpack-mu-wpcom", - "version": "5.53.0-alpha.1722554287", + "version": "5.53.0-alpha.1722563367", "dist": { "type": "path", "url": "/tmp/jetpack-build/Automattic/jetpack-mu-wpcom", - "reference": "2ae331d4b33da95810421cab3c3f51b30d6d5dd2" + "reference": "5ff6c0c7e4c40feb8ef72c0ff80e9fb7fd81e885" }, "require": { "automattic/jetpack-assets": "^2.2.0", @@ -1083,7 +1083,7 @@ "dist": { "type": "path", "url": "/tmp/jetpack-build/Automattic/jetpack-password-checker", - "reference": "5c7cf53c2c6336a940b37d24a516637bb1bcf636" + "reference": "79c20a7b28b794c5d02d03257ce93254ab94b160" }, "require": { "php": ">=7.0" @@ -1141,7 +1141,7 @@ "dist": { "type": "path", "url": "/tmp/jetpack-build/Automattic/jetpack-plans", - "reference": "ed0fa573d7fc138d13f6675ed52062856f77f1d3" + "reference": "2fe130cab0103a388459e37e6e65c9abb479d226" }, "require": { "automattic/jetpack-connection": "^2.11.3", @@ -1206,7 +1206,7 @@ "dist": { "type": "path", "url": "/tmp/jetpack-build/Automattic/jetpack-redirect", - "reference": "448b3a33e2044deb9e53db8e501158d7488711a2" + "reference": "1258744667664d67265fa55ce7dd33d657807387" }, "require": { "automattic/jetpack-status": "^3.3.2", @@ -1258,7 +1258,7 @@ "dist": { "type": "path", "url": "/tmp/jetpack-build/Automattic/jetpack-roles", - "reference": "32cba508ffc3a6dc67a062fdb14f1e64a2049e9e" + "reference": "c075c923541dd16d622f48e65007b95fe7eec917" }, "require": { "php": ">=7.0" @@ -1309,7 +1309,7 @@ "dist": { "type": "path", "url": "/tmp/jetpack-build/Automattic/jetpack-stats", - "reference": "eb81af2e4ec95d5109876ab501422768038dc08d" + "reference": "fe81f4ff060cca760861a6c7888f24f8351c81a4" }, "require": { "automattic/jetpack-connection": "^2.11.3", @@ -1373,7 +1373,7 @@ "dist": { "type": "path", "url": "/tmp/jetpack-build/Automattic/jetpack-stats-admin", - "reference": "a71a96e84f409b8ce6d78a2b0ae1ebb7d96f79a7" + "reference": "eb73a6eeebffec8ad06eaa70c5a5379a407cff24" }, "require": { "automattic/jetpack-connection": "^2.11.3", @@ -1443,7 +1443,7 @@ "dist": { "type": "path", "url": "/tmp/jetpack-build/Automattic/jetpack-status", - "reference": "5253b98aa6218366a941b4eac0fb833f3684a85a" + "reference": "34c19850a146fea03f604875872714006c520e01" }, "require": { "automattic/jetpack-constants": "^2.0.3", @@ -1504,7 +1504,7 @@ "dist": { "type": "path", "url": "/tmp/jetpack-build/Automattic/jetpack-sync", - "reference": "5f717485790044dfc7da5f19db7345d35918750d" + "reference": "8416fbccad57bdd47f5bfc3c443a99f06fe4ddda" }, "require": { "automattic/jetpack-connection": "^2.11.3", @@ -1579,7 +1579,7 @@ "dist": { "type": "path", "url": "/tmp/jetpack-build/Automattic/scheduled-updates", - "reference": "9012588e5e74f1b92d14a88b4f8d39e2b2af6001" + "reference": "a7e0a6dd0c5f7e532ee516c626ebb7a168943d3b" }, "require": { "automattic/jetpack-connection": "^2.11.3", @@ -1728,7 +1728,7 @@ "dist": { "type": "path", "url": "/tmp/jetpack-build/Automattic/jetpack-changelogger", - "reference": "077d86eb51a8df826c2ed026b5651ae3155090bf" + "reference": "b3db874d45884000f402df6812f1214831827ce0" }, "require": { "php": ">=7.0", diff --git a/vendor/automattic/jetpack-mu-wpcom/CHANGELOG.md b/vendor/automattic/jetpack-mu-wpcom/CHANGELOG.md index 09460d51..66e9ec49 100644 --- a/vendor/automattic/jetpack-mu-wpcom/CHANGELOG.md +++ b/vendor/automattic/jetpack-mu-wpcom/CHANGELOG.md @@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 This is an alpha version! The changes listed here are not final. ### Added +- MU WPCOM: Port FSE feature from ETK - MU WPCOM: Port the newspack blocks from the ETK - MU WPCOM: Port the starter-page-templates feature from ETK diff --git a/vendor/automattic/jetpack-mu-wpcom/src/class-jetpack-mu-wpcom.php b/vendor/automattic/jetpack-mu-wpcom/src/class-jetpack-mu-wpcom.php index aa7d9f2f..8bb70a50 100644 --- a/vendor/automattic/jetpack-mu-wpcom/src/class-jetpack-mu-wpcom.php +++ b/vendor/automattic/jetpack-mu-wpcom/src/class-jetpack-mu-wpcom.php @@ -165,6 +165,7 @@ public static function load_etk_features() { require_once __DIR__ . '/features/wpcom-blocks/timeline/timeline.php'; require_once __DIR__ . '/features/wpcom-documentation-links/wpcom-documentation-links.php'; require_once __DIR__ . '/features/wpcom-global-styles/index.php'; + require_once __DIR__ . '/features/wpcom-legacy-fse/wpcom-legacy-fse.php'; require_once __DIR__ . '/features/wpcom-whats-new/wpcom-whats-new.php'; require_once __DIR__ . '/features/starter-page-templates/class-starter-page-templates.php'; } diff --git a/vendor/automattic/jetpack-mu-wpcom/src/common/index.php b/vendor/automattic/jetpack-mu-wpcom/src/common/index.php index 3e5d7879..3ce0ce66 100644 --- a/vendor/automattic/jetpack-mu-wpcom/src/common/index.php +++ b/vendor/automattic/jetpack-mu-wpcom/src/common/index.php @@ -63,3 +63,20 @@ function wpcom_enqueue_tracking_scripts( string $handle ) { Tracking::register_tracks_functions_scripts( true ); } } + +/** + * Record tracks event. + * + * @param mixed $event_name The event. + * @param mixed $event_properties The event property. + * + * @return void + */ +function wpcom_record_tracks_event( $event_name, $event_properties ) { + if ( function_exists( 'wpcomsh_record_tracks_event' ) ) { + wpcomsh_record_tracks_event( $event_name, $event_properties ); + } elseif ( function_exists( 'require_lib' ) && function_exists( 'tracks_record_event' ) ) { + require_lib( 'tracks/client' ); + tracks_record_event( get_current_user_id(), $event_name, $event_properties ); + } +} diff --git a/vendor/automattic/jetpack-mu-wpcom/src/features/wpcom-legacy-fse/blocks/navigation-menu/index.php b/vendor/automattic/jetpack-mu-wpcom/src/features/wpcom-legacy-fse/blocks/navigation-menu/index.php new file mode 100644 index 00000000..50697e6e --- /dev/null +++ b/vendor/automattic/jetpack-mu-wpcom/src/features/wpcom-legacy-fse/blocks/navigation-menu/index.php @@ -0,0 +1,129 @@ + 'a8c/navigation-menu' ) ); + + $styles = ''; + + $container_class = 'menu-primary-container'; + $toggle_class = 'button'; + if ( isset( $attributes['className'] ) ) { + $container_class .= ' ' . $attributes['className']; + $toggle_class .= ' ' . $attributes['className']; + } + + $align = ' alignwide'; + if ( isset( $attributes['align'] ) ) { + $align = empty( $attributes['align'] ) ? '' : ' align' . $attributes['align']; + } + $class = $align; + + if ( isset( $attributes['textAlign'] ) ) { + $class .= ' has-text-align-' . $attributes['textAlign']; + } else { + $class .= ' has-text-align-center'; + } + + if ( isset( $attributes['textColor'] ) ) { + $class .= ' has-text-color'; + $class .= ' has-' . $attributes['textColor'] . '-color'; + } elseif ( isset( $attributes['customTextColor'] ) ) { + $class .= ' has-text-color'; + $styles .= ' color: ' . $attributes['customTextColor'] . ';'; + } + + if ( isset( $attributes['backgroundColor'] ) ) { + $class .= ' has-background'; + $class .= ' has-' . $attributes['backgroundColor'] . '-background-color'; + } elseif ( isset( $attributes['customBackgroundColor'] ) ) { + $class .= ' has-background'; + $styles .= ' background-color: ' . $attributes['customBackgroundColor'] . ';'; + } + + if ( isset( $attributes['customFontSize'] ) ) { + $styles .= ' font-size: ' . $attributes['customFontSize'] . 'px;'; + } elseif ( isset( $attributes['fontSize'] ) ) { + $class .= ' has-' . $attributes['fontSize'] . '-font-size'; + } else { + $class .= ' has-small-font-size'; + } + + $container_class .= $class; + $toggle_class .= $class; + + $menu = wp_nav_menu( + array( + 'echo' => false, + 'fallback_cb' => 'get_fallback_navigation_menu', + 'items_wrap' => '', + 'menu_class' => 'main-menu footer-menu', + 'theme_location' => 'menu-1', + 'container' => '', + ) + ); + + ob_start(); + // phpcs:disable WordPress.Security.EscapeOutput.OutputNotEscaped + ?> + + + false, + 'before' => false, + 'container' => 'ul', + 'echo' => false, + 'menu_class' => 'main-menu footer-menu', + 'sort_column' => 'menu_order, post_date', + ) + ); + + /** + * Filter the fallback page menu to use the same + * CSS class structure as a regularly built menu + * so we don't have to duplicate CSS selectors everywhere. + */ + $original_classes = array( 'children', 'page_item_has_sub-menu' ); + $replacement_classes = array( 'sub-menu', 'menu-item-has-children' ); + + return str_replace( $original_classes, $replacement_classes, $menu ); +} diff --git a/vendor/automattic/jetpack-mu-wpcom/src/features/wpcom-legacy-fse/blocks/post-content/index.php b/vendor/automattic/jetpack-mu-wpcom/src/features/wpcom-legacy-fse/blocks/post-content/index.php new file mode 100644 index 00000000..b2e8f00a --- /dev/null +++ b/vendor/automattic/jetpack-mu-wpcom/src/features/wpcom-legacy-fse/blocks/post-content/index.php @@ -0,0 +1,43 @@ + 'a8c/post-content' ) ); + + $align = isset( $attributes['align'] ) ? ' align' . $attributes['align'] : ''; + + ob_start(); + ?> + +
+ +
+ + 'a8c/site-description' ) ); + + ob_start(); + + $styles = ''; + + $class = 'site-description wp-block-a8c-site-description'; + if ( isset( $attributes['className'] ) ) { + $class .= ' ' . $attributes['className']; + } + + $align = ' alignwide'; + if ( isset( $attributes['align'] ) ) { + $align = empty( $attributes['align'] ) ? '' : ' align' . $attributes['align']; + } + $class .= $align; + + if ( isset( $attributes['textAlign'] ) ) { + $class .= ' has-text-align-' . $attributes['textAlign']; + } else { + $class .= ' has-text-align-center'; + } + + if ( isset( $attributes['textColor'] ) ) { + $class .= ' has-text-color'; + $class .= ' has-' . $attributes['textColor'] . '-color'; + } elseif ( isset( $attributes['customTextColor'] ) ) { + $class .= ' has-text-color'; + $styles .= ' color: ' . $attributes['customTextColor'] . ';'; + } + + if ( isset( $attributes['backgroundColor'] ) ) { + $class .= ' has-background'; + $class .= ' has-' . $attributes['backgroundColor'] . '-background-color'; + } elseif ( isset( $attributes['customBackgroundColor'] ) ) { + $class .= ' has-background'; + $styles .= ' background-color: ' . $attributes['customBackgroundColor'] . ';'; + } + + if ( isset( $attributes['fontSize'] ) ) { + $class .= ' has-' . $attributes['fontSize'] . '-font-size'; + } elseif ( isset( $attributes['customFontSize'] ) ) { + $styles .= ' font-size: ' . $attributes['customFontSize'] . 'px;'; + } else { + $class .= ' has-small-font-size'; + } + + ?> +

+ +

+ 'a8c/site-title' ) ); + + ob_start(); + + $styles = ''; + + $class = 'site-title wp-block-a8c-site-title'; + if ( isset( $attributes['className'] ) ) { + $class .= ' ' . $attributes['className']; + } + + $align = ' alignwide'; + if ( isset( $attributes['align'] ) ) { + $align = empty( $attributes['align'] ) ? '' : ' align' . $attributes['align']; + } + $class .= $align; + + if ( isset( $attributes['textAlign'] ) ) { + $class .= ' has-text-align-' . $attributes['textAlign']; + } else { + $class .= ' has-text-align-center'; + } + + if ( isset( $attributes['textColor'] ) ) { + $class .= ' has-text-color'; + $class .= ' has-' . $attributes['textColor'] . '-color'; + } elseif ( isset( $attributes['customTextColor'] ) ) { + $class .= ' has-text-color'; + $styles .= ' color: ' . $attributes['customTextColor'] . ';'; + } + + if ( isset( $attributes['fontSize'] ) ) { + $class .= ' has-' . $attributes['fontSize'] . '-font-size'; + } elseif ( isset( $attributes['customFontSize'] ) ) { + $styles .= ' font-size: ' . $attributes['customFontSize'] . 'px;'; + } else { + $class .= ' has-normal-font-size'; + } + + ?> +

+ +

+ + 'a8c/template' ) ); + + $template = get_post( $attributes['templateId'] ); + + $align = isset( $attributes['align'] ) ? ' align' . $attributes['align'] : ''; + + setup_postdata( $template ); + ob_start(); + ?> + +
+ +
+ + errors() && in_array( $theme_slug, get_supported_themes(), true ); +} + +/** + * Hardcoded list of themes we support. + * Once upon a time, we relied on the `full-site-editing` tag in themes, + * but that conflicted with Core FSE and this project has been deprecated + * in favour of Core. + * + * @return array List of supported themes. + */ +function get_supported_themes() { + return array( + 'alves', + 'exford', + 'hever', + 'maywood', + 'morden', + 'shawburn', + 'stow', + 'varia', + ); +} + +/** + * Determines if the template parts have been inserted for the current theme. + * + * We want to gate on this check in is_full_site_editing_active so that we don't + * load FSE for sites which did not get template parts for some reason or another. + * + * For example, if a user activates theme A on their site and gets FSE, but then + * activates theme B which does not have FSE, they will not get FSE flows. If we + * retroactively add FSE support to theme B, the user should not get FSE flows + * because their site would be modified. Instead, FSE flows would become active + * when they specifically take action to re-activate the theme. + * + * @return bool True if the template parts have been inserted. False otherwise. + */ +function did_insert_template_parts() { + require_once dirname( __DIR__ ) . '/templates/class-wp-template-inserter.php'; + + $theme_slug = normalize_theme_slug( get_theme_slug() ); + $inserter = new WP_Template_Inserter( $theme_slug ); + return $inserter->is_template_data_inserted(); +} diff --git a/vendor/automattic/jetpack-mu-wpcom/src/features/wpcom-legacy-fse/templates/class-wp-template-inserter.php b/vendor/automattic/jetpack-mu-wpcom/src/features/wpcom-legacy-fse/templates/class-wp-template-inserter.php new file mode 100644 index 00000000..69407b11 --- /dev/null +++ b/vendor/automattic/jetpack-mu-wpcom/src/features/wpcom-legacy-fse/templates/class-wp-template-inserter.php @@ -0,0 +1,573 @@ +theme_slug = $theme_slug; + $this->header_content = ''; + $this->footer_content = ''; + $this->loading_strategy = $loading_strategy; + + /* + * Previously the option suffix was '-fse-template-data'. Bumping this to '-fse-template-data-v1' + * to differentiate it from the old data that was not provided by the API. Note that we don't want + * to tie this to plugin version constant, because that would trigger the insertion on each plugin + * update, even when it's not necessary (it would duplicate existing data). + */ + $this->fse_template_data_option = $this->theme_slug . '-fse-template-data-v1'; + } + + /** + * Retrieves template parts content. + */ + public function fetch_template_parts() { + // Use default data if we don't want to fetch from the API. + if ( 'use-local' === $this->loading_strategy ) { + $this->header_content = $this->get_default_header(); + $this->footer_content = $this->get_default_footer(); + return; + } + + $request_url = 'https://public-api.wordpress.com/wpcom/v2/full-site-editing/templates'; + + $request_args = array( + 'body' => array( 'theme_slug' => $this->theme_slug ), + ); + + $response = $this->fetch_retry( $request_url, $request_args ); + + if ( ! $response ) { + do_action( + 'a8c_fse_log', + 'template_population_failure', + array( + 'context' => 'WP_Template_Inserter->fetch_template_parts', + 'error' => 'Fetch retry timeout', + 'theme_slug' => $this->theme_slug, + ) + ); + $this->header_content = $this->get_default_header(); + $this->footer_content = $this->get_default_footer(); + return; + } + + $api_response = json_decode( wp_remote_retrieve_body( $response ), true ); + if ( ! empty( $api_response['code'] ) && 'not_found' === $api_response['code'] ) { + do_action( + 'a8c_fse_log', + 'template_population_failure', + array( + 'context' => 'WP_Template_Inserter->fetch_template_parts', + 'error' => 'Did not find remote template data for the given theme.', + 'theme_slug' => $this->theme_slug, + ) + ); + return; + } + + // Default to first returned header for now. Support for multiple headers will be added in future iterations. + if ( ! empty( $api_response['headers'] ) ) { + $this->header_content = $api_response['headers'][0]; + } + + // Default to first returned footer for now. Support for multiple footers will be added in future iterations. + if ( ! empty( $api_response['footers'] ) ) { + $this->footer_content = $api_response['footers'][0]; + } + + // This should contain all image URLs for images in any header or footer. + if ( ! empty( $api_response['image_urls'] ) ) { + $this->image_urls = $api_response['image_urls']; + } + } + + /** + * Retries a call to wp_remote_get on error. + * + * @param string $request_url Url of the api call to make. + * @param array $request_args Additional arguments for the api call. + * @param int $attempt The number of the attempt being made. + * @return array|null wp_remote_get response array + */ + private function fetch_retry( $request_url, $request_args = null, $attempt = 1 ) { + $max_retries = 3; + + $response = wp_remote_get( $request_url, $request_args ); + + if ( ! is_wp_error( $response ) ) { + return $response; + } + + if ( $attempt > $max_retries ) { + return null; + } + + sleep( pow( 2, $attempt ) ); + ++$attempt; + return $this->fetch_retry( $request_url, $request_args, $attempt ); + } + + /** + * Returns a default header if call to template api fails for some reason. + * + * @return string Content of a default header + */ + public function get_default_header() { + return ' + + '; + } + + /** + * Returns a default footer if call to template api fails for some reason. + * + * @return string Content of a default footer + */ + public function get_default_footer() { + return ''; + } + + /** + * Determines whether FSE data has already been inserted. + * + * @return bool True if FSE data has already been inserted, false otherwise. + */ + public function is_template_data_inserted() { + return get_option( $this->fse_template_data_option ) ? true : false; + } + + /** + * This function will be called on plugin activation hook. + */ + public function insert_default_template_data() { + do_action( + 'a8c_fse_log', + 'before_template_population', + array( + 'context' => 'WP_Template_Inserter->insert_default_template_data', + 'theme_slug' => $this->theme_slug, + ) + ); + + if ( $this->is_template_data_inserted() ) { + /* + * Bail here to prevent inserting the FSE data twice for any given theme. + * Multiple themes will still be able to insert different templates. + */ + do_action( + 'a8c_fse_log', + 'template_population_failure', + array( + 'context' => 'WP_Template_Inserter->insert_default_template_data', + 'error' => 'Data already exist', + 'theme_slug' => $this->theme_slug, + ) + ); + return; + } + + // Set header and footer content based on data fetched from the WP.com API. + $this->fetch_template_parts(); + + // Avoid creating template parts if data hasn't been fetched properly. + if ( empty( $this->header_content ) || empty( $this->footer_content ) ) { + return; + } + + $this->register_template_post_types(); + + $header_id = wp_insert_post( + array( + 'post_title' => 'Header', + 'post_content' => $this->header_content, + 'post_status' => 'publish', + 'post_type' => 'wp_template_part', + 'comment_status' => 'closed', + 'ping_status' => 'closed', + ) + ); + + if ( ! term_exists( "$this->theme_slug-header", 'wp_template_part_type' ) ) { + wp_insert_term( "$this->theme_slug-header", 'wp_template_part_type' ); + } + + wp_set_object_terms( $header_id, "$this->theme_slug-header", 'wp_template_part_type' ); + + $footer_id = wp_insert_post( + array( + 'post_title' => 'Footer', + 'post_content' => $this->footer_content, + 'post_status' => 'publish', + 'post_type' => 'wp_template_part', + 'comment_status' => 'closed', + 'ping_status' => 'closed', + ) + ); + + if ( ! term_exists( "$this->theme_slug-footer", 'wp_template_part_type' ) ) { + wp_insert_term( "$this->theme_slug-footer", 'wp_template_part_type' ); + } + + wp_set_object_terms( $footer_id, "$this->theme_slug-footer", 'wp_template_part_type' ); + + add_option( $this->fse_template_data_option, true ); + + // Note: we set the option before doing the image upload because the template + // parts can work with the remote URLs even if this fails. + $image_urls = $this->image_urls; + if ( ! empty( $image_urls ) ) { + // Uploading images locally does not work in the WordPress.com environment, + // so we use an action to handle it with Headstart there. + if ( has_action( 'a8c_fse_upload_template_part_images' ) ) { + do_action( 'a8c_fse_upload_template_part_images', $image_urls, array( $header_id, $footer_id ) ); + } + } + + do_action( + 'a8c_fse_log', + 'template_population_success', + array( + 'context' => 'WP_Template_Inserter->insert_default_template_data', + 'theme_slug' => $this->theme_slug, + ) + ); + } + + /** + * Determines whether default pages have already been created. + * + * @return bool True if default pages have already been created, false otherwise. + */ + public function is_pages_data_inserted() { + return get_option( $this->fse_page_data_option ) ? true : false; + } + + /** + * Retrieves a page given its title. + * + * If more than one post uses the same title, the post with the smallest ID will be returned. + * Be careful: in case of more than one post having the same title, it will check the oldest + * publication date, not the smallest ID. + * + * Because this function uses the MySQL '=' comparison, $page_title will usually be matched + * as case-insensitive with default collation. + * + * @global wpdb $wpdb WordPress database abstraction object. + * + * @param string $page_title Page title. + * @param string $output Optional. The required return type. One of OBJECT, ARRAY_A, or ARRAY_N, which + * correspond to a WP_Post object, an associative array, or a numeric array, + * respectively. Default OBJECT. + * @param string|array $post_type Optional. Post type or array of post types. Default 'page'. + * @return \WP_Post|array|null WP_Post (or array) on success, or null on failure. + */ + public function get_page_by_title( $page_title, $output = OBJECT, $post_type = 'page' ) { + global $wpdb; + + if ( is_array( $post_type ) ) { + $post_type = esc_sql( $post_type ); + $post_type_in_string = "'" . implode( "','", $post_type ) . "'"; + $sql = $wpdb->prepare( + "SELECT ID + FROM $wpdb->posts + WHERE post_title = %s + AND post_type IN ($post_type_in_string)", // phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared + $page_title + ); + } else { + $sql = $wpdb->prepare( + "SELECT ID + FROM $wpdb->posts + WHERE post_title = %s + AND post_type = %s", + $page_title, + $post_type + ); + } + + // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.NotPrepared + $page = $wpdb->get_var( $sql ); + + if ( $page ) { + return get_post( (int) $page, $output ); + } + + return null; + } + + /** + * Inserts default About and Contact pages based on Starter Page Templates content. + * + * The insertion will not happen if this data has been already inserted or if pages + * with 'About' and 'Contact' titles already exist. + */ + public function insert_default_pages() { + do_action( + 'a8c_fse_log', + 'before_pages_population', + array( + 'context' => 'WP_Template_Inserter->insert_default_pages', + 'theme_slug' => $this->theme_slug, + ) + ); + + // Bail if this data has already been inserted. + if ( $this->is_pages_data_inserted() ) { + do_action( + 'a8c_fse_log', + 'pages_population_failure', + array( + 'context' => 'WP_Template_Inserter->insert_default_pages', + 'error' => 'Data already exist', + 'theme_slug' => $this->theme_slug, + ) + ); + return; + } + + $request_url = add_query_arg( + array( + '_locale' => $this->get_template_locale(), + ), + 'https://public-api.wordpress.com/wpcom/v2/verticals/m1/templates' + ); + + $response = $this->fetch_retry( $request_url ); + + if ( ! $response ) { + do_action( + 'a8c_fse_log', + 'pages_population_failure', + array( + 'context' => 'WP_Template_Inserter->insert_default_pages', + 'error' => 'Fetch retry timeout', + 'theme_slug' => $this->theme_slug, + ) + ); + return; + } + + $api_response = json_decode( wp_remote_retrieve_body( $response ), true ); + if ( empty( $api_response ) ) { + return; + } + + // Convert templates response to [ slug => content ] pairs to extract required content more easily. + $template_content_by_slug = wp_list_pluck( $api_response['templates'], 'content', 'slug' ); + + if ( empty( $this->get_page_by_title( 'About' ) ) && ! empty( $template_content_by_slug['about'] ) ) { + wp_insert_post( + array( + 'post_title' => _x( 'About', 'Default page title', 'jetpack-mu-wpcom' ), + 'post_content' => $template_content_by_slug['about'], + 'post_status' => 'publish', + 'post_type' => 'page', + 'menu_order' => 1, + ) + ); + } + + if ( empty( $this->get_page_by_title( 'Contact' ) ) && ! empty( $template_content_by_slug['contact'] ) ) { + wp_insert_post( + array( + 'post_title' => _x( 'Contact', 'Default page title', 'jetpack-mu-wpcom' ), + 'post_content' => $template_content_by_slug['contact'], + 'post_status' => 'publish', + 'post_type' => 'page', + 'menu_order' => 1, + ) + ); + } + + update_option( $this->fse_page_data_option, true ); + + do_action( + 'a8c_fse_log', + 'pages_population_success', + array( + 'context' => 'WP_Template_Inserter->insert_default_pages', + 'theme_slug' => $this->theme_slug, + ) + ); + } + + /** + * Returns the locale to be used for page templates + */ + private function get_template_locale() { + $language = get_locale(); + return Common\get_iso_639_locale( $language ); + } + + /** + * Register post types. + */ + public function register_template_post_types() { + register_post_type( + 'wp_template_part', // phpcs:ignore WordPress.NamingConventions.ValidPostTypeSlug.Reserved + array( + 'labels' => array( + 'name' => _x( 'Template Parts', 'post type general name', 'jetpack-mu-wpcom' ), + 'singular_name' => _x( 'Template Part', 'post type singular name', 'jetpack-mu-wpcom' ), + 'menu_name' => _x( 'Template Parts', 'admin menu', 'jetpack-mu-wpcom' ), + 'name_admin_bar' => _x( 'Template Part', 'add new on admin bar', 'jetpack-mu-wpcom' ), + 'add_new' => _x( 'Add New', 'Template', 'jetpack-mu-wpcom' ), + 'add_new_item' => __( 'Add New Template Part', 'jetpack-mu-wpcom' ), + 'new_item' => __( 'New Template Part', 'jetpack-mu-wpcom' ), + 'edit_item' => __( 'Edit Template Part', 'jetpack-mu-wpcom' ), + 'view_item' => __( 'View Template Part', 'jetpack-mu-wpcom' ), + 'all_items' => __( 'All Template Parts', 'jetpack-mu-wpcom' ), + 'search_items' => __( 'Search Template Parts', 'jetpack-mu-wpcom' ), + 'not_found' => __( 'No template parts found.', 'jetpack-mu-wpcom' ), + 'not_found_in_trash' => __( 'No template parts found in Trash.', 'jetpack-mu-wpcom' ), + 'filter_items_list' => __( 'Filter template parts list', 'jetpack-mu-wpcom' ), + 'items_list_navigation' => __( 'Template parts list navigation', 'jetpack-mu-wpcom' ), + 'items_list' => __( 'Template parts list', 'jetpack-mu-wpcom' ), + 'item_published' => __( 'Template part published.', 'jetpack-mu-wpcom' ), + 'item_published_privately' => __( 'Template part published privately.', 'jetpack-mu-wpcom' ), + 'item_reverted_to_draft' => __( 'Template part reverted to draft.', 'jetpack-mu-wpcom' ), + 'item_scheduled' => __( 'Template part scheduled.', 'jetpack-mu-wpcom' ), + 'item_updated' => __( 'Template part updated.', 'jetpack-mu-wpcom' ), + ), + 'menu_icon' => 'dashicons-layout', + 'public' => false, + 'show_ui' => true, // Otherwise we'd get permission error when trying to edit them. + 'show_in_menu' => false, + 'rewrite' => false, + 'capability_type' => 'template_part', + 'capabilities' => array( + // You need to be able to edit posts, in order to read templates in their raw form. + 'read' => 'edit_posts', + // You need to be able to customize, in order to create templates. + 'create_posts' => 'edit_theme_options', + 'edit_posts' => 'edit_theme_options', + 'delete_posts' => 'edit_theme_options', + 'edit_published_posts' => 'edit_theme_options', + 'delete_published_posts' => 'edit_theme_options', + 'edit_others_posts' => 'edit_theme_options', + 'delete_others_posts' => 'edit_theme_options', + 'publish_posts' => 'edit_theme_options', + ), + 'map_meta_cap' => true, + 'supports' => array( + 'title', + 'editor', + 'revisions', + ), + ) + ); + + register_taxonomy( + 'wp_template_part_type', + 'wp_template_part', + array( + 'labels' => array( + 'name' => _x( 'Template Part Types', 'taxonomy general name', 'jetpack-mu-wpcom' ), + 'singular_name' => _x( 'Template Part Type', 'taxonomy singular name', 'jetpack-mu-wpcom' ), + 'menu_name' => _x( 'Template Part Types', 'admin menu', 'jetpack-mu-wpcom' ), + 'all_items' => __( 'All Template Part Types', 'jetpack-mu-wpcom' ), + 'edit_item' => __( 'Edit Template Part Type', 'jetpack-mu-wpcom' ), + 'view_item' => __( 'View Template Part Type', 'jetpack-mu-wpcom' ), + 'update_item' => __( 'Update Template Part Type', 'jetpack-mu-wpcom' ), + 'add_new_item' => __( 'Add New Template Part Type', 'jetpack-mu-wpcom' ), + 'new_item_name' => __( 'New Template Part Type', 'jetpack-mu-wpcom' ), + 'parent_item' => __( 'Parent Template Part Type', 'jetpack-mu-wpcom' ), + 'parent_item_colon' => __( 'Parent Template Part Type:', 'jetpack-mu-wpcom' ), + 'search_items' => __( 'Search Template Part Types', 'jetpack-mu-wpcom' ), + 'not_found' => __( 'No template part types found.', 'jetpack-mu-wpcom' ), + 'back_to_items' => __( 'Back to template part types', 'jetpack-mu-wpcom' ), + ), + 'public' => false, + 'publicly_queryable' => false, + 'show_ui' => false, + 'show_in_menu' => false, + 'show_in_nav_menu' => false, + 'show_in_rest' => true, + 'rest_base' => 'template_part_types', + 'show_tagcloud' => false, + 'hierarchical' => true, + 'rewrite' => false, + 'capabilities' => array( + 'manage_terms' => 'edit_theme_options', + 'edit_terms' => 'edit_theme_options', + 'delete_terms' => 'edit_theme_options', + 'assign_terms' => 'edit_theme_options', + ), + ) + ); + } +} diff --git a/vendor/automattic/jetpack-mu-wpcom/src/features/wpcom-legacy-fse/templates/class-wp-template.php b/vendor/automattic/jetpack-mu-wpcom/src/features/wpcom-legacy-fse/templates/class-wp-template.php new file mode 100644 index 00000000..3daa5751 --- /dev/null +++ b/vendor/automattic/jetpack-mu-wpcom/src/features/wpcom-legacy-fse/templates/class-wp-template.php @@ -0,0 +1,204 @@ +current_theme_name = normalize_theme_slug( $theme ); + } + + /** + * Checks whether the provided template type is supported in FSE. + * + * @param string $template_type String representing the template type. + * + * @return bool True if provided template type is supported in FSE, false otherwise. + */ + public function is_supported_template_type( $template_type ) { + return in_array( $template_type, $this->supported_template_types, true ); + } + + /** + * Returns the post ID of the default template CPT for a given template type. + * + * @param string $template_type String representing the template type. + * + * @return null|int Template ID if it exists or null otherwise. + */ + public function get_template_id( $template_type ) { + if ( ! $this->is_supported_template_type( $template_type ) ) { + return null; + } + + $term = get_term_by( 'name', "$this->current_theme_name-$template_type", 'wp_template_part_type', ARRAY_A ); + + // Bail if current site doesn't have this term registered. + if ( ! isset( $term['term_id'] ) ) { + return null; + } + + $template_ids = get_objects_in_term( $term['term_id'], $term['taxonomy'], array( 'order' => 'DESC' ) ); + + // Bail if we haven't found any post instances for this template type. + if ( empty( $template_ids ) ) { + return null; + } + + /* + * Assuming that we'll have just one default template for now. + * We'll add support for multiple header and footer variations in future iterations. + */ + return (int) $template_ids[0]; + } + + /** + * Returns template content for given template type. + * + * @param string $template_type String representing the template type. + * + * @return null|string Template content if it exists or null otherwise. + */ + public function get_template_content( $template_type ) { + if ( ! $this->is_supported_template_type( $template_type ) ) { + return null; + } + + $template_id = $this->get_template_id( $template_type ); + + if ( null === $template_id ) { + return null; + } + + $template_post = get_post( $template_id ); + + if ( null === $template_post ) { + return; + } + + return $template_post->post_content; + } + + /** + * Returns full page template content. + * + * We only support one page template for now with header at the top and footer at the bottom. + * + * @return null|string + */ + public function get_page_template_content() { + $header_id = $this->get_template_id( self::HEADER ); + $footer_id = $this->get_template_id( self::FOOTER ); + + /* + * Bail if we are missing header or footer. Otherwise this would cause us to + * always return some page template content and show template parts (with empty IDs), + * even for themes that don't support FSE. + */ + if ( ! $header_id || ! $footer_id ) { + return null; + } + + return "' . + '' . + "'; + } + + /** + * Returns array of blocks that represent the template. + * + * @return array + */ + public function get_template_blocks() { + $template_content = $this->get_page_template_content(); + $template_blocks = parse_blocks( $template_content ); + return is_array( $template_blocks ) ? $template_blocks : array(); + } + + /** + * Output FSE template markup. + * + * @param string $template_type String representing the template type. + * + * @return null|void Null if unsupported template type is passed, outputs content otherwise. + */ + public function output_template_content( $template_type ) { + if ( ! $this->is_supported_template_type( $template_type ) ) { + return null; + } + + // Things that follow are from wp-includes/default-filters.php + // not everything is appropriate for template content as opposed to post content. + global $wp_embed; + $content = $this->get_template_content( $template_type ); + + // 8 priority + $content = $wp_embed->run_shortcode( $content ); + $content = $wp_embed->autoembed( $content ); + + // 9 priority + $content = do_blocks( $content ); + + // 10 priority + $content = wptexturize( $content ); + + // 11 priority + $content = do_shortcode( $content ); + + $content = prepend_attachment( $content ); + + if ( has_filter( 'a8c_fse_make_content_images_responsive' ) ) { + $content = apply_filters( 'a8c_fse_make_content_images_responsive', $content ); + } else { + $content = wp_filter_content_tags( $content ); + } + + // phpcs:disable WordPress.Security.EscapeOutput.OutputNotEscaped + echo $content; + } +} diff --git a/vendor/automattic/jetpack-mu-wpcom/src/features/wpcom-legacy-fse/wpcom-legacy-fse.php b/vendor/automattic/jetpack-mu-wpcom/src/features/wpcom-legacy-fse/wpcom-legacy-fse.php new file mode 100644 index 00000000..34b90639 --- /dev/null +++ b/vendor/automattic/jetpack-mu-wpcom/src/features/wpcom-legacy-fse/wpcom-legacy-fse.php @@ -0,0 +1,137 @@ +insert_default_template_data(); + $template_inserter->insert_default_pages(); +} +register_activation_hook( __FILE__, __NAMESPACE__ . '\populate_wp_template_data' ); +add_action( 'switch_theme', __NAMESPACE__ . '\populate_wp_template_data' ); + +/** + * Register wpcom fse template post types. + */ +function wpcom_fse_register_template_post_types() { + $theme_slug = normalize_theme_slug( get_stylesheet() ); + $wp_template_inserter = new WP_Template_Inserter( $theme_slug ); + $wp_template_inserter->register_template_post_types(); +} + +/** + * Register wpcom fse blocks. + */ +function wpcom_fse_register_blocks() { + register_block_type( + 'a8c/navigation-menu', + array( + 'attributes' => array( + 'className' => array( + 'type' => 'string', + 'default' => '', + ), + 'align' => array( + 'type' => 'string', + 'default' => 'wide', + ), + 'textAlign' => array( + 'type' => 'string', + 'default' => 'center', + ), + 'textColor' => array( + 'type' => 'string', + ), + 'customTextColor' => array( + 'type' => 'string', + ), + 'backgroundColor' => array( + 'type' => 'string', + ), + 'customBackgroundColor' => array( + 'type' => 'string', + ), + 'fontSize' => array( + 'type' => 'string', + 'default' => 'normal', + ), + 'customFontSize' => array( + 'type' => 'number', + ), + ), + 'render_callback' => __NAMESPACE__ . '\render_navigation_menu_block', + ) + ); + + register_block_type( + 'a8c/post-content', + array( + 'render_callback' => __NAMESPACE__ . '\render_post_content_block', + ) + ); + + register_block_type( + 'a8c/site-description', + array( + 'render_callback' => __NAMESPACE__ . '\render_site_description_block', + ) + ); + + register_block_type( + 'a8c/template', + array( + 'render_callback' => __NAMESPACE__ . '\render_template_block', + ) + ); + + register_block_type( + 'a8c/site-title', + array( + 'render_callback' => __NAMESPACE__ . '\render_site_title_block', + ) + ); +} + +/** + * Load wpcom FSE. + */ +function load_wpcom_fse() { + // Bail if FSE should not be active on the site. We do not + // want to load FSE functionality on non-supported sites! + if ( ! is_full_site_editing_active() ) { + return; + } + + add_action( 'init', __NAMESPACE__ . '\wpcom_fse_register_blocks', 100 ); + add_action( 'init', __NAMESPACE__ . '\wpcom_fse_register_template_post_types' ); +} +add_action( 'plugins_loaded', __NAMESPACE__ . '\load_wpcom_fse' ); diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index f2aff5e5..06ed4d84 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -101,6 +101,8 @@ 'Automattic\\Jetpack\\Jetpack_Mu_Wpcom\\WPCOM_Admin_Bar' => $vendorDir . '/automattic/jetpack-mu-wpcom/src/features/wpcom-admin-bar/class-wpcom-admin-bar.php', 'Automattic\\Jetpack\\Jetpack_Mu_Wpcom\\WPCOM_Block_Editor\\Jetpack_WPCOM_Block_Editor' => $vendorDir . '/automattic/jetpack-mu-wpcom/src/features/wpcom-block-editor/class-jetpack-wpcom-block-editor.php', 'Automattic\\Jetpack\\Jetpack_Mu_Wpcom\\WP_REST_Sideload_Image_Controller' => $vendorDir . '/automattic/jetpack-mu-wpcom/src/features/starter-page-templates/class-wp-rest-sideload-image-controller.php', + 'Automattic\\Jetpack\\Jetpack_Mu_Wpcom\\Wpcom_Legacy_FSE\\WP_Template' => $vendorDir . '/automattic/jetpack-mu-wpcom/src/features/wpcom-legacy-fse/templates/class-wp-template.php', + 'Automattic\\Jetpack\\Jetpack_Mu_Wpcom\\Wpcom_Legacy_FSE\\WP_Template_Inserter' => $vendorDir . '/automattic/jetpack-mu-wpcom/src/features/wpcom-legacy-fse/templates/class-wp-template-inserter.php', 'Automattic\\Jetpack\\Masterbar\\Admin_Color_Schemes' => $vendorDir . '/automattic/jetpack-masterbar/src/admin-color-schemes/class-admin-color-schemes.php', 'Automattic\\Jetpack\\Masterbar\\Admin_Menu' => $vendorDir . '/automattic/jetpack-masterbar/src/admin-menu/class-admin-menu.php', 'Automattic\\Jetpack\\Masterbar\\Atomic_Additional_CSS_Manager' => $vendorDir . '/automattic/jetpack-masterbar/src/nudges/additional-css/class-atomic-additional-css-manager.php', diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index 1b5f58f2..78ca8a8a 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -120,6 +120,8 @@ class ComposerStaticInitd9d132a783958a00a2c7cccff60ca42d_jetpack_mu_wpcom_plugin 'Automattic\\Jetpack\\Jetpack_Mu_Wpcom\\WPCOM_Admin_Bar' => __DIR__ . '/..' . '/automattic/jetpack-mu-wpcom/src/features/wpcom-admin-bar/class-wpcom-admin-bar.php', 'Automattic\\Jetpack\\Jetpack_Mu_Wpcom\\WPCOM_Block_Editor\\Jetpack_WPCOM_Block_Editor' => __DIR__ . '/..' . '/automattic/jetpack-mu-wpcom/src/features/wpcom-block-editor/class-jetpack-wpcom-block-editor.php', 'Automattic\\Jetpack\\Jetpack_Mu_Wpcom\\WP_REST_Sideload_Image_Controller' => __DIR__ . '/..' . '/automattic/jetpack-mu-wpcom/src/features/starter-page-templates/class-wp-rest-sideload-image-controller.php', + 'Automattic\\Jetpack\\Jetpack_Mu_Wpcom\\Wpcom_Legacy_FSE\\WP_Template' => __DIR__ . '/..' . '/automattic/jetpack-mu-wpcom/src/features/wpcom-legacy-fse/templates/class-wp-template.php', + 'Automattic\\Jetpack\\Jetpack_Mu_Wpcom\\Wpcom_Legacy_FSE\\WP_Template_Inserter' => __DIR__ . '/..' . '/automattic/jetpack-mu-wpcom/src/features/wpcom-legacy-fse/templates/class-wp-template-inserter.php', 'Automattic\\Jetpack\\Masterbar\\Admin_Color_Schemes' => __DIR__ . '/..' . '/automattic/jetpack-masterbar/src/admin-color-schemes/class-admin-color-schemes.php', 'Automattic\\Jetpack\\Masterbar\\Admin_Menu' => __DIR__ . '/..' . '/automattic/jetpack-masterbar/src/admin-menu/class-admin-menu.php', 'Automattic\\Jetpack\\Masterbar\\Atomic_Additional_CSS_Manager' => __DIR__ . '/..' . '/automattic/jetpack-masterbar/src/nudges/additional-css/class-atomic-additional-css-manager.php', diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 7a995541..243e6bd2 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -7,7 +7,7 @@ "dist": { "type": "path", "url": "/tmp/jetpack-build/Automattic/jetpack-a8c-mc-stats", - "reference": "e8cd7de94e4267f0d8053414dea3dbf1cefed01d" + "reference": "3f44c400ad082ff0bfaea15cddba9c575994ac1d" }, "require": { "php": ">=7.0" @@ -60,7 +60,7 @@ "dist": { "type": "path", "url": "/tmp/jetpack-build/Automattic/jetpack-admin-ui", - "reference": "18a8d9b2966bad3537b50a88f51c1aec0494a137" + "reference": "60eb5a51999581451c4f6914d5ea477a2343d776" }, "require": { "php": ">=7.0" @@ -125,7 +125,7 @@ "dist": { "type": "path", "url": "/tmp/jetpack-build/Automattic/jetpack-assets", - "reference": "d11cb09581db83d18ba15bf5c52c29302a5ebcc4" + "reference": "456a3d51fa00eb7660364e70d8075ee060d82ef8" }, "require": { "automattic/jetpack-constants": "^2.0.3", @@ -194,7 +194,7 @@ "dist": { "type": "path", "url": "/tmp/jetpack-build/Automattic/jetpack-blaze", - "reference": "79ea2ea0d36ede52b79461befcb2c5e65a903dd4" + "reference": "67aff757932cc83da51e22593799a5c077bc0d70" }, "require": { "automattic/jetpack-assets": "^2.2.0", @@ -275,7 +275,7 @@ "dist": { "type": "path", "url": "/tmp/jetpack-build/Automattic/jetpack-blocks", - "reference": "7849891b82f709214c0088c1cba67caf6fa62957" + "reference": "1b79e3f6417872762e30c19499b2cb2a3f45344a" }, "require": { "automattic/jetpack-constants": "^2.0.3", @@ -337,7 +337,7 @@ "dist": { "type": "path", "url": "/tmp/jetpack-build/Automattic/jetpack-calypsoify", - "reference": "891c8637eaa91aa6c90af576299f904ce42eefce" + "reference": "408b3fb6d6107b09b807c85a75c6d16d3606c0bd" }, "require": { "automattic/jetpack-assets": "^2.2.0", @@ -402,7 +402,7 @@ "dist": { "type": "path", "url": "/tmp/jetpack-build/Automattic/jetpack-classic-theme-helper", - "reference": "251fe3b9c7ba98bfdb8ac445c8a8a845d2320970" + "reference": "f5d975aacfa27bdafbb439a4fafc9412c6032e3d" }, "require": { "automattic/jetpack-assets": "^2.2.0", @@ -473,7 +473,7 @@ "dist": { "type": "path", "url": "/tmp/jetpack-build/Automattic/jetpack-compat", - "reference": "c0d4906b4d20cc6631a4ca63bd583e10c5676b1f" + "reference": "8889fb46b892b3edd92e51338b2d4d78ea6bc3ea" }, "require": { "php": ">=7.0" @@ -513,7 +513,7 @@ "dist": { "type": "path", "url": "/tmp/jetpack-build/Automattic/jetpack-connection", - "reference": "3bb923c29e92e340f13ff12da87d8dd14b7b4a3d" + "reference": "2f6a7ff15d6976083d5d586de6ab0a5741d8404d" }, "require": { "automattic/jetpack-a8c-mc-stats": "^2.0.1", @@ -600,7 +600,7 @@ "dist": { "type": "path", "url": "/tmp/jetpack-build/Automattic/jetpack-constants", - "reference": "f5450411267f7085140042b0ab578c1a3dca03bd" + "reference": "a4d5e5402de6354bc9a86698e36be158e3ac2c26" }, "require": { "php": ">=7.0" @@ -654,7 +654,7 @@ "dist": { "type": "path", "url": "/tmp/jetpack-build/Automattic/jetpack-device-detection", - "reference": "23398f73b8a88c6b82238812ac624005ef65ddba" + "reference": "4e95fb4c12ace7b8f2aa7f1afe8f16f4a652cc7f" }, "require": { "php": ">=7.0" @@ -707,7 +707,7 @@ "dist": { "type": "path", "url": "/tmp/jetpack-build/Automattic/jetpack-google-analytics", - "reference": "4b3658443be7bcd6c18061c647dddfa0dca1ae0a" + "reference": "36a054d70131958551068f6610fdfdf3e4ad854d" }, "require": { "automattic/jetpack-status": "^3.3.2", @@ -778,7 +778,7 @@ "dist": { "type": "path", "url": "/tmp/jetpack-build/Automattic/jetpack-ip", - "reference": "1288410d0af44f3fdfa71aa2aedb069083923a7d" + "reference": "86540954d5f503dbc8ccdc80d2dc341e4fa6a4cf" }, "require": { "php": ">=7.0" @@ -836,7 +836,7 @@ "dist": { "type": "path", "url": "/tmp/jetpack-build/Automattic/jetpack-jitm", - "reference": "f4515bfe82d14b82494cadaaf60325f0e20b8742" + "reference": "8c8c28ae31d2a68416ec54a2319600bad9365476" }, "require": { "automattic/jetpack-a8c-mc-stats": "^2.0.1", @@ -911,7 +911,7 @@ "dist": { "type": "path", "url": "/tmp/jetpack-build/Automattic/jetpack-logo", - "reference": "bfb66b00504626d5d1e83533fccd8cc01ee63261" + "reference": "0c68fa6757b0be0834e054a51b253741490c4917" }, "require": { "php": ">=7.0" @@ -964,7 +964,7 @@ "dist": { "type": "path", "url": "/tmp/jetpack-build/Automattic/jetpack-masterbar", - "reference": "4638208d9e70afd75a4d8c339ef00717f078426b" + "reference": "24ffde45f0717037c009bd4210bcfc9e7c0d903a" }, "require": { "automattic/jetpack-assets": "^2.2.0", @@ -1041,12 +1041,12 @@ }, { "name": "automattic/jetpack-mu-wpcom", - "version": "5.53.0-alpha.1722554287", - "version_normalized": "5.53.0.0-alpha1722554287", + "version": "5.53.0-alpha.1722563367", + "version_normalized": "5.53.0.0-alpha1722563367", "dist": { "type": "path", "url": "/tmp/jetpack-build/Automattic/jetpack-mu-wpcom", - "reference": "2ae331d4b33da95810421cab3c3f51b30d6d5dd2" + "reference": "5ff6c0c7e4c40feb8ef72c0ff80e9fb7fd81e885" }, "require": { "automattic/jetpack-assets": "^2.2.0", @@ -1129,7 +1129,7 @@ "dist": { "type": "path", "url": "/tmp/jetpack-build/Automattic/jetpack-password-checker", - "reference": "5c7cf53c2c6336a940b37d24a516637bb1bcf636" + "reference": "79c20a7b28b794c5d02d03257ce93254ab94b160" }, "require": { "php": ">=7.0" @@ -1190,7 +1190,7 @@ "dist": { "type": "path", "url": "/tmp/jetpack-build/Automattic/jetpack-plans", - "reference": "ed0fa573d7fc138d13f6675ed52062856f77f1d3" + "reference": "2fe130cab0103a388459e37e6e65c9abb479d226" }, "require": { "automattic/jetpack-connection": "^2.11.3", @@ -1258,7 +1258,7 @@ "dist": { "type": "path", "url": "/tmp/jetpack-build/Automattic/jetpack-redirect", - "reference": "448b3a33e2044deb9e53db8e501158d7488711a2" + "reference": "1258744667664d67265fa55ce7dd33d657807387" }, "require": { "automattic/jetpack-status": "^3.3.2", @@ -1313,7 +1313,7 @@ "dist": { "type": "path", "url": "/tmp/jetpack-build/Automattic/jetpack-roles", - "reference": "32cba508ffc3a6dc67a062fdb14f1e64a2049e9e" + "reference": "c075c923541dd16d622f48e65007b95fe7eec917" }, "require": { "php": ">=7.0" @@ -1367,7 +1367,7 @@ "dist": { "type": "path", "url": "/tmp/jetpack-build/Automattic/jetpack-stats", - "reference": "eb81af2e4ec95d5109876ab501422768038dc08d" + "reference": "fe81f4ff060cca760861a6c7888f24f8351c81a4" }, "require": { "automattic/jetpack-connection": "^2.11.3", @@ -1434,7 +1434,7 @@ "dist": { "type": "path", "url": "/tmp/jetpack-build/Automattic/jetpack-stats-admin", - "reference": "a71a96e84f409b8ce6d78a2b0ae1ebb7d96f79a7" + "reference": "eb73a6eeebffec8ad06eaa70c5a5379a407cff24" }, "require": { "automattic/jetpack-connection": "^2.11.3", @@ -1507,7 +1507,7 @@ "dist": { "type": "path", "url": "/tmp/jetpack-build/Automattic/jetpack-status", - "reference": "5253b98aa6218366a941b4eac0fb833f3684a85a" + "reference": "34c19850a146fea03f604875872714006c520e01" }, "require": { "automattic/jetpack-constants": "^2.0.3", @@ -1571,7 +1571,7 @@ "dist": { "type": "path", "url": "/tmp/jetpack-build/Automattic/jetpack-sync", - "reference": "5f717485790044dfc7da5f19db7345d35918750d" + "reference": "8416fbccad57bdd47f5bfc3c443a99f06fe4ddda" }, "require": { "automattic/jetpack-connection": "^2.11.3", @@ -1649,7 +1649,7 @@ "dist": { "type": "path", "url": "/tmp/jetpack-build/Automattic/scheduled-updates", - "reference": "9012588e5e74f1b92d14a88b4f8d39e2b2af6001" + "reference": "a7e0a6dd0c5f7e532ee516c626ebb7a168943d3b" }, "require": { "automattic/jetpack-connection": "^2.11.3", diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 5f1f50d0..8922fbb1 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -13,7 +13,7 @@ 'automattic/jetpack-a8c-mc-stats' => array( 'pretty_version' => '2.0.1', 'version' => '2.0.1.0', - 'reference' => 'e8cd7de94e4267f0d8053414dea3dbf1cefed01d', + 'reference' => '3f44c400ad082ff0bfaea15cddba9c575994ac1d', 'type' => 'jetpack-library', 'install_path' => __DIR__ . '/../automattic/jetpack-a8c-mc-stats', 'aliases' => array(), @@ -22,7 +22,7 @@ 'automattic/jetpack-admin-ui' => array( 'pretty_version' => '0.4.2', 'version' => '0.4.2.0', - 'reference' => '18a8d9b2966bad3537b50a88f51c1aec0494a137', + 'reference' => '60eb5a51999581451c4f6914d5ea477a2343d776', 'type' => 'jetpack-library', 'install_path' => __DIR__ . '/../automattic/jetpack-admin-ui', 'aliases' => array(), @@ -31,7 +31,7 @@ 'automattic/jetpack-assets' => array( 'pretty_version' => '2.2.0', 'version' => '2.2.0.0', - 'reference' => 'd11cb09581db83d18ba15bf5c52c29302a5ebcc4', + 'reference' => '456a3d51fa00eb7660364e70d8075ee060d82ef8', 'type' => 'jetpack-library', 'install_path' => __DIR__ . '/../automattic/jetpack-assets', 'aliases' => array(), @@ -40,7 +40,7 @@ 'automattic/jetpack-blaze' => array( 'pretty_version' => '0.22.3', 'version' => '0.22.3.0', - 'reference' => '79ea2ea0d36ede52b79461befcb2c5e65a903dd4', + 'reference' => '67aff757932cc83da51e22593799a5c077bc0d70', 'type' => 'jetpack-library', 'install_path' => __DIR__ . '/../automattic/jetpack-blaze', 'aliases' => array(), @@ -49,7 +49,7 @@ 'automattic/jetpack-blocks' => array( 'pretty_version' => '2.0.4', 'version' => '2.0.4.0', - 'reference' => '7849891b82f709214c0088c1cba67caf6fa62957', + 'reference' => '1b79e3f6417872762e30c19499b2cb2a3f45344a', 'type' => 'jetpack-library', 'install_path' => __DIR__ . '/../automattic/jetpack-blocks', 'aliases' => array(), @@ -58,7 +58,7 @@ 'automattic/jetpack-calypsoify' => array( 'pretty_version' => '0.1.2', 'version' => '0.1.2.0', - 'reference' => '891c8637eaa91aa6c90af576299f904ce42eefce', + 'reference' => '408b3fb6d6107b09b807c85a75c6d16d3606c0bd', 'type' => 'jetpack-library', 'install_path' => __DIR__ . '/../automattic/jetpack-calypsoify', 'aliases' => array(), @@ -67,7 +67,7 @@ 'automattic/jetpack-classic-theme-helper' => array( 'pretty_version' => '0.4.4-alpha.1722497050', 'version' => '0.4.4.0-alpha1722497050', - 'reference' => '251fe3b9c7ba98bfdb8ac445c8a8a845d2320970', + 'reference' => 'f5d975aacfa27bdafbb439a4fafc9412c6032e3d', 'type' => 'jetpack-library', 'install_path' => __DIR__ . '/../automattic/jetpack-classic-theme-helper', 'aliases' => array(), @@ -76,7 +76,7 @@ 'automattic/jetpack-compat' => array( 'pretty_version' => '3.0.2', 'version' => '3.0.2.0', - 'reference' => 'c0d4906b4d20cc6631a4ca63bd583e10c5676b1f', + 'reference' => '8889fb46b892b3edd92e51338b2d4d78ea6bc3ea', 'type' => 'jetpack-library', 'install_path' => __DIR__ . '/../automattic/jetpack-compat', 'aliases' => array(), @@ -85,7 +85,7 @@ 'automattic/jetpack-connection' => array( 'pretty_version' => '2.11.3', 'version' => '2.11.3.0', - 'reference' => '3bb923c29e92e340f13ff12da87d8dd14b7b4a3d', + 'reference' => '2f6a7ff15d6976083d5d586de6ab0a5741d8404d', 'type' => 'jetpack-library', 'install_path' => __DIR__ . '/../automattic/jetpack-connection', 'aliases' => array(), @@ -94,7 +94,7 @@ 'automattic/jetpack-constants' => array( 'pretty_version' => '2.0.3', 'version' => '2.0.3.0', - 'reference' => 'f5450411267f7085140042b0ab578c1a3dca03bd', + 'reference' => 'a4d5e5402de6354bc9a86698e36be158e3ac2c26', 'type' => 'jetpack-library', 'install_path' => __DIR__ . '/../automattic/jetpack-constants', 'aliases' => array(), @@ -103,7 +103,7 @@ 'automattic/jetpack-device-detection' => array( 'pretty_version' => '2.1.3', 'version' => '2.1.3.0', - 'reference' => '23398f73b8a88c6b82238812ac624005ef65ddba', + 'reference' => '4e95fb4c12ace7b8f2aa7f1afe8f16f4a652cc7f', 'type' => 'jetpack-library', 'install_path' => __DIR__ . '/../automattic/jetpack-device-detection', 'aliases' => array(), @@ -112,7 +112,7 @@ 'automattic/jetpack-google-analytics' => array( 'pretty_version' => '0.2.2', 'version' => '0.2.2.0', - 'reference' => '4b3658443be7bcd6c18061c647dddfa0dca1ae0a', + 'reference' => '36a054d70131958551068f6610fdfdf3e4ad854d', 'type' => 'jetpack-library', 'install_path' => __DIR__ . '/../automattic/jetpack-google-analytics', 'aliases' => array(), @@ -121,7 +121,7 @@ 'automattic/jetpack-ip' => array( 'pretty_version' => '0.2.2', 'version' => '0.2.2.0', - 'reference' => '1288410d0af44f3fdfa71aa2aedb069083923a7d', + 'reference' => '86540954d5f503dbc8ccdc80d2dc341e4fa6a4cf', 'type' => 'jetpack-library', 'install_path' => __DIR__ . '/../automattic/jetpack-ip', 'aliases' => array(), @@ -130,7 +130,7 @@ 'automattic/jetpack-jitm' => array( 'pretty_version' => '3.1.14', 'version' => '3.1.14.0', - 'reference' => 'f4515bfe82d14b82494cadaaf60325f0e20b8742', + 'reference' => '8c8c28ae31d2a68416ec54a2319600bad9365476', 'type' => 'jetpack-library', 'install_path' => __DIR__ . '/../automattic/jetpack-jitm', 'aliases' => array(), @@ -139,7 +139,7 @@ 'automattic/jetpack-logo' => array( 'pretty_version' => '2.0.3', 'version' => '2.0.3.0', - 'reference' => 'bfb66b00504626d5d1e83533fccd8cc01ee63261', + 'reference' => '0c68fa6757b0be0834e054a51b253741490c4917', 'type' => 'jetpack-library', 'install_path' => __DIR__ . '/../automattic/jetpack-logo', 'aliases' => array(), @@ -148,16 +148,16 @@ 'automattic/jetpack-masterbar' => array( 'pretty_version' => '0.6.0', 'version' => '0.6.0.0', - 'reference' => '4638208d9e70afd75a4d8c339ef00717f078426b', + 'reference' => '24ffde45f0717037c009bd4210bcfc9e7c0d903a', 'type' => 'jetpack-library', 'install_path' => __DIR__ . '/../automattic/jetpack-masterbar', 'aliases' => array(), 'dev_requirement' => false, ), 'automattic/jetpack-mu-wpcom' => array( - 'pretty_version' => '5.53.0-alpha.1722554287', - 'version' => '5.53.0.0-alpha1722554287', - 'reference' => '2ae331d4b33da95810421cab3c3f51b30d6d5dd2', + 'pretty_version' => '5.53.0-alpha.1722563367', + 'version' => '5.53.0.0-alpha1722563367', + 'reference' => '5ff6c0c7e4c40feb8ef72c0ff80e9fb7fd81e885', 'type' => 'jetpack-library', 'install_path' => __DIR__ . '/../automattic/jetpack-mu-wpcom', 'aliases' => array(), @@ -175,7 +175,7 @@ 'automattic/jetpack-password-checker' => array( 'pretty_version' => '0.3.1', 'version' => '0.3.1.0', - 'reference' => '5c7cf53c2c6336a940b37d24a516637bb1bcf636', + 'reference' => '79c20a7b28b794c5d02d03257ce93254ab94b160', 'type' => 'jetpack-library', 'install_path' => __DIR__ . '/../automattic/jetpack-password-checker', 'aliases' => array(), @@ -184,7 +184,7 @@ 'automattic/jetpack-plans' => array( 'pretty_version' => '0.4.7', 'version' => '0.4.7.0', - 'reference' => 'ed0fa573d7fc138d13f6675ed52062856f77f1d3', + 'reference' => '2fe130cab0103a388459e37e6e65c9abb479d226', 'type' => 'library', 'install_path' => __DIR__ . '/../automattic/jetpack-plans', 'aliases' => array(), @@ -193,7 +193,7 @@ 'automattic/jetpack-redirect' => array( 'pretty_version' => '2.0.2', 'version' => '2.0.2.0', - 'reference' => '448b3a33e2044deb9e53db8e501158d7488711a2', + 'reference' => '1258744667664d67265fa55ce7dd33d657807387', 'type' => 'jetpack-library', 'install_path' => __DIR__ . '/../automattic/jetpack-redirect', 'aliases' => array(), @@ -202,7 +202,7 @@ 'automattic/jetpack-roles' => array( 'pretty_version' => '2.0.2', 'version' => '2.0.2.0', - 'reference' => '32cba508ffc3a6dc67a062fdb14f1e64a2049e9e', + 'reference' => 'c075c923541dd16d622f48e65007b95fe7eec917', 'type' => 'jetpack-library', 'install_path' => __DIR__ . '/../automattic/jetpack-roles', 'aliases' => array(), @@ -211,7 +211,7 @@ 'automattic/jetpack-stats' => array( 'pretty_version' => '0.13.0', 'version' => '0.13.0.0', - 'reference' => 'eb81af2e4ec95d5109876ab501422768038dc08d', + 'reference' => 'fe81f4ff060cca760861a6c7888f24f8351c81a4', 'type' => 'jetpack-library', 'install_path' => __DIR__ . '/../automattic/jetpack-stats', 'aliases' => array(), @@ -220,7 +220,7 @@ 'automattic/jetpack-stats-admin' => array( 'pretty_version' => '0.21.0', 'version' => '0.21.0.0', - 'reference' => 'a71a96e84f409b8ce6d78a2b0ae1ebb7d96f79a7', + 'reference' => 'eb73a6eeebffec8ad06eaa70c5a5379a407cff24', 'type' => 'jetpack-library', 'install_path' => __DIR__ . '/../automattic/jetpack-stats-admin', 'aliases' => array(), @@ -229,7 +229,7 @@ 'automattic/jetpack-status' => array( 'pretty_version' => '3.3.2', 'version' => '3.3.2.0', - 'reference' => '5253b98aa6218366a941b4eac0fb833f3684a85a', + 'reference' => '34c19850a146fea03f604875872714006c520e01', 'type' => 'jetpack-library', 'install_path' => __DIR__ . '/../automattic/jetpack-status', 'aliases' => array(), @@ -238,7 +238,7 @@ 'automattic/jetpack-sync' => array( 'pretty_version' => '3.4.0', 'version' => '3.4.0.0', - 'reference' => '5f717485790044dfc7da5f19db7345d35918750d', + 'reference' => '8416fbccad57bdd47f5bfc3c443a99f06fe4ddda', 'type' => 'jetpack-library', 'install_path' => __DIR__ . '/../automattic/jetpack-sync', 'aliases' => array(), @@ -247,7 +247,7 @@ 'automattic/scheduled-updates' => array( 'pretty_version' => '0.13.0', 'version' => '0.13.0.0', - 'reference' => '9012588e5e74f1b92d14a88b4f8d39e2b2af6001', + 'reference' => 'a7e0a6dd0c5f7e532ee516c626ebb7a168943d3b', 'type' => 'jetpack-library', 'install_path' => __DIR__ . '/../automattic/scheduled-updates', 'aliases' => array(),