From 59ce3298b4400758abb4d43153097391c1d29cf4 Mon Sep 17 00:00:00 2001 From: Pierre Gordon Date: Sat, 26 Dec 2020 23:05:49 -0500 Subject: [PATCH 01/18] Add export exclusions to gitattributes file --- .gitattributes | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/.gitattributes b/.gitattributes index 289761dafa2..b56ed81fbaa 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,5 +1,34 @@ # Improve diff output for PHP files. -*.php diff=php +*.php diff=php + +/.github export-ignore +/bin export-ignore +/tests export-ignore +/.browserslistrc export-ignore +/.devlib export-ignore +/.editorconfig export-ignore +/.eslintignore export-ignore +/.eslintrc export-ignore +/.gitattributes export-ignore +/.gitignore export-ignore +/.gitmodules export-ignore +/.npmrc export-ignore +/.nvmrc export-ignore +/.phpcs.xml.dist export-ignore +/.phpstorm.meta.php export-ignore +/.rtlcssrc export-ignore +/.stylelintignore export-ignore +/.stylelintrc.json export-ignore +/babel.config.js export-ignore +/codecov.yml export-ignore +/Gruntfile.js export-ignore +/package.json export-ignore +/package-lock.json export-ignore +/phpstan.neon.dist export-ignore +/phpunit.xml.dist export-ignore +/postcss.config.js export-ignore +/sizereport.config.js export-ignore +/webpack.config.js export-ignore # Mark generated files so diffs are hidden by default. *.snap linguist-generated=true From 92131da555118c6171decdcca8769deb5de0ecb3 Mon Sep 17 00:00:00 2001 From: Pierre Gordon Date: Mon, 28 Dec 2020 05:44:36 -0500 Subject: [PATCH 02/18] Bundle the PHP-CSS-Library library along with the plugin --- .gitattributes | 1 + .gitignore | 1 + .phpcs.xml.dist | 1 + amp.php | 3 +- composer.json | 17 +++++ .../options/class-amp-options-manager.php | 43 ----------- .../sanitizers/class-amp-style-sanitizer.php | 55 +++++++------- .../class-amp-validated-url-post-type.php | 8 -- phpstan.neon.dist | 1 + scoper.inc.php | 75 +++++++++++++++++++ tests/php/test-class-amp-options-manager.php | 12 --- 11 files changed, 126 insertions(+), 91 deletions(-) create mode 100644 scoper.inc.php diff --git a/.gitattributes b/.gitattributes index b56ed81fbaa..2a4681cce94 100644 --- a/.gitattributes +++ b/.gitattributes @@ -27,6 +27,7 @@ /phpstan.neon.dist export-ignore /phpunit.xml.dist export-ignore /postcss.config.js export-ignore +/scoper.inc.php export-ignore /sizereport.config.js export-ignore /webpack.config.js export-ignore diff --git a/.gitignore b/.gitignore index cbd461d2102..6c25aa11449 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,4 @@ built /phpcs.xml /phpunit.xml /*.sql +/third-party diff --git a/.phpcs.xml.dist b/.phpcs.xml.dist index 2f39b59b4c5..f1ef0a9de0f 100644 --- a/.phpcs.xml.dist +++ b/.phpcs.xml.dist @@ -143,4 +143,5 @@ ^build/* includes/sanitizers/class-amp-allowed-tags-generated.php assets/js/*.asset.php + third-party/* diff --git a/amp.php b/amp.php index 285efe924b3..e620e282578 100644 --- a/amp.php +++ b/amp.php @@ -152,7 +152,7 @@ unset( $_amp_required_extensions, $_amp_missing_extensions, $_amp_required_constructs, $_amp_missing_classes, $_amp_missing_functions, $_amp_required_extension, $_amp_construct_type, $_amp_construct, $_amp_constructs ); // DEV_CODE. This block of code is removed during the build process. -if ( ! file_exists( AMP__DIR__ . '/vendor/autoload.php' ) || ! file_exists( AMP__DIR__ . '/vendor/sabberworm/php-css-parser' ) || ! file_exists( AMP__DIR__ . '/assets/js/amp-block-editor.js' ) ) { +if ( ! file_exists( AMP__DIR__ . '/vendor/autoload.php' ) || ! file_exists( AMP__DIR__ . '/third-party/vendor/scoper-autoload.php' ) || ! file_exists( AMP__DIR__ . '/assets/js/amp-block-editor.js' ) ) { $_amp_load_errors->add( 'build_required', sprintf( @@ -246,6 +246,7 @@ function _amp_incorrect_plugin_slug_admin_notice() { } require_once AMP__DIR__ . '/vendor/autoload.php'; +require_once AMP__DIR__ . '/third-party/vendor/scoper-autoload.php'; register_activation_hook( __FILE__, 'amp_activate' ); diff --git a/composer.json b/composer.json index 7e0ed47d9d0..195565a0024 100644 --- a/composer.json +++ b/composer.json @@ -53,6 +53,11 @@ "path": "vendor/bin/phpstan", "type": "phar", "url": "https://github.com/phpstan/phpstan/releases/latest/download/phpstan.phar" + }, + "php-scoper": { + "path": "vendor/bin/php-scoper", + "type": "phar", + "url": "https://github.com/humbug/php-scoper/releases/download/0.14.0/php-scoper.phar" } }, "patches": { @@ -93,9 +98,21 @@ "minimum-stability": "dev", "prefer-stable": true, "scripts": { + "post-install-cmd": [ + "@scope-dependencies" + ], + "post-update-cmd": [ + "@scope-dependencies" + ], "analyze": "if [ -z $TEST_SKIP_PHPSTAN ]; then phpstan --version; phpstan analyze --ansi; fi", "pre-commit": [ "npm run lint:staged" + ], + "scope-dependencies": [ + "php-scoper add-prefix --output-dir=third-party --force --quiet", + "echo '{ \"autoload\": { \"classmap\": [\"\"] } }' > third-party/composer.json", + "composer dump-autoload --working-dir third-party --no-dev --no-plugins --classmap-authoritative", + "sed -i'.bak' -e 's/Composer\\\\Autoload/AmpProject\\\\AmpWP\\\\Composer\\\\Autoload/' third-party/vendor/composer/*.php && rm -rf third-party/vendor/composer/*.php.bak" ] } } diff --git a/includes/options/class-amp-options-manager.php b/includes/options/class-amp-options-manager.php index d590b9a6337..df4c3bd5d44 100644 --- a/includes/options/class-amp-options-manager.php +++ b/includes/options/class-amp-options-manager.php @@ -42,7 +42,6 @@ class AMP_Options_Manager { * Sets up hooks. */ public static function init() { - add_action( 'admin_notices', [ __CLASS__, 'render_php_css_parser_conflict_notice' ] ); add_action( 'admin_notices', [ __CLASS__, 'insecure_connection_notice' ] ); add_action( 'admin_notices', [ __CLASS__, 'reader_theme_fallback_notice' ] ); } @@ -438,48 +437,6 @@ public static function update_options( $options ) { return update_option( self::OPTION_NAME, $amp_options, false ); } - /** - * Render PHP-CSS-Parser conflict notice. - * - * @return void - */ - public static function render_php_css_parser_conflict_notice() { - $current_screen = get_current_screen(); - if ( ! ( $current_screen instanceof WP_Screen ) || 'toplevel_page_' . self::OPTION_NAME !== $current_screen->id ) { - return; - } - - if ( AMP_Style_Sanitizer::has_required_php_css_parser() ) { - return; - } - - try { - $reflection = new ReflectionClass( 'Sabberworm\CSS\CSSList\CSSList' ); - $source_dir = str_replace( - trailingslashit( WP_CONTENT_DIR ), - '', - preg_replace( '#/vendor/sabberworm/.+#', '', $reflection->getFileName() ) - ); - - printf( - '

%s

', - wp_kses( - sprintf( - /* translators: %s: path to the conflicting library */ - __( 'A conflicting version of PHP-CSS-Parser appears to be installed by another plugin or theme (located in %s). Because of this, CSS processing will be limited, and tree shaking will not be available.', 'amp' ), - '' . esc_html( $source_dir ) . '' - ), - [ 'code' => [] ] - ) - ); - } catch ( ReflectionException $e ) { - printf( - '

%s

