Activate now', 'jetpack' ),
+ {
+ a: createElement( 'a', {
+ href: USER_LICENSE_ACTIVATION_ROUTE,
+ onClick: trackClick,
+ } ),
+ }
+ ) }
+ />
+ );
+ }
+ return null;
+};
+
+UserLicenseActivationNotice.propTypes = {
+ detachedLicensesCount: PropTypes.number.isRequired,
+ activationNoticeDismissInfo: PropTypes.shape( {
+ last_detached_count: PropTypes.number.isRequired,
+ last_dismiss_time: PropTypes.string.isRequired,
+ } ),
+ siteAdminUrl: PropTypes.string.isRequired,
+};
+
+export default connect(
+ state => {
+ return {
+ detachedLicensesCount: getDetachedLicensesCount( state ),
+ activationNoticeDismissInfo: getActivationNoticeDismissInfo( state ),
+ siteAdminUrl: getSiteAdminUrl( state ),
+ };
+ },
+ dispatch => {
+ return {
+ updateLicensingActivationNoticeDismiss: () => {
+ return dispatch( updateLicensingActivationNoticeDismissAction() );
+ },
+ };
+ }
+)( UserLicenseActivationNotice );
diff --git a/projects/plugins/jetpack/_inc/client/my-plan/my-plan-header/license.jsx b/projects/plugins/jetpack/_inc/client/my-plan/my-plan-header/license.jsx
index 2a6f3dc003ce3..4a864320b922a 100644
--- a/projects/plugins/jetpack/_inc/client/my-plan/my-plan-header/license.jsx
+++ b/projects/plugins/jetpack/_inc/client/my-plan/my-plan-header/license.jsx
@@ -15,8 +15,9 @@ import {
errorNotice as errorNoticeAction,
} from 'components/global-notices/state/notices/actions';
import restApi from '@automattic/jetpack-api';
+import { updateUserLicensesCounts as updateUserLicensesCountsAction } from 'state/licensing';
-const License = ( { errorNotice, successNotice } ) => {
+const License = ( { errorNotice, successNotice, updateUserLicensesCounts } ) => {
const [ isSaving, setIsSaving ] = useState( false );
const [ licenseKeyText, setLicenseKeyText ] = useState( '' );
@@ -34,6 +35,7 @@ const License = ( { errorNotice, successNotice } ) => {
restApi
.updateLicenseKey( licenseKeyText )
.then( () => {
+ updateUserLicensesCounts();
successNotice(
__(
'Jetpack license key added. It may take a minute for the license to be processed.',
@@ -48,7 +50,7 @@ const License = ( { errorNotice, successNotice } ) => {
errorNotice( __( 'Error adding Jetpack license key.', 'jetpack' ) );
setIsSaving( false );
} );
- }, [ errorNotice, successNotice, isSaving, licenseKeyText ] );
+ }, [ errorNotice, successNotice, isSaving, licenseKeyText, updateUserLicensesCounts ] );
return (
@@ -79,4 +81,5 @@ const License = ( { errorNotice, successNotice } ) => {
export default connect( null, {
errorNotice: errorNoticeAction,
successNotice: successNoticeAction,
+ updateUserLicensesCounts: updateUserLicensesCountsAction,
} )( License );
diff --git a/projects/plugins/jetpack/_inc/client/state/action-types.js b/projects/plugins/jetpack/_inc/client/state/action-types.js
index 9726c5e75e449..c0f5b0a290622 100644
--- a/projects/plugins/jetpack/_inc/client/state/action-types.js
+++ b/projects/plugins/jetpack/_inc/client/state/action-types.js
@@ -214,3 +214,7 @@ export const JETPACK_MOBILE_LOGIN_SEND_LOGIN_EMAIL_FAIL =
'JETPACK_MOBILE_LOGIN_SEND_LOGIN_EMAIL_FAIL';
export const JETPACK_LICENSING_ERROR_UPDATE = 'JETPACK_LICENSING_ERROR_UPDATE';
+export const JETPACK_LICENSING_USER_LICENSE_COUNTS_UPDATE =
+ 'JETPACK_LICENSING_USER_LICENSE_COUNTS_UPDATE';
+export const JETPACK_LICENSING_ACTIVATION_NOTICE_DISMISS_UPDATE =
+ 'JETPACK_LICENSING_ACTIVATION_NOTICE_DISMISS_UPDATE';
diff --git a/projects/plugins/jetpack/_inc/client/state/licensing/actions.js b/projects/plugins/jetpack/_inc/client/state/licensing/actions.js
index b0a48bed2537c..db8980f4286c2 100644
--- a/projects/plugins/jetpack/_inc/client/state/licensing/actions.js
+++ b/projects/plugins/jetpack/_inc/client/state/licensing/actions.js
@@ -1,7 +1,11 @@
/**
* Internal dependencies
*/
-import { JETPACK_LICENSING_ERROR_UPDATE } from 'state/action-types';
+import {
+ JETPACK_LICENSING_ERROR_UPDATE,
+ JETPACK_LICENSING_USER_LICENSE_COUNTS_UPDATE,
+ JETPACK_LICENSING_ACTIVATION_NOTICE_DISMISS_UPDATE,
+} from 'state/action-types';
import restApi from '@automattic/jetpack-api';
export const clearLicensingError = () => {
@@ -15,3 +19,42 @@ export const clearLicensingError = () => {
return restApi.updateLicensingError( { error } );
};
};
+
+export const updateUserLicensesCounts = () => {
+ return dispatch => {
+ return restApi
+ .getUserLicensesCounts()
+ .then( counts => {
+ dispatch( {
+ type: JETPACK_LICENSING_USER_LICENSE_COUNTS_UPDATE,
+ counts,
+ } );
+ } )
+ .catch( error => {
+ dispatch( {
+ type: JETPACK_LICENSING_ERROR_UPDATE,
+ error,
+ } );
+ } );
+ };
+};
+
+export const updateLicensingActivationNoticeDismiss = () => {
+ return ( dispatch, getState ) => {
+ const currentDetachedLicenseCount = getState().jetpack.licensing.userCounts?.detached;
+ return restApi
+ .updateLicensingActivationNoticeDismiss( currentDetachedLicenseCount )
+ .then( dismissData => {
+ dispatch( {
+ type: JETPACK_LICENSING_ACTIVATION_NOTICE_DISMISS_UPDATE,
+ dismissData,
+ } );
+ } )
+ .catch( error => {
+ dispatch( {
+ type: JETPACK_LICENSING_ERROR_UPDATE,
+ error,
+ } );
+ } );
+ };
+};
diff --git a/projects/plugins/jetpack/_inc/client/state/licensing/reducer.js b/projects/plugins/jetpack/_inc/client/state/licensing/reducer.js
index 991e5913f8bba..a81966363cd2c 100644
--- a/projects/plugins/jetpack/_inc/client/state/licensing/reducer.js
+++ b/projects/plugins/jetpack/_inc/client/state/licensing/reducer.js
@@ -1,13 +1,17 @@
/**
* External dependencies
*/
-import { get } from 'lodash';
+import { assign, get } from 'lodash';
import { combineReducers } from 'redux';
/**
* Internal dependencies
*/
-import { JETPACK_LICENSING_ERROR_UPDATE } from 'state/action-types';
+import {
+ JETPACK_LICENSING_ERROR_UPDATE,
+ JETPACK_LICENSING_USER_LICENSE_COUNTS_UPDATE,
+ JETPACK_LICENSING_ACTIVATION_NOTICE_DISMISS_UPDATE,
+} from 'state/action-types';
/**
* Error reducer.
@@ -26,20 +30,91 @@ export const error = ( state = window.Initial_State.licensing.error, action ) =>
}
};
+/**
+ * "user" licenses counts reducer.
+ *
+ * @param {number} state - Global state tree
+ * @param {object} action - The action
+ * @returns {object} - The counts of user licenses
+ */
+export const userCounts = ( state = window.Initial_State.licensing.userCounts ?? {}, action ) => {
+ switch ( action.type ) {
+ case JETPACK_LICENSING_USER_LICENSE_COUNTS_UPDATE:
+ return assign( {}, state, action.counts );
+
+ default:
+ return state;
+ }
+};
+
+/**
+ * "user"-licenses activation notice dismissal info.
+ *
+ * @param {number} state - Global state tree
+ * @param {object} action - The action
+ * @returns {object} - The 'last_detached_count' and 'last_dismissed_time'
+ */
+export const activationNoticeDismiss = (
+ state = window.Initial_State.licensing.activationNoticeDismiss ?? {
+ last_detached_count: null,
+ last_dismissed_time: null,
+ },
+ action
+) => {
+ switch ( action.type ) {
+ case JETPACK_LICENSING_ACTIVATION_NOTICE_DISMISS_UPDATE:
+ return assign( {}, state, action.dismissData );
+
+ default:
+ return state;
+ }
+};
+
/**
* Licensing combined reducer.
*/
export const reducer = combineReducers( {
error,
+ userCounts,
+ activationNoticeDismiss,
} );
/**
* Get the latest licensing error, if any.
*
- * @param {Object} state Global state tree.
- *
- * @return {string} Error message or an empty string.
+ * @param {Object} state - Global state tree.
+ * @returns {string} - Error message or an empty string.
*/
export function getLicensingError( state ) {
return get( state.jetpack.licensing, [ 'error' ], '' );
}
+
+/**
+ * Determines if the user has detached "user" licenses available for product activation.
+ *
+ * @param {object} state - Global state tree.
+ * @returns {boolean} - True if the user has detached user licenses, false otherwise.
+ */
+export function hasDetachedUserLicenses( state ) {
+ return !! get( state.jetpack.licensing.userCounts, [ 'detached' ], 0 );
+}
+
+/**
+ * Get the user's number of detached licenses.
+ *
+ * @param {object} state - Global state tree.
+ * @returns {number} - Number of detached licenses.
+ */
+export function getDetachedLicensesCount( state ) {
+ return get( state.jetpack.licensing.userCounts, [ 'detached' ], 0 );
+}
+
+/**
+ * Get the license activation notice dismiss info.
+ *
+ * @param {object} state - Global state tree.
+ * @returns {object} - An object containing last_detached_count and last_dismissed_time.
+ */
+export function getActivationNoticeDismissInfo( state ) {
+ return get( state.jetpack.licensing, [ 'activationNoticeDismiss' ], {} );
+}
diff --git a/projects/plugins/jetpack/_inc/lib/admin-pages/class-jetpack-redux-state-helper.php b/projects/plugins/jetpack/_inc/lib/admin-pages/class-jetpack-redux-state-helper.php
index 1591488061a44..f17c76fc7e6f4 100644
--- a/projects/plugins/jetpack/_inc/lib/admin-pages/class-jetpack-redux-state-helper.php
+++ b/projects/plugins/jetpack/_inc/lib/admin-pages/class-jetpack-redux-state-helper.php
@@ -175,8 +175,10 @@ public static function get_initial_state() {
'isSafari' => $is_safari || User_Agent_Info::is_opera_desktop(), // @todo Rename isSafari everywhere.
'doNotUseConnectionIframe' => Constants::is_true( 'JETPACK_SHOULD_NOT_USE_CONNECTION_IFRAME' ),
'licensing' => array(
- 'error' => Licensing::instance()->last_error(),
- 'showLicensingUi' => Licensing::instance()->is_licensing_input_enabled(),
+ 'error' => Licensing::instance()->last_error(),
+ 'showLicensingUi' => Licensing::instance()->is_licensing_input_enabled(),
+ 'userCounts' => Jetpack_Core_Json_Api_Endpoints::get_user_license_counts(),
+ 'activationNoticeDismiss' => Licensing::instance()->get_license_activation_notice_dismiss(),
),
);
}
diff --git a/projects/plugins/jetpack/_inc/lib/class.core-rest-api-endpoints.php b/projects/plugins/jetpack/_inc/lib/class.core-rest-api-endpoints.php
index f061bcf364c30..9047e0e5a1339 100644
--- a/projects/plugins/jetpack/_inc/lib/class.core-rest-api-endpoints.php
+++ b/projects/plugins/jetpack/_inc/lib/class.core-rest-api-endpoints.php
@@ -723,6 +723,39 @@ public static function register_endpoints() {
)
);
+ /**
+ * Get Jetpack user license counts.
+ */
+ register_rest_route(
+ 'jetpack/v4',
+ 'licensing/user/counts',
+ array(
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => __CLASS__ . '::get_user_license_counts',
+ 'permission_callback' => __CLASS__ . '::user_licensing_permission_check',
+ )
+ );
+
+ /**
+ * Update user-licensing activation notice dismiss info.
+ */
+ register_rest_route(
+ 'jetpack/v4',
+ 'licensing/user/activation-notice-dismiss',
+ array(
+ 'methods' => WP_REST_Server::EDITABLE,
+ 'callback' => __CLASS__ . '::update_licensing_activation_notice_dismiss',
+ 'permission_callback' => __CLASS__ . '::user_licensing_permission_check',
+ 'args' => array(
+ 'last_detached_count' => array(
+ 'required' => true,
+ 'type' => 'integer',
+ 'validate_callback' => __CLASS__ . '::validate_non_neg_int',
+ ),
+ ),
+ )
+ );
+
/*
* Manage the Jetpack CRM plugin's integration with Jetpack contact forms.
*/
@@ -1013,6 +1046,75 @@ public static function get_products( $request ) {
}
}
+ /**
+ * Gets the users licenses counts.
+ *
+ * @since 10.4.0
+ *
+ * @return string|WP_Error A JSON object of user license counts if the request was successful, or a WP_Error otherwise.
+ */
+ public static function get_user_license_counts() {
+ $wpcom_request = Client::wpcom_json_api_request_as_user(
+ '/jetpack-licensing/user/licenses/counts',
+ '2',
+ array(
+ 'method' => 'GET',
+ 'headers' => array(
+ 'Content-Type' => 'application/json',
+ 'X-Forwarded-For' => Jetpack::current_user_ip( true ),
+ ),
+ )
+ );
+
+ $response_code = wp_remote_retrieve_response_code( $wpcom_request );
+ if ( 200 === $response_code ) {
+ $license_counts = json_decode( wp_remote_retrieve_body( $wpcom_request ) );
+ return $license_counts;
+ } else {
+ return new WP_Error(
+ 'failed_to_fetch_data',
+ esc_html__( 'Unable to fetch the requested data.', 'jetpack' ),
+ array( 'status' => $response_code )
+ );
+ }
+ }
+
+ /**
+ * Update the user-licenses activation notice dismissal data.
+ *
+ * @since 10.4.0
+ *
+ * @param WP_REST_Request $request The request sent to the WP REST API.
+ *
+ * @return array|WP_Error
+ */
+ public static function update_licensing_activation_notice_dismiss( $request ) {
+
+ if ( ! isset( $request['last_detached_count'] ) ) {
+ return new WP_Error( 'invalid_param', esc_html__( 'Missing parameter "last_detached_count".', 'jetpack' ), array( 'status' => 404 ) );
+ }
+
+ $default = array(
+ 'last_detached_count' => null,
+ 'last_dismissed_time' => null,
+ );
+ $last_detached_count = ( '' === $request['last_detached_count'] )
+ ? $default['last_detached_count']
+ : $request['last_detached_count'];
+ $last_dismissed_time = ( '' === $request['last_detached_count'] )
+ ? $default['last_dismissed_time']
+ // Use UTC timezone and convert to ISO8601 format(DateTime::W3C) for best compatibility with JavaScript Date in all browsers.
+ : ( new DateTime( 'NOW', new DateTimeZone( 'UTC' ) ) )->format( DateTime::W3C );
+
+ $notice_data = array(
+ 'last_detached_count' => $last_detached_count,
+ 'last_dismissed_time' => $last_dismissed_time,
+ );
+
+ Jetpack_Options::update_option( 'licensing_activation_notice_dismiss', $notice_data, true );
+ return rest_ensure_response( $notice_data );
+ }
+
public static function submit_survey( $request ) {
$wpcom_request = Client::wpcom_json_api_request_as_user(
@@ -1333,6 +1435,21 @@ public static function purchase_token_permission_check() {
return new WP_Error( 'invalid_permission_manage_purchase_token', self::$user_permissions_error_msg, array( 'status' => rest_authorization_required_code() ) );
}
+ /**
+ * Verify that user can view and update user-licensing data.
+ *
+ * @return bool Whether the user is currently connected and they are the connection owner.
+ */
+ public static function user_licensing_permission_check() {
+ $connection_manager = new Connection_Manager( 'jetpack' );
+
+ if ( $connection_manager->is_user_connected() && $connection_manager->is_connection_owner() ) {
+ return true;
+ }
+
+ return new WP_Error( 'invalid_permission_manage_user_licenses', self::$user_permissions_error_msg, array( 'status' => rest_authorization_required_code() ) );
+ }
+
/**
* Test connection status for this Jetpack site.
*
@@ -2840,6 +2957,28 @@ public static function validate_posint( $value, $request, $param ) {
return true;
}
+ /**
+ * Validates that the parameter is a non-negative integer (includes 0).
+ *
+ * @since 10.4.0
+ *
+ * @param int $value Value to check.
+ * @param WP_REST_Request $request The request sent to the WP REST API.
+ * @param string $param Name of the parameter passed to endpoint holding $value.
+ *
+ * @return bool|WP_Error
+ */
+ public static function validate_non_neg_int( $value, $request, $param ) {
+ if ( ! is_numeric( $value ) || $value < 0 ) {
+ return new WP_Error(
+ 'invalid_param',
+ /* translators: %s: The literal parameter name. Should not be translated. */
+ sprintf( esc_html__( '%s must be a non-negative integer.', 'jetpack' ), $param )
+ );
+ }
+ return true;
+ }
+
/**
* Validates that the parameter belongs to a list of admitted values.
*
diff --git a/projects/plugins/jetpack/changelog/add-license-activation-notice b/projects/plugins/jetpack/changelog/add-license-activation-notice
new file mode 100644
index 0000000000000..7efc391be7875
--- /dev/null
+++ b/projects/plugins/jetpack/changelog/add-license-activation-notice
@@ -0,0 +1,4 @@
+Significance: minor
+Type: enhancement
+
+Display a notice when connection owner has an unactivated product licence key
\ No newline at end of file
diff --git a/projects/plugins/jetpack/changelog/add-user-license-activate-notice-2 b/projects/plugins/jetpack/changelog/add-user-license-activate-notice-2
new file mode 100644
index 0000000000000..1eaea6a769e84
--- /dev/null
+++ b/projects/plugins/jetpack/changelog/add-user-license-activate-notice-2
@@ -0,0 +1,4 @@
+Significance: patch
+Type: other
+
+Updated package dependencies.
diff --git a/projects/plugins/jetpack/changelog/add-user-license-activate-notice-2#2 b/projects/plugins/jetpack/changelog/add-user-license-activate-notice-2#2
new file mode 100644
index 0000000000000..1eaea6a769e84
--- /dev/null
+++ b/projects/plugins/jetpack/changelog/add-user-license-activate-notice-2#2
@@ -0,0 +1,4 @@
+Significance: patch
+Type: other
+
+Updated package dependencies.
diff --git a/projects/plugins/jetpack/composer.json b/projects/plugins/jetpack/composer.json
index 172019281a9d9..2632c83404e85 100644
--- a/projects/plugins/jetpack/composer.json
+++ b/projects/plugins/jetpack/composer.json
@@ -28,7 +28,7 @@
"automattic/jetpack-identity-crisis": "0.4.x-dev",
"automattic/jetpack-jitm": "2.0.x-dev",
"automattic/jetpack-lazy-images": "2.0.x-dev",
- "automattic/jetpack-licensing": "1.4.x-dev",
+ "automattic/jetpack-licensing": "1.5.x-dev",
"automattic/jetpack-logo": "1.5.x-dev",
"automattic/jetpack-options": "1.13.x-dev",
"automattic/jetpack-partner": "1.5.x-dev",
diff --git a/projects/plugins/jetpack/composer.lock b/projects/plugins/jetpack/composer.lock
index a67a5a916937e..3a0dd8784626e 100644
--- a/projects/plugins/jetpack/composer.lock
+++ b/projects/plugins/jetpack/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": "a6d357598e7a4adf2079479ed0b08b6a",
+ "content-hash": "254cbae594ddbef3102737bc957f1c72",
"packages": [
{
"name": "automattic/jetpack-a8c-mc-stats",
@@ -952,7 +952,7 @@
"dist": {
"type": "path",
"url": "../../packages/licensing",
- "reference": "43c0b265f8f9f4456045d7c1f28133c98c60a219"
+ "reference": "ecf1135064fcdc825f8f91efc6d7ea149c5f5778"
},
"require": {
"automattic/jetpack-connection": "^1.30",
@@ -971,7 +971,7 @@
"link-template": "https://github.com/Automattic/jetpack-licensing/compare/v${old}...v${new}"
},
"branch-alias": {
- "dev-master": "1.4.x-dev"
+ "dev-master": "1.5.x-dev"
}
},
"autoload": {
@@ -2776,20 +2776,20 @@
},
{
"name": "psr/container",
- "version": "1.1.2",
+ "version": "1.1.1",
"source": {
"type": "git",
"url": "https://github.com/php-fig/container.git",
- "reference": "513e0666f7216c7459170d56df27dfcefe1689ea"
+ "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea",
- "reference": "513e0666f7216c7459170d56df27dfcefe1689ea",
+ "url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf",
+ "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf",
"shasum": ""
},
"require": {
- "php": ">=7.4.0"
+ "php": ">=7.2.0"
},
"type": "library",
"autoload": {
@@ -2818,9 +2818,9 @@
],
"support": {
"issues": "https://github.com/php-fig/container/issues",
- "source": "https://github.com/php-fig/container/tree/1.1.2"
+ "source": "https://github.com/php-fig/container/tree/1.1.1"
},
- "time": "2021-11-05T16:50:12+00:00"
+ "time": "2021-03-05T17:36:06+00:00"
},
{
"name": "sebastian/cli-parser",
diff --git a/projects/plugins/jetpack/package.json b/projects/plugins/jetpack/package.json
index f09b74e0ce4db..bbf9dc1c22a61 100644
--- a/projects/plugins/jetpack/package.json
+++ b/projects/plugins/jetpack/package.json
@@ -63,7 +63,7 @@
"@automattic/components": "1.0.0-alpha.3",
"@automattic/format-currency": "1.0.0-alpha.0",
"@automattic/jetpack-analytics": "workspace:^0.1.2",
- "@automattic/jetpack-api": "workspace:^0.5.0",
+ "@automattic/jetpack-api": "workspace:^0.5.1-alpha",
"@automattic/jetpack-components": "workspace:^0.6.1-alpha",
"@automattic/jetpack-connection": "workspace:^0.9.2-alpha",
"@automattic/popup-monitor": "1.0.0",
@@ -149,8 +149,8 @@
"webpack-cli": "4.8.0"
},
"devDependencies": {
- "@automattic/jetpack-webpack-config": "workspace:^0.1.1-alpha",
"@automattic/color-studio": "2.5.0",
+ "@automattic/jetpack-webpack-config": "workspace:^0.1.1-alpha",
"@babel/core": "7.16.0",
"@babel/plugin-proposal-nullish-coalescing-operator": "7.16.0",
"@babel/plugin-transform-react-jsx": "7.16.0",
@@ -195,7 +195,7 @@
"nyc": "15.1.0",
"postcss": "8.3.11",
"postcss-loader": "6.2.0",
- "prettier": "npm:wp-prettier@2.0.5",
+ "prettier": "npm:wp-prettier@^2.0.5",
"react-click-outside": "3.0.1",
"react-test-renderer": "17.0.2",
"sass-loader": "10.1.1",
diff --git a/projects/plugins/search/changelog/add-user-license-activate-notice-2 b/projects/plugins/search/changelog/add-user-license-activate-notice-2
new file mode 100644
index 0000000000000..c47cb18e82997
--- /dev/null
+++ b/projects/plugins/search/changelog/add-user-license-activate-notice-2
@@ -0,0 +1,4 @@
+Significance: patch
+Type: changed
+
+Updated package dependencies.
diff --git a/projects/plugins/search/composer.lock b/projects/plugins/search/composer.lock
index a4fb97a835eb8..5c040857edd11 100644
--- a/projects/plugins/search/composer.lock
+++ b/projects/plugins/search/composer.lock
@@ -1020,20 +1020,20 @@
},
{
"name": "psr/container",
- "version": "1.1.2",
+ "version": "1.1.1",
"source": {
"type": "git",
"url": "https://github.com/php-fig/container.git",
- "reference": "513e0666f7216c7459170d56df27dfcefe1689ea"
+ "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea",
- "reference": "513e0666f7216c7459170d56df27dfcefe1689ea",
+ "url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf",
+ "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf",
"shasum": ""
},
"require": {
- "php": ">=7.4.0"
+ "php": ">=7.2.0"
},
"type": "library",
"autoload": {
@@ -1062,9 +1062,9 @@
],
"support": {
"issues": "https://github.com/php-fig/container/issues",
- "source": "https://github.com/php-fig/container/tree/1.1.2"
+ "source": "https://github.com/php-fig/container/tree/1.1.1"
},
- "time": "2021-11-05T16:50:12+00:00"
+ "time": "2021-03-05T17:36:06+00:00"
},
{
"name": "sebastian/cli-parser",
diff --git a/projects/plugins/vaultpress/changelog/add-user-license-activate-notice-2 b/projects/plugins/vaultpress/changelog/add-user-license-activate-notice-2
new file mode 100644
index 0000000000000..c47cb18e82997
--- /dev/null
+++ b/projects/plugins/vaultpress/changelog/add-user-license-activate-notice-2
@@ -0,0 +1,4 @@
+Significance: patch
+Type: changed
+
+Updated package dependencies.
diff --git a/projects/plugins/vaultpress/composer.lock b/projects/plugins/vaultpress/composer.lock
index 97209591eb0b3..dffeb9b868dc9 100644
--- a/projects/plugins/vaultpress/composer.lock
+++ b/projects/plugins/vaultpress/composer.lock
@@ -1129,20 +1129,20 @@
},
{
"name": "psr/container",
- "version": "1.1.2",
+ "version": "1.1.1",
"source": {
"type": "git",
"url": "https://github.com/php-fig/container.git",
- "reference": "513e0666f7216c7459170d56df27dfcefe1689ea"
+ "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea",
- "reference": "513e0666f7216c7459170d56df27dfcefe1689ea",
+ "url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf",
+ "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf",
"shasum": ""
},
"require": {
- "php": ">=7.4.0"
+ "php": ">=7.2.0"
},
"type": "library",
"autoload": {
@@ -1171,9 +1171,9 @@
],
"support": {
"issues": "https://github.com/php-fig/container/issues",
- "source": "https://github.com/php-fig/container/tree/1.1.2"
+ "source": "https://github.com/php-fig/container/tree/1.1.1"
},
- "time": "2021-11-05T16:50:12+00:00"
+ "time": "2021-03-05T17:36:06+00:00"
},
{
"name": "sebastian/cli-parser",