From c4c9b9314c7bdbde651d351095cf16305c489d56 Mon Sep 17 00:00:00 2001 From: Brad Parbs Date: Wed, 27 Mar 2024 15:34:04 -0500 Subject: [PATCH 01/13] Adds code standard checking - Adds .editorconfig to make things consistent - Adds .phpcs.dist.xml and .php-cs-fixers.dist.php for PHP linting - Adds jsconfig.json to allow IDE eslint to correctly associate aliases - Updates Composer and NPM commands to include linting --- .editorconfig | 26 + .github/workflows/lint.yml | 4 +- .php-cs-fixer.dist.php | 89 ++ .phpcs.dist.xml | 78 ++ composer.json | 57 +- composer.lock | 2485 ++++++++++++++++++++++++++++++++---- jsconfig.json | 9 + package-lock.json | 74 ++ package.json | 7 +- 9 files changed, 2570 insertions(+), 259 deletions(-) create mode 100644 .editorconfig create mode 100644 .php-cs-fixer.dist.php create mode 100644 .phpcs.dist.xml create mode 100644 jsconfig.json diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 000000000..b1fa39ef8 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,26 @@ +# http://editorconfig.org +root = true + +[*] +indent_style = tab +indent_size = 2 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true +max_line_length = 120 +quote_type = single + +[*.php] +indent_size = 4 + +[*.json] +indent_style = space +indent_size = 4 + +[*.yml] +indent_style = space +indent_size = 2 + +[*.md] +trim_trailing_whitespace = false diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 683e5ceaa..31f9c30ca 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -34,7 +34,7 @@ jobs: - uses: technote-space/get-diff-action@v6 with: - SUFFIX_FILTER: .php + PATTERNS: '**.php' - name: Get Composer cache directory id: composer-cache @@ -59,5 +59,5 @@ jobs: if: "!! env.GIT_DIFF" - name: Detecting PHP Code Standards Violations - run: vendor/bin/phpcs --standard=phpcs.xml -s ${{ env.GIT_DIFF }} + run: composer run-script lint if: "!! env.GIT_DIFF" diff --git a/.php-cs-fixer.dist.php b/.php-cs-fixer.dist.php new file mode 100644 index 000000000..f3b3174ca --- /dev/null +++ b/.php-cs-fixer.dist.php @@ -0,0 +1,89 @@ +exclude([ + 'assets', + 'bin', + 'dist', + 'docs', + 'node_modules', + 'patches', + 'tests/stubs', + 'vendor', + ]) + ->in(__DIR__); + +return $config->setFinder( $finder ) + ->setRiskyAllowed( true ) + ->setIndent( "\t" ) + ->setRules([ + 'align_multiline_comment' => true, + 'array_indentation' => true, + 'array_syntax' => [ 'syntax' => 'short' ], + 'backtick_to_shell_exec' => true, + 'cast_spaces' => true, + 'combine_consecutive_issets' => true, + 'combine_consecutive_unsets' => true, + 'concat_space' => [ 'spacing' => 'one'], + 'constant_case' => true, + 'encoding' => true, + 'full_opening_tag' => true, + 'increment_style' => [ 'style' => 'post' ], + 'line_ending' => true, + 'logical_operators' => true, + 'lowercase_cast' => true, + 'lowercase_keywords' => true, + 'lowercase_static_reference' => true, + 'magic_constant_casing' => true, + 'magic_method_casing' => true, + 'multiline_comment_opening_closing' => true, + 'native_function_casing' => true, + 'native_function_type_declaration_casing' => true, + 'no_break_comment' => true, + 'no_closing_tag' => true, + 'no_empty_comment' => true, + 'no_empty_phpdoc' => true, + 'no_empty_statement' => true, + 'no_extra_blank_lines' => true, + 'no_homoglyph_names' => true, + 'no_leading_import_slash' => true, + 'no_leading_namespace_whitespace' => true, + 'no_mixed_echo_print' => [ 'use' => 'echo' ], + 'no_null_property_initialization' => true, + 'no_short_bool_cast' => true, + 'no_superfluous_elseif' => true, + 'no_trailing_comma_in_singleline_array' => true, + 'no_trailing_whitespace' => true, + 'no_unset_cast' => true, + 'no_unused_imports' => true, + 'no_useless_else' => true, + 'no_useless_return' => true, + 'no_whitespace_in_blank_line' => true, + 'non_printable_character' => true, + 'normalize_index_brace' => true, + 'not_operator_with_successor_space' => true, + 'operator_linebreak' => true, + 'ordered_imports' => [ 'sort_algorithm' => 'alpha', 'imports_order' => [ 'class', 'const', 'function' ] ], + 'phpdoc_align' => true, + 'phpdoc_indent' => true, + 'phpdoc_no_empty_return' => true, + 'phpdoc_scalar' => true, + 'phpdoc_separation' => true, + 'phpdoc_summary' => true, + 'phpdoc_tag_casing' => true, + 'phpdoc_trim_consecutive_blank_line_separation' => true, + 'phpdoc_trim' => true, + 'phpdoc_order' => true, + 'psr_autoloading' => true, + 'short_scalar_cast' => true, + 'single_blank_line_at_eof' => true, + 'single_import_per_statement' => true, + 'single_line_after_imports' => true, + 'single_quote' => [ 'strings_containing_single_quote_chars' => false ], + 'standardize_increment' => true, + 'standardize_not_equals' => true, + 'ternary_operator_spaces' => true, + 'whitespace_after_comma_in_array' => true, + 'yoda_style' => true, + ]); diff --git a/.phpcs.dist.xml b/.phpcs.dist.xml new file mode 100644 index 000000000..1ab32eac9 --- /dev/null +++ b/.phpcs.dist.xml @@ -0,0 +1,78 @@ + + + + + + + + + + ./bluehost-wordpress-plugin.php + ./inc + + + ./assets + ./build + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Please review this TODO comment: %s + 3 + + + + + warning + + diff --git a/composer.json b/composer.json index 1334dd6d5..a2579b639 100644 --- a/composer.json +++ b/composer.json @@ -36,8 +36,11 @@ } }, "scripts": { - "fix": "vendor/bin/phpcbf --standard=phpcs.xml .", - "lint": "vendor/bin/phpcs --standard=phpcs.xml -s .", + "fix:standards": [ + "./vendor/bin/phpcbf --standard=./.phpcs.dist.xml .", + "PHP_CS_FIXER_IGNORE_ENV=true ./vendor/bin/php-cs-fixer fix -v --diff" + ], + "fix": "@fix:standards", "i18n-pot": "vendor/bin/wp i18n make-pot . ./languages/wp-plugin-bluehost.pot --headers='{\"Report-Msgid-Bugs-To\":\"https://github.com/bluehost/bluehost-wordpress-plugin/issues\",\"POT-Creation-Date\":\"2023-03-08T20:13:41+00:00\"}' --exclude=assets,tests,src", "i18n-po": "vendor/bin/wp i18n update-po ./languages/wp-plugin-bluehost.pot ./languages", "i18n-mo": "vendor/bin/wp i18n make-mo ./languages", @@ -47,44 +50,58 @@ "@i18n-pot", "@i18n-po", "@i18n-mo" + ], + "lint": "@test", + "test": "@test-standards", + "test-standards": [ + "./vendor/bin/phpcs --standard=./.phpcs.dist.xml", + "PHP_CS_FIXER_IGNORE_ENV=true ./vendor/bin/php-cs-fixer fix -v --diff --dry-run" ] }, "scripts-descriptions": { - "fix": "Automatically fix coding standards issues where possible.", + "fix": "Run all fix scripts.", + "fix-standards": "Automatically fix coding standards issues where possible.", "lint": "Check files against coding standards.", "i18n": "Generate new language files.", "i18n-pot": "Generate a .pot file for translation.", "i18n-po": "Update existing .po files.", "i18n-mo": "Generate new language .mo files.", "i18n-json": "Generate new language .json files.", - "i18n-json-rename": "Rename the language json files to remove the pesky hash." + "i18n-json-rename": "Rename the language json files to remove the pesky hash.", + "test": "Run all test scripts.", + "test-standards": "Check files against coding standards without fixing." }, "require-dev": { - "roave/security-advisories": "dev-latest", + "dealerdirect/phpcodesniffer-composer-installer": "@stable", + "friendsofphp/php-cs-fixer": "^2.19", "newfold-labs/wp-php-standards": "^1.2", + "phpcompatibility/phpcompatibility-wp": "@stable", + "roave/security-advisories": "dev-latest", + "squizlabs/php_codesniffer": "@stable", "wp-cli/i18n-command": "^2.5.0", + "wp-coding-standards/wpcs": "^3.0", "wp-phpunit/wp-phpunit": "^6.4.2" }, "require": { - "newfold-labs/wp-module-activation": "^1.0.1", - "newfold-labs/wp-module-coming-soon": "^1.2.3", - "newfold-labs/wp-module-context": "^1.0.0", + "wp-forge/wp-upgrade-handler": "^1.0", + "newfold-labs/wp-module-sso": "^1.0.4", + "wp-forge/wp-update-handler": "^1.0.2", "newfold-labs/wp-module-data": "^2.4.20", - "newfold-labs/wp-module-deactivation": "^1.1.1", + "newfold-labs/wp-module-context": "^1.0.0", + "newfold-labs/wp-module-loader": "^1.0.10", + "newfold-labs/wp-module-runtime": "^1.0.9", + "newfold-labs/wp-module-staging": "^1.3.0", + "newfold-labs/wp-module-patterns": "^0.1.15", + "newfold-labs/wp-module-activation": "^1.0.1", "newfold-labs/wp-module-ecommerce": "^1.3.25", + "newfold-labs/wp-module-onboarding": "^2.1.8", + "newfold-labs/wp-module-coming-soon": "^1.2.3", "newfold-labs/wp-module-global-ctb": "^1.0.11", - "newfold-labs/wp-module-help-center": "^1.0.24", - "newfold-labs/wp-module-loader": "^1.0.10", "newfold-labs/wp-module-marketplace": "^2.2.4", - "newfold-labs/wp-module-notifications": "^1.2.5", - "newfold-labs/wp-module-onboarding": "^2.1.8", - "newfold-labs/wp-module-patterns": "^0.1.15", "newfold-labs/wp-module-performance": "^1.4.0", - "newfold-labs/wp-module-runtime": "^1.0.9", - "newfold-labs/wp-module-secure-passwords": "^1.1.1", - "newfold-labs/wp-module-sso": "^1.0.4", - "newfold-labs/wp-module-staging": "^1.3.0", - "wp-forge/wp-update-handler": "^1.0.2", - "wp-forge/wp-upgrade-handler": "^1.0" + "newfold-labs/wp-module-deactivation": "^1.1.1", + "newfold-labs/wp-module-help-center": "^1.0.24", + "newfold-labs/wp-module-notifications": "^1.2.5", + "newfold-labs/wp-module-secure-passwords": "^1.1.1" } } diff --git a/composer.lock b/composer.lock index f871463a9..0280420b0 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": "db91ae62cc37d21c85c9c2534702f62e", + "content-hash": "739b014b18c926e90b2f97ee0ab80c22", "packages": [ { "name": "doctrine/inflector", @@ -195,7 +195,7 @@ "version": "1.0.1", "source": { "type": "git", - "url": "git@github.com:newfold-labs/wp-module-activation.git", + "url": "https://github.com/newfold-labs/wp-module-activation.git", "reference": "e84749f2299f876bf6cd03f37eb9bf8103a731f7" }, "dist": { @@ -242,6 +242,10 @@ } ], "description": "A Module for handling WordPress brand plugins activations", + "support": { + "source": "https://github.com/newfold-labs/wp-module-activation/tree/1.0.1", + "issues": "https://github.com/newfold-labs/wp-module-activation/issues" + }, "time": "2024-03-15T16:42:51+00:00" }, { @@ -1290,16 +1294,16 @@ }, { "name": "newfold-labs/wp-module-staging", - "version": "1.3.1", + "version": "1.3.2", "source": { "type": "git", "url": "https://github.com/newfold-labs/wp-module-staging.git", - "reference": "4358628ec018976d21b87b4cbd08802f5a28bcf3" + "reference": "0dfda9c88034066a633b4a9a9bc532a62c4eb79f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/newfold-labs/wp-module-staging/zipball/4358628ec018976d21b87b4cbd08802f5a28bcf3", - "reference": "4358628ec018976d21b87b4cbd08802f5a28bcf3", + "url": "https://api.github.com/repos/newfold-labs/wp-module-staging/zipball/0dfda9c88034066a633b4a9a9bc532a62c4eb79f", + "reference": "0dfda9c88034066a633b4a9a9bc532a62c4eb79f", "shasum": "" }, "require": { @@ -1336,10 +1340,10 @@ ], "description": "Newfold module for staging functionality in brand plugins", "support": { - "source": "https://github.com/newfold-labs/wp-module-staging/tree/1.3.1", + "source": "https://github.com/newfold-labs/wp-module-staging/tree/1.3.2", "issues": "https://github.com/newfold-labs/wp-module-staging/issues" }, - "time": "2024-03-15T16:43:57+00:00" + "time": "2024-03-19T17:24:51+00:00" }, { "name": "wp-cli/wp-config-transformer", @@ -1745,6 +1749,224 @@ } ], "packages-dev": [ + { + "name": "composer/pcre", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/composer/pcre.git", + "reference": "67a32d7d6f9f560b726ab25a061b38ff3a80c560" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/pcre/zipball/67a32d7d6f9f560b726ab25a061b38ff3a80c560", + "reference": "67a32d7d6f9f560b726ab25a061b38ff3a80c560", + "shasum": "" + }, + "require": { + "php": "^5.3.2 || ^7.0 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.3", + "phpstan/phpstan-strict-rules": "^1.1", + "symfony/phpunit-bridge": "^4.2 || ^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Pcre\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "PCRE wrapping library that offers type-safe preg_* replacements.", + "keywords": [ + "PCRE", + "preg", + "regex", + "regular expression" + ], + "support": { + "issues": "https://github.com/composer/pcre/issues", + "source": "https://github.com/composer/pcre/tree/1.0.1" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2022-01-21T20:24:37+00:00" + }, + { + "name": "composer/semver", + "version": "3.4.0", + "source": { + "type": "git", + "url": "https://github.com/composer/semver.git", + "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/semver/zipball/35e8d0af4486141bc745f23a29cc2091eb624a32", + "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32", + "shasum": "" + }, + "require": { + "php": "^5.3.2 || ^7.0 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.4", + "symfony/phpunit-bridge": "^4.2 || ^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Semver\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nils Adermann", + "email": "naderman@naderman.de", + "homepage": "http://www.naderman.de" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + }, + { + "name": "Rob Bast", + "email": "rob.bast@gmail.com", + "homepage": "http://robbast.nl" + } + ], + "description": "Semver library that offers utilities, version constraint parsing and validation.", + "keywords": [ + "semantic", + "semver", + "validation", + "versioning" + ], + "support": { + "irc": "ircs://irc.libera.chat:6697/composer", + "issues": "https://github.com/composer/semver/issues", + "source": "https://github.com/composer/semver/tree/3.4.0" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2023-08-31T09:50:34+00:00" + }, + { + "name": "composer/xdebug-handler", + "version": "2.0.5", + "source": { + "type": "git", + "url": "https://github.com/composer/xdebug-handler.git", + "reference": "9e36aeed4616366d2b690bdce11f71e9178c579a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/9e36aeed4616366d2b690bdce11f71e9178c579a", + "reference": "9e36aeed4616366d2b690bdce11f71e9178c579a", + "shasum": "" + }, + "require": { + "composer/pcre": "^1", + "php": "^5.3.2 || ^7.0 || ^8.0", + "psr/log": "^1 || ^2 || ^3" + }, + "require-dev": { + "phpstan/phpstan": "^1.0", + "phpstan/phpstan-strict-rules": "^1.1", + "symfony/phpunit-bridge": "^4.2 || ^5.0 || ^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Composer\\XdebugHandler\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "John Stevenson", + "email": "john-stevenson@blueyonder.co.uk" + } + ], + "description": "Restarts a process without Xdebug.", + "keywords": [ + "Xdebug", + "performance" + ], + "support": { + "irc": "irc://irc.freenode.org/composer", + "issues": "https://github.com/composer/xdebug-handler/issues", + "source": "https://github.com/composer/xdebug-handler/tree/2.0.5" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2022-02-24T20:20:32+00:00" + }, { "name": "dealerdirect/phpcodesniffer-composer-installer", "version": "v1.0.0", @@ -1824,36 +2046,40 @@ "time": "2023-01-05T11:28:13+00:00" }, { - "name": "eftec/bladeone", - "version": "3.52", + "name": "doctrine/annotations", + "version": "1.14.3", "source": { "type": "git", - "url": "https://github.com/EFTEC/BladeOne.git", - "reference": "a19bf66917de0b29836983db87a455a4f6e32148" + "url": "https://github.com/doctrine/annotations.git", + "reference": "fb0d71a7393298a7b232cbf4c8b1f73f3ec3d5af" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/EFTEC/BladeOne/zipball/a19bf66917de0b29836983db87a455a4f6e32148", - "reference": "a19bf66917de0b29836983db87a455a4f6e32148", + "url": "https://api.github.com/repos/doctrine/annotations/zipball/fb0d71a7393298a7b232cbf4c8b1f73f3ec3d5af", + "reference": "fb0d71a7393298a7b232cbf4c8b1f73f3ec3d5af", "shasum": "" }, "require": { - "ext-json": "*", - "php": ">=5.6" + "doctrine/lexer": "^1 || ^2", + "ext-tokenizer": "*", + "php": "^7.1 || ^8.0", + "psr/cache": "^1 || ^2 || ^3" }, "require-dev": { - "friendsofphp/php-cs-fixer": "^2.16.1", - "phpunit/phpunit": "^5.7", - "squizlabs/php_codesniffer": "^3.5.4" + "doctrine/cache": "^1.11 || ^2.0", + "doctrine/coding-standard": "^9 || ^10", + "phpstan/phpstan": "~1.4.10 || ^1.8.0", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "symfony/cache": "^4.4 || ^5.4 || ^6", + "vimeo/psalm": "^4.10" }, "suggest": { - "eftec/bladeonehtml": "Extension to create forms", - "ext-mbstring": "This extension is used if it's active" + "php": "PHP 8.0 or higher comes with attributes, a native replacement for annotations" }, "type": "library", "autoload": { "psr-4": { - "eftec\\bladeone\\": "lib/" + "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations" } }, "notification-url": "https://packagist.org/downloads/", @@ -1862,133 +2088,115 @@ ], "authors": [ { - "name": "Jorge Patricio Castro Castillo", - "email": "jcastro@eftec.cl" + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" } ], - "description": "The standalone version Blade Template Engine from Laravel in a single php file", - "homepage": "https://github.com/EFTEC/BladeOne", + "description": "Docblock Annotations Parser", + "homepage": "https://www.doctrine-project.org/projects/annotations.html", "keywords": [ - "blade", - "php", - "template", - "templating", - "view" + "annotations", + "docblock", + "parser" ], "support": { - "issues": "https://github.com/EFTEC/BladeOne/issues", - "source": "https://github.com/EFTEC/BladeOne/tree/3.52" + "issues": "https://github.com/doctrine/annotations/issues", + "source": "https://github.com/doctrine/annotations/tree/1.14.3" }, - "time": "2021-04-17T13:49:01+00:00" + "time": "2023-02-01T09:20:38+00:00" }, { - "name": "gettext/gettext", - "version": "v4.8.11", + "name": "doctrine/deprecations", + "version": "1.1.3", "source": { "type": "git", - "url": "https://github.com/php-gettext/Gettext.git", - "reference": "b632aaf5e4579d0b2ae8bc61785e238bff4c5156" + "url": "https://github.com/doctrine/deprecations.git", + "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-gettext/Gettext/zipball/b632aaf5e4579d0b2ae8bc61785e238bff4c5156", - "reference": "b632aaf5e4579d0b2ae8bc61785e238bff4c5156", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab", + "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab", "shasum": "" }, "require": { - "gettext/languages": "^2.3", - "php": ">=5.4.0" + "php": "^7.1 || ^8.0" }, "require-dev": { - "illuminate/view": "^5.0.x-dev", - "phpunit/phpunit": "^4.8|^5.7|^6.5", - "squizlabs/php_codesniffer": "^3.0", - "symfony/yaml": "~2", - "twig/extensions": "*", - "twig/twig": "^1.31|^2.0" + "doctrine/coding-standard": "^9", + "phpstan/phpstan": "1.4.10 || 1.10.15", + "phpstan/phpstan-phpunit": "^1.0", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "psalm/plugin-phpunit": "0.18.4", + "psr/log": "^1 || ^2 || ^3", + "vimeo/psalm": "4.30.0 || 5.12.0" }, "suggest": { - "illuminate/view": "Is necessary if you want to use the Blade extractor", - "symfony/yaml": "Is necessary if you want to use the Yaml extractor/generator", - "twig/extensions": "Is necessary if you want to use the Twig extractor", - "twig/twig": "Is necessary if you want to use the Twig extractor" + "psr/log": "Allows logging deprecations via PSR-3 logger implementation" }, "type": "library", "autoload": { "psr-4": { - "Gettext\\": "src" + "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "authors": [ - { - "name": "Oscar Otero", - "email": "oom@oscarotero.com", - "homepage": "http://oscarotero.com", - "role": "Developer" - } - ], - "description": "PHP gettext manager", - "homepage": "https://github.com/oscarotero/Gettext", - "keywords": [ - "JS", - "gettext", - "i18n", - "mo", - "po", - "translation" - ], + "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", + "homepage": "https://www.doctrine-project.org/", "support": { - "email": "oom@oscarotero.com", - "issues": "https://github.com/oscarotero/Gettext/issues", - "source": "https://github.com/php-gettext/Gettext/tree/v4.8.11" + "issues": "https://github.com/doctrine/deprecations/issues", + "source": "https://github.com/doctrine/deprecations/tree/1.1.3" }, - "funding": [ - { - "url": "https://paypal.me/oscarotero", - "type": "custom" - }, - { - "url": "https://github.com/oscarotero", - "type": "github" - }, - { - "url": "https://www.patreon.com/misteroom", - "type": "patreon" - } - ], - "time": "2023-08-14T15:15:05+00:00" + "time": "2024-01-30T19:34:25+00:00" }, { - "name": "gettext/languages", - "version": "2.10.0", + "name": "doctrine/lexer", + "version": "2.1.1", "source": { "type": "git", - "url": "https://github.com/php-gettext/Languages.git", - "reference": "4d61d67fe83a2ad85959fe6133d6d9ba7dddd1ab" + "url": "https://github.com/doctrine/lexer.git", + "reference": "861c870e8b75f7c8f69c146c7f89cc1c0f1b49b6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-gettext/Languages/zipball/4d61d67fe83a2ad85959fe6133d6d9ba7dddd1ab", - "reference": "4d61d67fe83a2ad85959fe6133d6d9ba7dddd1ab", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/861c870e8b75f7c8f69c146c7f89cc1c0f1b49b6", + "reference": "861c870e8b75f7c8f69c146c7f89cc1c0f1b49b6", "shasum": "" }, "require": { - "php": ">=5.3" + "doctrine/deprecations": "^1.0", + "php": "^7.1 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "^4.8 || ^5.7 || ^6.5 || ^7.5 || ^8.4" + "doctrine/coding-standard": "^9 || ^12", + "phpstan/phpstan": "^1.3", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6", + "psalm/plugin-phpunit": "^0.18.3", + "vimeo/psalm": "^4.11 || ^5.21" }, - "bin": [ - "bin/export-plural-rules" - ], "type": "library", "autoload": { "psr-4": { - "Gettext\\Languages\\": "src/" + "Doctrine\\Common\\Lexer\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -1997,9 +2205,333 @@ ], "authors": [ { - "name": "Michele Locati", - "email": "mlocati@gmail.com", - "role": "Developer" + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", + "homepage": "https://www.doctrine-project.org/projects/lexer.html", + "keywords": [ + "annotations", + "docblock", + "lexer", + "parser", + "php" + ], + "support": { + "issues": "https://github.com/doctrine/lexer/issues", + "source": "https://github.com/doctrine/lexer/tree/2.1.1" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer", + "type": "tidelift" + } + ], + "time": "2024-02-05T11:35:39+00:00" + }, + { + "name": "eftec/bladeone", + "version": "3.52", + "source": { + "type": "git", + "url": "https://github.com/EFTEC/BladeOne.git", + "reference": "a19bf66917de0b29836983db87a455a4f6e32148" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/EFTEC/BladeOne/zipball/a19bf66917de0b29836983db87a455a4f6e32148", + "reference": "a19bf66917de0b29836983db87a455a4f6e32148", + "shasum": "" + }, + "require": { + "ext-json": "*", + "php": ">=5.6" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^2.16.1", + "phpunit/phpunit": "^5.7", + "squizlabs/php_codesniffer": "^3.5.4" + }, + "suggest": { + "eftec/bladeonehtml": "Extension to create forms", + "ext-mbstring": "This extension is used if it's active" + }, + "type": "library", + "autoload": { + "psr-4": { + "eftec\\bladeone\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jorge Patricio Castro Castillo", + "email": "jcastro@eftec.cl" + } + ], + "description": "The standalone version Blade Template Engine from Laravel in a single php file", + "homepage": "https://github.com/EFTEC/BladeOne", + "keywords": [ + "blade", + "php", + "template", + "templating", + "view" + ], + "support": { + "issues": "https://github.com/EFTEC/BladeOne/issues", + "source": "https://github.com/EFTEC/BladeOne/tree/3.52" + }, + "time": "2021-04-17T13:49:01+00:00" + }, + { + "name": "friendsofphp/php-cs-fixer", + "version": "v2.19.3", + "source": { + "type": "git", + "url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git", + "reference": "75ac86f33fab4714ea5a39a396784d83ae3b5ed8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/75ac86f33fab4714ea5a39a396784d83ae3b5ed8", + "reference": "75ac86f33fab4714ea5a39a396784d83ae3b5ed8", + "shasum": "" + }, + "require": { + "composer/semver": "^1.4 || ^2.0 || ^3.0", + "composer/xdebug-handler": "^1.2 || ^2.0", + "doctrine/annotations": "^1.2", + "ext-json": "*", + "ext-tokenizer": "*", + "php": "^5.6 || ^7.0 || ^8.0", + "php-cs-fixer/diff": "^1.3", + "symfony/console": "^3.4.43 || ^4.1.6 || ^5.0", + "symfony/event-dispatcher": "^3.0 || ^4.0 || ^5.0", + "symfony/filesystem": "^3.0 || ^4.0 || ^5.0", + "symfony/finder": "^3.0 || ^4.0 || ^5.0", + "symfony/options-resolver": "^3.0 || ^4.0 || ^5.0", + "symfony/polyfill-php70": "^1.0", + "symfony/polyfill-php72": "^1.4", + "symfony/process": "^3.0 || ^4.0 || ^5.0", + "symfony/stopwatch": "^3.0 || ^4.0 || ^5.0" + }, + "require-dev": { + "justinrainbow/json-schema": "^5.0", + "keradus/cli-executor": "^1.4", + "mikey179/vfsstream": "^1.6", + "php-coveralls/php-coveralls": "^2.4.2", + "php-cs-fixer/accessible-object": "^1.0", + "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.2", + "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.2.1", + "phpspec/prophecy-phpunit": "^1.1 || ^2.0", + "phpunit/phpunit": "^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.13 || ^9.5", + "phpunitgoodpractices/polyfill": "^1.5", + "phpunitgoodpractices/traits": "^1.9.1", + "sanmai/phpunit-legacy-adapter": "^6.4 || ^8.2.1", + "symfony/phpunit-bridge": "^5.2.1", + "symfony/yaml": "^3.0 || ^4.0 || ^5.0" + }, + "suggest": { + "ext-dom": "For handling output formats in XML", + "ext-mbstring": "For handling non-UTF8 characters.", + "php-cs-fixer/phpunit-constraint-isidenticalstring": "For IsIdenticalString constraint.", + "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "For XmlMatchesXsd constraint.", + "symfony/polyfill-mbstring": "When enabling `ext-mbstring` is not possible." + }, + "bin": [ + "php-cs-fixer" + ], + "type": "application", + "extra": { + "branch-alias": { + "dev-master": "2.19-dev" + } + }, + "autoload": { + "psr-4": { + "PhpCsFixer\\": "src/" + }, + "classmap": [ + "tests/Test/AbstractFixerTestCase.php", + "tests/Test/AbstractIntegrationCaseFactory.php", + "tests/Test/AbstractIntegrationTestCase.php", + "tests/Test/Assert/AssertTokensTrait.php", + "tests/Test/IntegrationCase.php", + "tests/Test/IntegrationCaseFactory.php", + "tests/Test/IntegrationCaseFactoryInterface.php", + "tests/Test/InternalIntegrationCaseFactory.php", + "tests/Test/IsIdenticalConstraint.php", + "tests/Test/TokensWithObservedTransformers.php", + "tests/TestCase.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Dariusz RumiƄski", + "email": "dariusz.ruminski@gmail.com" + } + ], + "description": "A tool to automatically fix PHP code style", + "support": { + "issues": "https://github.com/FriendsOfPHP/PHP-CS-Fixer/issues", + "source": "https://github.com/FriendsOfPHP/PHP-CS-Fixer/tree/v2.19.3" + }, + "funding": [ + { + "url": "https://github.com/keradus", + "type": "github" + } + ], + "time": "2021-11-15T17:17:55+00:00" + }, + { + "name": "gettext/gettext", + "version": "v4.8.11", + "source": { + "type": "git", + "url": "https://github.com/php-gettext/Gettext.git", + "reference": "b632aaf5e4579d0b2ae8bc61785e238bff4c5156" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-gettext/Gettext/zipball/b632aaf5e4579d0b2ae8bc61785e238bff4c5156", + "reference": "b632aaf5e4579d0b2ae8bc61785e238bff4c5156", + "shasum": "" + }, + "require": { + "gettext/languages": "^2.3", + "php": ">=5.4.0" + }, + "require-dev": { + "illuminate/view": "^5.0.x-dev", + "phpunit/phpunit": "^4.8|^5.7|^6.5", + "squizlabs/php_codesniffer": "^3.0", + "symfony/yaml": "~2", + "twig/extensions": "*", + "twig/twig": "^1.31|^2.0" + }, + "suggest": { + "illuminate/view": "Is necessary if you want to use the Blade extractor", + "symfony/yaml": "Is necessary if you want to use the Yaml extractor/generator", + "twig/extensions": "Is necessary if you want to use the Twig extractor", + "twig/twig": "Is necessary if you want to use the Twig extractor" + }, + "type": "library", + "autoload": { + "psr-4": { + "Gettext\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Oscar Otero", + "email": "oom@oscarotero.com", + "homepage": "http://oscarotero.com", + "role": "Developer" + } + ], + "description": "PHP gettext manager", + "homepage": "https://github.com/oscarotero/Gettext", + "keywords": [ + "JS", + "gettext", + "i18n", + "mo", + "po", + "translation" + ], + "support": { + "email": "oom@oscarotero.com", + "issues": "https://github.com/oscarotero/Gettext/issues", + "source": "https://github.com/php-gettext/Gettext/tree/v4.8.11" + }, + "funding": [ + { + "url": "https://paypal.me/oscarotero", + "type": "custom" + }, + { + "url": "https://github.com/oscarotero", + "type": "github" + }, + { + "url": "https://www.patreon.com/misteroom", + "type": "patreon" + } + ], + "time": "2023-08-14T15:15:05+00:00" + }, + { + "name": "gettext/languages", + "version": "2.10.0", + "source": { + "type": "git", + "url": "https://github.com/php-gettext/Languages.git", + "reference": "4d61d67fe83a2ad85959fe6133d6d9ba7dddd1ab" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-gettext/Languages/zipball/4d61d67fe83a2ad85959fe6133d6d9ba7dddd1ab", + "reference": "4d61d67fe83a2ad85959fe6133d6d9ba7dddd1ab", + "shasum": "" + }, + "require": { + "php": ">=5.3" + }, + "require-dev": { + "phpunit/phpunit": "^4.8 || ^5.7 || ^6.5 || ^7.5 || ^8.4" + }, + "bin": [ + "bin/export-plural-rules" + ], + "type": "library", + "autoload": { + "psr-4": { + "Gettext\\Languages\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michele Locati", + "email": "mlocati@gmail.com", + "role": "Developer" } ], "description": "gettext languages with plural rules", @@ -2122,6 +2654,62 @@ }, "time": "2023-01-06T11:45:52+00:00" }, + { + "name": "php-cs-fixer/diff", + "version": "v1.3.1", + "source": { + "type": "git", + "url": "https://github.com/PHP-CS-Fixer/diff.git", + "reference": "dbd31aeb251639ac0b9e7e29405c1441907f5759" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHP-CS-Fixer/diff/zipball/dbd31aeb251639ac0b9e7e29405c1441907f5759", + "reference": "dbd31aeb251639ac0b9e7e29405c1441907f5759", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0 || ^8.0" + }, + "require-dev": { + "phpunit/phpunit": "^5.7.23 || ^6.4.3 || ^7.0", + "symfony/process": "^3.3" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + }, + { + "name": "SpacePossum" + } + ], + "description": "sebastian/diff v2 backport support for PHP5.6", + "homepage": "https://github.com/PHP-CS-Fixer", + "keywords": [ + "diff" + ], + "support": { + "issues": "https://github.com/PHP-CS-Fixer/diff/issues", + "source": "https://github.com/PHP-CS-Fixer/diff/tree/v1.3.1" + }, + "abandoned": true, + "time": "2020-10-14T08:39:05+00:00" + }, { "name": "phpcompatibility/php-compatibility", "version": "9.3.5", @@ -2462,18 +3050,215 @@ ], "time": "2024-03-17T23:44:50+00:00" }, + { + "name": "psr/cache", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/cache.git", + "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8", + "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Cache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for caching libraries", + "keywords": [ + "cache", + "psr", + "psr-6" + ], + "support": { + "source": "https://github.com/php-fig/cache/tree/master" + }, + "time": "2016-08-06T20:24:11+00:00" + }, + { + "name": "psr/container", + "version": "1.1.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf", + "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf", + "shasum": "" + }, + "require": { + "php": ">=7.2.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "support": { + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/1.1.1" + }, + "time": "2021-03-05T17:36:06+00:00" + }, + { + "name": "psr/event-dispatcher", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/event-dispatcher.git", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0", + "shasum": "" + }, + "require": { + "php": ">=7.2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\EventDispatcher\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Standard interfaces for event handling.", + "keywords": [ + "events", + "psr", + "psr-14" + ], + "support": { + "issues": "https://github.com/php-fig/event-dispatcher/issues", + "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0" + }, + "time": "2019-01-08T18:20:26+00:00" + }, + { + "name": "psr/log", + "version": "1.1.4", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "d49695b909c3b7628b6289db5479a1c204601f11" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11", + "reference": "d49695b909c3b7628b6289db5479a1c204601f11", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "Psr/Log/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "support": { + "source": "https://github.com/php-fig/log/tree/1.1.4" + }, + "time": "2021-05-03T11:20:27+00:00" + }, { "name": "roave/security-advisories", "version": "dev-latest", "source": { "type": "git", "url": "https://github.com/Roave/SecurityAdvisories.git", - "reference": "a93bfa3d635bfaf71fa8c459a6df6278c5cdb9e8" + "reference": "a2c33d8cc3719997b91b628eec3570d725cebf7e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/a93bfa3d635bfaf71fa8c459a6df6278c5cdb9e8", - "reference": "a93bfa3d635bfaf71fa8c459a6df6278c5cdb9e8", + "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/a2c33d8cc3719997b91b628eec3570d725cebf7e", + "reference": "a2c33d8cc3719997b91b628eec3570d725cebf7e", "shasum": "" }, "conflict": { @@ -2527,7 +3312,7 @@ "bolt/bolt": "<3.7.2", "bolt/core": "<=4.2", "bottelet/flarepoint": "<2.2.1", - "bref/bref": "<2.1.13", + "bref/bref": "<2.1.17", "brightlocal/phpwhois": "<=4.2.5", "brotkrueml/codehighlight": "<2.7", "brotkrueml/schema": "<1.13.1|>=2,<2.5.1", @@ -2619,7 +3404,7 @@ "ezsystems/ezplatform-admin-ui": ">=1.3,<1.3.5|>=1.4,<1.4.6|>=1.5,<1.5.29|>=2.3,<2.3.26", "ezsystems/ezplatform-admin-ui-assets": ">=4,<4.2.1|>=5,<5.0.1|>=5.1,<5.1.1", "ezsystems/ezplatform-graphql": ">=1.0.0.0-RC1-dev,<1.0.13|>=2.0.0.0-beta1,<2.3.12", - "ezsystems/ezplatform-kernel": "<1.2.5.1-dev|>=1.3,<1.3.34", + "ezsystems/ezplatform-kernel": "<1.2.5.1-dev|>=1.3,<1.3.35", "ezsystems/ezplatform-rest": ">=1.2,<=1.2.2|>=1.3,<1.3.8", "ezsystems/ezplatform-richtext": ">=2.3,<2.3.7.1-dev", "ezsystems/ezplatform-solr-search-engine": ">=1.7,<1.7.12|>=2,<2.0.2|>=3.3,<3.3.15", @@ -2656,16 +3441,16 @@ "friendsofsymfony/oauth2-php": "<1.3", "friendsofsymfony/rest-bundle": ">=1.2,<1.2.2", "friendsofsymfony/user-bundle": ">=1.2,<1.3.5", - "friendsofsymfony1/symfony1": ">=1.3,<1.5.13", + "friendsofsymfony1/symfony1": ">=1.1,<1.5.19", "friendsoftypo3/mediace": ">=7.6.2,<7.6.5", "friendsoftypo3/openid": ">=4.5,<4.5.31|>=4.7,<4.7.16|>=6,<6.0.11|>=6.1,<6.1.6", - "froala/wysiwyg-editor": "<3.2.7|>=4.0.1,<=4.1.1", + "froala/wysiwyg-editor": "<3.2.7|>=4.0.1,<=4.1.3", "froxlor/froxlor": "<=2.1.1", "fuel/core": "<1.8.1", "funadmin/funadmin": "<=3.2|>=3.3.2,<=3.3.3", "gaoming13/wechat-php-sdk": "<=1.10.2", "genix/cms": "<=1.1.11", - "getgrav/grav": "<1.7.44", + "getgrav/grav": "<1.7.45", "getkirby/cms": "<4.1.1", "getkirby/kirby": "<=2.5.12", "getkirby/panel": "<2.5.14", @@ -2693,7 +3478,7 @@ "httpsoft/http-message": "<1.0.12", "hyn/multi-tenant": ">=5.6,<5.7.2", "ibexa/admin-ui": ">=4.2,<4.2.3", - "ibexa/core": ">=4,<4.0.7|>=4.1,<4.1.4|>=4.2,<4.2.3|>=4.5,<4.5.4", + "ibexa/core": ">=4,<4.0.7|>=4.1,<4.1.4|>=4.2,<4.2.3|>=4.5,<4.5.6|>=4.6,<4.6.2", "ibexa/graphql": ">=2.5,<2.5.31|>=3.3,<3.3.28|>=4.2,<4.2.3", "ibexa/post-install": "<=1.0.4", "ibexa/solr": ">=4.5,<4.5.4", @@ -2720,6 +3505,7 @@ "james-heinrich/phpthumb": "<1.7.12", "jasig/phpcas": "<1.3.3", "jcbrand/converse.js": "<3.3.3", + "johnbillion/wp-crontrol": "<1.16.2", "joomla/application": "<1.0.13", "joomla/archive": "<1.1.12|>=2,<2.0.1", "joomla/filesystem": "<1.6.2|>=2,<2.0.1", @@ -2761,7 +3547,7 @@ "liftkit/database": "<2.13.2", "limesurvey/limesurvey": "<3.27.19", "livehelperchat/livehelperchat": "<=3.91", - "livewire/livewire": ">2.2.4,<2.2.6", + "livewire/livewire": ">2.2.4,<2.2.6|>=3.3.5,<3.4.9", "lms/routes": "<2.1.1", "localizationteam/l10nmgr": "<7.4|>=8,<8.7|>=9,<9.2", "luyadev/yii-helpers": "<1.2.1", @@ -2796,7 +3582,7 @@ "mojo42/jirafeau": "<4.4", "mongodb/mongodb": ">=1,<1.9.2", "monolog/monolog": ">=1.8,<1.12", - "moodle/moodle": "<4.3.3", + "moodle/moodle": "<=4.3.3", "mos/cimage": "<0.7.19", "movim/moxl": ">=0.8,<=0.10", "mpdf/mpdf": "<=7.1.7", @@ -2841,8 +3627,8 @@ "oro/commerce": ">=4.1,<5.0.11|>=5.1,<5.1.1", "oro/crm": ">=1.7,<1.7.4|>=3.1,<4.1.17|>=4.2,<4.2.7", "oro/crm-call-bundle": ">=4.2,<=4.2.5|>=5,<5.0.4|>=5.1,<5.1.1", - "oro/customer-portal": ">=4.2,<=4.2.8|>=5,<5.0.11|>=5.1,<5.1.1", - "oro/platform": ">=1.7,<1.7.4|>=3.1,<3.1.29|>=4.1,<4.1.17|>=4.2,<=4.2.10|>=5,<5.0.8", + "oro/customer-portal": ">=4.1,<=4.1.13|>=4.2,<=4.2.10|>=5,<=5.0.11|>=5.1,<=5.1.3", + "oro/platform": ">=1.7,<1.7.4|>=3.1,<3.1.29|>=4.1,<4.1.17|>=4.2,<=4.2.10|>=5,<=5.0.12|>=5.1,<=5.1.3", "oxid-esales/oxideshop-ce": "<4.5", "packbackbooks/lti-1-3-php-library": "<5", "padraic/humbug_get_contents": "<1.1.2", @@ -2866,7 +3652,7 @@ "phpmailer/phpmailer": "<6.5", "phpmussel/phpmussel": ">=1,<1.6", "phpmyadmin/phpmyadmin": "<5.2.1", - "phpmyfaq/phpmyfaq": "<3.2.5", + "phpmyfaq/phpmyfaq": "<3.2.5|==3.2.5", "phpoffice/phpexcel": "<1.8", "phpoffice/phpspreadsheet": "<1.16", "phpseclib/phpseclib": "<2.0.47|>=3,<3.0.36", @@ -2883,7 +3669,7 @@ "pimcore/demo": "<10.3", "pimcore/ecommerce-framework-bundle": "<1.0.10", "pimcore/perspective-editor": "<1.5.1", - "pimcore/pimcore": "<11.1.1", + "pimcore/pimcore": "<11.1.6.1-dev|>=11.2,<11.2.2", "pixelfed/pixelfed": "<0.11.11", "plotly/plotly.js": "<2.25.2", "pocketmine/bedrock-protocol": "<8.0.2", @@ -3049,7 +3835,7 @@ "thinkcmf/thinkcmf": "<=5.1.7", "thorsten/phpmyfaq": "<3.2.2", "tikiwiki/tiki-manager": "<=17.1", - "tinymce/tinymce": "<5.10.9|>=6,<6.7.3", + "tinymce/tinymce": "<7", "tinymighty/wiki-seo": "<1.2.2", "titon/framework": "<9.9.99", "tobiasbg/tablepress": "<=2.0.0.0-RC1", @@ -3166,140 +3952,1351 @@ "zfr/zfr-oauth2-server-module": "<0.1.2", "zoujingli/thinkadmin": "<=6.1.53" }, - "default-branch": true, - "type": "metapackage", + "default-branch": true, + "type": "metapackage", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "role": "maintainer" + }, + { + "name": "Ilya Tribusean", + "email": "slash3b@gmail.com", + "role": "maintainer" + } + ], + "description": "Prevents installation of composer packages with known security vulnerabilities: no API, simply require it", + "keywords": [ + "dev" + ], + "support": { + "issues": "https://github.com/Roave/SecurityAdvisories/issues", + "source": "https://github.com/Roave/SecurityAdvisories/tree/latest" + }, + "funding": [ + { + "url": "https://github.com/Ocramius", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/roave/security-advisories", + "type": "tidelift" + } + ], + "time": "2024-03-26T22:04:37+00:00" + }, + { + "name": "squizlabs/php_codesniffer", + "version": "3.9.0", + "source": { + "type": "git", + "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", + "reference": "d63cee4890a8afaf86a22e51ad4d97c91dd4579b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/d63cee4890a8afaf86a22e51ad4d97c91dd4579b", + "reference": "d63cee4890a8afaf86a22e51ad4d97c91dd4579b", + "shasum": "" + }, + "require": { + "ext-simplexml": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": ">=5.4.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.3.4" + }, + "bin": [ + "bin/phpcbf", + "bin/phpcs" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Greg Sherwood", + "role": "Former lead" + }, + { + "name": "Juliette Reinders Folmer", + "role": "Current lead" + }, + { + "name": "Contributors", + "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer/graphs/contributors" + } + ], + "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", + "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer", + "keywords": [ + "phpcs", + "standards", + "static analysis" + ], + "support": { + "issues": "https://github.com/PHPCSStandards/PHP_CodeSniffer/issues", + "security": "https://github.com/PHPCSStandards/PHP_CodeSniffer/security/policy", + "source": "https://github.com/PHPCSStandards/PHP_CodeSniffer", + "wiki": "https://github.com/PHPCSStandards/PHP_CodeSniffer/wiki" + }, + "funding": [ + { + "url": "https://github.com/PHPCSStandards", + "type": "github" + }, + { + "url": "https://github.com/jrfnl", + "type": "github" + }, + { + "url": "https://opencollective.com/php_codesniffer", + "type": "open_collective" + } + ], + "time": "2024-02-16T15:06:51+00:00" + }, + { + "name": "symfony/console", + "version": "v5.4.36", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "39f75d9d73d0c11952fdcecf4877b4d0f62a8f6e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/39f75d9d73d0c11952fdcecf4877b4d0f62a8f6e", + "reference": "39f75d9d73d0c11952fdcecf4877b4d0f62a8f6e", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php73": "^1.9", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1|^2|^3", + "symfony/string": "^5.1|^6.0" + }, + "conflict": { + "psr/log": ">=3", + "symfony/dependency-injection": "<4.4", + "symfony/dotenv": "<5.1", + "symfony/event-dispatcher": "<4.4", + "symfony/lock": "<4.4", + "symfony/process": "<4.4" + }, + "provide": { + "psr/log-implementation": "1.0|2.0" + }, + "require-dev": { + "psr/log": "^1|^2", + "symfony/config": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/event-dispatcher": "^4.4|^5.0|^6.0", + "symfony/lock": "^4.4|^5.0|^6.0", + "symfony/process": "^4.4|^5.0|^6.0", + "symfony/var-dumper": "^4.4|^5.0|^6.0" + }, + "suggest": { + "psr/log": "For using the console logger", + "symfony/event-dispatcher": "", + "symfony/lock": "", + "symfony/process": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Eases the creation of beautiful and testable command line interfaces", + "homepage": "https://symfony.com", + "keywords": [ + "cli", + "command-line", + "console", + "terminal" + ], + "support": { + "source": "https://github.com/symfony/console/tree/v5.4.36" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-02-20T16:33:57+00:00" + }, + { + "name": "symfony/deprecation-contracts", + "version": "v2.5.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/e8b495ea28c1d97b5e0c121748d6f9b53d075c66", + "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "files": [ + "function.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-01-02T09:53:40+00:00" + }, + { + "name": "symfony/event-dispatcher", + "version": "v5.4.35", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "7a69a85c7ea5bdd1e875806a99c51a87d3a74b38" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/7a69a85c7ea5bdd1e875806a99c51a87d3a74b38", + "reference": "7a69a85c7ea5bdd1e875806a99c51a87d3a74b38", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/event-dispatcher-contracts": "^2|^3", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "symfony/dependency-injection": "<4.4" + }, + "provide": { + "psr/event-dispatcher-implementation": "1.0", + "symfony/event-dispatcher-implementation": "2.0" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/error-handler": "^4.4|^5.0|^6.0", + "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/http-foundation": "^4.4|^5.0|^6.0", + "symfony/service-contracts": "^1.1|^2|^3", + "symfony/stopwatch": "^4.4|^5.0|^6.0" + }, + "suggest": { + "symfony/dependency-injection": "", + "symfony/http-kernel": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\EventDispatcher\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/event-dispatcher/tree/v5.4.35" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-01-23T13:51:25+00:00" + }, + { + "name": "symfony/event-dispatcher-contracts", + "version": "v2.5.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher-contracts.git", + "reference": "f98b54df6ad059855739db6fcbc2d36995283fe1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/f98b54df6ad059855739db6fcbc2d36995283fe1", + "reference": "f98b54df6ad059855739db6fcbc2d36995283fe1", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "psr/event-dispatcher": "^1" + }, + "suggest": { + "symfony/event-dispatcher-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\EventDispatcher\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to dispatching event", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.5.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-01-02T09:53:40+00:00" + }, + { + "name": "symfony/filesystem", + "version": "v5.4.35", + "source": { + "type": "git", + "url": "https://github.com/symfony/filesystem.git", + "reference": "5a553607d4ffbfa9c0ab62facadea296c9db7086" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/5a553607d4ffbfa9c0ab62facadea296c9db7086", + "reference": "5a553607d4ffbfa9c0ab62facadea296c9db7086", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.8", + "symfony/polyfill-php80": "^1.16" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Filesystem\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides basic utilities for the filesystem", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/filesystem/tree/v5.4.35" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-01-23T13:51:25+00:00" + }, + { + "name": "symfony/finder", + "version": "v5.4.35", + "source": { + "type": "git", + "url": "https://github.com/symfony/finder.git", + "reference": "abe6d6f77d9465fed3cd2d029b29d03b56b56435" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/finder/zipball/abe6d6f77d9465fed3cd2d029b29d03b56b56435", + "reference": "abe6d6f77d9465fed3cd2d029b29d03b56b56435", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-php80": "^1.16" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Finder\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Finds files and directories via an intuitive fluent interface", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/finder/tree/v5.4.35" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-01-23T13:51:25+00:00" + }, + { + "name": "symfony/options-resolver", + "version": "v5.4.21", + "source": { + "type": "git", + "url": "https://github.com/symfony/options-resolver.git", + "reference": "4fe5cf6ede71096839f0e4b4444d65dd3a7c1eb9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/4fe5cf6ede71096839f0e4b4444d65dd3a7c1eb9", + "reference": "4fe5cf6ede71096839f0e4b4444d65dd3a7c1eb9", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-php73": "~1.0", + "symfony/polyfill-php80": "^1.16" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\OptionsResolver\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an improved replacement for the array_replace PHP function", + "homepage": "https://symfony.com", + "keywords": [ + "config", + "configuration", + "options" + ], + "support": { + "source": "https://github.com/symfony/options-resolver/tree/v5.4.21" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-02-14T08:03:56+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.29.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ef4d7e442ca910c4764bce785146269b30cb5fc4", + "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-ctype": "*" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "support": { + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.29.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-01-29T20:11:03+00:00" + }, + { + "name": "symfony/polyfill-intl-grapheme", + "version": "v1.29.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-grapheme.git", + "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/32a9da87d7b3245e09ac426c83d334ae9f06f80f", + "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Grapheme\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's grapheme_* functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "grapheme", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.29.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-01-29T20:11:03+00:00" + }, + { + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.29.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "bc45c394692b948b4d383a08d7753968bed9a83d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/bc45c394692b948b4d383a08d7753968bed9a83d", + "reference": "bc45c394692b948b4d383a08d7753968bed9a83d", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's Normalizer class and related functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "intl", + "normalizer", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.29.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-01-29T20:11:03+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.29.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9773676c8a1bb1f8d4340a62efe641cf76eda7ec", + "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-mbstring": "*" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.29.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-01-29T20:11:03+00:00" + }, + { + "name": "symfony/polyfill-php70", + "version": "v1.20.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php70.git", + "reference": "5f03a781d984aae42cebd18e7912fa80f02ee644" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/5f03a781d984aae42cebd18e7912fa80f02ee644", + "reference": "5f03a781d984aae42cebd18e7912fa80f02ee644", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "metapackage", + "extra": { + "branch-alias": { + "dev-main": "1.20-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php70/tree/v1.20.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-10-23T14:02:19+00:00" + }, + { + "name": "symfony/polyfill-php72", + "version": "v1.29.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php72.git", + "reference": "861391a8da9a04cbad2d232ddd9e4893220d6e25" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/861391a8da9a04cbad2d232ddd9e4893220d6e25", + "reference": "861391a8da9a04cbad2d232ddd9e4893220d6e25", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php72\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php72/tree/v1.29.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-01-29T20:11:03+00:00" + }, + { + "name": "symfony/polyfill-php73", + "version": "v1.29.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php73.git", + "reference": "21bd091060673a1177ae842c0ef8fe30893114d2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/21bd091060673a1177ae842c0ef8fe30893114d2", + "reference": "21bd091060673a1177ae842c0ef8fe30893114d2", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php73\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "role": "maintainer" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" }, { - "name": "Ilya Tribusean", - "email": "slash3b@gmail.com", - "role": "maintainer" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Prevents installation of composer packages with known security vulnerabilities: no API, simply require it", + "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", + "homepage": "https://symfony.com", "keywords": [ - "dev" + "compatibility", + "polyfill", + "portable", + "shim" ], "support": { - "issues": "https://github.com/Roave/SecurityAdvisories/issues", - "source": "https://github.com/Roave/SecurityAdvisories/tree/latest" + "source": "https://github.com/symfony/polyfill-php73/tree/v1.29.0" }, "funding": [ { - "url": "https://github.com/Ocramius", + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", "type": "github" }, { - "url": "https://tidelift.com/funding/github/packagist/roave/security-advisories", + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-03-18T21:04:52+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { - "name": "squizlabs/php_codesniffer", - "version": "3.9.0", + "name": "symfony/polyfill-php80", + "version": "v1.29.0", "source": { "type": "git", - "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", - "reference": "d63cee4890a8afaf86a22e51ad4d97c91dd4579b" + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/d63cee4890a8afaf86a22e51ad4d97c91dd4579b", - "reference": "d63cee4890a8afaf86a22e51ad4d97c91dd4579b", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/87b68208d5c1188808dd7839ee1e6c8ec3b02f1b", + "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b", "shasum": "" }, "require": { - "ext-simplexml": "*", - "ext-tokenizer": "*", - "ext-xmlwriter": "*", - "php": ">=5.4.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.3.4" + "php": ">=7.1" }, - "bin": [ - "bin/phpcbf", - "bin/phpcs" - ], "type": "library", "extra": { - "branch-alias": { - "dev-master": "3.x-dev" + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Greg Sherwood", - "role": "Former lead" + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" }, { - "name": "Juliette Reinders Folmer", - "role": "Current lead" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" }, { - "name": "Contributors", - "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer/graphs/contributors" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", - "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer", + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "homepage": "https://symfony.com", "keywords": [ - "phpcs", - "standards", - "static analysis" + "compatibility", + "polyfill", + "portable", + "shim" ], "support": { - "issues": "https://github.com/PHPCSStandards/PHP_CodeSniffer/issues", - "security": "https://github.com/PHPCSStandards/PHP_CodeSniffer/security/policy", - "source": "https://github.com/PHPCSStandards/PHP_CodeSniffer", - "wiki": "https://github.com/PHPCSStandards/PHP_CodeSniffer/wiki" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.29.0" }, "funding": [ { - "url": "https://github.com/PHPCSStandards", + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", "type": "github" }, { - "url": "https://github.com/jrfnl", + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-01-29T20:11:03+00:00" + }, + { + "name": "symfony/process", + "version": "v5.4.36", + "source": { + "type": "git", + "url": "https://github.com/symfony/process.git", + "reference": "4fdf34004f149cc20b2f51d7d119aa500caad975" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/process/zipball/4fdf34004f149cc20b2f51d7d119aa500caad975", + "reference": "4fdf34004f149cc20b2f51d7d119aa500caad975", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-php80": "^1.16" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Process\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Executes commands in sub-processes", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/process/tree/v5.4.36" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", "type": "github" }, { - "url": "https://opencollective.com/php_codesniffer", - "type": "open_collective" + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" } ], - "time": "2024-02-16T15:06:51+00:00" + "time": "2024-02-12T15:49:53+00:00" }, { - "name": "symfony/deprecation-contracts", + "name": "symfony/service-contracts", "version": "v2.5.2", "source": { "type": "git", - "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66" + "url": "https://github.com/symfony/service-contracts.git", + "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/e8b495ea28c1d97b5e0c121748d6f9b53d075c66", - "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/4b426aac47d6427cc1a1d0f7e2ac724627f5966c", + "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2.5", + "psr/container": "^1.1", + "symfony/deprecation-contracts": "^2.1|^3" + }, + "conflict": { + "ext-psr": "<1.1|>=2" + }, + "suggest": { + "symfony/service-implementation": "" }, "type": "library", "extra": { @@ -3312,9 +5309,9 @@ } }, "autoload": { - "files": [ - "function.php" - ] + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3330,10 +5327,18 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "A generic function and convention to trigger deprecation notices", + "description": "Generic abstractions related to writing services", "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.2" + "source": "https://github.com/symfony/service-contracts/tree/v2.5.2" }, "funding": [ { @@ -3349,31 +5354,30 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:53:40+00:00" + "time": "2022-05-30T19:17:29+00:00" }, { - "name": "symfony/finder", + "name": "symfony/stopwatch", "version": "v5.4.35", "source": { "type": "git", - "url": "https://github.com/symfony/finder.git", - "reference": "abe6d6f77d9465fed3cd2d029b29d03b56b56435" + "url": "https://github.com/symfony/stopwatch.git", + "reference": "887762aa99ff16f65dc8b48aafead415f942d407" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/abe6d6f77d9465fed3cd2d029b29d03b56b56435", - "reference": "abe6d6f77d9465fed3cd2d029b29d03b56b56435", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/887762aa99ff16f65dc8b48aafead415f942d407", + "reference": "887762aa99ff16f65dc8b48aafead415f942d407", "shasum": "" }, "require": { "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/polyfill-php80": "^1.16" + "symfony/service-contracts": "^1|^2|^3" }, "type": "library", "autoload": { "psr-4": { - "Symfony\\Component\\Finder\\": "" + "Symfony\\Component\\Stopwatch\\": "" }, "exclude-from-classmap": [ "/Tests/" @@ -3393,10 +5397,10 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Finds files and directories via an intuitive fluent interface", + "description": "Provides a way to profile code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v5.4.35" + "source": "https://github.com/symfony/stopwatch/tree/v5.4.35" }, "funding": [ { @@ -3415,38 +5419,46 @@ "time": "2024-01-23T13:51:25+00:00" }, { - "name": "symfony/polyfill-php80", - "version": "v1.29.0", + "name": "symfony/string", + "version": "v5.4.36", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b" + "url": "https://github.com/symfony/string.git", + "reference": "4e232c83622bd8cd32b794216aa29d0d266d353b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/87b68208d5c1188808dd7839ee1e6c8ec3b02f1b", - "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b", + "url": "https://api.github.com/repos/symfony/string/zipball/4e232c83622bd8cd32b794216aa29d0d266d353b", + "reference": "4e232c83622bd8cd32b794216aa29d0d266d353b", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2.5", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-intl-grapheme": "~1.0", + "symfony/polyfill-intl-normalizer": "~1.0", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "~1.15" }, - "type": "library", - "extra": { - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } + "conflict": { + "symfony/translation-contracts": ">=3.0" + }, + "require-dev": { + "symfony/error-handler": "^4.4|^5.0|^6.0", + "symfony/http-client": "^4.4|^5.0|^6.0", + "symfony/translation-contracts": "^1.1|^2", + "symfony/var-exporter": "^4.4|^5.0|^6.0" }, + "type": "library", "autoload": { "files": [ - "bootstrap.php" + "Resources/functions.php" ], "psr-4": { - "Symfony\\Polyfill\\Php80\\": "" + "Symfony\\Component\\String\\": "" }, - "classmap": [ - "Resources/stubs" + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -3454,10 +5466,6 @@ "MIT" ], "authors": [ - { - "name": "Ion Bazan", - "email": "ion.bazan@gmail.com" - }, { "name": "Nicolas Grekas", "email": "p@tchwork.com" @@ -3467,16 +5475,18 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", "homepage": "https://symfony.com", "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" + "grapheme", + "i18n", + "string", + "unicode", + "utf-8", + "utf8" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.29.0" + "source": "https://github.com/symfony/string/tree/v5.4.36" }, "funding": [ { @@ -3492,7 +5502,7 @@ "type": "tidelift" } ], - "time": "2024-01-29T20:11:03+00:00" + "time": "2024-02-01T08:49:30+00:00" }, { "name": "wp-cli/i18n-command", @@ -3749,16 +5759,16 @@ }, { "name": "wp-coding-standards/wpcs", - "version": "3.0.1", + "version": "3.1.0", "source": { "type": "git", "url": "https://github.com/WordPress/WordPress-Coding-Standards.git", - "reference": "b4caf9689f1a0e4a4c632679a44e638c1c67aff1" + "reference": "9333efcbff231f10dfd9c56bb7b65818b4733ca7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/WordPress/WordPress-Coding-Standards/zipball/b4caf9689f1a0e4a4c632679a44e638c1c67aff1", - "reference": "b4caf9689f1a0e4a4c632679a44e638c1c67aff1", + "url": "https://api.github.com/repos/WordPress/WordPress-Coding-Standards/zipball/9333efcbff231f10dfd9c56bb7b65818b4733ca7", + "reference": "9333efcbff231f10dfd9c56bb7b65818b4733ca7", "shasum": "" }, "require": { @@ -3767,16 +5777,16 @@ "ext-tokenizer": "*", "ext-xmlreader": "*", "php": ">=5.4", - "phpcsstandards/phpcsextra": "^1.1.0", - "phpcsstandards/phpcsutils": "^1.0.8", - "squizlabs/php_codesniffer": "^3.7.2" + "phpcsstandards/phpcsextra": "^1.2.1", + "phpcsstandards/phpcsutils": "^1.0.10", + "squizlabs/php_codesniffer": "^3.9.0" }, "require-dev": { "php-parallel-lint/php-console-highlighter": "^1.0.0", "php-parallel-lint/php-parallel-lint": "^1.3.2", "phpcompatibility/php-compatibility": "^9.0", "phpcsstandards/phpcsdevtools": "^1.2.0", - "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" + "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0" }, "suggest": { "ext-iconv": "For improved results", @@ -3807,11 +5817,11 @@ }, "funding": [ { - "url": "https://opencollective.com/thewpcc/contribute/wp-php-63406", + "url": "https://opencollective.com/php_codesniffer", "type": "custom" } ], - "time": "2023-09-14T07:06:09+00:00" + "time": "2024-03-25T16:39:00+00:00" }, { "name": "wp-phpunit/wp-phpunit", @@ -3865,7 +5875,10 @@ "aliases": [], "minimum-stability": "stable", "stability-flags": { - "roave/security-advisories": 20 + "dealerdirect/phpcodesniffer-composer-installer": 0, + "phpcompatibility/phpcompatibility-wp": 0, + "roave/security-advisories": 20, + "squizlabs/php_codesniffer": 0 }, "prefer-stable": false, "prefer-lowest": false, diff --git a/jsconfig.json b/jsconfig.json new file mode 100644 index 000000000..454f1a6f2 --- /dev/null +++ b/jsconfig.json @@ -0,0 +1,9 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es6" + }, + "exclude": [ + "node_modules" + ] + } diff --git a/package-lock.json b/package-lock.json index 77dac967c..bf536a053 100644 --- a/package-lock.json +++ b/package-lock.json @@ -35,6 +35,7 @@ "@wordpress/env": "^9.5.0", "@wordpress/eslint-plugin": "^17.10.0", "@wordpress/scripts": "^27.4.0", + "concurrently": "8.2.2", "cypress": "^13.7.0", "cypress-axe": "^1.5.0", "eslint-import-resolver-alias": "^1.1.2", @@ -8690,6 +8691,57 @@ "typedarray": "^0.0.6" } }, + "node_modules/concurrently": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-8.2.2.tgz", + "integrity": "sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.2", + "date-fns": "^2.30.0", + "lodash": "^4.17.21", + "rxjs": "^7.8.1", + "shell-quote": "^1.8.1", + "spawn-command": "0.0.2", + "supports-color": "^8.1.1", + "tree-kill": "^1.2.2", + "yargs": "^17.7.2" + }, + "bin": { + "conc": "dist/bin/concurrently.js", + "concurrently": "dist/bin/concurrently.js" + }, + "engines": { + "node": "^14.13.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/open-cli-tools/concurrently?sponsor=1" + } + }, + "node_modules/concurrently/node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/concurrently/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, "node_modules/configstore": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", @@ -9469,6 +9521,22 @@ "node": ">=12" } }, + "node_modules/date-fns": { + "version": "2.30.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", + "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.21.0" + }, + "engines": { + "node": ">=0.11" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/date-fns" + } + }, "node_modules/dayjs": { "version": "1.11.10", "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", @@ -20664,6 +20732,12 @@ "node": ">=0.10.0" } }, + "node_modules/spawn-command": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2.tgz", + "integrity": "sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==", + "dev": true + }, "node_modules/spawnd": { "version": "9.0.2", "resolved": "https://registry.npmjs.org/spawnd/-/spawnd-9.0.2.tgz", diff --git a/package.json b/package.json index 8c36f259f..6e3646c04 100644 --- a/package.json +++ b/package.json @@ -58,6 +58,7 @@ "@wordpress/env": "^9.5.0", "@wordpress/eslint-plugin": "^17.10.0", "@wordpress/scripts": "^27.4.0", + "concurrently": "8.2.2", "cypress": "^13.7.0", "cypress-axe": "^1.5.0", "eslint-import-resolver-alias": "^1.1.2", @@ -77,8 +78,11 @@ "lint:css": "wp-scripts lint-style '**/*.css'", "lint:js": "wp-scripts lint-js ./src", "lint:js:fix": "wp-scripts lint-js ./src --fix", + "lint:php": "composer run lint", + "lint:php:fix": "composer run fix", "lint:pkg-json": "wp-scripts lint-pkg-json", "lint:yml": "yamllint --ignore=node_modules/** --ignore=vendor/** **/*.yml", + "lint": "concurrently \"npm:lint:*(!:fix)\"", "log:watch": "wp-env run wordpress 'tail -f /var/www/html/wp-content/debug.log'", "php-deps": "composer install --no-dev --optimize-autoloader", "postprepare": "npm run set-wp-version", @@ -91,6 +95,7 @@ "storybook:dev": "start-storybook -c ./storybook", "storybook:build": "build-storybook -c ./storybook -o ./.docs", "test:e2e": "npx cypress run", - "test:unit": "wp-scripts test-unit-js" + "test:unit": "wp-scripts test-unit-js", + "test": "concurrently \"npm:test:*\"" } } From f149e0fd61bba03e0f01b07075298d832a62787f Mon Sep 17 00:00:00 2001 From: Brad Parbs Date: Tue, 2 Apr 2024 11:14:23 -0500 Subject: [PATCH 02/13] Automatic code cleanup --- bluehost-wordpress-plugin.php | 6 +-- bootstrap.php | 28 +++++++------- composer.json | 2 +- inc/Admin.php | 60 +++++++++++++++--------------- inc/Data.php | 8 ++-- inc/LoginRedirect.php | 10 ++--- inc/RestApi/CachingController.php | 14 +++---- inc/RestApi/SettingsController.php | 26 ++++++------- inc/RestApi/rest-api.php | 4 +- inc/YoastAI.php | 6 +-- inc/base.php | 6 +-- inc/jetpack.php | 4 +- inc/plugin-nfd-compat-check.php | 22 +++++------ inc/plugin-php-compat-check.php | 10 ++--- inc/updates.php | 6 +-- inc/upgrades/3.3.3.php | 2 +- 16 files changed, 107 insertions(+), 107 deletions(-) diff --git a/bluehost-wordpress-plugin.php b/bluehost-wordpress-plugin.php index a0cf88d9e..bf4a5012f 100644 --- a/bluehost-wordpress-plugin.php +++ b/bluehost-wordpress-plugin.php @@ -69,15 +69,15 @@ require_once BLUEHOST_PLUGIN_DIR . '/inc/plugin-nfd-compat-check.php'; $nfd_plugins_check = new NFD_Plugin_Compat_Check( BLUEHOST_PLUGIN_FILE ); // Defer to Incompatible plugin, self-deactivate -$nfd_plugins_check->incompatible_plugins = array(); +$nfd_plugins_check->incompatible_plugins = []; // Deactivate legacy plugin -$nfd_plugins_check->legacy_plugins = array( +$nfd_plugins_check->legacy_plugins = [ 'The MOJO Marketplace' => 'mojo-marketplace-wp-plugin/mojo-marketplace.php', 'The MOJO Plugin' => 'wp-plugin-mojo/wp-plugin-mojo.php', 'The HostGator Plugin' => 'wp-plugin-hostgator/wp-plugin-hostgator.php', 'The Web.com Plugin' => 'wp-plugin-web/wp-plugin-web.php', 'The Crazy Domains Plugin' => 'wp-plugin-web/wp-plugin-crazy-domains.php', -); +]; // Check plugin requirements $pass_nfd_check = $nfd_plugins_check->check_plugin_requirements(); diff --git a/bootstrap.php b/bootstrap.php index 962ac77f1..bf3df3d13 100644 --- a/bootstrap.php +++ b/bootstrap.php @@ -47,12 +47,12 @@ function () { $bluehost_module_container->service( function () { return new Plugin( - array( + [ 'id' => 'bluehost', 'file' => BLUEHOST_PLUGIN_FILE, 'brand' => get_option( 'mm_brand', 'bluehost' ), 'install_date' => get_option( 'bluehost_plugin_install_date' ), - ) + ] ); } ) @@ -65,13 +65,13 @@ function () { global $bluehost_module_container; // Performance default settings - $cache_types = array( 'browser', 'skip404' ); + $cache_types = [ 'browser', 'skip404' ]; // Marketplace default settings $marketplace_brand = 'bluehost'; // Platform overrides if ( 'atomic' === getContext( 'platform' ) ) { - $cache_types = array(); + $cache_types = []; $marketplace_brand = 'bluehost-cloud'; } @@ -93,7 +93,7 @@ function () { // Set coming soon values $bluehost_module_container->set( 'comingsoon', - array( + [ 'admin_app_url' => admin_url( 'admin.php?page=bluehost#/home' ), 'template_h1' => __( 'Coming Soon!', 'wp-plugin-bluehost' ), 'template_h2' => __( 'A New WordPress Site', 'wp-plugin-bluehost' ), @@ -132,7 +132,7 @@ function () { '' ), 'template_styles' => esc_url( BLUEHOST_PLUGIN_URL . 'assets/styles/coming-soon.css' ), - ) + ] ); setContainer( $bluehost_module_container ); @@ -141,26 +141,26 @@ function () { $updateurl = 'https://hiive.cloud/workers/release-api/plugins/bluehost/bluehost-wordpress-plugin'; // Custom API GET endpoint $pluginUpdater = new PluginUpdater( BLUEHOST_PLUGIN_FILE, $updateurl ); $pluginUpdater->setDataMap( - array( + [ 'version' => 'version.latest', 'download_link' => 'download', 'last_updated' => 'updated', 'requires' => 'requires.wp', 'requires_php' => 'requires.php', 'tested' => 'tested.wp', - ) + ] ); $pluginUpdater->setDataOverrides( - array( - 'banners' => array( + [ + 'banners' => [ '2x' => 'https://cdn.hiive.space/marketplace/vendors-assets/bluehost-banner.svg', '1x' => 'https://cdn.hiive.space/marketplace/vendors-assets/bluehost-banner.svg', - ), - 'icons' => array( + ], + 'icons' => [ '2x' => 'https://cdn.hiive.space/marketplace/vendors-assets/bluehost-icon.svg', '1x' => 'https://cdn.hiive.space/marketplace/vendors-assets/bluehost-icon.svg', - ), - ) + ], + ] ); // Handle any upgrade routines (only in the admin) diff --git a/composer.json b/composer.json index a2579b639..7245bf4af 100644 --- a/composer.json +++ b/composer.json @@ -36,7 +36,7 @@ } }, "scripts": { - "fix:standards": [ + "fix-standards": [ "./vendor/bin/phpcbf --standard=./.phpcs.dist.xml .", "PHP_CS_FIXER_IGNORE_ENV=true ./vendor/bin/php-cs-fixer fix -v --diff" ], diff --git a/inc/Admin.php b/inc/Admin.php index 264e80231..0c5cd62b4 100644 --- a/inc/Admin.php +++ b/inc/Admin.php @@ -19,24 +19,24 @@ final class Admin { */ public function __construct() { /* Add Page to WordPress Admin Menu. */ - \add_action( 'admin_menu', array( __CLASS__, 'page' ) ); + \add_action( 'admin_menu', [ __CLASS__, 'page' ] ); /* Load Page Scripts & Styles. */ - \add_action( 'admin_enqueue_scripts', array( __CLASS__, 'assets' ) ); + \add_action( 'admin_enqueue_scripts', [ __CLASS__, 'assets' ] ); /* Load i18 files */ - \add_action( 'init', array( __CLASS__, 'load_text_domain' ), 100 ); + \add_action( 'init', [ __CLASS__, 'load_text_domain' ], 100 ); /* Add Links to WordPress Plugins list item. */ $plugin_basename = defined( 'BLUEHOST_PLUGIN_FILE' ) ? plugin_basename( constant( 'BLUEHOST_PLUGIN_FILE' ) ) : 'bluehost-wordpress-plugin/bluehost-wordpress-plugin.php'; - \add_filter( "plugin_action_links_{$plugin_basename}", array( __CLASS__, 'actions' ) ); + \add_filter( "plugin_action_links_{$plugin_basename}", [ __CLASS__, 'actions' ] ); /* Add inline style to hide subnav link */ - \add_action( 'admin_head', array( __CLASS__, 'admin_nav_style' ) ); + \add_action( 'admin_head', [ __CLASS__, 'admin_nav_style' ] ); - \add_filter( 'newfold-runtime', array( __CLASS__, 'add_to_runtime' ) ); - \add_filter( 'newfold_runtime', array( __CLASS__, 'add_to_runtime' ) ); + \add_filter( 'newfold-runtime', [ __CLASS__, 'add_to_runtime' ] ); + \add_filter( 'newfold_runtime', [ __CLASS__, 'add_to_runtime' ] ); if ( isset( $_GET['page'] ) && strpos( filter_input( INPUT_GET, 'page', FILTER_UNSAFE_RAW ), 'bluehost' ) >= 0 ) { // phpcs:ignore - \add_action( 'admin_footer_text', array( __CLASS__, 'add_brand_to_admin_footer' ) ); + \add_action( 'admin_footer_text', [ __CLASS__, 'add_brand_to_admin_footer' ] ); } } @@ -63,27 +63,27 @@ public static function add_to_runtime( $sdk ) { public static function subpages() { global $bluehost_module_container; - $home = array( + $home = [ 'bluehost#/home' => __( 'Home', 'wp-plugin-bluehost' ), - ); - $store = array( + ]; + $store = [ 'bluehost#/store' => __( 'Store', 'wp-plugin-bluehost' ), - ); - $marketplace = array( + ]; + $marketplace = [ 'bluehost#/marketplace' => __( 'Marketplace', 'wp-plugin-bluehost' ), - ); - $performance = array( + ]; + $performance = [ 'bluehost#/performance' => __( 'Performance', 'wp-plugin-bluehost' ), - ); - $settings = array( + ]; + $settings = [ 'bluehost#/settings' => __( 'Settings', 'wp-plugin-bluehost' ), - ); - $staging = array( + ]; + $staging = [ 'bluehost#/staging' => __( 'Staging', 'wp-plugin-bluehost' ), - ); - $help = array( + ]; + $help = [ 'bluehost#/help' => __( 'Help', 'wp-plugin-bluehost' ), - ); + ]; // wp-cloud adjustments if ( 'atomic' === getContext( 'platform' ) ) { @@ -132,7 +132,7 @@ public static function page() { __( 'Bluehost', 'wp-plugin-bluehost' ), 'manage_options', 'bluehost', - array( __CLASS__, 'render' ), + [ __CLASS__, 'render' ], $bluehost_icon, 0 ); @@ -146,7 +146,7 @@ public static function page() { $title, 'manage_options', $route, - array( __CLASS__, 'render' ) + [ __CLASS__, 'render' ] ); } } @@ -203,7 +203,7 @@ public static function assets( $hook ) { \wp_register_script( 'bluehost-script', BLUEHOST_BUILD_URL . '/index.js', - array_merge( $asset['dependencies'], array( 'nfd-runtime' ) ), + array_merge( $asset['dependencies'], [ 'nfd-runtime' ] ), $asset['version'], true ); @@ -217,7 +217,7 @@ public static function assets( $hook ) { \wp_register_style( 'bluehost-style', BLUEHOST_BUILD_URL . '/index.css', - array( 'wp-components' ), + [ 'wp-components' ], $asset['version'] ); @@ -233,10 +233,10 @@ public static function assets( $hook ) { \wp_localize_script( 'newfold-plugin', 'nfdplugin', - array( + [ 'restApiUrl' => \esc_url_raw( \get_home_url() . '/index.php?rest_route=' ), 'restApiNonce' => \wp_create_nonce( 'wp_rest' ), - ) + ] ); \wp_enqueue_script( 'newfold-plugin' ); } @@ -270,10 +270,10 @@ public static function load_text_domain() { */ public static function actions( $actions ) { return array_merge( - array( + [ 'overview' => '' . __( 'Home', 'wp-plugin-bluehost' ) . '', 'settings' => '' . __( 'Settings', 'wp-plugin-bluehost' ) . '', - ), + ], $actions ); } diff --git a/inc/Data.php b/inc/Data.php index 4f04c9113..e22b9ec4d 100644 --- a/inc/Data.php +++ b/inc/Data.php @@ -21,14 +21,14 @@ final class Data { public static function runtime() { global $bluehost_module_container; - $runtime = array( - 'plugin' => array( + $runtime = [ + 'plugin' => [ 'url' => BLUEHOST_BUILD_URL, 'version' => BLUEHOST_PLUGIN_VERSION, 'assets' => BLUEHOST_PLUGIN_URL . 'assets/', 'brand' => $bluehost_module_container->plugin()->brand, - ), - ); + ], + ]; return $runtime; } diff --git a/inc/LoginRedirect.php b/inc/LoginRedirect.php index 4e27f159b..73df72562 100644 --- a/inc/LoginRedirect.php +++ b/inc/LoginRedirect.php @@ -13,11 +13,11 @@ class LoginRedirect { * Initialize the login redirect functionality. */ public static function init() { - add_action( 'login_redirect', array( __CLASS__, 'on_login_redirect' ), 10, 3 ); - add_action( 'login_init', array( __CLASS__, 'on_login_init' ), 10, 3 ); - add_action( 'admin_init', array( __CLASS__, 'disable_yoast_onboarding_redirect' ), 2 ); - add_filter( 'login_form_defaults', array( __CLASS__, 'filter_login_form_defaults' ) ); - add_filter( 'newfold_sso_success_url_default', array( __CLASS__, 'get_default_redirect_url' ) ); + add_action( 'login_redirect', [ __CLASS__, 'on_login_redirect' ], 10, 3 ); + add_action( 'login_init', [ __CLASS__, 'on_login_init' ], 10, 3 ); + add_action( 'admin_init', [ __CLASS__, 'disable_yoast_onboarding_redirect' ], 2 ); + add_filter( 'login_form_defaults', [ __CLASS__, 'filter_login_form_defaults' ] ); + add_filter( 'newfold_sso_success_url_default', [ __CLASS__, 'get_default_redirect_url' ] ); } /** diff --git a/inc/RestApi/CachingController.php b/inc/RestApi/CachingController.php index 95833e759..cdb1a8b62 100644 --- a/inc/RestApi/CachingController.php +++ b/inc/RestApi/CachingController.php @@ -32,11 +32,11 @@ public function register_routes() { register_rest_route( $this->namespace, '/caching', - array( + [ 'methods' => \WP_REST_Server::DELETABLE, - 'callback' => array( $this, 'purge_all' ), - 'permission_callback' => array( $this, 'check_permission' ), - ) + 'callback' => [ $this, 'purge_all' ], + 'permission_callback' => [ $this, 'check_permission' ], + ] ); } @@ -47,10 +47,10 @@ public function purge_all() { container()->get( 'cachePurger' )->purgeAll(); - return array( + return [ 'status' => 'success', 'message' => 'Cache purged', - ); + ]; } /** @@ -60,7 +60,7 @@ public function purge_all() { */ public function check_permission() { if ( ! current_user_can( 'manage_options' ) ) { - return new \WP_Error( 'rest_forbidden_context', __( 'Sorry, you are not allowed to access this endpoint.', 'wp-plugin-bluehost' ), array( 'status' => rest_authorization_required_code() ) ); + return new \WP_Error( 'rest_forbidden_context', __( 'Sorry, you are not allowed to access this endpoint.', 'wp-plugin-bluehost' ), [ 'status' => rest_authorization_required_code() ] ); } return true; diff --git a/inc/RestApi/SettingsController.php b/inc/RestApi/SettingsController.php index eb5b51f51..a068be803 100644 --- a/inc/RestApi/SettingsController.php +++ b/inc/RestApi/SettingsController.php @@ -24,18 +24,18 @@ public function register_routes() { register_rest_route( $this->namespace, '/settings', - array( - array( + [ + [ 'methods' => \WP_REST_Server::READABLE, - 'callback' => array( $this, 'get_item' ), - 'permission_callback' => array( $this, 'check_permission' ), - ), - array( + 'callback' => [ $this, 'get_item' ], + 'permission_callback' => [ $this, 'check_permission' ], + ], + [ 'methods' => \WP_REST_Server::EDITABLE, - 'callback' => array( $this, 'update_item' ), - 'permission_callback' => array( $this, 'check_permission' ), - ), - ) + 'callback' => [ $this, 'update_item' ], + 'permission_callback' => [ $this, 'check_permission' ], + ], + ] ); } @@ -173,7 +173,7 @@ public function get_current_settings() { $translations = false; } - $settings = array( + $settings = [ 'comingSoon' => container()->get( 'comingSoon' )->is_enabled(), 'autoUpdatesAll' => $major && $plugins && $themes, 'autoUpdatesMajorCore' => $major, @@ -190,7 +190,7 @@ public function get_current_settings() { 'hasSetHomepage' => (bool) get_option( 'bh_has_set_homepage', false ), 'showOnFront' => (string) get_option( 'show_on_front' ), 'pageOnFront' => (int) get_option( 'page_on_front' ), - ); + ]; return $settings; } @@ -202,7 +202,7 @@ public function get_current_settings() { */ public function check_permission() { if ( ! current_user_can( 'manage_options' ) ) { - return new \WP_Error( 'rest_forbidden_context', __( 'Sorry, you are not allowed to access this endpoint.', 'wp-plugin-bluehost' ), array( 'status' => rest_authorization_required_code() ) ); + return new \WP_Error( 'rest_forbidden_context', __( 'Sorry, you are not allowed to access this endpoint.', 'wp-plugin-bluehost' ), [ 'status' => rest_authorization_required_code() ] ); } return true; diff --git a/inc/RestApi/rest-api.php b/inc/RestApi/rest-api.php index 41a7d1073..ea8f58697 100644 --- a/inc/RestApi/rest-api.php +++ b/inc/RestApi/rest-api.php @@ -12,10 +12,10 @@ */ function init_rest_api() { - $controllers = array( + $controllers = [ 'Bluehost\\RestApi\\CachingController', 'Bluehost\\RestApi\\SettingsController', - ); + ]; foreach ( $controllers as $controller ) { /** diff --git a/inc/YoastAI.php b/inc/YoastAI.php index 898f668c3..9ef437ff8 100644 --- a/inc/YoastAI.php +++ b/inc/YoastAI.php @@ -13,15 +13,15 @@ class YoastAI { * Initialize the Yoast AI class. */ public static function init() { - add_action( 'init', array( __CLASS__, 'on_yoast_plugin_activation' ) ); - add_filter( 'http_request_args', array( __CLASS__, 'modify_http_request_args' ), 10, 2 ); + add_action( 'init', [ __CLASS__, 'on_yoast_plugin_activation' ] ); + add_filter( 'http_request_args', [ __CLASS__, 'modify_http_request_args' ], 10, 2 ); } /** * Register Yoast plugin activation hook to enable the Yoast AI generator on new activations. */ public static function on_yoast_plugin_activation() { - register_activation_hook( 'wordpress-seo/wp-seo.php', array( __CLASS__, 'enable_on_new_activations' ) ); + register_activation_hook( 'wordpress-seo/wp-seo.php', [ __CLASS__, 'enable_on_new_activations' ] ); } /** diff --git a/inc/base.php b/inc/base.php index 8fde9ab5f..23fe556ad 100644 --- a/inc/base.php +++ b/inc/base.php @@ -54,14 +54,14 @@ function bluehost_setup() { $install_date = get_option( 'mm_install_date' ); if ( empty( $install_date ) ) { update_option( 'mm_install_date', date( 'M d, Y' ) ); // phpcs:ignore WordPress.DateTime.RestrictedFunctions.date_date - $event = array( + $event = [ 't' => 'event', 'ec' => 'plugin_status', 'ea' => 'installed', 'el' => 'Install date: ' . get_option( 'mm_install_date', date( 'M d, Y' ) ), // phpcs:ignore WordPress.DateTime.RestrictedFunctions.date_date 'keep' => false, - ); - $events = get_option( 'mm_cron', array() ); + ]; + $events = get_option( 'mm_cron', [] ); $events['hourly'][ $event['ea'] ] = $event; update_option( 'mm_cron', $events ); } diff --git a/inc/jetpack.php b/inc/jetpack.php index 4ca228ee5..0fcf9062e 100644 --- a/inc/jetpack.php +++ b/inc/jetpack.php @@ -31,10 +31,10 @@ function customize_jetpack_default_modules( $modules ) { * @return array */ function jetpack_unregister_blocks( $blocks ) { - $blocks_to_deregister = array( + $blocks_to_deregister = [ 'mailchimp', 'revue', - ); + ]; foreach ( $blocks_to_deregister as $block_slug ) { $found = array_search( $block_slug, $blocks, true ); if ( false !== $found ) { diff --git a/inc/plugin-nfd-compat-check.php b/inc/plugin-nfd-compat-check.php index 6f28437da..8fd0b1430 100644 --- a/inc/plugin-nfd-compat-check.php +++ b/inc/plugin-nfd-compat-check.php @@ -51,7 +51,7 @@ class NFD_Plugin_Compat_Check { * * @var array */ - public $incompatible_plugins = array(); + public $incompatible_plugins = []; /** * Newfold legacy plugins @@ -60,7 +60,7 @@ class NFD_Plugin_Compat_Check { * * @var array */ - public $legacy_plugins = array(); + public $legacy_plugins = []; /** * Setup our class properties @@ -72,7 +72,7 @@ public function __construct( $file ) { // require_once ABSPATH . '/wp-includes/option.php'; $this->slug = $this->get_plugin_slug( $file ); $this->name = $this->get_plugin_name( $file ); - $this->conflicts = get_option( 'nfd_plugins_compat_check_conflicts', array() ); + $this->conflicts = get_option( 'nfd_plugins_compat_check_conflicts', [] ); } /** @@ -82,7 +82,7 @@ public function __construct( $file ) { * @return string */ public function get_plugin_name( $file ) { - $plugin = get_file_data( $file, array( 'name' => 'Plugin Name' ) ); + $plugin = get_file_data( $file, [ 'name' => 'Plugin Name' ] ); return isset( $plugin['name'] ) ? $plugin['name'] : ''; } @@ -114,7 +114,7 @@ public function check_plugin_requirements() { // Suppress 'Plugin Activated' notice unset( $_GET['activate'] ); // phpcs:ignore WordPress.Security.NonceVerification.Recommended $this->deactivate(); - add_action( 'admin_notices', array( $this, 'admin_notices' ) ); + add_action( 'admin_notices', [ $this, 'admin_notices' ] ); // Fail check, disable self return false; @@ -129,7 +129,7 @@ public function check_plugin_requirements() { // Suppress 'Plugin Activated' notice unset( $_GET['activate'] ); // phpcs:ignore WordPress.Security.NonceVerification.Recommended $this->deactivate(); - add_action( 'admin_notices', array( $this, 'admin_notices' ) ); + add_action( 'admin_notices', [ $this, 'admin_notices' ] ); // Pass check, but disable other plugin return true; @@ -139,7 +139,7 @@ public function check_plugin_requirements() { // Pre-existing conflict found // and the errors are loaded from option without displaying the notice yet if ( $this->has_errors() ) { - add_action( 'admin_notices', array( $this, 'admin_notices' ) ); + add_action( 'admin_notices', [ $this, 'admin_notices' ] ); } // Pass check, enable self @@ -163,11 +163,11 @@ public function check_incompatible_plugins() { $incompatible_name ) ); - $this->conflicts[] = array( + $this->conflicts[] = [ 'slug' => $this->slug, 'source' => $this->slug, 'error' => $error, - ); + ]; update_option( 'nfd_plugins_compat_check_conflicts', $this->conflicts ); } } @@ -190,11 +190,11 @@ public function check_legacy_plugins() { $this->name ) ); - $this->conflicts[] = array( + $this->conflicts[] = [ 'slug' => $legacy_file, 'source' => $this->slug, 'error' => $error, - ); + ]; update_option( 'nfd_plugins_compat_check_conflicts', $this->conflicts ); } } diff --git a/inc/plugin-php-compat-check.php b/inc/plugin-php-compat-check.php index c1b962819..cf84a76c9 100644 --- a/inc/plugin-php-compat-check.php +++ b/inc/plugin-php-compat-check.php @@ -19,7 +19,7 @@ class Plugin_PHP_Compat_Check { * * @var array */ - public $callbacks = array(); + public $callbacks = []; /** * Collection of errors @@ -61,7 +61,7 @@ class Plugin_PHP_Compat_Check { * * @var array */ - public $req_php_extensions = array(); + public $req_php_extensions = []; /** * Setup our class properties @@ -80,7 +80,7 @@ public function __construct( $file ) { * @return string */ public function get_plugin_name() { - $plugin = get_file_data( $this->file, array( 'name' => 'Plugin Name' ) ); + $plugin = get_file_data( $this->file, [ 'name' => 'Plugin Name' ] ); return isset( $plugin['name'] ) ? $plugin['name'] : ''; } @@ -102,7 +102,7 @@ public function check_plugin_requirements() { if ( ! empty( $this->callbacks ) ) { foreach ( $this->callbacks as $callback ) { if ( is_callable( $callback ) ) { - call_user_func_array( $callback, array( $this ) ); + call_user_func_array( $callback, [ $this ] ); } } } @@ -110,7 +110,7 @@ public function check_plugin_requirements() { // Suppress 'Plugin Activated' notice unset( $_GET['activate'] ); // phpcs:ignore WordPress.Security.NonceVerification.Recommended $this->deactivate(); - add_action( 'admin_notices', array( $this, 'admin_notices' ) ); + add_action( 'admin_notices', [ $this, 'admin_notices' ] ); } } diff --git a/inc/updates.php b/inc/updates.php index a1c5dfa51..5ac6bd708 100644 --- a/inc/updates.php +++ b/inc/updates.php @@ -43,12 +43,12 @@ function auto_update_make_bool( $value, $default = true ) { function auto_update_configure() { global $wp_version; - $settings = array( + $settings = [ 'allow_major_auto_core_updates' => get_option( 'allow_major_auto_core_updates', true ), 'allow_minor_auto_core_updates' => get_option( 'allow_minor_auto_core_updates', true ), 'auto_update_plugin' => get_option( 'auto_update_plugin', true ), 'auto_update_theme' => get_option( 'auto_update_theme', true ), - ); + ]; // only change setting if the updater is not disabled if ( ! defined( 'AUTOMATIC_UPDATER_DISABLED' ) || AUTOMATIC_UPDATER_DISABLED === false ) { @@ -326,7 +326,7 @@ function delete_site_transient_update_themes() { * } */ function upgrader_process_complete( $upgrader, $hook_extra ) { - if ( ! in_array( $hook_extra['type'], array( 'plugin', 'theme' ), true ) ) { + if ( ! in_array( $hook_extra['type'], [ 'plugin', 'theme' ], true ) ) { return; } diff --git a/inc/upgrades/3.3.3.php b/inc/upgrades/3.3.3.php index a7b053ffd..7d6284284 100644 --- a/inc/upgrades/3.3.3.php +++ b/inc/upgrades/3.3.3.php @@ -7,4 +7,4 @@ File::removeRules(); // Purge the file-based cache -( new CachePurgingService( array( new File() ) ) )->purgeAll(); +( new CachePurgingService( [ new File() ] ) )->purgeAll(); From 2c77ad724dcf2d086325bffb70f93ef901e208e4 Mon Sep 17 00:00:00 2001 From: Brad Parbs Date: Wed, 10 Apr 2024 09:13:42 -0500 Subject: [PATCH 03/13] Start code standards cleanup --- bluehost-wordpress-plugin.php | 3 ++- bootstrap.php | 36 +++++++++++++++--------------- inc/Admin.php | 18 +++++---------- inc/Data.php | 2 +- inc/LoginRedirect.php | 2 +- inc/RestApi/CachingController.php | 6 ++--- inc/RestApi/SettingsController.php | 6 ++--- inc/YoastAI.php | 6 ++--- inc/base.php | 9 ++++---- inc/partners.php | 8 +++---- inc/plugin-nfd-compat-check.php | 25 +++++++++++---------- inc/plugin-php-compat-check.php | 30 ++++++++++++------------- inc/settings.php | 7 +++--- inc/updates.php | 7 +++--- inc/upgrades/1.4.3.php | 2 +- inc/upgrades/2.0.php | 2 +- inc/upgrades/2.11.0.php | 2 +- inc/upgrades/2.12.10.php | 2 +- inc/upgrades/2.12.7.php | 2 +- inc/upgrades/2.13.2.php | 2 +- inc/upgrades/2.2.2.php | 2 +- inc/upgrades/2.2.3.php | 2 +- inc/upgrades/3.0.10.php | 4 ++-- inc/upgrades/3.1.1.php | 4 ++-- inc/upgrades/index.php | 2 +- tests/phpunit/ExampleTest.php | 2 +- 26 files changed, 92 insertions(+), 101 deletions(-) diff --git a/bluehost-wordpress-plugin.php b/bluehost-wordpress-plugin.php index bf4a5012f..2fb990e15 100644 --- a/bluehost-wordpress-plugin.php +++ b/bluehost-wordpress-plugin.php @@ -1,8 +1,9 @@ admin_url( 'admin.php?page=bluehost#/home' ), 'template_h1' => __( 'Coming Soon!', 'wp-plugin-bluehost' ), 'template_h2' => __( 'A New WordPress Site', 'wp-plugin-bluehost' ), - 'template_coming_soon_links' => - '' . - __( 'How to Build a Website: A Practical Guide to WordPress on Bluehost', 'wp-plugin-bluehost' ) . - '
' . - '' . - __( 'How to Migrate a Website to Bluehost?', 'wp-plugin-bluehost' ) . - '
' . - '' . - __( 'Why choose Bluehost for your WordPress site?', 'wp-plugin-bluehost' ) . - '
', + 'template_coming_soon_links' + => '' + . __( 'How to Build a Website: A Practical Guide to WordPress on Bluehost', 'wp-plugin-bluehost' ) + . '
' + . '' + . __( 'How to Migrate a Website to Bluehost?', 'wp-plugin-bluehost' ) + . '
' + . '' + . __( 'Why choose Bluehost for your WordPress site?', 'wp-plugin-bluehost' ) + . '
', 'template_footer_t' => sprintf( /* translators: %1$s is replaced with opening link tag taking you to bluehost.com/wordpress, %2$s is replaced with closing link tag, %3$s is replaced with opening link tag taking you to login page, %4$s is replaced with closing link tag, %5$s is replaced with opening link tag taking you to my.bluehost.com, %6$s is replaced with closing link tag */ esc_html__( 'A %1$sBluehost%2$s powered website. Is this your website? Log in to %3$sWordPress%4$s or %5$sBluehost%6$s.', 'wp-plugin-bluehost' ) . ' ', diff --git a/inc/Admin.php b/inc/Admin.php index 0c5cd62b4..f90b8073d 100644 --- a/inc/Admin.php +++ b/inc/Admin.php @@ -10,7 +10,7 @@ use function NewfoldLabs\WP\Context\getContext; /** - * \Bluehost\Admin + * \Bluehost\Admin. */ final class Admin { @@ -41,7 +41,7 @@ public function __construct() { } /** - * Add to runtime + * Add to runtime. * * @param Array $sdk - The runtime array * @@ -109,7 +109,7 @@ public static function subpages() { /** * Add inline script to admin screens - * - hide extra link in subnav + * - hide extra link in subnav. */ public static function admin_nav_style() { echo ''; - echo file_get_contents( __DIR__ . '/index.html' ); + $version = BLUEHOST_PLUGIN_VERSION; + $asset_file = BLUEHOST_BUILD_DIR . '/index.asset.php'; + if ( is_readable( $asset_file ) ) { + $asset = include_once $asset_file; + $version = $asset['version']; + } + + wp_enqueue_style( + 'bluehost-style', + BLUEHOST_BUILD_URL . '/index.css', + [ 'wp-components' ], + $version + ); + + echo file_get_contents( __DIR__ . '/index.html' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped, WordPress.WP.AlternativeFunctions.file_get_contents_file_get_contents }, 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCA0MCA0MCI+CiAgICA8cGF0aCBmaWxsPSIjYTdhYWFkIiBkPSJNNCA0aDguOTMzdjguOTIzSDRWNFptMTEuNTMgMGg4Ljk0djguOTIzaC04Ljk0VjRabTExLjUzMSAwSDM2djguOTIzaC04LjkzOVY0Wk00IDE1LjUzOGg4LjkzM3Y4LjkyNEg0di04LjkyNFptMTEuNTMgMGg4Ljk0djguOTI0aC04Ljk0di04LjkyNFptMTEuNTMxIDBIMzZ2OC45MjRoLTguOTM5di04LjkyNFpNNCAyNy4wNzdoOC45MzNWMzZINHYtOC45MjNabTExLjUzIDBoOC45NFYzNmgtOC45NHYtOC45MjNabTExLjUzMSAwSDM2VjM2aC04LjkzOXYtOC45MjNaIi8+Cjwvc3ZnPg==', 1 diff --git a/inc/base.php b/inc/base.php index 7e9779354..42a0ca070 100644 --- a/inc/base.php +++ b/inc/base.php @@ -1,6 +1,6 @@ conflicts, 'slug' ); @@ -226,7 +225,7 @@ public function deactivate() { } /** - * Display error messages in the admin. + * Display error messages in the admin */ public function admin_notices() { $conflict_errors = array_column( $this->conflicts, 'error' ); diff --git a/inc/plugin-php-compat-check.php b/inc/plugin-php-compat-check.php index cc7c7e8a9..cf84a76c9 100644 --- a/inc/plugin-php-compat-check.php +++ b/inc/plugin-php-compat-check.php @@ -8,63 +8,63 @@ namespace Bluehost; /** - * Class Plugin_PHP_Compat_Check. + * Class Plugin_PHP_Compat_Check * * This class is responsible for performing basic checks to see if the minimum requirements for the plugin have been met. */ class Plugin_PHP_Compat_Check { /** - * Callbacks for additional checks. + * Callbacks for additional checks * * @var array */ public $callbacks = []; /** - * Collection of errors. + * Collection of errors * * @var \WP_Error */ public $errors; /** - * A reference to the main plugin file. + * A reference to the main plugin file * * @var string */ public $file; /** - * Minimum PHP version required for this plugin. + * Minimum PHP version required for this plugin * * @var string */ public $min_php_version; /** - * Minimum WordPress version required for this plugin. + * Minimum WordPress version required for this plugin * * @var string */ public $min_wp_version; /** - * Plugin name. + * Plugin name * * @var string */ public $name = ''; /** - * Required PHP extensions. + * Required PHP extensions * * @var array */ public $req_php_extensions = []; /** - * Setup our class properties. + * Setup our class properties * * @param string $file Plugin file */ @@ -75,7 +75,7 @@ public function __construct( $file ) { } /** - * Get the plugin name from the plugin file headers. + * Get the plugin name from the plugin file headers * * @return string */ @@ -115,7 +115,7 @@ public function check_plugin_requirements() { } /** - * Check if the minimum required PHP version is available. + * Check if the minimum required PHP version is available */ public function check_has_min_php_version() { if ( version_compare( PHP_VERSION, $this->min_php_version, '<' ) ) { @@ -143,7 +143,7 @@ public function check_has_required_php_extensions() { } /** - * Check if the minimum required WordPress version is available. + * Check if the minimum required WordPress version is available */ public function check_has_min_wp_version() { global $wp_version; @@ -162,7 +162,7 @@ public function check_has_min_wp_version() { } /** - * Check if any errors were encountered during our plugin checks. + * Check if any errors were encountered during our plugin checks * * @return bool */ @@ -171,7 +171,7 @@ public function has_errors() { } /** - * Deactivate the plugin. + * Deactivate the plugin */ public function deactivate() { require_once ABSPATH . '/wp-admin/includes/plugin.php'; @@ -181,7 +181,7 @@ public function deactivate() { } /** - * Display error messages in the admin. + * Display error messages in the admin */ public function admin_notices() { echo '
'; diff --git a/inc/settings.php b/inc/settings.php index 48a8a164a..078372950 100644 --- a/inc/settings.php +++ b/inc/settings.php @@ -1,42 +1,13 @@ >>>>>> main if ( ! defined( 'EMPTY_TRASH_DAYS' ) ) { $nfd_empty_trash_days = get_option( 'nfd_empty_trash_days', 30 ); define( 'EMPTY_TRASH_DAYS', $nfd_empty_trash_days ); diff --git a/inc/updates.php b/inc/updates.php index 72523a0c1..14b0b484e 100644 --- a/inc/updates.php +++ b/inc/updates.php @@ -12,20 +12,22 @@ /** * Convert string boolean values to actual booleans. * - * @param string $value The value to convert. - * @param bool $default Default value to use if $value is neither 'true' or 'false'. + * @param string $value The value to convert. + * @param bool $defaultValue Default value to use if $value is neither 'true' or 'false'. * * @return bool The conversion result. */ -function auto_update_make_bool( $value, $default = true ) { +function auto_update_make_bool( $value, $defaultValue = true ) { if ( 'false' === $value ) { - $value = false; + return false; } + if ( 'true' === $value ) { - $value = true; + return true; } + if ( true !== $value && false !== $value ) { - $value = $default; + return $defaultValue; } return $value; @@ -196,6 +198,7 @@ function sync_plugin_major_auto_core_update_option( $old_value, $value ) { add_action( 'update_option_auto_update_core_major', __NAMESPACE__ . '\\sync_plugin_major_auto_core_update_option', 10, 2 ); + /** * Ensures all installed plugins are set to auto-update. * @@ -303,10 +306,10 @@ function delete_site_transient_update_themes() { /** * Updates the WordPress Core options for plugin and theme auto-updates when one is updated. * - * @param WP_Upgrader $upgrader WP_Upgrader instance. In other contexts, $this, might be a - * Theme_Upgrader, Plugin_Upgrader, Core_Upgrade, or Language_Pack_Upgrader instance. + * @param WP_Upgrader $upgrader WP_Upgrader instance. In other contexts, $this, might be a + * Theme_Upgrader, Plugin_Upgrader, Core_Upgrade, or Language_Pack_Upgrader instance. * @param array $hook_extra { - * Array of bulk item update data. + * Array of bulk item update data. * * @type string $action Type of action. Default 'update'. * @type string $type Type of update process. Accepts 'plugin', 'theme', 'translation', or 'core'. diff --git a/inc/upgrades/1.4.3.php b/inc/upgrades/1.4.3.php index 06be7c5f8..eee3bf39f 100644 --- a/inc/upgrades/1.4.3.php +++ b/inc/upgrades/1.4.3.php @@ -1,6 +1,6 @@ helpers->options->get( 'enable_ai_generator', null ) ) { + if ( yoastseo()->helpers->options->get( 'enable_ai_generator', null ) !== null ) { yoastseo()->helpers->options->set( 'enable_ai_generator', true ); } } diff --git a/inc/upgrades/index.php b/inc/upgrades/index.php index ad661285a..d4380a745 100644 --- a/inc/upgrades/index.php +++ b/inc/upgrades/index.php @@ -3,4 +3,4 @@ * Silence is Golden. * * @package WPPluginBluehost - */ + **/ diff --git a/src/app/components/errorCard/index.js b/src/app/components/errorCard/index.js index abba3619e..f34996015 100644 --- a/src/app/components/errorCard/index.js +++ b/src/app/components/errorCard/index.js @@ -45,7 +45,8 @@ const ErrorCard = ( { error, className, notice = 'Error!' } ) => {

{ error && error.message ? error.message : '' } { error && error.data - ? __( ' Error code: ', 'wp-plugin-bluehost' ) + + ? __( 'Error code:', 'wp-plugin-bluehost' ) + + ' ' + error.data.status : '' }

diff --git a/src/app/pages/home/myProductsSection.js b/src/app/pages/home/myProductsSection.js index 39be23d3e..c379d7970 100644 --- a/src/app/pages/home/myProductsSection.js +++ b/src/app/pages/home/myProductsSection.js @@ -1,3 +1,4 @@ +/* eslint-disable @wordpress/i18n-no-flanking-whitespace */ import apiFetch from '@wordpress/api-fetch'; import { useState, useEffect } from '@wordpress/element'; import { NewfoldRuntime } from '@newfold-labs/wp-module-runtime'; diff --git a/src/app/pages/settings/commentSettings.js b/src/app/pages/settings/commentSettings.js index 947542532..d28253e95 100644 --- a/src/app/pages/settings/commentSettings.js +++ b/src/app/pages/settings/commentSettings.js @@ -1,3 +1,4 @@ +/* global sprintf */ import { useState } from '@wordpress/element'; import { useUpdateEffect } from 'react-use'; import { @@ -9,7 +10,6 @@ import { import AppStore from '../../data/store'; import { bluehostSettingsApiFetch } from '../../util/helpers'; import { useNotification } from 'App/components/notifications'; - const OldPostsComments = ( { setError, notify } ) => { const { store, setStore } = useContext( AppStore ); const [ disableCommentsOldPosts, setDisableCommentsOldPosts ] = useState( @@ -78,37 +78,32 @@ const CloseCommentsDays = ( { setError, notify } ) => { ); const closeCommentsDaysNoticeTitle = () => { - return __( 'Comments setting saved ', 'wp-plugin-bluehost' ); + return __( 'Comments setting saved', 'wp-plugin-bluehost' ); }; const closeCommentsDaysNoticeText = () => { - //`Comments on posts are disabled after ${closeCommentsDays} days.` - return ( - __( - 'Comments on posts are disabled after ', - 'wp-plugin-bluehost' - ) + - closeCommentsDays + + return sprintf( + //translators: %s: number of days. `Comments on posts are disabled after ${closeCommentsDays} days.` _n( - ' day.', - ' days.', + 'Comments on posts are disabled after %s day.', + 'Comments on posts are disabled after %s days.', parseInt( closeCommentsDays ), 'wp-plugin-bluehost' - ) + ), + closeCommentsDays ); }; const closeCommentsDaysLabelText = () => { - //`Close comments after ${closeCommentsDays} days.` - return ( - __( 'Close comments after ', 'wp-plugin-bluehost' ) + - closeCommentsDays + + return sprintf( + //translators: %s: number of days. `Close comments after ${closeCommentsDays} days.` _n( - ' day.', - ' days.', + 'Close comments after %s day.', + 'Close comments after %s days.', parseInt( closeCommentsDays ), 'wp-plugin-bluehost' - ) + ), + closeCommentsDays ); }; @@ -178,16 +173,15 @@ const CommentsPerPage = ( { setError, notify } ) => { }; const commentsPerPageNoticeText = () => { - //`Posts will display ${commentsPerPage} comments at a time.` - return ( - __( 'Posts will display ', 'wp-plugin-bluehost' ) + - commentsPerPage + + return sprintf( + //translators: %s: number of comments. `Posts will display ${commentsPerPage} comments at a time.` _n( - ' comment at a time.', - ' comments at a time.', + 'Posts will display %s comment at a time.', + 'Posts will display %s comments at a time.', parseInt( commentsPerPage ), 'wp-plugin-bluehost' - ) + ), + commentsPerPage ); }; diff --git a/src/app/pages/settings/contentSettings.js b/src/app/pages/settings/contentSettings.js index 570824c1b..c4239ab08 100644 --- a/src/app/pages/settings/contentSettings.js +++ b/src/app/pages/settings/contentSettings.js @@ -1,3 +1,4 @@ +/* global sprintf */ import { useState } from '@wordpress/element'; import { useUpdateEffect } from 'react-use'; import { Alert, Container, SelectField } from '@newfold/ui-component-library'; @@ -13,22 +14,19 @@ const EmptyTrash = ( { setError, notify } ) => { let numTrashWeeks = Math.floor( emptyTrashDays / 7 ); const emptyTrashNoticeTitle = () => { - return __( 'Trash setting saved ', 'wp-plugin-bluehost' ); + return __( 'Trash setting saved', 'wp-plugin-bluehost' ); }; const emptyTrashNoticeText = () => { - return ( - __( - 'The trash will automatically empty every ', - 'wp-plugin-bluehost' - ) + - numTrashWeeks + + return sprintf( + //translators: %s: number of weeks. `The trash will automatically empty every ${numTrashWeeks} weeks.` _n( - ' week.', - ' weeks.', + 'The trash will automatically empty every %s week.', + 'The trash will automatically empty every %s weeks.', parseInt( numTrashWeeks ), 'wp-plugin-bluehost' - ) + ), + numTrashWeeks ); }; @@ -66,22 +64,10 @@ const EmptyTrash = ( { setError, notify } ) => { { diff --git a/tests/phpunit/ExampleTest.php b/tests/phpunit/ExampleTest.php index 9daafa9f6..84d91d7fa 100644 --- a/tests/phpunit/ExampleTest.php +++ b/tests/phpunit/ExampleTest.php @@ -1,7 +1,7 @@ assertEquals( true, true ); } - } From a1dbc252f725893a4c1829e04b301113bac5f6f3 Mon Sep 17 00:00:00 2001 From: Brad Parbs Date: Tue, 1 Oct 2024 19:53:50 -0500 Subject: [PATCH 06/13] clean up --- inc/alt-experience/init.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/inc/alt-experience/init.php b/inc/alt-experience/init.php index 80bae6d9f..37db9342c 100644 --- a/inc/alt-experience/init.php +++ b/inc/alt-experience/init.php @@ -8,10 +8,10 @@ function () { 'manage_options', 'bluehost', function () { - $version = BLUEHOST_PLUGIN_VERSION; + $version = BLUEHOST_PLUGIN_VERSION; $asset_file = BLUEHOST_BUILD_DIR . '/index.asset.php'; if ( is_readable( $asset_file ) ) { - $asset = include_once $asset_file; + $asset = include_once $asset_file; $version = $asset['version']; } From 23e4ea7831a1618bf2a14e085cf2572f0b24eb68 Mon Sep 17 00:00:00 2001 From: Brad Parbs Date: Tue, 1 Oct 2024 19:54:20 -0500 Subject: [PATCH 07/13] PHPCS fixer --- bluehost-wordpress-plugin.php | 3 ++- bootstrap.php | 38 +++++++++++++++--------------- inc/Admin.php | 23 +++++------------- inc/Data.php | 2 +- inc/LoginRedirect.php | 2 +- inc/RestApi/CachingController.php | 6 ++--- inc/RestApi/SettingsController.php | 6 ++--- inc/YoastAI.php | 6 ++--- inc/base.php | 8 +++---- inc/partners.php | 4 +--- inc/plugin-nfd-compat-check.php | 25 ++++++++++---------- inc/plugin-php-compat-check.php | 30 +++++++++++------------ inc/settings.php | 2 +- inc/updates.php | 7 +++--- inc/upgrades/1.4.3.php | 2 +- inc/upgrades/2.0.php | 2 +- inc/upgrades/2.11.0.php | 2 +- inc/upgrades/2.12.10.php | 2 +- inc/upgrades/2.12.7.php | 2 +- inc/upgrades/2.13.2.php | 2 +- inc/upgrades/2.2.2.php | 2 +- inc/upgrades/2.2.3.php | 2 +- inc/upgrades/3.0.10.php | 4 ++-- inc/upgrades/3.1.1.php | 4 ++-- inc/upgrades/index.php | 2 +- tests/phpunit/ExampleTest.php | 2 +- 26 files changed, 88 insertions(+), 102 deletions(-) diff --git a/bluehost-wordpress-plugin.php b/bluehost-wordpress-plugin.php index 587976c03..4d3cb08c0 100644 --- a/bluehost-wordpress-plugin.php +++ b/bluehost-wordpress-plugin.php @@ -1,8 +1,9 @@ admin_url( 'admin.php?page=bluehost#/home' ), 'template_h1' => __( 'Coming Soon!', 'wp-plugin-bluehost' ), 'template_h2' => __( 'A New WordPress Site', 'wp-plugin-bluehost' ), - 'template_coming_soon_links' => - '' . - __( 'How to Build a Website: A Practical Guide to WordPress on Bluehost', 'wp-plugin-bluehost' ) . - '
' . - '' . - __( 'How to Migrate a Website to Bluehost?', 'wp-plugin-bluehost' ) . - '
' . - '' . - __( 'Why choose Bluehost for your WordPress site?', 'wp-plugin-bluehost' ) . - '
', + 'template_coming_soon_links' + => '' + . __( 'How to Build a Website: A Practical Guide to WordPress on Bluehost', 'wp-plugin-bluehost' ) + . '
' + . '' + . __( 'How to Migrate a Website to Bluehost?', 'wp-plugin-bluehost' ) + . '
' + . '' + . __( 'Why choose Bluehost for your WordPress site?', 'wp-plugin-bluehost' ) + . '
', 'template_footer_t' => sprintf( /* translators: %1$s is replaced with opening link tag taking you to bluehost.com/wordpress, %2$s is replaced with closing link tag, %3$s is replaced with opening link tag taking you to login page, %4$s is replaced with closing link tag, %5$s is replaced with opening link tag taking you to my.bluehost.com, %6$s is replaced with closing link tag */ esc_html__( 'A %1$sBluehost%2$s powered website. Is this your website? Log in to %3$sWordPress%4$s or %5$sBluehost%6$s.', 'wp-plugin-bluehost' ) . ' ', diff --git a/inc/Admin.php b/inc/Admin.php index f18f3bf1b..02354d1d3 100644 --- a/inc/Admin.php +++ b/inc/Admin.php @@ -7,11 +7,10 @@ namespace Bluehost; -use function NewfoldLabs\WP\Context\getContext; use function NewfoldLabs\WP\Module\Features\isEnabled; /** - * \Bluehost\Admin + * \Bluehost\Admin. */ final class Admin { @@ -44,7 +43,7 @@ public function __construct() { } /** - * Add to runtime + * Add to runtime. * * @param Array $sdk - The runtime array * @@ -111,7 +110,7 @@ public static function subpages() { /** * Add inline script to admin screens - * - hide extra link in subnav + * - hide extra link in subnav. */ public static function admin_nav_style() { echo '