', - esc_html__( 'PHP-CSS-Parser is not available so CSS processing will not be available.', 'amp' ) - ); - } - } - /** * Outputs an admin notice if the site is not served over HTTPS. * diff --git a/includes/sanitizers/class-amp-style-sanitizer.php b/includes/sanitizers/class-amp-style-sanitizer.php index 695cb05c61e..10c8ebad5b7 100644 --- a/includes/sanitizers/class-amp-style-sanitizer.php +++ b/includes/sanitizers/class-amp-style-sanitizer.php @@ -13,21 +13,24 @@ use AmpProject\Dom\Document; use AmpProject\Exception\FailedToGetFromRemoteUrl; use AmpProject\RemoteGetRequest; -use Sabberworm\CSS\RuleSet\DeclarationBlock; -use Sabberworm\CSS\CSSList\CSSList; -use Sabberworm\CSS\Property\Selector; -use Sabberworm\CSS\RuleSet\RuleSet; -use Sabberworm\CSS\Property\AtRule; -use Sabberworm\CSS\Rule\Rule; -use Sabberworm\CSS\CSSList\KeyFrame; -use Sabberworm\CSS\RuleSet\AtRuleSet; -use Sabberworm\CSS\OutputFormat; -use Sabberworm\CSS\Property\Import; -use Sabberworm\CSS\CSSList\AtRuleBlockList; -use Sabberworm\CSS\Value\RuleValueList; -use Sabberworm\CSS\Value\URL; -use Sabberworm\CSS\Value\Value; -use Sabberworm\CSS\CSSList\Document as CSSDocument; +use AmpProject\AmpWP\ScopedDependencies\Sabberworm\CSS\RuleSet\DeclarationBlock; +use AmpProject\AmpWP\ScopedDependencies\Sabberworm\CSS\CSSList\CSSList; +use AmpProject\AmpWP\ScopedDependencies\Sabberworm\CSS\Property\Selector; +use AmpProject\AmpWP\ScopedDependencies\Sabberworm\CSS\RuleSet\RuleSet; +use AmpProject\AmpWP\ScopedDependencies\Sabberworm\CSS\Property\AtRule; +use AmpProject\AmpWP\ScopedDependencies\Sabberworm\CSS\Rule\Rule; +use AmpProject\AmpWP\ScopedDependencies\Sabberworm\CSS\CSSList\KeyFrame; +use AmpProject\AmpWP\ScopedDependencies\Sabberworm\CSS\RuleSet\AtRuleSet; +use AmpProject\AmpWP\ScopedDependencies\Sabberworm\CSS\OutputFormat; +use AmpProject\AmpWP\ScopedDependencies\Sabberworm\CSS\Property\Import; +use AmpProject\AmpWP\ScopedDependencies\Sabberworm\CSS\CSSList\AtRuleBlockList; +use AmpProject\AmpWP\ScopedDependencies\Sabberworm\CSS\Value\RuleValueList; +use AmpProject\AmpWP\ScopedDependencies\Sabberworm\CSS\Value\URL; +use AmpProject\AmpWP\ScopedDependencies\Sabberworm\CSS\Value\Value; +use AmpProject\AmpWP\ScopedDependencies\Sabberworm\CSS\CSSList\Document as CSSDocument; +use AmpProject\AmpWP\ScopedDependencies\Sabberworm\CSS\Settings as CSSSettings; +use AmpProject\AmpWP\ScopedDependencies\Sabberworm\CSS\Parser as CSSParser; +use AmpProject\AmpWP\ScopedDependencies\Sabberworm\CSS\OutputFormat as CSSOutputFormat; /** * Class AMP_Style_Sanitizer @@ -376,6 +379,7 @@ public static function get_css_parser_validation_error_codes() { /** * Determine whether the version of PHP-CSS-Parser loaded has all required features for tree shaking and CSS processing. * + * @deprecated As of v2.1 a patched version of PHP-CSS-Parser is now bundled with the plugin. * @since 1.0.2 * * @return bool Returns true if the plugin's forked version of PHP-CSS-Parser is loaded by Composer. @@ -1803,8 +1807,8 @@ private function create_validated_css_document( $stylesheet_string, $options ) { // Remove spaces from data URLs, which cause errors and PHP-CSS-Parser can't handle them. $stylesheet_string = $this->remove_spaces_from_url_values( $stylesheet_string ); - $parser_settings = Sabberworm\CSS\Settings::create(); - $css_parser = new Sabberworm\CSS\Parser( $stylesheet_string, $parser_settings ); + $parser_settings = CSSSettings::create(); + $css_parser = new CSSParser( $stylesheet_string, $parser_settings ); $css_document = $css_parser->parse(); // @todo If 'utf-8' is not $css_parser->getCharset() then issue warning? if ( ! empty( $options['stylesheet_url'] ) ) { @@ -1904,7 +1908,7 @@ private function parse_stylesheet( $stylesheet_string, $options = [] ) { if ( ! empty( $parsed_stylesheet['css_document'] ) ) { $css_document = $parsed_stylesheet['css_document']; - $output_format = Sabberworm\CSS\OutputFormat::createCompact(); + $output_format = CSSOutputFormat::createCompact(); $output_format->setSemicolonAfterLastRule( false ); $before_declaration_block = sprintf( '/*%s*/', chr( 1 ) ); @@ -1915,15 +1919,12 @@ private function parse_stylesheet( $stylesheet_string, $options = [] ) { $before_at_rule = sprintf( '/*%s*/', chr( 6 ) ); $after_at_rule = sprintf( '/*%s*/', chr( 7 ) ); - // Add comments to stylesheet if PHP-CSS-Parser has the required extensions for tree shaking. - if ( self::has_required_php_css_parser() ) { - $output_format->set( 'BeforeDeclarationBlock', $before_declaration_block ); - $output_format->set( 'SpaceBeforeSelectorSeparator', $between_selectors ); - $output_format->set( 'AfterDeclarationBlockSelectors', $after_declaration_block_selectors ); - $output_format->set( 'AfterDeclarationBlock', $after_declaration_block ); - $output_format->set( 'BeforeAtRuleBlock', $before_at_rule ); - $output_format->set( 'AfterAtRuleBlock', $after_at_rule ); - } + $output_format->set( 'BeforeDeclarationBlock', $before_declaration_block ); + $output_format->set( 'SpaceBeforeSelectorSeparator', $between_selectors ); + $output_format->set( 'AfterDeclarationBlockSelectors', $after_declaration_block_selectors ); + $output_format->set( 'AfterDeclarationBlock', $after_declaration_block ); + $output_format->set( 'BeforeAtRuleBlock', $before_at_rule ); + $output_format->set( 'AfterAtRuleBlock', $after_at_rule ); $output_format->set( 'SpaceBetweenRules', $between_properties ); $stylesheet_string = $css_document->render( $output_format ); diff --git a/includes/validation/class-amp-validated-url-post-type.php b/includes/validation/class-amp-validated-url-post-type.php index 2707dddbbbb..ab4e23aeaae 100644 --- a/includes/validation/class-amp-validated-url-post-type.php +++ b/includes/validation/class-amp-validated-url-post-type.php @@ -2356,14 +2356,6 @@ static function ( $a, $b ) use ( $stylesheets ) { ?> - -
-

- -

-
- -
diff --git a/phpstan.neon.dist b/phpstan.neon.dist index b968bf8bb12..c2c41fdfefc 100644 --- a/phpstan.neon.dist +++ b/phpstan.neon.dist @@ -26,6 +26,7 @@ parameters: - %currentWorkingDirectory%/tests/php/static-analysis-stubs/twentyseventeen.php - %currentWorkingDirectory%/tests/php/static-analysis-stubs/legacy-i18n.php - %currentWorkingDirectory%/vendor/autoload.php + - %currentWorkingDirectory%/third-party/vendor/scoper-autoload.php - %currentWorkingDirectory%/amp.php - %currentWorkingDirectory%/includes/amp-frontend-actions.php - %currentWorkingDirectory%/includes/amp-post-template-functions.php diff --git a/scoper.inc.php b/scoper.inc.php new file mode 100644 index 00000000000..7cc11d3bfa7 --- /dev/null +++ b/scoper.inc.php @@ -0,0 +1,75 @@ + 'AmpProject\\AmpWP\\ScopedDependencies', + + // By default when running php-scoper add-prefix, it will prefix all relevant code found in the current working + // directory. You can however define which files should be scoped by defining a collection of Finders in the + // following configuration key. + // + // For more see: https://github.com/humbug/php-scoper#finders-and-paths. + 'finders' => [ + Finder::create() + ->files() + ->ignoreVCS( true ) + ->ignoreDotFiles( true ) + ->name( '*.php' ) + ->exclude( [ 'tests' ] ) + ->in( 'vendor/sabberworm/php-css-parser' ) + ->append( [ 'vendor/sabberworm/php-css-parser/composer.json' ] ), + + // Main composer.json file so that we can build a classmap. + Finder::create() + ->append( [ 'composer.json' ] ), + ], + + // Whitelists a list of files. Unlike the other whitelist related features, this one is about completely leaving + // a file untouched. + // Paths are relative to the configuration file unless if they are already absolute. + 'files-whitelist' => [ + // + ], + + // When scoping PHP files, there will be scenarios where some of the code being scoped indirectly references the + // original namespace. These will include, for example, strings or string manipulations. PHP-Scoper has limited + // support for prefixing such strings. To circumvent that, you can define patchers to manipulate the file to your + // heart contents. + // + // For more see: https://github.com/humbug/php-scoper#patchers. + 'patchers' => [ + function ( $filePath, $prefix, $contents ) { + // Change the contents here. + + return $contents; + }, + ], + + // PHP-Scoper's goal is to make sure that all code for a project lies in a distinct PHP namespace. However, you + // may want to share a common API between the bundled code of your PHAR and the consumer code. For example if + // you have a PHPUnit PHAR with isolated code, you still want the PHAR to be able to understand the + // PHPUnit\Framework\TestCase class. + // + // A way to achieve this is by specifying a list of classes to not prefix with the following configuration key. Note + // that this does not work with functions or constants neither with classes belonging to the global namespace. + // + // Fore more see https://github.com/humbug/php-scoper#whitelist. + 'whitelist' => [], + + // If `true` then the user defined constants belonging to the global namespace will not be prefixed. + // + // For more see https://github.com/humbug/php-scoper#constants--constants--functions-from-the-global-namespace. + 'whitelist-global-constants' => false, + + // If `true` then the user defined classes belonging to the global namespace will not be prefixed. + // + // For more see https://github.com/humbug/php-scoper#constants--constants--functions-from-the-global-namespace. + 'whitelist-global-classes' => false, + + // If `true` then the user defined functions belonging to the global namespace will not be prefixed. + // + // For more see https://github.com/humbug/php-scoper#constants--constants--functions-from-the-global-namespace. + 'whitelist-global-functions' => false, +]; diff --git a/tests/php/test-class-amp-options-manager.php b/tests/php/test-class-amp-options-manager.php index c9742bb76d3..f1cd74186d8 100644 --- a/tests/php/test-class-amp-options-manager.php +++ b/tests/php/test-class-amp-options-manager.php @@ -72,7 +72,6 @@ public function test_constants() { */ public function test_init() { AMP_Options_Manager::init(); - $this->assertEquals( 10, has_action( 'admin_notices', [ AMP_Options_Manager::class, 'render_php_css_parser_conflict_notice' ] ) ); $this->assertEquals( 10, has_action( 'admin_notices', [ AMP_Options_Manager::class, 'insecure_connection_notice' ] ) ); $this->assertEquals( 10, has_action( 'admin_notices', [ AMP_Options_Manager::class, 'reader_theme_fallback_notice' ] ) ); } @@ -742,17 +741,6 @@ public function test_get_options_theme_support_defaults( $args, $expected_mode, $this->assertEquals( $expected_mode, AMP_Options_Manager::get_option( Option::THEME_SUPPORT ) ); } - /** @covers AMP_Options_Manager::render_php_css_parser_conflict_notice() */ - public function test_render_php_css_parser_conflict_notice() { - $this->assertEmpty( get_echo( [ 'AMP_Options_Manager', 'render_php_css_parser_conflict_notice' ] ) ); - - set_current_screen( 'themes' ); - $this->assertEmpty( get_echo( [ 'AMP_Options_Manager', 'render_php_css_parser_conflict_notice' ] ) ); - - set_current_screen( 'toplevel_page_' . AMP_Options_Manager::OPTION_NAME ); - $this->assertEmpty( get_echo( [ 'AMP_Options_Manager', 'render_php_css_parser_conflict_notice' ] ) ); - } - /** @covers AMP_Options_Manager::insecure_connection_notice() */ public function test_insecure_connection_notice() { $_SERVER['HTTPS'] = false; From a86e5ff76e3d3f6d87eb0f6ce327ec5082b92298 Mon Sep 17 00:00:00 2001 From: Pierre Gordon Date: Mon, 28 Dec 2020 05:46:21 -0500 Subject: [PATCH 03/18] Add support for building Composer compatible zip --- Gruntfile.js | 55 +++++++++++++++++++++++++++++++++++++++------------- package.json | 5 +++-- 2 files changed, 45 insertions(+), 15 deletions(-) diff --git a/Gruntfile.js b/Gruntfile.js index ba4b2e2cfec..20f8b7ca389 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -3,7 +3,7 @@ module.exports = function( grunt ) { 'use strict'; - // Root paths to include in the plugin build ZIP when running `npm run build:prod`. + // Root paths to include in the plugin build ZIP. const productionIncludedRootFiles = [ 'LICENSE', 'amp.php', @@ -13,7 +13,6 @@ module.exports = function( grunt ) { 'readme.txt', 'src', 'templates', - 'vendor', ]; // These patterns paths will be excluded from among the above directory. @@ -38,11 +37,19 @@ module.exports = function( grunt ) { 'vendor/*/*/*.yml', 'vendor/*/*/.*.yml', 'vendor/*/*/tests', - 'vendor/ampproject/amp-toolbox/bin', - 'vendor/ampproject/amp-toolbox/.phpcs.xml.dist', 'vendor/ampproject/amp-toolbox/conceptual-diagram.svg', - 'vendor/ampproject/amp-toolbox/phpstan.neon.dist', 'vendor/bin', + 'third-party/composer.json', + 'scoper.inc.php', + ]; + + // These will be removed from the Composer build of the plugin prior to creating a ZIP. + // ⚠️ Warning: These paths are passed straight to rm command in the shell, without any escaping. + const productionComposerExcludedFilePatterns = [ + 'vendor', + 'composer.lock', + 'third-party/composer.json', + 'scoper.inc.php', ]; grunt.initConfig( { @@ -78,13 +85,28 @@ module.exports = function( grunt ) { command: 'php bin/verify-version-consistency.php', }, composer_install: { - command: [ - 'if [ ! -e build ]; then echo "Run grunt build first."; exit 1; fi', - 'cd build', - 'composer install --no-dev -o', - 'composer remove cweagans/composer-patches --update-no-dev -o', - 'rm -rf ' + productionVendorExcludedFilePatterns.join( ' ' ), - ].join( ' && ' ), + command: () => { + const command = [ + 'if [ ! -e build ]; then echo "Run grunt build first."; exit 1; fi', + 'mkdir -p build/vendor/bin', + 'cp vendor/bin/php-scoper build/vendor/bin/', + 'cd build', + 'composer install --no-dev -o', + ]; + + if ( 'composer' === process.env.BUILD_TYPE ) { + command.push( + 'rm -rf ' + productionComposerExcludedFilePatterns.join( ' ' ), + ); + } else { + command.push( + 'COMPOSER_DISCARD_CHANGES=true composer remove --no-interaction --no-scripts --update-no-dev -o cweagans/composer-patches sabberworm/php-css-parser', + 'rm -rf ' + productionVendorExcludedFilePatterns.join( ' ' ), + ); + } + + return command.join( ' && ' ); + }, }, create_build_zip: { command: 'if [ ! -e build ]; then echo "Run grunt build first."; exit 1; fi; if [ -e amp.zip ]; then rm amp.zip; fi; cd build; zip -r ../amp.zip .; cd ..; echo; echo "ZIP of build: $(pwd)/amp.zip"', @@ -155,6 +177,9 @@ module.exports = function( grunt ) { } ); paths.push( 'composer.*' ); // Copy in order to be able to do run composer_install. + paths.push( 'scoper.inc.php' ); // Copy in order generate scoped Composer dependencies. + + // Also copy recently built assets. paths.push( 'assets/js/**/*.js' ); paths.push( 'assets/js/**/*.asset.php' ); paths.push( 'assets/css/*.css' ); @@ -169,7 +194,7 @@ module.exports = function( grunt ) { dest: 'build', expand: true, options: { - noProcess: [ '*/**', 'LICENSE' ], // That is, only process amp.php and readme.txt. + noProcess: [ '**/*', '!amp.php' ], // That is, only process amp.php. process( content, srcpath ) { let matches, version, versionRegex; if ( /amp\.php$/.test( srcpath ) ) { @@ -186,6 +211,10 @@ module.exports = function( grunt ) { // Remove dev mode code blocks. content = content.replace( /\n\/\/\s*DEV_CODE.+?\n}\n/s, '' ); + + if ( 'composer' === process.env.BUILD_TYPE ) { + content = content.replace( "require_once AMP__DIR__ . '/vendor/autoload.php';", '' ); + } } return content; }, diff --git a/package.json b/package.json index 6e3ec474d73..c2b55f6f094 100644 --- a/package.json +++ b/package.json @@ -85,8 +85,9 @@ "webpackbar": "4.0.0" }, "scripts": { - "build:dev": "cross-env NODE_ENV=development npm-run-all 'build:!(dev|prod)'", - "build:prod": "cross-env NODE_ENV=production npm-run-all 'build:!(dev|prod)'", + "build:dev": "cross-env NODE_ENV=development npm-run-all 'build:!(dev|prod|composer)'", + "build:prod": "cross-env NODE_ENV=production npm-run-all 'build:!(dev|prod|composer)'", + "build:composer": "cross-env NODE_ENV=production BUILD_TYPE=composer npm-run-all 'build:!(dev|prod|composer)'", "build:prepare": "grunt clean", "build:css": "npm-run-all build:css:*", "build:css:copy": "cp -R assets/css/src/* assets/css", From 69746799a50c4f48080b10245c68919b44437342 Mon Sep 17 00:00:00 2001 From: Pierre Gordon Date: Mon, 28 Dec 2020 06:13:34 -0500 Subject: [PATCH 04/18] Add "composer" build to list of zips to be built for public use --- .github/workflows/build-test-measure.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-test-measure.yml b/.github/workflows/build-test-measure.yml index 4003e2528e9..d955c163a66 100644 --- a/.github/workflows/build-test-measure.yml +++ b/.github/workflows/build-test-measure.yml @@ -439,7 +439,7 @@ jobs: git-sha-8: ${{ steps.retrieve-git-sha-8.outputs.sha8 }} strategy: matrix: - build: ['dev', 'prod'] + build: ['dev', 'prod', 'composer'] steps: - name: Check out source files From 56dfb7fc61c10764f98ab0977447b8082e77b061 Mon Sep 17 00:00:00 2001 From: Pierre Gordon Date: Mon, 28 Dec 2020 06:21:04 -0500 Subject: [PATCH 05/18] Add "composer" build link to comment body --- .github/workflows/build-test-measure.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build-test-measure.yml b/.github/workflows/build-test-measure.yml index d955c163a66..59de2c5abac 100644 --- a/.github/workflows/build-test-measure.yml +++ b/.github/workflows/build-test-measure.yml @@ -573,6 +573,7 @@ jobs: body="Plugin builds for ${{ github.event.pull_request.head.sha }} are ready :bellhop_bell:! - Download [development build](https://storage.googleapis.com/ampwp_github_artifacts/${{ github.ref }}/dev/amp.zip) - Download [production build](https://storage.googleapis.com/ampwp_github_artifacts/${{ github.ref }}/prod/amp.zip)" + - Download [composer build](https://storage.googleapis.com/ampwp_github_artifacts/${{ github.ref }}/composer/amp.zip)" body="${body//$'\n'/'%0A'}" echo "::set-output name=body::$body" From 52f95c4a45a861dc7da3f598e0d1027cf408e32d Mon Sep 17 00:00:00 2001 From: Pierre Gordon Date: Mon, 28 Dec 2020 06:24:23 -0500 Subject: [PATCH 06/18] Add PHP Scoper related files to Codecov ignore list --- codecov.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/codecov.yml b/codecov.yml index 651e04bc2bc..68a20e98b55 100644 --- a/codecov.yml +++ b/codecov.yml @@ -42,5 +42,7 @@ comment: ignore: - "/bin" - "/back-compat" + - "/third-party" - "/docs/**/*" - ".phpstorm.meta.php" + - "scoper.inc.php" From 4cd49656ee15b8186555c5057ccb2690b3d65fb2 Mon Sep 17 00:00:00 2001 From: Pierre Gordon Date: Mon, 28 Dec 2020 06:47:40 -0500 Subject: [PATCH 07/18] Add deprecated method to code coverage ignore list --- includes/sanitizers/class-amp-style-sanitizer.php | 1 + 1 file changed, 1 insertion(+) diff --git a/includes/sanitizers/class-amp-style-sanitizer.php b/includes/sanitizers/class-amp-style-sanitizer.php index 10c8ebad5b7..c069da0af7c 100644 --- a/includes/sanitizers/class-amp-style-sanitizer.php +++ b/includes/sanitizers/class-amp-style-sanitizer.php @@ -379,6 +379,7 @@ public static function get_css_parser_validation_error_codes() { /** * Determine whether the version of PHP-CSS-Parser loaded has all required features for tree shaking and CSS processing. * + * @codeCoverageIgnore * @deprecated As of v2.1 a patched version of PHP-CSS-Parser is now bundled with the plugin. * @since 1.0.2 * From be1d49cd252161db3d965659914dc51c3ab414db Mon Sep 17 00:00:00 2001 From: Pierre Gordon Date: Mon, 28 Dec 2020 06:30:30 -0500 Subject: [PATCH 08/18] Update phpcs config for scoper.inc.php --- .phpcs.xml.dist | 4 ++++ scoper.inc.php | 6 ++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/.phpcs.xml.dist b/.phpcs.xml.dist index f1ef0a9de0f..2fee09e3639 100644 --- a/.phpcs.xml.dist +++ b/.phpcs.xml.dist @@ -128,6 +128,10 @@ + + scoper.inc.php + + . diff --git a/scoper.inc.php b/scoper.inc.php index 7cc11d3bfa7..b49fc4dfd4c 100644 --- a/scoper.inc.php +++ b/scoper.inc.php @@ -29,9 +29,7 @@ // Whitelists a list of files. Unlike the other whitelist related features, this one is about completely leaving // a file untouched. // Paths are relative to the configuration file unless if they are already absolute. - 'files-whitelist' => [ - // - ], + 'files-whitelist' => [], // When scoping PHP files, there will be scenarios where some of the code being scoped indirectly references the // original namespace. These will include, for example, strings or string manipulations. PHP-Scoper has limited @@ -40,7 +38,7 @@ // // For more see: https://github.com/humbug/php-scoper#patchers. 'patchers' => [ - function ( $filePath, $prefix, $contents ) { + function ( $filePath, $prefix, $contents ) { //phpcs:ignore WordPress.NamingConventions.ValidVariableName.VariableNotSnakeCase // Change the contents here. return $contents; From ae9253169b216b17cb9fe8744ee30d9d18ac318d Mon Sep 17 00:00:00 2001 From: Pierre Gordon Date: Mon, 28 Dec 2020 16:21:54 -0500 Subject: [PATCH 09/18] Add workaround to always get php-scoper working on PHP < 7.3 --- .github/workflows/build-test-measure.yml | 33 +++++++++++++++++------- 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/.github/workflows/build-test-measure.yml b/.github/workflows/build-test-measure.yml index 59de2c5abac..c66c16c9103 100644 --- a/.github/workflows/build-test-measure.yml +++ b/.github/workflows/build-test-measure.yml @@ -328,14 +328,6 @@ jobs: - name: Checkout uses: actions/checkout@v2 - - name: Setup PHP - uses: shivammathur/setup-php@v2 - with: - php-version: ${{ matrix.php }} - extensions: curl, date, dom, gd, iconv, json, libxml, mysql, spl - coverage: ${{ matrix.coverage && 'pcov' || 'none' }} - ini-values: pcov.directory=. - - name: Shutdown default MySQL service run: sudo service mysql stop @@ -357,8 +349,31 @@ jobs: restore-keys: | ${{ runner.os }}-composer- + # PHP-Scoper only works on PHP 7.3+ but is still a necessary tool to generate the scoped dependencies. To work + # around this, a compatible PHP version is temporarily installed and then used to install the dependencies. + # Once that is done, the PHP version is replaced with the one meant to be used and the vendor directory is + # removed so that the appropriate dependencies can then be later installed. + + - name: Setup PHP 7.4 (to run PHP Scoper) + uses: shivammathur/setup-php@v2 + with: + php-version: 7.4 + + - name: Install Composer dependencies (and scope necessary dependencies) + run: | + composer install --prefer-dist --no-suggest --no-progress --no-interaction + rm -rf vendor + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php }} + extensions: curl, date, dom, gd, iconv, json, libxml, mysql, spl + coverage: ${{ matrix.coverage && 'pcov' || 'none' }} + ini-values: pcov.directory=. + - name: Install Composer dependencies - run: composer install --prefer-dist --ignore-platform-reqs --no-progress --no-interaction + run: composer install --prefer-dist --ignore-platform-reqs --no-progress --no-interaction --no-scripts - name: Get npm cache directory id: npm-cache From fbc22c3f8f38049873f9dea92148d3dbbf848e6b Mon Sep 17 00:00:00 2001 From: Pierre Gordon Date: Mon, 28 Dec 2020 17:11:30 -0500 Subject: [PATCH 10/18] Simplify "composer_install" shell command --- Gruntfile.js | 31 +++++++++---------------------- 1 file changed, 9 insertions(+), 22 deletions(-) diff --git a/Gruntfile.js b/Gruntfile.js index 20f8b7ca389..f8a395219da 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -85,28 +85,15 @@ module.exports = function( grunt ) { command: 'php bin/verify-version-consistency.php', }, composer_install: { - command: () => { - const command = [ - 'if [ ! -e build ]; then echo "Run grunt build first."; exit 1; fi', - 'mkdir -p build/vendor/bin', - 'cp vendor/bin/php-scoper build/vendor/bin/', - 'cd build', - 'composer install --no-dev -o', - ]; - - if ( 'composer' === process.env.BUILD_TYPE ) { - command.push( - 'rm -rf ' + productionComposerExcludedFilePatterns.join( ' ' ), - ); - } else { - command.push( - 'COMPOSER_DISCARD_CHANGES=true composer remove --no-interaction --no-scripts --update-no-dev -o cweagans/composer-patches sabberworm/php-css-parser', - 'rm -rf ' + productionVendorExcludedFilePatterns.join( ' ' ), - ); - } - - return command.join( ' && ' ); - }, + command: [ + 'if [ ! -e build ]; then echo "Run grunt build first."; exit 1; fi', + 'mkdir -p build/vendor/bin', + 'cp vendor/bin/php-scoper build/vendor/bin/', + 'cd build', + 'composer install --no-dev -o', + 'COMPOSER_DISCARD_CHANGES=true composer remove --no-interaction --no-scripts --update-no-dev -o cweagans/composer-patches sabberworm/php-css-parser', + 'rm -rf ' + ( 'composer' === process.env.BUILD_TYPE ? productionComposerExcludedFilePatterns : productionVendorExcludedFilePatterns ).join( ' ' ), + ].join( ' && ' ), }, create_build_zip: { command: 'if [ ! -e build ]; then echo "Run grunt build first."; exit 1; fi; if [ -e amp.zip ]; then rm amp.zip; fi; cd build; zip -r ../amp.zip .; cd ..; echo; echo "ZIP of build: $(pwd)/amp.zip"', From 2bfd1c513f2665fb6a1fbd701db440f26dc5cd89 Mon Sep 17 00:00:00 2001 From: Pierre Gordon Date: Mon, 28 Dec 2020 21:19:36 -0500 Subject: [PATCH 11/18] Set version in composer.json when processing the file --- Gruntfile.js | 36 +++++++++++++++++++++++++----------- 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/Gruntfile.js b/Gruntfile.js index f8a395219da..656876884d1 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -175,25 +175,31 @@ module.exports = function( grunt ) { paths.push( 'assets/js/**/*.js.map' ); } + // Get build version from amp.php. + const versionRegex = /(\*\s+Version:\s+)(?\d+(\.\d+)+)(?-\w+)?/; + const { groups: matches } = grunt.file.read( 'amp.php' ).match( versionRegex ); + + if ( ! matches || ! matches.version ) { + throw new Error( 'Plugin version could not be retrieved from amp.php' ); + } + + const version = matches.version; + grunt.config.set( 'copy', { build: { src: paths, dest: 'build', expand: true, options: { - noProcess: [ '**/*', '!amp.php' ], // That is, only process amp.php. + noProcess: [ '**/*', '!amp.php', '!composer.json' ], process( content, srcpath ) { - let matches, version, versionRegex; - if ( /amp\.php$/.test( srcpath ) ) { - versionRegex = /(\*\s+Version:\s+)(\d+(\.\d+)+-\w+)/; - + if ( /^amp\.php$/.test( srcpath ) ) { // If not a stable build (e.g. 0.7.0-beta), amend the version with the git commit and current timestamp. - matches = content.match( versionRegex ); - if ( matches ) { - version = matches[ 2 ] + '-' + versionAppend; - console.log( 'Updating version in amp.php to ' + version ); // eslint-disable-line no-console - content = content.replace( versionRegex, '$1' + version ); - content = content.replace( /(define\(\s*'AMP__VERSION',\s*')(.+?)(?=')/, '$1' + version ); + if ( matches.identifier ) { + const pluginVersion = version + matches.identifier + '-' + versionAppend; + console.log( 'Updating version in amp.php to ' + pluginVersion ); // eslint-disable-line no-console + content = content.replace( versionRegex, '$1' + pluginVersion ); + content = content.replace( /(define\(\s*'AMP__VERSION',\s*')(.+?)(?=')/, '$1' + pluginVersion ); } // Remove dev mode code blocks. @@ -202,7 +208,11 @@ module.exports = function( grunt ) { if ( 'composer' === process.env.BUILD_TYPE ) { content = content.replace( "require_once AMP__DIR__ . '/vendor/autoload.php';", '' ); } + } else if ( /^composer\.json$/.test( srcpath ) && 'composer' === process.env.BUILD_TYPE ) { + console.log( 'Setting version in composer.json to ' + version ); // eslint-disable-line no-console + content = content.replace( /"name": "ampproject\/amp-wp",/, '$&\n "version": "' + version + '",' ); } + return content; }, }, @@ -215,6 +225,10 @@ module.exports = function( grunt ) { done(); } + function getPluginVersion() { + // + } + function doNext() { const nextSpawnArgs = spawnQueue.shift(); if ( ! nextSpawnArgs ) { From 14e0c522736f8e299b2c3a60061384b73f034eae Mon Sep 17 00:00:00 2001 From: Pierre Gordon Date: Mon, 28 Dec 2020 22:17:24 -0500 Subject: [PATCH 12/18] Remove unused function --- Gruntfile.js | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Gruntfile.js b/Gruntfile.js index 656876884d1..ac90256232b 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -225,10 +225,6 @@ module.exports = function( grunt ) { done(); } - function getPluginVersion() { - // - } - function doNext() { const nextSpawnArgs = spawnQueue.shift(); if ( ! nextSpawnArgs ) { From e36e9b1bb90f115507418e72b6f6d6a49f9bd1b6 Mon Sep 17 00:00:00 2001 From: Pierre Gordon Date: Mon, 28 Dec 2020 22:29:37 -0500 Subject: [PATCH 13/18] Fix comment body string --- .github/workflows/build-test-measure.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-test-measure.yml b/.github/workflows/build-test-measure.yml index c66c16c9103..8e4c9867b6f 100644 --- a/.github/workflows/build-test-measure.yml +++ b/.github/workflows/build-test-measure.yml @@ -587,7 +587,7 @@ jobs: run: | body="Plugin builds for ${{ github.event.pull_request.head.sha }} are ready :bellhop_bell:! - Download [development build](https://storage.googleapis.com/ampwp_github_artifacts/${{ github.ref }}/dev/amp.zip) - - Download [production build](https://storage.googleapis.com/ampwp_github_artifacts/${{ github.ref }}/prod/amp.zip)" + - Download [production build](https://storage.googleapis.com/ampwp_github_artifacts/${{ github.ref }}/prod/amp.zip) - Download [composer build](https://storage.googleapis.com/ampwp_github_artifacts/${{ github.ref }}/composer/amp.zip)" body="${body//$'\n'/'%0A'}" echo "::set-output name=body::$body" From f77c742b967011c3007f55af5ef374676c1a5f2c Mon Sep 17 00:00:00 2001 From: Pierre Gordon Date: Mon, 28 Dec 2020 22:39:19 -0500 Subject: [PATCH 14/18] Transform `upload-to-gcs` job to into a matrix one --- .github/workflows/build-test-measure.yml | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/.github/workflows/build-test-measure.yml b/.github/workflows/build-test-measure.yml index 8e4c9867b6f..c85d1726f0f 100644 --- a/.github/workflows/build-test-measure.yml +++ b/.github/workflows/build-test-measure.yml @@ -530,18 +530,16 @@ jobs: runs-on: ubuntu-latest needs: - build-zip - steps: - - name: Download dev build - uses: actions/download-artifact@v2 - with: - name: amp-${{ needs.build-zip.outputs.branch-name }}-${{ needs.build-zip.outputs.git-sha-8 }}-dev - path: builds/dev + strategy: + matrix: + build: [ 'dev', 'prod', 'composer' ] - - name: Download prod build + steps: + - name: Download ${{ matrix.build }} build uses: actions/download-artifact@v2 with: - name: amp-${{ needs.build-zip.outputs.branch-name }}-${{ needs.build-zip.outputs.git-sha-8 }}-prod - path: builds/prod + name: amp-${{ needs.build-zip.outputs.branch-name }}-${{ needs.build-zip.outputs.git-sha-8 }}-${{ matrix.build }} + path: builds/${{ matrix.build }} - name: Setup Google Cloud SDK uses: google-github-actions/setup-gcloud@master @@ -549,11 +547,8 @@ jobs: project_id: ${{ secrets.GCS_PROJECT_ID }} service_account_key: ${{ secrets.GCS_APPLICATION_CREDENTIALS }} - - name: Upload dev build to bucket - run: gsutil cp -r builds/dev/amp.zip gs://ampwp_github_artifacts/${{ github.ref }}/dev/amp.zip - - - name: Upload prod build to bucket - run: gsutil cp -r builds/prod/amp.zip gs://ampwp_github_artifacts/${{ github.ref }}/prod/amp.zip + - name: Upload ${{ matrix.build }} build to bucket + run: gsutil cp -r builds/${{ matrix.build }}/amp.zip gs://ampwp_github_artifacts/${{ github.ref }}/${{ matrix.build }}/amp.zip #----------------------------------------------------------------------------------------------------------------------- From 4d4b3298f58be3622dcbe6d51c948409cc937634 Mon Sep 17 00:00:00 2001 From: Pierre Gordon Date: Wed, 30 Dec 2020 03:17:28 -0500 Subject: [PATCH 15/18] Update composer.lock --- composer.lock | 305 ++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 295 insertions(+), 10 deletions(-) diff --git a/composer.lock b/composer.lock index bae099b8247..09af7583f68 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": "16fa25373e8c697af22c8e79d5a90b8b", + "content-hash": "8675f0faeb58ee5566254bf5b89ed7f3", "packages": [ { "name": "ampproject/amp-toolbox", @@ -61,6 +61,10 @@ "Apache-2.0" ], "description": "A collection of AMP tools making it easier to publish and host AMP pages with PHP.", + "support": { + "issues": "https://github.com/ampproject/amp-toolbox-php/issues", + "source": "https://github.com/ampproject/amp-toolbox-php/tree/0.1.1" + }, "time": "2020-12-11T18:20:11+00:00" }, { @@ -105,6 +109,10 @@ } ], "description": "Provides a way to patch Composer packages.", + "support": { + "issues": "https://github.com/cweagans/composer-patches/issues", + "source": "https://github.com/cweagans/composer-patches/tree/1.7.0" + }, "time": "2020-09-30T17:56:20+00:00" }, { @@ -160,6 +168,10 @@ "image size", "parallel" ], + "support": { + "issues": "https://github.com/willwashburn/fasterimage/issues", + "source": "https://github.com/willwashburn/fasterimage/tree/master" + }, "time": "2019-05-25T14:33:33+00:00" }, { @@ -183,14 +195,8 @@ "codacy/coverage": "^1.4", "phpunit/phpunit": "^4.8.36" }, + "default-branch": true, "type": "library", - "extra": { - "patches_applied": { - "1. Add additional validation for size unit ": "https://github.com/sabberworm/PHP-CSS-Parser/compare/3bc5ded67d77a52b81608cfc97f23b1bb0678e2f%5E...468da3441945e9c1bf402a3340b1d8326723f7d9.patch", - "2. Validate name-start code points for identifier ": "https://github.com/sabberworm/PHP-CSS-Parser/compare/d42b64793f2edaffeb663c63e9de79069cdc0831%5E...113df5d55e94e21c6402021dfa959924941d4c29.patch", - "3. Fix parsing CSS selectors which contain commas ": "https://github.com/westonruter/PHP-CSS-Parser/compare/master...10a2501c119abafced3e4014aa3c0a3453a86f67.patch" - } - }, "autoload": { "psr-4": { "Sabberworm\\CSS\\": "lib/Sabberworm/CSS/" @@ -212,7 +218,11 @@ "parser", "stylesheet" ], - "time": "2020-07-21T18:39:46+00:00" + "support": { + "issues": "https://github.com/sabberworm/PHP-CSS-Parser/issues", + "source": "https://github.com/sabberworm/PHP-CSS-Parser/tree/master" + }, + "time": "2020-11-18T12:10:42+00:00" }, { "name": "willwashburn/stream", @@ -259,6 +269,10 @@ "stream", "streamable" ], + "support": { + "issues": "https://github.com/willwashburn/stream/issues", + "source": "https://github.com/willwashburn/stream/tree/master" + }, "time": "2016-03-15T10:54:35+00:00" } ], @@ -308,6 +322,11 @@ "standards", "wordpress" ], + "support": { + "issues": "https://github.com/Automattic/VIP-Coding-Standards/issues", + "source": "https://github.com/Automattic/VIP-Coding-Standards", + "wiki": "https://github.com/Automattic/VIP-Coding-Standards/wiki" + }, "time": "2020-09-07T10:45:45+00:00" }, { @@ -359,6 +378,9 @@ } ], "description": "Composer plugin for downloading additional files within any composer package.", + "support": { + "source": "https://github.com/civicrm/composer-downloads-plugin/tree/v3.0.1" + }, "time": "2020-11-02T05:26:23+00:00" }, { @@ -421,6 +443,11 @@ "validation", "versioning" ], + "support": { + "irc": "irc://irc.freenode.org/composer", + "issues": "https://github.com/composer/semver/issues", + "source": "https://github.com/composer/semver/tree/3.2.4" + }, "funding": [ { "url": "https://packagist.com", @@ -501,6 +528,10 @@ "stylecheck", "tests" ], + "support": { + "issues": "https://github.com/dealerdirect/phpcodesniffer-composer-installer/issues", + "source": "https://github.com/dealerdirect/phpcodesniffer-composer-installer" + }, "time": "2020-12-07T18:04:37+00:00" }, { @@ -555,6 +586,10 @@ "constructor", "instantiate" ], + "support": { + "issues": "https://github.com/doctrine/instantiator/issues", + "source": "https://github.com/doctrine/instantiator/tree/master" + }, "time": "2015-06-14T21:17:01+00:00" }, { @@ -605,6 +640,10 @@ "jwt", "php" ], + "support": { + "issues": "https://github.com/firebase/php-jwt/issues", + "source": "https://github.com/firebase/php-jwt/tree/master" + }, "time": "2020-03-25T18:49:23+00:00" }, { @@ -657,6 +696,11 @@ "google", "oauth2" ], + "support": { + "docs": "https://googleapis.github.io/google-auth-library-php/master/", + "issues": "https://github.com/googleapis/google-auth-library-php/issues", + "source": "https://github.com/googleapis/google-auth-library-php/tree/v1.14.3" + }, "time": "2020-10-16T21:33:48+00:00" }, { @@ -718,6 +762,9 @@ "Apache-2.0" ], "description": "Google Cloud PHP shared dependency, providing functionality useful to all components.", + "support": { + "source": "https://github.com/googleapis/google-cloud-php-core/tree/v1.40.0" + }, "time": "2020-10-30T21:33:33+00:00" }, { @@ -769,6 +816,9 @@ "Apache-2.0" ], "description": "Cloud Storage Client for PHP", + "support": { + "source": "https://github.com/googleapis/google-cloud-php-storage/tree/v1.23.0" + }, "time": "2020-09-08T20:52:20+00:00" }, { @@ -811,6 +861,10 @@ ], "description": "Various CRC32 implementations", "homepage": "https://github.com/google/php-crc32", + "support": { + "issues": "https://github.com/google/php-crc32/issues", + "source": "https://github.com/google/php-crc32/tree/v0.1.0" + }, "time": "2019-05-09T06:24:58+00:00" }, { @@ -878,6 +932,10 @@ "rest", "web service" ], + "support": { + "issues": "https://github.com/guzzle/guzzle/issues", + "source": "https://github.com/guzzle/guzzle/tree/6.5" + }, "time": "2020-06-16T21:01:06+00:00" }, { @@ -929,6 +987,10 @@ "keywords": [ "promise" ], + "support": { + "issues": "https://github.com/guzzle/promises/issues", + "source": "https://github.com/guzzle/promises/tree/1.4.0" + }, "time": "2020-09-30T07:37:28+00:00" }, { @@ -1000,6 +1062,10 @@ "uri", "url" ], + "support": { + "issues": "https://github.com/guzzle/psr7/issues", + "source": "https://github.com/guzzle/psr7/tree/1.7.0" + }, "time": "2020-09-30T07:37:11+00:00" }, { @@ -1046,6 +1112,11 @@ ], "description": "Virtual file system to mock the real file system in unit tests.", "homepage": "http://vfs.bovigo.org/", + "support": { + "issues": "https://github.com/bovigo/vfsStream/issues", + "source": "https://github.com/bovigo/vfsStream/tree/master", + "wiki": "https://github.com/bovigo/vfsStream/wiki" + }, "time": "2019-10-30T15:31:00+00:00" }, { @@ -1118,6 +1189,10 @@ "logging", "psr-3" ], + "support": { + "issues": "https://github.com/Seldaek/monolog/issues", + "source": "https://github.com/Seldaek/monolog/tree/1.26.0" + }, "funding": [ { "url": "https://github.com/Seldaek", @@ -1174,6 +1249,10 @@ "mustache", "templating" ], + "support": { + "issues": "https://github.com/bobthecow/mustache.php/issues", + "source": "https://github.com/bobthecow/mustache.php/tree/master" + }, "time": "2019-11-23T21:40:31+00:00" }, { @@ -1219,6 +1298,10 @@ "object", "object graph" ], + "support": { + "issues": "https://github.com/myclabs/DeepCopy/issues", + "source": "https://github.com/myclabs/DeepCopy/tree/1.x" + }, "time": "2017-10-19T19:58:43+00:00" }, { @@ -1260,6 +1343,10 @@ "keywords": [ "xml" ], + "support": { + "issues": "https://github.com/nb/oxymel/issues", + "source": "https://github.com/nb/oxymel/tree/master" + }, "time": "2013-02-24T15:01:54+00:00" }, { @@ -1305,6 +1392,10 @@ "parser", "php" ], + "support": { + "issues": "https://github.com/nikic/PHP-Parser/issues", + "source": "https://github.com/nikic/PHP-Parser/tree/1.x" + }, "time": "2015-09-19T14:15:08+00:00" }, { @@ -1354,6 +1445,11 @@ "pseudorandom", "random" ], + "support": { + "email": "info@paragonie.com", + "issues": "https://github.com/paragonie/random_compat/issues", + "source": "https://github.com/paragonie/random_compat" + }, "time": "2020-10-15T10:06:57+00:00" }, { @@ -1394,6 +1490,10 @@ "static analysis", "wordpress" ], + "support": { + "issues": "https://github.com/php-stubs/wordpress-stubs/issues", + "source": "https://github.com/php-stubs/wordpress-stubs/tree/v5.6.0" + }, "time": "2020-12-09T00:38:16+00:00" }, { @@ -1452,6 +1552,10 @@ "phpcs", "standards" ], + "support": { + "issues": "https://github.com/PHPCompatibility/PHPCompatibility/issues", + "source": "https://github.com/PHPCompatibility/PHPCompatibility" + }, "time": "2019-12-27T09:44:58+00:00" }, { @@ -1504,6 +1608,10 @@ "polyfill", "standards" ], + "support": { + "issues": "https://github.com/PHPCompatibility/PHPCompatibilityParagonie/issues", + "source": "https://github.com/PHPCompatibility/PHPCompatibilityParagonie" + }, "time": "2019-11-04T15:17:54+00:00" }, { @@ -1554,6 +1662,10 @@ "standards", "wordpress" ], + "support": { + "issues": "https://github.com/PHPCompatibility/PHPCompatibilityWP/issues", + "source": "https://github.com/PHPCompatibility/PHPCompatibilityWP" + }, "time": "2019-08-28T14:22:28+00:00" }, { @@ -1608,6 +1720,10 @@ "reflection", "static analysis" ], + "support": { + "issues": "https://github.com/phpDocumentor/Reflection/issues", + "source": "https://github.com/phpDocumentor/Reflection/tree/master" + }, "time": "2016-05-21T08:42:32+00:00" }, { @@ -1657,6 +1773,10 @@ "email": "mike.vanriel@naenius.com" } ], + "support": { + "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/release/2.x" + }, "time": "2016-01-25T08:17:30+00:00" }, { @@ -1720,6 +1840,10 @@ "spy", "stub" ], + "support": { + "issues": "https://github.com/phpspec/prophecy/issues", + "source": "https://github.com/phpspec/prophecy/tree/v1.10.3" + }, "time": "2020-03-05T15:02:03+00:00" }, { @@ -1783,6 +1907,11 @@ "testing", "xunit" ], + "support": { + "irc": "irc://irc.freenode.net/phpunit", + "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/4.0" + }, "time": "2017-04-02T07:44:40+00:00" }, { @@ -1830,6 +1959,11 @@ "filesystem", "iterator" ], + "support": { + "irc": "irc://irc.freenode.net/phpunit", + "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/1.4.5" + }, "time": "2017-11-27T13:52:08+00:00" }, { @@ -1871,6 +2005,10 @@ "keywords": [ "template" ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-text-template/issues", + "source": "https://github.com/sebastianbergmann/php-text-template/tree/1.2.1" + }, "time": "2015-06-21T13:50:34+00:00" }, { @@ -1920,6 +2058,10 @@ "keywords": [ "timer" ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-timer/issues", + "source": "https://github.com/sebastianbergmann/php-timer/tree/master" + }, "time": "2017-02-26T11:10:40+00:00" }, { @@ -1969,6 +2111,10 @@ "keywords": [ "tokenizer" ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-token-stream/issues", + "source": "https://github.com/sebastianbergmann/php-token-stream/tree/1.4" + }, "abandoned": true, "time": "2017-12-04T08:55:13+00:00" }, @@ -2052,6 +2198,10 @@ "testing", "xunit" ], + "support": { + "issues": "https://github.com/sebastianbergmann/phpunit/issues", + "source": "https://github.com/sebastianbergmann/phpunit/tree/5.7.27" + }, "time": "2018-02-01T05:50:59+00:00" }, { @@ -2111,6 +2261,11 @@ "mock", "xunit" ], + "support": { + "irc": "irc://irc.freenode.net/phpunit", + "issues": "https://github.com/sebastianbergmann/phpunit-mock-objects/issues", + "source": "https://github.com/sebastianbergmann/phpunit-mock-objects/tree/3.4" + }, "abandoned": true, "time": "2017-06-30T09:13:00+00:00" }, @@ -2158,6 +2313,9 @@ "psr", "psr-6" ], + "support": { + "source": "https://github.com/php-fig/cache/tree/master" + }, "time": "2016-08-06T20:24:11+00:00" }, { @@ -2208,6 +2366,9 @@ "request", "response" ], + "support": { + "source": "https://github.com/php-fig/http-message/tree/master" + }, "time": "2016-08-06T14:39:51+00:00" }, { @@ -2255,6 +2416,9 @@ "psr", "psr-3" ], + "support": { + "source": "https://github.com/php-fig/log/tree/1.1.3" + }, "time": "2020-03-23T09:12:05+00:00" }, { @@ -2295,6 +2459,10 @@ } ], "description": "A polyfill for getallheaders.", + "support": { + "issues": "https://github.com/ralouphie/getallheaders/issues", + "source": "https://github.com/ralouphie/getallheaders/tree/develop" + }, "time": "2019-03-08T08:55:37+00:00" }, { @@ -2339,6 +2507,10 @@ "template", "uri" ], + "support": { + "issues": "https://github.com/rize/UriTemplate/issues", + "source": "https://github.com/rize/UriTemplate/tree/master" + }, "time": "2017-06-14T03:57:53+00:00" }, { @@ -2388,6 +2560,10 @@ "iri", "sockets" ], + "support": { + "issues": "https://github.com/rmccue/Requests/issues", + "source": "https://github.com/rmccue/Requests/tree/master" + }, "time": "2016-10-13T00:11:37+00:00" }, { @@ -2695,6 +2871,10 @@ } ], "description": "Prevents installation of composer packages with known security vulnerabilities: no API, simply require it", + "support": { + "issues": "https://github.com/Roave/SecurityAdvisories/issues", + "source": "https://github.com/Roave/SecurityAdvisories/tree/latest" + }, "funding": [ { "url": "https://github.com/Ocramius", @@ -2750,6 +2930,10 @@ ], "description": "Looks up which function or method a line of code belongs to", "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", + "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/1.0.2" + }, "funding": [ { "url": "https://github.com/sebastianbergmann", @@ -2820,6 +3004,10 @@ "compare", "equality" ], + "support": { + "issues": "https://github.com/sebastianbergmann/comparator/issues", + "source": "https://github.com/sebastianbergmann/comparator/tree/1.2" + }, "time": "2017-01-29T09:50:25+00:00" }, { @@ -2872,6 +3060,10 @@ "keywords": [ "diff" ], + "support": { + "issues": "https://github.com/sebastianbergmann/diff/issues", + "source": "https://github.com/sebastianbergmann/diff/tree/1.4" + }, "time": "2017-05-22T07:24:03+00:00" }, { @@ -2922,6 +3114,10 @@ "environment", "hhvm" ], + "support": { + "issues": "https://github.com/sebastianbergmann/environment/issues", + "source": "https://github.com/sebastianbergmann/environment/tree/master" + }, "time": "2016-11-26T07:53:53+00:00" }, { @@ -2989,6 +3185,10 @@ "export", "exporter" ], + "support": { + "issues": "https://github.com/sebastianbergmann/exporter/issues", + "source": "https://github.com/sebastianbergmann/exporter/tree/master" + }, "time": "2016-11-19T08:54:04+00:00" }, { @@ -3040,6 +3240,10 @@ "keywords": [ "global state" ], + "support": { + "issues": "https://github.com/sebastianbergmann/global-state/issues", + "source": "https://github.com/sebastianbergmann/global-state/tree/1.1.1" + }, "time": "2015-10-12T03:26:01+00:00" }, { @@ -3086,6 +3290,10 @@ ], "description": "Traverses array structures and object graphs to enumerate all referenced objects", "homepage": "https://github.com/sebastianbergmann/object-enumerator/", + "support": { + "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/master" + }, "time": "2017-02-18T15:18:39+00:00" }, { @@ -3139,6 +3347,10 @@ ], "description": "Provides functionality to recursively process PHP variables", "homepage": "http://www.github.com/sebastianbergmann/recursion-context", + "support": { + "issues": "https://github.com/sebastianbergmann/recursion-context/issues", + "source": "https://github.com/sebastianbergmann/recursion-context/tree/master" + }, "time": "2016-11-19T07:33:16+00:00" }, { @@ -3181,6 +3393,10 @@ ], "description": "Provides a list of PHP built-in functions that operate on resources", "homepage": "https://www.github.com/sebastianbergmann/resource-operations", + "support": { + "issues": "https://github.com/sebastianbergmann/resource-operations/issues", + "source": "https://github.com/sebastianbergmann/resource-operations/tree/master" + }, "time": "2015-07-28T20:34:47+00:00" }, { @@ -3224,6 +3440,10 @@ ], "description": "Library that helps with managing the version number of Git-hosted PHP projects", "homepage": "https://github.com/sebastianbergmann/version", + "support": { + "issues": "https://github.com/sebastianbergmann/version/issues", + "source": "https://github.com/sebastianbergmann/version/tree/master" + }, "time": "2016-10-03T07:35:21+00:00" }, { @@ -3272,6 +3492,11 @@ } ], "description": "A PHPCS sniff to detect problems with variables.", + "support": { + "issues": "https://github.com/sirbrillig/phpcs-variable-analysis/issues", + "source": "https://github.com/sirbrillig/phpcs-variable-analysis", + "wiki": "https://github.com/sirbrillig/phpcs-variable-analysis/wiki" + }, "time": "2020-12-12T18:28:57+00:00" }, { @@ -3323,6 +3548,11 @@ "phpcs", "standards" ], + "support": { + "issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues", + "source": "https://github.com/squizlabs/PHP_CodeSniffer", + "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki" + }, "time": "2020-10-23T02:01:07+00:00" }, { @@ -3367,6 +3597,9 @@ ], "description": "Symfony Finder Component", "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/finder/tree/v3.4.47" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -3443,6 +3676,9 @@ "polyfill", "portable" ], + "support": { + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.19.0" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -3528,6 +3764,9 @@ "portable", "shim" ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.19.0" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -3609,6 +3848,9 @@ "portable", "shim" ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.19.0" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -3686,6 +3928,9 @@ "portable", "shim" ], + "support": { + "source": "https://github.com/symfony/polyfill-php70/tree/v1.19.0" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -3759,6 +4004,9 @@ "portable", "shim" ], + "support": { + "source": "https://github.com/symfony/polyfill-php72/tree/v1.19.0" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -3827,6 +4075,9 @@ ], "description": "Symfony Yaml Component", "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/yaml/tree/v3.4.47" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -3874,6 +4125,10 @@ "MIT" ], "description": "Parser for .gitignore (and sparse-checkout, and anything else using the same format) files", + "support": { + "issues": "https://github.com/TOGoS/PHPGitIgnore/issues", + "source": "https://github.com/TOGoS/PHPGitIgnore/tree/master" + }, "time": "2019-04-19T19:16:58+00:00" }, { @@ -3932,6 +4187,10 @@ ], "description": "Exports WordPress content to a WXR file.", "homepage": "https://github.com/wp-cli/export-command", + "support": { + "issues": "https://github.com/wp-cli/export-command/issues", + "source": "https://github.com/wp-cli/export-command/tree/v2.0.5" + }, "time": "2020-12-07T19:30:08+00:00" }, { @@ -4024,6 +4283,10 @@ ], "description": "Manages plugins and themes, including installs, activations, and updates.", "homepage": "https://github.com/wp-cli/extension-command", + "support": { + "issues": "https://github.com/wp-cli/extension-command/issues", + "source": "https://github.com/wp-cli/extension-command/tree/v2.0.14" + }, "time": "2020-12-07T19:28:04+00:00" }, { @@ -4072,6 +4335,9 @@ ], "description": "A simple YAML loader/dumper class for PHP (WP-CLI fork)", "homepage": "https://github.com/mustangostang/spyc/", + "support": { + "source": "https://github.com/wp-cli/spyc/tree/autoload" + }, "time": "2017-04-25T11:26:20+00:00" }, { @@ -4122,6 +4388,10 @@ "cli", "console" ], + "support": { + "issues": "https://github.com/wp-cli/php-cli-tools/issues", + "source": "https://github.com/wp-cli/php-cli-tools/tree/master" + }, "time": "2018-09-04T13:28:00+00:00" }, { @@ -4159,6 +4429,7 @@ "ext-readline": "Include for a better --prompt implementation", "ext-zip": "Needed to support extraction of ZIP archives when doing downloads or updates" }, + "default-branch": true, "bin": [ "bin/wp", "bin/wp.bat" @@ -4188,6 +4459,11 @@ "cli", "wordpress" ], + "support": { + "docs": "https://make.wordpress.org/cli/handbook/", + "issues": "https://github.com/wp-cli/wp-cli/issues", + "source": "https://github.com/wp-cli/wp-cli" + }, "time": "2020-12-08T18:52:39+00:00" }, { @@ -4234,6 +4510,11 @@ "standards", "wordpress" ], + "support": { + "issues": "https://github.com/WordPress/WordPress-Coding-Standards/issues", + "source": "https://github.com/WordPress/WordPress-Coding-Standards", + "wiki": "https://github.com/WordPress/WordPress-Coding-Standards/wiki" + }, "time": "2020-05-13T23:57:56+00:00" }, { @@ -4271,6 +4552,10 @@ "tools", "wordpress" ], + "support": { + "issues": "https://github.com/xwp/wp-dev-lib/issues", + "source": "https://github.com/xwp/wp-dev-lib" + }, "time": "2020-10-16T04:03:40+00:00" } ], @@ -4296,5 +4581,5 @@ "platform-overrides": { "php": "5.6" }, - "plugin-api-version": "1.1.0" + "plugin-api-version": "2.0.0" } From bf3a6413e0b069c89ecc7094c763a3a40e00d3b1 Mon Sep 17 00:00:00 2001 From: Pierre Gordon Date: Wed, 30 Dec 2020 15:21:45 -0500 Subject: [PATCH 16/18] Normailze composer.json --- composer.json | 10 +++++----- composer.lock | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/composer.json b/composer.json index 195565a0024..8d047224e2d 100644 --- a/composer.json +++ b/composer.json @@ -49,15 +49,15 @@ }, "extra": { "downloads": { - "phpstan": { - "path": "vendor/bin/phpstan", - "type": "phar", - "url": "https://github.com/phpstan/phpstan/releases/latest/download/phpstan.phar" - }, "php-scoper": { "path": "vendor/bin/php-scoper", "type": "phar", "url": "https://github.com/humbug/php-scoper/releases/download/0.14.0/php-scoper.phar" + }, + "phpstan": { + "path": "vendor/bin/phpstan", + "type": "phar", + "url": "https://github.com/phpstan/phpstan/releases/latest/download/phpstan.phar" } }, "patches": { diff --git a/composer.lock b/composer.lock index 09af7583f68..c64b7c45136 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": "8675f0faeb58ee5566254bf5b89ed7f3", + "content-hash": "8aca61fac7910d1faab9ab5f553fe6b6", "packages": [ { "name": "ampproject/amp-toolbox", From eb1c9b53b7ce72d2b3cadd9906c7bdbc8614b892 Mon Sep 17 00:00:00 2001 From: Pierre Gordon Date: Wed, 10 Feb 2021 14:12:40 -0500 Subject: [PATCH 17/18] Update composer.lock --- composer.lock | 340 +++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 312 insertions(+), 28 deletions(-) diff --git a/composer.lock b/composer.lock index f8656d9ac6c..77c98c5b061 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": "bfcdcf8dcd4a64609fd40e24887565cb", + "content-hash": "5f4d11b8969e420ab6bdbc9c4bb734e1", "packages": [ { "name": "ampproject/amp-toolbox", @@ -61,6 +61,10 @@ "Apache-2.0" ], "description": "A collection of AMP tools making it easier to publish and host AMP pages with PHP.", + "support": { + "issues": "https://github.com/ampproject/amp-toolbox-php/issues", + "source": "https://github.com/ampproject/amp-toolbox-php/tree/0.1.1" + }, "time": "2020-12-11T18:20:11+00:00" }, { @@ -105,6 +109,10 @@ } ], "description": "Provides a way to patch Composer packages.", + "support": { + "issues": "https://github.com/cweagans/composer-patches/issues", + "source": "https://github.com/cweagans/composer-patches/tree/1.7.0" + }, "time": "2020-09-30T17:56:20+00:00" }, { @@ -160,6 +168,10 @@ "image size", "parallel" ], + "support": { + "issues": "https://github.com/willwashburn/fasterimage/issues", + "source": "https://github.com/willwashburn/fasterimage/tree/master" + }, "time": "2019-05-25T14:33:33+00:00" }, { @@ -183,14 +195,8 @@ "codacy/coverage": "^1.4", "phpunit/phpunit": "^4.8.36" }, + "default-branch": true, "type": "library", - "extra": { - "patches_applied": { - "1. Add additional validation for size unit ": "https://github.com/sabberworm/PHP-CSS-Parser/compare/3bc5ded67d77a52b81608cfc97f23b1bb0678e2f%5E...468da3441945e9c1bf402a3340b1d8326723f7d9.patch", - "2. Validate name-start code points for identifier ": "https://github.com/sabberworm/PHP-CSS-Parser/compare/d42b64793f2edaffeb663c63e9de79069cdc0831%5E...113df5d55e94e21c6402021dfa959924941d4c29.patch", - "3. Fix parsing CSS selectors which contain commas ": "https://github.com/westonruter/PHP-CSS-Parser/compare/master...10a2501c119abafced3e4014aa3c0a3453a86f67.patch" - } - }, "autoload": { "psr-4": { "Sabberworm\\CSS\\": "lib/Sabberworm/CSS/" @@ -212,7 +218,11 @@ "parser", "stylesheet" ], - "time": "2020-07-21T18:39:46+00:00" + "support": { + "issues": "https://github.com/sabberworm/PHP-CSS-Parser/issues", + "source": "https://github.com/sabberworm/PHP-CSS-Parser/tree/master" + }, + "time": "2020-11-18T12:10:42+00:00" }, { "name": "willwashburn/stream", @@ -259,6 +269,10 @@ "stream", "streamable" ], + "support": { + "issues": "https://github.com/willwashburn/stream/issues", + "source": "https://github.com/willwashburn/stream/tree/master" + }, "time": "2016-03-15T10:54:35+00:00" } ], @@ -308,6 +322,11 @@ "standards", "wordpress" ], + "support": { + "issues": "https://github.com/Automattic/VIP-Coding-Standards/issues", + "source": "https://github.com/Automattic/VIP-Coding-Standards", + "wiki": "https://github.com/Automattic/VIP-Coding-Standards/wiki" + }, "time": "2020-09-07T10:45:45+00:00" }, { @@ -359,6 +378,9 @@ } ], "description": "Composer plugin for downloading additional files within any composer package.", + "support": { + "source": "https://github.com/civicrm/composer-downloads-plugin/tree/v3.0.1" + }, "time": "2020-11-02T05:26:23+00:00" }, { @@ -421,6 +443,11 @@ "validation", "versioning" ], + "support": { + "irc": "irc://irc.freenode.org/composer", + "issues": "https://github.com/composer/semver/issues", + "source": "https://github.com/composer/semver/tree/3.2.4" + }, "funding": [ { "url": "https://packagist.com", @@ -501,6 +528,10 @@ "stylecheck", "tests" ], + "support": { + "issues": "https://github.com/dealerdirect/phpcodesniffer-composer-installer/issues", + "source": "https://github.com/dealerdirect/phpcodesniffer-composer-installer" + }, "time": "2020-12-07T18:04:37+00:00" }, { @@ -555,6 +586,10 @@ "constructor", "instantiate" ], + "support": { + "issues": "https://github.com/doctrine/instantiator/issues", + "source": "https://github.com/doctrine/instantiator/tree/master" + }, "time": "2015-06-14T21:17:01+00:00" }, { @@ -605,20 +640,24 @@ "jwt", "php" ], + "support": { + "issues": "https://github.com/firebase/php-jwt/issues", + "source": "https://github.com/firebase/php-jwt/tree/master" + }, "time": "2020-03-25T18:49:23+00:00" }, { "name": "google/auth", - "version": "v1.14.3", + "version": "v1.15.0", "source": { "type": "git", "url": "https://github.com/googleapis/google-auth-library-php.git", - "reference": "c1503299c779af0cbc99b43788f75930988852cf" + "reference": "b346c07de6613e26443d7b4830e5e1933b830dc4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/googleapis/google-auth-library-php/zipball/c1503299c779af0cbc99b43788f75930988852cf", - "reference": "c1503299c779af0cbc99b43788f75930988852cf", + "url": "https://api.github.com/repos/googleapis/google-auth-library-php/zipball/b346c07de6613e26443d7b4830e5e1933b830dc4", + "reference": "b346c07de6613e26443d7b4830e5e1933b830dc4", "shasum": "" }, "require": { @@ -631,7 +670,7 @@ }, "require-dev": { "guzzlehttp/promises": "0.1.1|^1.3", - "kelvinmo/simplejwt": "^0.2.5", + "kelvinmo/simplejwt": "^0.2.5|^0.5.1", "phpseclib/phpseclib": "^2", "phpunit/phpunit": "^4.8.36|^5.7", "sebastian/comparator": ">=1.2.3", @@ -657,7 +696,12 @@ "google", "oauth2" ], - "time": "2020-10-16T21:33:48+00:00" + "support": { + "docs": "https://googleapis.github.io/google-auth-library-php/master/", + "issues": "https://github.com/googleapis/google-auth-library-php/issues", + "source": "https://github.com/googleapis/google-auth-library-php/tree/v1.15.0" + }, + "time": "2021-02-05T20:50:04+00:00" }, { "name": "google/cloud-core", @@ -718,6 +762,9 @@ "Apache-2.0" ], "description": "Google Cloud PHP shared dependency, providing functionality useful to all components.", + "support": { + "source": "https://github.com/googleapis/google-cloud-php-core/tree/v1.41.0" + }, "time": "2021-01-13T22:28:48+00:00" }, { @@ -769,6 +816,9 @@ "Apache-2.0" ], "description": "Cloud Storage Client for PHP", + "support": { + "source": "https://github.com/googleapis/google-cloud-php-storage/tree/v1.23.1" + }, "time": "2021-01-13T22:28:48+00:00" }, { @@ -811,6 +861,10 @@ ], "description": "Various CRC32 implementations", "homepage": "https://github.com/google/php-crc32", + "support": { + "issues": "https://github.com/google/php-crc32/issues", + "source": "https://github.com/google/php-crc32/tree/v0.1.0" + }, "time": "2019-05-09T06:24:58+00:00" }, { @@ -878,6 +932,10 @@ "rest", "web service" ], + "support": { + "issues": "https://github.com/guzzle/guzzle/issues", + "source": "https://github.com/guzzle/guzzle/tree/6.5" + }, "time": "2020-06-16T21:01:06+00:00" }, { @@ -929,6 +987,10 @@ "keywords": [ "promise" ], + "support": { + "issues": "https://github.com/guzzle/promises/issues", + "source": "https://github.com/guzzle/promises/tree/1.4.0" + }, "time": "2020-09-30T07:37:28+00:00" }, { @@ -1000,6 +1062,10 @@ "uri", "url" ], + "support": { + "issues": "https://github.com/guzzle/psr7/issues", + "source": "https://github.com/guzzle/psr7/tree/1.7.0" + }, "time": "2020-09-30T07:37:11+00:00" }, { @@ -1046,6 +1112,11 @@ ], "description": "Virtual file system to mock the real file system in unit tests.", "homepage": "http://vfs.bovigo.org/", + "support": { + "issues": "https://github.com/bovigo/vfsStream/issues", + "source": "https://github.com/bovigo/vfsStream/tree/master", + "wiki": "https://github.com/bovigo/vfsStream/wiki" + }, "time": "2019-10-30T15:31:00+00:00" }, { @@ -1118,6 +1189,10 @@ "logging", "psr-3" ], + "support": { + "issues": "https://github.com/Seldaek/monolog/issues", + "source": "https://github.com/Seldaek/monolog/tree/1.26.0" + }, "funding": [ { "url": "https://github.com/Seldaek", @@ -1174,6 +1249,10 @@ "mustache", "templating" ], + "support": { + "issues": "https://github.com/bobthecow/mustache.php/issues", + "source": "https://github.com/bobthecow/mustache.php/tree/master" + }, "time": "2019-11-23T21:40:31+00:00" }, { @@ -1219,6 +1298,10 @@ "object", "object graph" ], + "support": { + "issues": "https://github.com/myclabs/DeepCopy/issues", + "source": "https://github.com/myclabs/DeepCopy/tree/1.x" + }, "time": "2017-10-19T19:58:43+00:00" }, { @@ -1260,6 +1343,10 @@ "keywords": [ "xml" ], + "support": { + "issues": "https://github.com/nb/oxymel/issues", + "source": "https://github.com/nb/oxymel/tree/master" + }, "time": "2013-02-24T15:01:54+00:00" }, { @@ -1305,6 +1392,10 @@ "parser", "php" ], + "support": { + "issues": "https://github.com/nikic/PHP-Parser/issues", + "source": "https://github.com/nikic/PHP-Parser/tree/1.x" + }, "time": "2015-09-19T14:15:08+00:00" }, { @@ -1354,6 +1445,11 @@ "pseudorandom", "random" ], + "support": { + "email": "info@paragonie.com", + "issues": "https://github.com/paragonie/random_compat/issues", + "source": "https://github.com/paragonie/random_compat" + }, "time": "2020-10-15T10:06:57+00:00" }, { @@ -1394,6 +1490,10 @@ "static analysis", "wordpress" ], + "support": { + "issues": "https://github.com/php-stubs/wordpress-stubs/issues", + "source": "https://github.com/php-stubs/wordpress-stubs/tree/v5.6.0" + }, "time": "2020-12-09T00:38:16+00:00" }, { @@ -1452,6 +1552,10 @@ "phpcs", "standards" ], + "support": { + "issues": "https://github.com/PHPCompatibility/PHPCompatibility/issues", + "source": "https://github.com/PHPCompatibility/PHPCompatibility" + }, "time": "2019-12-27T09:44:58+00:00" }, { @@ -1504,6 +1608,10 @@ "polyfill", "standards" ], + "support": { + "issues": "https://github.com/PHPCompatibility/PHPCompatibilityParagonie/issues", + "source": "https://github.com/PHPCompatibility/PHPCompatibilityParagonie" + }, "time": "2019-11-04T15:17:54+00:00" }, { @@ -1554,6 +1662,10 @@ "standards", "wordpress" ], + "support": { + "issues": "https://github.com/PHPCompatibility/PHPCompatibilityWP/issues", + "source": "https://github.com/PHPCompatibility/PHPCompatibilityWP" + }, "time": "2019-08-28T14:22:28+00:00" }, { @@ -1608,6 +1720,10 @@ "reflection", "static analysis" ], + "support": { + "issues": "https://github.com/phpDocumentor/Reflection/issues", + "source": "https://github.com/phpDocumentor/Reflection/tree/master" + }, "time": "2016-05-21T08:42:32+00:00" }, { @@ -1657,6 +1773,10 @@ "email": "mike.vanriel@naenius.com" } ], + "support": { + "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/release/2.x" + }, "time": "2016-01-25T08:17:30+00:00" }, { @@ -1720,6 +1840,10 @@ "spy", "stub" ], + "support": { + "issues": "https://github.com/phpspec/prophecy/issues", + "source": "https://github.com/phpspec/prophecy/tree/v1.10.3" + }, "time": "2020-03-05T15:02:03+00:00" }, { @@ -1783,6 +1907,11 @@ "testing", "xunit" ], + "support": { + "irc": "irc://irc.freenode.net/phpunit", + "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/4.0" + }, "time": "2017-04-02T07:44:40+00:00" }, { @@ -1830,6 +1959,11 @@ "filesystem", "iterator" ], + "support": { + "irc": "irc://irc.freenode.net/phpunit", + "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/1.4.5" + }, "time": "2017-11-27T13:52:08+00:00" }, { @@ -1871,6 +2005,10 @@ "keywords": [ "template" ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-text-template/issues", + "source": "https://github.com/sebastianbergmann/php-text-template/tree/1.2.1" + }, "time": "2015-06-21T13:50:34+00:00" }, { @@ -1920,6 +2058,10 @@ "keywords": [ "timer" ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-timer/issues", + "source": "https://github.com/sebastianbergmann/php-timer/tree/master" + }, "time": "2017-02-26T11:10:40+00:00" }, { @@ -1969,6 +2111,10 @@ "keywords": [ "tokenizer" ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-token-stream/issues", + "source": "https://github.com/sebastianbergmann/php-token-stream/tree/1.4" + }, "abandoned": true, "time": "2017-12-04T08:55:13+00:00" }, @@ -2052,6 +2198,10 @@ "testing", "xunit" ], + "support": { + "issues": "https://github.com/sebastianbergmann/phpunit/issues", + "source": "https://github.com/sebastianbergmann/phpunit/tree/5.7.27" + }, "time": "2018-02-01T05:50:59+00:00" }, { @@ -2111,6 +2261,11 @@ "mock", "xunit" ], + "support": { + "irc": "irc://irc.freenode.net/phpunit", + "issues": "https://github.com/sebastianbergmann/phpunit-mock-objects/issues", + "source": "https://github.com/sebastianbergmann/phpunit-mock-objects/tree/3.4" + }, "abandoned": true, "time": "2017-06-30T09:13:00+00:00" }, @@ -2158,6 +2313,9 @@ "psr", "psr-6" ], + "support": { + "source": "https://github.com/php-fig/cache/tree/master" + }, "time": "2016-08-06T20:24:11+00:00" }, { @@ -2208,6 +2366,9 @@ "request", "response" ], + "support": { + "source": "https://github.com/php-fig/http-message/tree/master" + }, "time": "2016-08-06T14:39:51+00:00" }, { @@ -2255,6 +2416,9 @@ "psr", "psr-3" ], + "support": { + "source": "https://github.com/php-fig/log/tree/1.1.3" + }, "time": "2020-03-23T09:12:05+00:00" }, { @@ -2295,6 +2459,10 @@ } ], "description": "A polyfill for getallheaders.", + "support": { + "issues": "https://github.com/ralouphie/getallheaders/issues", + "source": "https://github.com/ralouphie/getallheaders/tree/develop" + }, "time": "2019-03-08T08:55:37+00:00" }, { @@ -2339,6 +2507,10 @@ "template", "uri" ], + "support": { + "issues": "https://github.com/rize/UriTemplate/issues", + "source": "https://github.com/rize/UriTemplate/tree/master" + }, "time": "2017-06-14T03:57:53+00:00" }, { @@ -2388,6 +2560,10 @@ "iri", "sockets" ], + "support": { + "issues": "https://github.com/rmccue/Requests/issues", + "source": "https://github.com/rmccue/Requests/tree/master" + }, "time": "2016-10-13T00:11:37+00:00" }, { @@ -2396,12 +2572,12 @@ "source": { "type": "git", "url": "https://github.com/Roave/SecurityAdvisories.git", - "reference": "db043e108edc5065662fec040aedea5bf30f8a12" + "reference": "5f40d4d577a71466f9723122251b46bdaf634709" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/db043e108edc5065662fec040aedea5bf30f8a12", - "reference": "db043e108edc5065662fec040aedea5bf30f8a12", + "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/5f40d4d577a71466f9723122251b46bdaf634709", + "reference": "5f40d4d577a71466f9723122251b46bdaf634709", "shasum": "" }, "conflict": { @@ -2467,6 +2643,8 @@ "ezsystems/repository-forms": ">=2.3,<2.3.2.1", "ezyang/htmlpurifier": "<4.1.1", "firebase/php-jwt": "<2", + "flarum/sticky": ">=0.1-beta.14,<=0.1-beta.15", + "flarum/tags": "<=0.1-beta.13", "fooman/tcpdf": "<6.2.22", "fossar/tcpdf-parser": "<6.2.22", "friendsofsymfony/oauth2-php": "<1.3", @@ -2483,7 +2661,7 @@ "guzzlehttp/guzzle": ">=4-rc.2,<4.2.4|>=5,<5.3.1|>=6,<6.2.1", "illuminate/auth": ">=4,<4.0.99|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.10", "illuminate/cookie": ">=4,<=4.0.11|>=4.1,<=4.1.99999|>=4.2,<=4.2.99999|>=5,<=5.0.99999|>=5.1,<=5.1.99999|>=5.2,<=5.2.99999|>=5.3,<=5.3.99999|>=5.4,<=5.4.99999|>=5.5,<=5.5.49|>=5.6,<=5.6.99999|>=5.7,<=5.7.99999|>=5.8,<=5.8.99999|>=6,<6.18.31|>=7,<7.22.4", - "illuminate/database": "<6.20.12|>=7,<7.30.3|>=8,<8.22.1", + "illuminate/database": "<6.20.14|>=7,<7.30.4|>=8,<8.24", "illuminate/encryption": ">=4,<=4.0.11|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.40|>=5.6,<5.6.15", "illuminate/view": ">=7,<7.1.2", "ivankristianto/phpwhois": "<=4.3", @@ -2494,7 +2672,7 @@ "kitodo/presentation": "<3.1.2", "kreait/firebase-php": ">=3.2,<3.8.1", "la-haute-societe/tcpdf": "<6.2.22", - "laravel/framework": "<6.20.12|>=7,<7.30.3|>=8,<8.22.1", + "laravel/framework": "<6.20.14|>=7,<7.30.4|>=8,<8.24", "laravel/socialite": ">=1,<1.0.99|>=2,<2.0.10", "league/commonmark": "<0.18.3", "librenms/librenms": "<1.53", @@ -2516,7 +2694,7 @@ "october/backend": ">=1.0.319,<1.0.470", "october/cms": "= 1.0.469|>=1.0.319,<1.0.469", "october/october": ">=1.0.319,<1.0.466", - "october/rain": ">=1.0.319,<1.0.468", + "october/rain": "<1.0.472|>=1.1,<1.1.2", "onelogin/php-saml": "<2.10.4", "oneup/uploader-bundle": "<1.9.3|>=2,<2.1.5", "openid/php-openid": "<2.3", @@ -2560,7 +2738,7 @@ "sensiolabs/connect": "<4.2.3", "serluck/phpwhois": "<=4.2.6", "shopware/core": "<=6.3.4", - "shopware/platform": "<=6.3.4", + "shopware/platform": "<=6.3.5", "shopware/shopware": "<5.6.9", "silverstripe/admin": ">=1.0.3,<1.0.4|>=1.1,<1.1.1", "silverstripe/assets": ">=1,<1.4.7|>=1.5,<1.5.2", @@ -2582,6 +2760,7 @@ "slim/slim": "<2.6", "smarty/smarty": "<3.1.33", "socalnick/scn-social-auth": "<1.15.2", + "socialiteproviders/steam": "<1.1", "spoonity/tcpdf": "<6.2.22", "squizlabs/php_codesniffer": ">=1,<2.8.1|>=3,<3.0.1", "ssddanbrown/bookstack": "<0.29.2", @@ -2696,6 +2875,10 @@ } ], "description": "Prevents installation of composer packages with known security vulnerabilities: no API, simply require it", + "support": { + "issues": "https://github.com/Roave/SecurityAdvisories/issues", + "source": "https://github.com/Roave/SecurityAdvisories/tree/latest" + }, "funding": [ { "url": "https://github.com/Ocramius", @@ -2706,7 +2889,7 @@ "type": "tidelift" } ], - "time": "2021-01-20T22:18:29+00:00" + "time": "2021-02-10T03:02:31+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", @@ -2751,6 +2934,10 @@ ], "description": "Looks up which function or method a line of code belongs to", "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", + "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/1.0.2" + }, "funding": [ { "url": "https://github.com/sebastianbergmann", @@ -2821,6 +3008,10 @@ "compare", "equality" ], + "support": { + "issues": "https://github.com/sebastianbergmann/comparator/issues", + "source": "https://github.com/sebastianbergmann/comparator/tree/1.2" + }, "time": "2017-01-29T09:50:25+00:00" }, { @@ -2873,6 +3064,10 @@ "keywords": [ "diff" ], + "support": { + "issues": "https://github.com/sebastianbergmann/diff/issues", + "source": "https://github.com/sebastianbergmann/diff/tree/1.4" + }, "time": "2017-05-22T07:24:03+00:00" }, { @@ -2923,6 +3118,10 @@ "environment", "hhvm" ], + "support": { + "issues": "https://github.com/sebastianbergmann/environment/issues", + "source": "https://github.com/sebastianbergmann/environment/tree/master" + }, "time": "2016-11-26T07:53:53+00:00" }, { @@ -2990,6 +3189,10 @@ "export", "exporter" ], + "support": { + "issues": "https://github.com/sebastianbergmann/exporter/issues", + "source": "https://github.com/sebastianbergmann/exporter/tree/master" + }, "time": "2016-11-19T08:54:04+00:00" }, { @@ -3041,6 +3244,10 @@ "keywords": [ "global state" ], + "support": { + "issues": "https://github.com/sebastianbergmann/global-state/issues", + "source": "https://github.com/sebastianbergmann/global-state/tree/1.1.1" + }, "time": "2015-10-12T03:26:01+00:00" }, { @@ -3087,6 +3294,10 @@ ], "description": "Traverses array structures and object graphs to enumerate all referenced objects", "homepage": "https://github.com/sebastianbergmann/object-enumerator/", + "support": { + "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/master" + }, "time": "2017-02-18T15:18:39+00:00" }, { @@ -3140,6 +3351,10 @@ ], "description": "Provides functionality to recursively process PHP variables", "homepage": "http://www.github.com/sebastianbergmann/recursion-context", + "support": { + "issues": "https://github.com/sebastianbergmann/recursion-context/issues", + "source": "https://github.com/sebastianbergmann/recursion-context/tree/master" + }, "time": "2016-11-19T07:33:16+00:00" }, { @@ -3182,6 +3397,10 @@ ], "description": "Provides a list of PHP built-in functions that operate on resources", "homepage": "https://www.github.com/sebastianbergmann/resource-operations", + "support": { + "issues": "https://github.com/sebastianbergmann/resource-operations/issues", + "source": "https://github.com/sebastianbergmann/resource-operations/tree/master" + }, "time": "2015-07-28T20:34:47+00:00" }, { @@ -3225,6 +3444,10 @@ ], "description": "Library that helps with managing the version number of Git-hosted PHP projects", "homepage": "https://github.com/sebastianbergmann/version", + "support": { + "issues": "https://github.com/sebastianbergmann/version/issues", + "source": "https://github.com/sebastianbergmann/version/tree/master" + }, "time": "2016-10-03T07:35:21+00:00" }, { @@ -3273,6 +3496,11 @@ } ], "description": "A PHPCS sniff to detect problems with variables.", + "support": { + "issues": "https://github.com/sirbrillig/phpcs-variable-analysis/issues", + "source": "https://github.com/sirbrillig/phpcs-variable-analysis", + "wiki": "https://github.com/sirbrillig/phpcs-variable-analysis/wiki" + }, "time": "2021-01-08T16:31:05+00:00" }, { @@ -3324,6 +3552,11 @@ "phpcs", "standards" ], + "support": { + "issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues", + "source": "https://github.com/squizlabs/PHP_CodeSniffer", + "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki" + }, "time": "2020-10-23T02:01:07+00:00" }, { @@ -3368,6 +3601,9 @@ ], "description": "Symfony Finder Component", "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/finder/tree/v3.4.47" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -3444,6 +3680,9 @@ "polyfill", "portable" ], + "support": { + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.19.0" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -3529,6 +3768,9 @@ "portable", "shim" ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.19.0" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -3610,6 +3852,9 @@ "portable", "shim" ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.19.0" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -3687,6 +3932,9 @@ "portable", "shim" ], + "support": { + "source": "https://github.com/symfony/polyfill-php70/tree/v1.19.0" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -3760,6 +4008,9 @@ "portable", "shim" ], + "support": { + "source": "https://github.com/symfony/polyfill-php72/tree/v1.19.0" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -3828,6 +4079,9 @@ ], "description": "Symfony Yaml Component", "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/yaml/tree/v3.4.47" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -3875,6 +4129,10 @@ "MIT" ], "description": "Parser for .gitignore (and sparse-checkout, and anything else using the same format) files", + "support": { + "issues": "https://github.com/TOGoS/PHPGitIgnore/issues", + "source": "https://github.com/TOGoS/PHPGitIgnore/tree/master" + }, "time": "2019-04-19T19:16:58+00:00" }, { @@ -3933,6 +4191,10 @@ ], "description": "Exports WordPress content to a WXR file.", "homepage": "https://github.com/wp-cli/export-command", + "support": { + "issues": "https://github.com/wp-cli/export-command/issues", + "source": "https://github.com/wp-cli/export-command/tree/v2.0.5" + }, "time": "2020-12-07T19:30:08+00:00" }, { @@ -4025,6 +4287,10 @@ ], "description": "Manages plugins and themes, including installs, activations, and updates.", "homepage": "https://github.com/wp-cli/extension-command", + "support": { + "issues": "https://github.com/wp-cli/extension-command/issues", + "source": "https://github.com/wp-cli/extension-command/tree/v2.0.14" + }, "time": "2020-12-07T19:28:04+00:00" }, { @@ -4073,6 +4339,9 @@ ], "description": "A simple YAML loader/dumper class for PHP (WP-CLI fork)", "homepage": "https://github.com/mustangostang/spyc/", + "support": { + "source": "https://github.com/wp-cli/spyc/tree/autoload" + }, "time": "2017-04-25T11:26:20+00:00" }, { @@ -4123,6 +4392,10 @@ "cli", "console" ], + "support": { + "issues": "https://github.com/wp-cli/php-cli-tools/issues", + "source": "https://github.com/wp-cli/php-cli-tools/tree/master" + }, "time": "2018-09-04T13:28:00+00:00" }, { @@ -4131,12 +4404,12 @@ "source": { "type": "git", "url": "https://github.com/wp-cli/wp-cli.git", - "reference": "760cc6effd86cc4a4f96e0bfaee6f7f01b62c42b" + "reference": "110ad40104996be87c5c7fc40be15b0f094ae5c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/wp-cli/wp-cli/zipball/760cc6effd86cc4a4f96e0bfaee6f7f01b62c42b", - "reference": "760cc6effd86cc4a4f96e0bfaee6f7f01b62c42b", + "url": "https://api.github.com/repos/wp-cli/wp-cli/zipball/110ad40104996be87c5c7fc40be15b0f094ae5c9", + "reference": "110ad40104996be87c5c7fc40be15b0f094ae5c9", "shasum": "" }, "require": { @@ -4160,6 +4433,7 @@ "ext-readline": "Include for a better --prompt implementation", "ext-zip": "Needed to support extraction of ZIP archives when doing downloads or updates" }, + "default-branch": true, "bin": [ "bin/wp", "bin/wp.bat" @@ -4189,7 +4463,12 @@ "cli", "wordpress" ], - "time": "2020-12-08T18:52:39+00:00" + "support": { + "docs": "https://make.wordpress.org/cli/handbook/", + "issues": "https://github.com/wp-cli/wp-cli/issues", + "source": "https://github.com/wp-cli/wp-cli" + }, + "time": "2021-02-02T17:59:38+00:00" }, { "name": "wp-coding-standards/wpcs", @@ -4235,6 +4514,11 @@ "standards", "wordpress" ], + "support": { + "issues": "https://github.com/WordPress/WordPress-Coding-Standards/issues", + "source": "https://github.com/WordPress/WordPress-Coding-Standards", + "wiki": "https://github.com/WordPress/WordPress-Coding-Standards/wiki" + }, "time": "2020-05-13T23:57:56+00:00" } ], @@ -4260,5 +4544,5 @@ "platform-overrides": { "php": "5.6" }, - "plugin-api-version": "1.1.0" + "plugin-api-version": "2.0.0" } From 2786ae999f5e2c010eb0cdbbd2f4e79117e1110d Mon Sep 17 00:00:00 2001 From: Pierre Gordon Date: Wed, 28 Apr 2021 14:40:52 -0400 Subject: [PATCH 18/18] Update composer.lock --- composer.lock | 74 ++++++++++++++++++++++++++++----------------------- 1 file changed, 41 insertions(+), 33 deletions(-) diff --git a/composer.lock b/composer.lock index 548fc78c249..bd4d94a86da 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": "a6058fda10827da7ccfc7041bdd0c33c", + "content-hash": "f73a29684d97e6b2474f5d742dd8e6cc", "packages": [ { "name": "ampproject/amp-toolbox", @@ -12,12 +12,12 @@ "source": { "type": "git", "url": "https://github.com/ampproject/amp-toolbox-php.git", - "reference": "8e1dfacf4f4df8835c6a9ed1d3be8b4a7bf7b92e" + "reference": "3c52c66a3e0665d22111d4552e23d61d033ba1d0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ampproject/amp-toolbox-php/zipball/8e1dfacf4f4df8835c6a9ed1d3be8b4a7bf7b92e", - "reference": "8e1dfacf4f4df8835c6a9ed1d3be8b4a7bf7b92e", + "url": "https://api.github.com/repos/ampproject/amp-toolbox-php/zipball/3c52c66a3e0665d22111d4552e23d61d033ba1d0", + "reference": "3c52c66a3e0665d22111d4552e23d61d033ba1d0", "shasum": "" }, "require": { @@ -72,7 +72,7 @@ "issues": "https://github.com/ampproject/amp-toolbox-php/issues", "source": "https://github.com/ampproject/amp-toolbox-php/tree/main" }, - "time": "2021-04-25T07:16:15+00:00" + "time": "2021-04-28T01:26:05+00:00" }, { "name": "cweagans/composer-patches", @@ -229,7 +229,7 @@ "issues": "https://github.com/sabberworm/PHP-CSS-Parser/issues", "source": "https://github.com/sabberworm/PHP-CSS-Parser/tree/master" }, - "time": "2021-04-23T05:58:34+00:00" + "time": "2021-04-26T15:40:51+00:00" }, { "name": "willwashburn/stream", @@ -286,16 +286,16 @@ "packages-dev": [ { "name": "automattic/vipwpcs", - "version": "2.3.1", + "version": "2.3.2", "source": { "type": "git", "url": "https://github.com/Automattic/VIP-Coding-Standards.git", - "reference": "90173cec6f4df2af9a31627f4880874d788459ab" + "reference": "efacebef421334d54b99afa92fb8fa645336a8a7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Automattic/VIP-Coding-Standards/zipball/90173cec6f4df2af9a31627f4880874d788459ab", - "reference": "90173cec6f4df2af9a31627f4880874d788459ab", + "url": "https://api.github.com/repos/Automattic/VIP-Coding-Standards/zipball/efacebef421334d54b99afa92fb8fa645336a8a7", + "reference": "efacebef421334d54b99afa92fb8fa645336a8a7", "shasum": "" }, "require": { @@ -334,7 +334,7 @@ "source": "https://github.com/Automattic/VIP-Coding-Standards", "wiki": "https://github.com/Automattic/VIP-Coding-Standards/wiki" }, - "time": "2021-04-23T14:52:17+00:00" + "time": "2021-04-28T16:41:50+00:00" }, { "name": "behat/behat", @@ -1199,16 +1199,16 @@ }, { "name": "guzzlehttp/psr7", - "version": "1.8.1", + "version": "1.8.2", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "35ea11d335fd638b5882ff1725228b3d35496ab1" + "reference": "dc960a912984efb74d0a90222870c72c87f10c91" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/35ea11d335fd638b5882ff1725228b3d35496ab1", - "reference": "35ea11d335fd638b5882ff1725228b3d35496ab1", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/dc960a912984efb74d0a90222870c72c87f10c91", + "reference": "dc960a912984efb74d0a90222870c72c87f10c91", "shasum": "" }, "require": { @@ -1268,9 +1268,9 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/1.8.1" + "source": "https://github.com/guzzle/psr7/tree/1.8.2" }, - "time": "2021-03-21T16:25:00+00:00" + "time": "2021-04-26T09:17:50+00:00" }, { "name": "mikey179/vfsstream", @@ -2931,23 +2931,30 @@ }, { "name": "rmccue/requests", - "version": "v1.7.0", + "version": "v1.8.0", "source": { "type": "git", - "url": "https://github.com/rmccue/Requests.git", - "reference": "87932f52ffad70504d93f04f15690cf16a089546" + "url": "https://github.com/WordPress/Requests.git", + "reference": "afbe4790e4def03581c4a0963a1e8aa01f6030f1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/rmccue/Requests/zipball/87932f52ffad70504d93f04f15690cf16a089546", - "reference": "87932f52ffad70504d93f04f15690cf16a089546", + "url": "https://api.github.com/repos/WordPress/Requests/zipball/afbe4790e4def03581c4a0963a1e8aa01f6030f1", + "reference": "afbe4790e4def03581c4a0963a1e8aa01f6030f1", "shasum": "" }, "require": { "php": ">=5.2" }, "require-dev": { - "requests/test-server": "dev-master" + "dealerdirect/phpcodesniffer-composer-installer": "^0.7", + "php-parallel-lint/php-console-highlighter": "^0.5.0", + "php-parallel-lint/php-parallel-lint": "^1.3", + "phpcompatibility/php-compatibility": "^9.0", + "phpunit/phpunit": "^4.8 || ^5.7 || ^6.5 || ^7.5", + "requests/test-server": "dev-master", + "squizlabs/php_codesniffer": "^3.5", + "wp-coding-standards/wpcs": "^2.0" }, "type": "library", "autoload": { @@ -2966,7 +2973,7 @@ } ], "description": "A HTTP library written in PHP, for human beings.", - "homepage": "http://github.com/rmccue/Requests", + "homepage": "http://github.com/WordPress/Requests", "keywords": [ "curl", "fsockopen", @@ -2977,10 +2984,10 @@ "sockets" ], "support": { - "issues": "https://github.com/rmccue/Requests/issues", - "source": "https://github.com/rmccue/Requests/tree/master" + "issues": "https://github.com/WordPress/Requests/issues", + "source": "https://github.com/WordPress/Requests/tree/v1.8.0" }, - "time": "2016-10-13T00:11:37+00:00" + "time": "2021-04-27T11:05:25+00:00" }, { "name": "roave/security-advisories", @@ -2988,12 +2995,12 @@ "source": { "type": "git", "url": "https://github.com/Roave/SecurityAdvisories.git", - "reference": "3c97c13698c448fdbbda20acb871884a2d8f45b1" + "reference": "a9d356baedee32afbb2179a2a61a45b215f8c95e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/3c97c13698c448fdbbda20acb871884a2d8f45b1", - "reference": "3c97c13698c448fdbbda20acb871884a2d8f45b1", + "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/a9d356baedee32afbb2179a2a61a45b215f8c95e", + "reference": "a9d356baedee32afbb2179a2a61a45b215f8c95e", "shasum": "" }, "conflict": { @@ -3021,7 +3028,7 @@ "centreon/centreon": "<18.10.8|>=19,<19.4.5", "cesnet/simplesamlphp-module-proxystatistics": "<3.1", "codeigniter/framework": "<=3.0.6", - "composer/composer": "<=1-alpha.11", + "composer/composer": "<1.10.22|>=2-alpha.1,<2.0.13", "contao-components/mediaelement": ">=2.14.2,<2.21.1", "contao/core": ">=2,<3.5.39", "contao/core-bundle": ">=4,<4.4.52|>=4.5,<4.9.6|= 4.10.0", @@ -3133,7 +3140,7 @@ "paragonie/random_compat": "<2", "passbolt/passbolt_api": "<2.11", "paypal/merchant-sdk-php": "<3.12", - "pear/archive_tar": "<1.4.13", + "pear/archive_tar": "<1.4.12", "personnummer/personnummer": "<3.0.2", "phpfastcache/phpfastcache": ">=5,<5.0.13", "phpmailer/phpmailer": "<6.1.6", @@ -3161,6 +3168,7 @@ "pusher/pusher-php-server": "<2.2.1", "pwweb/laravel-core": "<=0.3.6-beta", "rainlab/debugbar-plugin": "<3.1", + "rmccue/requests": ">=1.6,<1.8", "robrichards/xmlseclibs": "<3.0.4", "sabberworm/php-css-parser": ">=1,<1.0.1|>=2,<2.0.1|>=3,<3.0.1|>=4,<4.0.1|>=5,<5.0.9|>=5.1,<5.1.3|>=5.2,<5.2.1|>=6,<6.0.2|>=7,<7.0.4|>=8,<8.0.1|>=8.1,<8.1.1|>=8.2,<8.2.1|>=8.3,<8.3.1", "sabre/dav": ">=1.6,<1.6.99|>=1.7,<1.7.11|>=1.8,<1.8.9", @@ -3326,7 +3334,7 @@ "type": "tidelift" } ], - "time": "2021-04-22T17:19:04+00:00" + "time": "2021-04-28T18:10:37+00:00" }, { "name": "sebastian/code-unit-reverse-lookup",