From c95063240700038a808867fa4eb6bd343ec6f1b6 Mon Sep 17 00:00:00 2001 From: Lai Power Date: Tue, 29 Apr 2025 21:20:02 +0000 Subject: [PATCH] updated plugin `Simple Local Avatars` version 2.8.3 --- .../replace-namespace.sh | 22 + .../src/Validator.php | 169 +++++ .../includes/class-simple-local-avatars.php | 111 +++- .../plugins/simple-local-avatars/readme.txt | 76 +-- .../simple-local-avatars.php | 58 +- .../simple-local-avatars/vendor/autoload.php | 25 + .../vendor/composer/ClassLoader.php | 579 ++++++++++++++++++ .../vendor/composer/InstalledVersions.php | 359 +++++++++++ .../vendor/composer/LICENSE | 21 + .../vendor/composer/autoload_classmap.php | 10 + .../vendor/composer/autoload_namespaces.php | 9 + .../vendor/composer/autoload_psr4.php | 11 + .../vendor/composer/autoload_real.php | 38 ++ .../vendor/composer/autoload_static.php | 44 ++ .../vendor/composer/installed.json | 194 ++++++ .../vendor/composer/installed.php | 43 ++ .../workflows/continuous-integration.yml | 65 ++ .../installers/.github/workflows/lint.yml | 33 + .../installers/.github/workflows/phpstan.yml | 52 ++ .../vendor/composer/installers/LICENSE | 19 + .../vendor/composer/installers/composer.json | 117 ++++ .../src/Composer/Installers/AglInstaller.php | 29 + .../Installers/AkauntingInstaller.php | 23 + .../Installers/AnnotateCmsInstaller.php | 13 + .../Composer/Installers/AsgardInstaller.php | 58 ++ .../Composer/Installers/AttogramInstaller.php | 11 + .../src/Composer/Installers/BaseInstaller.php | 137 +++++ .../Composer/Installers/BitrixInstaller.php | 123 ++++ .../Composer/Installers/BonefishInstaller.php | 11 + .../Composer/Installers/BotbleInstaller.php | 12 + .../Composer/Installers/CakePHPInstaller.php | 67 ++ .../src/Composer/Installers/ChefInstaller.php | 12 + .../Composer/Installers/CiviCrmInstaller.php | 11 + .../Installers/ClanCatsFrameworkInstaller.php | 12 + .../Composer/Installers/CockpitInstaller.php | 36 ++ .../Installers/CodeIgniterInstaller.php | 13 + .../Installers/Concrete5Installer.php | 15 + .../Installers/ConcreteCMSInstaller.php | 15 + .../Composer/Installers/CroogoInstaller.php | 23 + .../Composer/Installers/DecibelInstaller.php | 12 + .../Composer/Installers/DframeInstaller.php | 11 + .../Composer/Installers/DokuWikiInstaller.php | 57 ++ .../Composer/Installers/DolibarrInstaller.php | 18 + .../Composer/Installers/DrupalInstaller.php | 25 + .../src/Composer/Installers/ElggInstaller.php | 11 + .../Composer/Installers/EliasisInstaller.php | 14 + .../Installers/ExpressionEngineInstaller.php | 31 + .../Installers/EzPlatformInstaller.php | 12 + .../Composer/Installers/ForkCMSInstaller.php | 58 ++ .../src/Composer/Installers/FuelInstaller.php | 13 + .../Composer/Installers/FuelphpInstaller.php | 11 + .../src/Composer/Installers/GravInstaller.php | 29 + .../Composer/Installers/HuradInstaller.php | 27 + .../Composer/Installers/ImageCMSInstaller.php | 13 + .../src/Composer/Installers/Installer.php | 288 +++++++++ .../src/Composer/Installers/ItopInstaller.php | 11 + .../Composer/Installers/KanboardInstaller.php | 20 + .../Composer/Installers/KnownInstaller.php | 13 + .../Composer/Installers/KodiCMSInstaller.php | 12 + .../Composer/Installers/KohanaInstaller.php | 11 + .../LanManagementSystemInstaller.php | 27 + .../Composer/Installers/LaravelInstaller.php | 11 + .../Composer/Installers/LavaLiteInstaller.php | 12 + .../Composer/Installers/LithiumInstaller.php | 12 + .../Installers/MODULEWorkInstaller.php | 11 + .../Composer/Installers/MODXEvoInstaller.php | 18 + .../Composer/Installers/MagentoInstaller.php | 13 + .../Composer/Installers/MajimaInstaller.php | 46 ++ .../src/Composer/Installers/MakoInstaller.php | 11 + .../Composer/Installers/MantisBTInstaller.php | 25 + .../Composer/Installers/MatomoInstaller.php | 28 + .../Composer/Installers/MauticInstaller.php | 43 ++ .../src/Composer/Installers/MayaInstaller.php | 38 ++ .../Installers/MediaWikiInstaller.php | 58 ++ .../Composer/Installers/MiaoxingInstaller.php | 11 + .../Installers/MicroweberInstaller.php | 145 +++++ .../src/Composer/Installers/ModxInstaller.php | 14 + .../Composer/Installers/MoodleInstaller.php | 73 +++ .../Composer/Installers/OctoberInstaller.php | 57 ++ .../Composer/Installers/OntoWikiInstaller.php | 26 + .../Composer/Installers/OsclassInstaller.php | 14 + .../src/Composer/Installers/OxidInstaller.php | 49 ++ .../src/Composer/Installers/PPIInstaller.php | 11 + .../Composer/Installers/PantheonInstaller.php | 12 + .../Composer/Installers/PhiftyInstaller.php | 13 + .../Composer/Installers/PhpBBInstaller.php | 13 + .../Composer/Installers/PiwikInstaller.php | 28 + .../Installers/PlentymarketsInstaller.php | 28 + .../src/Composer/Installers/Plugin.php | 28 + .../Composer/Installers/PortoInstaller.php | 11 + .../Installers/PrestashopInstaller.php | 12 + .../Installers/ProcessWireInstaller.php | 23 + .../Composer/Installers/PuppetInstaller.php | 12 + .../Composer/Installers/PxcmsInstaller.php | 62 ++ .../Composer/Installers/RadPHPInstaller.php | 26 + .../Composer/Installers/ReIndexInstaller.php | 12 + .../Composer/Installers/Redaxo5Installer.php | 12 + .../Composer/Installers/RedaxoInstaller.php | 12 + .../Installers/RoundcubeInstaller.php | 21 + .../src/Composer/Installers/SMFInstaller.php | 12 + .../Composer/Installers/ShopwareInstaller.php | 66 ++ .../Installers/SilverStripeInstaller.php | 33 + .../Installers/SiteDirectInstaller.php | 34 + .../Composer/Installers/StarbugInstaller.php | 14 + .../Composer/Installers/SyDESInstaller.php | 55 ++ .../Composer/Installers/SyliusInstaller.php | 11 + .../src/Composer/Installers/TaoInstaller.php | 32 + .../Installers/TastyIgniterInstaller.php | 85 +++ .../Composer/Installers/TheliaInstaller.php | 14 + .../src/Composer/Installers/TuskInstaller.php | 17 + .../Installers/UserFrostingInstaller.php | 11 + .../Composer/Installers/VanillaInstaller.php | 12 + .../Composer/Installers/VgmcpInstaller.php | 59 ++ .../Composer/Installers/WHMCSInstaller.php | 22 + .../Composer/Installers/WinterInstaller.php | 71 +++ .../Composer/Installers/WolfCMSInstaller.php | 11 + .../Installers/WordPressInstaller.php | 14 + .../Composer/Installers/YawikInstaller.php | 23 + .../src/Composer/Installers/ZendInstaller.php | 13 + .../Composer/Installers/ZikulaInstaller.php | 12 + .../composer/installers/src/bootstrap.php | 18 + .../vendor/composer/platform_check.php | 26 + 122 files changed, 5001 insertions(+), 115 deletions(-) create mode 100644 wp-content/plugins/simple-local-avatars/10up-lib/wp-compat-validation-tool/replace-namespace.sh create mode 100644 wp-content/plugins/simple-local-avatars/10up-lib/wp-compat-validation-tool/src/Validator.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/autoload.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/ClassLoader.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/InstalledVersions.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/LICENSE create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/autoload_classmap.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/autoload_namespaces.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/autoload_psr4.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/autoload_real.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/autoload_static.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installed.json create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installed.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/.github/workflows/continuous-integration.yml create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/.github/workflows/lint.yml create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/.github/workflows/phpstan.yml create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/LICENSE create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/composer.json create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/AglInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/AkauntingInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/AnnotateCmsInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/AsgardInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/AttogramInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/BaseInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/BitrixInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/BonefishInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/BotbleInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/CakePHPInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/ChefInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/CiviCrmInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/ClanCatsFrameworkInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/CockpitInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/CodeIgniterInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/Concrete5Installer.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/ConcreteCMSInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/CroogoInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/DecibelInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/DframeInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/DokuWikiInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/DolibarrInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/DrupalInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/ElggInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/EliasisInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/ExpressionEngineInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/EzPlatformInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/ForkCMSInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/FuelInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/FuelphpInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/GravInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/HuradInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/ImageCMSInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/Installer.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/ItopInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/KanboardInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/KnownInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/KodiCMSInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/KohanaInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/LanManagementSystemInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/LaravelInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/LavaLiteInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/LithiumInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/MODULEWorkInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/MODXEvoInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/MagentoInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/MajimaInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/MakoInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/MantisBTInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/MatomoInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/MauticInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/MayaInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/MediaWikiInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/MiaoxingInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/MicroweberInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/ModxInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/MoodleInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/OctoberInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/OntoWikiInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/OsclassInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/OxidInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/PPIInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/PantheonInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/PhiftyInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/PhpBBInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/PiwikInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/PlentymarketsInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/Plugin.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/PortoInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/PrestashopInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/ProcessWireInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/PuppetInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/PxcmsInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/RadPHPInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/ReIndexInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/Redaxo5Installer.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/RedaxoInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/RoundcubeInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/SMFInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/ShopwareInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/SilverStripeInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/SiteDirectInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/StarbugInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/SyDESInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/SyliusInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/TaoInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/TastyIgniterInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/TheliaInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/TuskInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/UserFrostingInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/VanillaInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/VgmcpInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/WHMCSInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/WinterInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/WolfCMSInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/WordPressInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/YawikInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/ZendInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/ZikulaInstaller.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/bootstrap.php create mode 100644 wp-content/plugins/simple-local-avatars/vendor/composer/platform_check.php diff --git a/wp-content/plugins/simple-local-avatars/10up-lib/wp-compat-validation-tool/replace-namespace.sh b/wp-content/plugins/simple-local-avatars/10up-lib/wp-compat-validation-tool/replace-namespace.sh new file mode 100644 index 00000000..8183aa22 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/10up-lib/wp-compat-validation-tool/replace-namespace.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +# Script directory and filename +SCRIPT_DIR="$(dirname "$0")" +SCRIPT_NAME="$(basename "$0")" + +# Check for the required argument +if [ "$#" -ne 1 ]; then + echo "Usage: $0 New_Namespace" + exit 1 +fi + +NEW_NAMESPACE="$1" + +# Use find to get all files recursively from the script's directory, excluding the script itself +find "$SCRIPT_DIR" -type f \( -name "*.php" -o -name "*.json" \) ! -name "$SCRIPT_NAME" | while read -r file; do + echo $file + # Use perl for the replacement in each file + perl -pi -e "s/WP_Compat_Validation_Tool/$NEW_NAMESPACE/g" "$file" +done + +cd 10up-lib/wp-compat-validation-tool && rm -rf .git .github .gitignore composer.json composer.lock CHANGELOG.md CONTRIBUTING.md README.md LICENSE.md CODE_OF_CONDUCT.md CREDITS.md diff --git a/wp-content/plugins/simple-local-avatars/10up-lib/wp-compat-validation-tool/src/Validator.php b/wp-content/plugins/simple-local-avatars/10up-lib/wp-compat-validation-tool/src/Validator.php new file mode 100644 index 00000000..30fcf440 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/10up-lib/wp-compat-validation-tool/src/Validator.php @@ -0,0 +1,169 @@ +checklist = array( + 'plugin_name' => array( + 'value' => '', + 'required' => true, + ), + 'php_min_required_version' => array( + 'value' => '', + 'required' => false, + ), + 'php_max_required_version' => array( + 'value' => '', + 'required' => false, + ), + 'wp_min_required_version' => array( + 'value' => '', + 'required' => false, + ), + 'wp_max_required_version' => array( + 'value' => '', + 'required' => false, + ), + ); + } + + /** + * Sets the plugin name. + * + * @param string $value Plugin name. + * @return Validator + */ + public function set_plugin_name( $value = '' ) { + $this->checklist['plugin_name']['value'] = $value; + + return $this; + } + + /** + * Sets the minimum PHP version supported by a plugin. + * + * @param string $value Minimum PHP version. + * @return Validator + */ + public function set_php_min_required_version( $value = '' ) { + $this->checklist['php_min_required_version']['value'] = $value; + + return $this; + } + + /** + * Sets the maximum PHP version supported by a plugin. + * + * @param string $value Maximum PHP version. + * @return Validator + */ + public function set_php_max_required_version( $value = '' ) { + $this->checklist['php_max_required_version']['value'] = $value; + + return $this; + } + + /** + * Sets the minimum WordPress version supported by a plugin. + * + * @param string $value Minimum WordPress version. + * @return Validator + */ + public function set_wordpress_min_required_version( $value = '' ) { + $this->checklist['wp_min_required_version']['value'] = $value; + + return $this; + } + + /** + * Sets the maximum WordPress version supported by a plugin. + * + * @param string $value Maximum WordPress version. + * @return Validator + */ + public function set_wordpress_max_required_version( $value = '' ) { + $this->checklist['wp_max_required_version']['value'] = $value; + + return $this; + } + + /** + * Returns true if the plugin meets all compatibility checks, false otherwise. + * + * @return boolean + */ + public function is_plugin_compatible() { + foreach ( $this->checklist as $item_name => $item_details ) { + if ( $item_details['required'] && empty( $item_details['value'] ) ) { + return false; + } + + switch ( $item_name ) { + case 'php_min_required_version': + if ( ! empty( $item_details['value'] ) && version_compare( phpversion(), $item_details['value'], '<' ) ) { + $this->messages[] = sprintf( esc_html__( 'The minimum PHP version required is %s' ), $item_details['value'] ); + } + break; + + case 'php_max_required_version': + if ( ! empty( $item_details['value'] ) && version_compare( phpversion(), $item_details['value'], '>' ) ) { + $this->messages[] = sprintf( esc_html__( 'The maximum PHP version supported is %s' ), $item_details['value'] ); + } + break; + + default: + break; + } + } + + if ( ! empty( $this->messages ) ) { + add_action( 'admin_notices', array( $this, 'render_php_compat_error' ) ); + return false; + } + + return true; + } + + /** + * Renders the error messages as notice. + */ + public function render_php_compat_error() { + ?> +
+

+ + checklist['plugin_name']['value'] ); ?> + +

+ messages ) > 1 ) : ?> + + messages ) ): ?> +

+ messages[0] ); ?> +

+ +
+ add_hooks(); - $this->options = (array) get_option( 'simple_local_avatars' ); - $this->user_key = 'simple_local_avatar'; - $this->rating_key = 'simple_local_avatar_rating'; + $this->options = (array) get_option( 'simple_local_avatars' ); + $this->user_key = 'simple_local_avatar'; + $this->rating_key = 'simple_local_avatar_rating'; if ( ! $this->is_avatar_shared() // Are we sharing avatars? @@ -326,6 +326,20 @@ class Simple_Local_Avatars { return $user_id; } + /** + * Get the local avatar user meta. + * + * @param int $user_id User ID. + * @return array Array with avatar data. + */ + public function get_user_local_avatar( $user_id ) { + $local_avatars = get_user_meta( $user_id, $this->user_key, true ); + if ( ! is_array( $local_avatars ) || empty( $local_avatars ) ) { + return []; + } + return $local_avatars; + } + /** * Get local avatar url. * @@ -343,8 +357,8 @@ class Simple_Local_Avatars { } // Fetch local avatar from meta and make sure it's properly set. - $local_avatars = get_user_meta( $user_id, $this->user_key, true ); - if ( empty( $local_avatars['full'] ) ) { + $local_avatars = $this->get_user_local_avatar( $user_id ); + if ( ! isset( $local_avatars['full'] ) || empty( $local_avatars['full'] ) ) { return ''; } @@ -432,7 +446,7 @@ class Simple_Local_Avatars { $dest_file_url = ''; if ( false !== strpos( $dest_file, $upload_path['basedir'] ) ) { $dest_file_url = str_replace( $upload_path['basedir'], $upload_path['baseurl'], $dest_file ); - } else if ( is_multisite() && false !== strpos( $dest_file, ABSPATH . 'wp-content/uploads' ) ) { + } elseif ( is_multisite() && false !== strpos( $dest_file, ABSPATH . 'wp-content/uploads' ) ) { $dest_file_url = str_replace( ABSPATH . 'wp-content/uploads', network_site_url( '/wp-content/uploads' ), $dest_file ); } @@ -479,8 +493,8 @@ class Simple_Local_Avatars { } // Fetch local avatar from meta and make sure we have a media ID. - $local_avatars = get_user_meta( $user_id, 'simple_local_avatar', true ); - if ( empty( $local_avatars['media_id'] ) ) { + $local_avatars = $this->get_user_local_avatar( $user_id ); + if ( ! isset( $local_avatars['media_id'] ) || empty( $local_avatars['media_id'] ) ) { $alt = ''; // If no avatar is set, check if we are using a default avatar with alt text. if ( 'simple_local_avatar' === get_option( 'avatar_default' ) ) { @@ -557,13 +571,13 @@ class Simple_Local_Avatars { */ $this->avatar_ratings = array( /* translators: Content suitability rating: https://en.wikipedia.org/wiki/Motion_Picture_Association_of_America_film_rating_system */ - 'G' => __( 'G — Suitable for all audiences' ), + 'G' => __( 'G — Suitable for all audiences', 'simple-local-avatars' ), /* translators: Content suitability rating: https://en.wikipedia.org/wiki/Motion_Picture_Association_of_America_film_rating_system */ - 'PG' => __( 'PG — Possibly offensive, usually for audiences 13 and above' ), + 'PG' => __( 'PG — Possibly offensive, usually for audiences 13 and above', 'simple-local-avatars' ), /* translators: Content suitability rating: https://en.wikipedia.org/wiki/Motion_Picture_Association_of_America_film_rating_system */ - 'R' => __( 'R — Intended for adult audiences above 17' ), + 'R' => __( 'R — Intended for adult audiences above 17', 'simple-local-avatars' ), /* translators: Content suitability rating: https://en.wikipedia.org/wiki/Motion_Picture_Association_of_America_film_rating_system */ - 'X' => __( 'X — Even more mature than above' ), + 'X' => __( 'X — Even more mature than above', 'simple-local-avatars' ), ); } @@ -702,7 +716,7 @@ class Simple_Local_Avatars { $this->avatar_settings_field( array( 'key' => 'only', - 'desc' => __( 'Only allow local avatars (still uses Gravatar for default avatars) ', 'simple-local-avatars' ), + 'desc' => __( 'Only allow local avatars (still uses Gravatar for default avatars)', 'simple-local-avatars' ), ) ); ?> @@ -950,7 +964,7 @@ class Simple_Local_Avatars { if ( ! is_admin() || ! current_user_can( 'upload_files' ) ) { ?>

-
+

@@ -976,10 +990,10 @@ class Simple_Local_Avatars { - +
simple_local_avatar ) ); ?>> - + simple_local_avatar_rating ) || ! array_key_exists( $profileuser->simple_local_avatar_rating, $this->avatar_ratings ) ) { $profileuser->simple_local_avatar_rating = 'G'; @@ -1035,7 +1049,7 @@ class Simple_Local_Avatars { * * @param int $user_id Id of the user who's avatar was updated */ - do_action( 'simple_local_avatar_updated' , $user_id ); + do_action( 'simple_local_avatar_updated', $user_id ); } /** @@ -1064,6 +1078,7 @@ class Simple_Local_Avatars { $max_upload_size = $this->upload_size_limit( wp_max_upload_size() ); if ( $_FILES['simple-local-avatar']['size'] > $max_upload_size ) { + // translators: %s: Formatted size. $this->avatar_upload_error = sprintf( __( 'Max allowed avatar size is %s', 'simple-local-avatars' ), size_format( $max_upload_size ) ); add_action( 'user_profile_update_errors', array( $this, 'user_profile_update_errors' ) ); return; @@ -1110,7 +1125,7 @@ class Simple_Local_Avatars { endif; // Handle ratings - if ( isset( $avatar_id ) || get_user_meta( $user_id, $this->user_key, true ) ) { + if ( isset( $avatar_id ) || ! empty( $this->get_user_local_avatar( $user_id ) ) ) { if ( empty( $_POST['simple_local_avatar_rating'] ) || ! array_key_exists( $_POST['simple_local_avatar_rating'], $this->avatar_ratings ) ) { $_POST['simple_local_avatar_rating'] = key( $this->avatar_ratings ); } @@ -1180,7 +1195,7 @@ class Simple_Local_Avatars { * @param int $user_id User ID. */ public function avatar_delete( $user_id ) { - $old_avatars = (array) get_user_meta( $user_id, $this->user_key, true ); + $old_avatars = $this->get_user_local_avatar( $user_id ); if ( empty( $old_avatars ) ) { return; @@ -1191,10 +1206,20 @@ class Simple_Local_Avatars { unset( $old_avatars['media_id'], $old_avatars['full'] ); } + // Remove the blog_id key as we don't need to try deleting a file based on that. + if ( array_key_exists( 'blog_id', $old_avatars ) ) { + unset( $old_avatars['blog_id'] ); + } + if ( ! empty( $old_avatars ) ) { $upload_path = wp_upload_dir(); foreach ( $old_avatars as $old_avatar ) { + // Ensure the avatar is in the uploads directory before we delete it. + if ( strpos( $old_avatar, $upload_path['baseurl'] ) !== 0 ) { + continue; + } + // derive the path for the file based on the upload directory $old_avatar_path = str_replace( $upload_path['baseurl'], $upload_path['basedir'], $old_avatar ); if ( file_exists( $old_avatar_path ) ) { @@ -1271,7 +1296,7 @@ class Simple_Local_Avatars { * @param object $user User object */ public function get_avatar_rest( $user ) { - $local_avatar = get_user_meta( $user['id'], $this->user_key, true ); + $local_avatar = $this->get_user_local_avatar( $user['id'] ); if ( empty( $local_avatar ) ) { return; } @@ -1288,9 +1313,34 @@ class Simple_Local_Avatars { * * @param array $input Input submitted via REST request. * @param object $user The user making the request. + * @return null|\WP_Error */ public function set_avatar_rest( $input, $user ) { - $this->assign_new_user_avatar( $input['media_id'], $user->ID ); + // Ensure media_id is set and is a number. + if ( + empty( $input['media_id'] ) || + ! is_numeric( $input['media_id'] ) + ) { + return new \WP_Error( 'invalid_media_id', esc_html__( 'Request did not contain a valid media_id field.', 'simple-local-avatars' ) ); + } + + $attachment = get_post( (int) $input['media_id'] ); + + // Ensure this media_id is a valid attachment. + if ( + ! $attachment || + 'attachment' !== $attachment->post_type || + ! wp_attachment_is_image( $attachment ) + ) { + return new \WP_Error( 'invalid_media_id', esc_html__( 'Media ID did not match a valid attachment.', 'simple-local-avatars' ) ); + } + + // Ensure this attachment is associated with this user. + if ( (int) $attachment->post_author !== (int) $user->ID ) { + return new \WP_Error( 'invalid_media_id', esc_html__( 'This attachment was not uploaded by this user.', 'simple-local-avatars' ) ); + } + + $this->assign_new_user_avatar( (int) $input['media_id'], $user->ID ); } /** @@ -1373,6 +1423,13 @@ class Simple_Local_Avatars { */ public function sla_clear_user_cache() { check_ajax_referer( 'sla_clear_cache_nonce', 'nonce' ); + + // Ensure this was run by a user with proper privileges. + if ( ! current_user_can( 'manage_options' ) ) { + // Match what `check_ajax_referer` does. + wp_die( -1, 403 ); + } + $step = isset( $_REQUEST['step'] ) ? intval( $_REQUEST['step'] ) : 1; // Setup defaults. @@ -1396,7 +1453,7 @@ class Simple_Local_Avatars { if ( ! empty( $users ) ) { foreach ( $users as $user ) { $user_id = $user->ID; - $local_avatars = get_user_meta( $user_id, 'simple_local_avatar', true ); + $local_avatars = $this->get_user_local_avatar( $user_id ); $media_id = isset( $local_avatars['media_id'] ) ? $local_avatars['media_id'] : ''; $this->clear_user_avatar_cache( $local_avatars, $user_id, $media_id ); } @@ -1442,9 +1499,9 @@ class Simple_Local_Avatars { $file_name_data = pathinfo( get_attached_file( $media_id ) ); } - $file_dir_name = $file_name_data['dirname']; - $file_name = $file_name_data['filename']; - $file_ext = $file_name_data['extension']; + $file_dir_name = $file_name_data['dirname']; + $file_name = $file_name_data['filename']; + $file_ext = $file_name_data['extension']; foreach ( $local_avatars as $local_avatars_key => $local_avatar_value ) { if ( ! in_array( $local_avatars_key, [ 'media_id', 'full' ], true ) ) { $file_size_path = sprintf( '%1$s/%2$s-%3$sx%3$s.%4$s', $file_dir_name, $file_name, $local_avatars_key, $file_ext ); @@ -1477,8 +1534,8 @@ class Simple_Local_Avatars { - -

+ +

=' ); -} +require_once '10up-lib/wp-compat-validation-tool/src/Validator.php'; -// Try to load the plugin files, ensuring our PHP version is met first. -if ( ! site_meets_php_requirements() ) { - add_action( - 'admin_notices', - function() { - ?> -
-

- -

-
- set_plugin_name( 'Simple Local Avatars' ) + ->set_php_min_required_version( '7.4' ); + +if ( ! $compat_checker->is_plugin_compatible() ) { return; } @@ -67,7 +35,7 @@ define( 'SLA_PLUGIN_BASENAME', plugin_basename( __FILE__ ) ); require_once dirname( __FILE__ ) . '/includes/class-simple-local-avatars.php'; // Global constants. -define( 'SLA_VERSION', '2.7.11' ); +define( 'SLA_VERSION', '2.8.3' ); define( 'SLA_PLUGIN_URL', plugin_dir_url( __FILE__ ) ); if ( ! defined( 'SLA_IS_NETWORK' ) ) { @@ -106,7 +74,7 @@ function simple_local_avatars_uninstall() { $simple_local_avatars = new Simple_Local_Avatars(); $users = get_users( array( - 'meta_key' => 'simple_local_avatar', + 'meta_key' => 'simple_local_avatar', // phpcs:ignore WordPress.DB.SlowDBQuery.slow_db_query_meta_key 'fields' => 'ids', ) ); diff --git a/wp-content/plugins/simple-local-avatars/vendor/autoload.php b/wp-content/plugins/simple-local-avatars/vendor/autoload.php new file mode 100644 index 00000000..826971db --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/autoload.php @@ -0,0 +1,25 @@ + + * Jordi Boggiano + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer\Autoload; + +/** + * ClassLoader implements a PSR-0, PSR-4 and classmap class loader. + * + * $loader = new \Composer\Autoload\ClassLoader(); + * + * // register classes with namespaces + * $loader->add('Symfony\Component', __DIR__.'/component'); + * $loader->add('Symfony', __DIR__.'/framework'); + * + * // activate the autoloader + * $loader->register(); + * + * // to enable searching the include path (eg. for PEAR packages) + * $loader->setUseIncludePath(true); + * + * In this example, if you try to use a class in the Symfony\Component + * namespace or one of its children (Symfony\Component\Console for instance), + * the autoloader will first look for the class under the component/ + * directory, and it will then fallback to the framework/ directory if not + * found before giving up. + * + * This class is loosely based on the Symfony UniversalClassLoader. + * + * @author Fabien Potencier + * @author Jordi Boggiano + * @see https://www.php-fig.org/psr/psr-0/ + * @see https://www.php-fig.org/psr/psr-4/ + */ +class ClassLoader +{ + /** @var \Closure(string):void */ + private static $includeFile; + + /** @var string|null */ + private $vendorDir; + + // PSR-4 + /** + * @var array> + */ + private $prefixLengthsPsr4 = array(); + /** + * @var array> + */ + private $prefixDirsPsr4 = array(); + /** + * @var list + */ + private $fallbackDirsPsr4 = array(); + + // PSR-0 + /** + * List of PSR-0 prefixes + * + * Structured as array('F (first letter)' => array('Foo\Bar (full prefix)' => array('path', 'path2'))) + * + * @var array>> + */ + private $prefixesPsr0 = array(); + /** + * @var list + */ + private $fallbackDirsPsr0 = array(); + + /** @var bool */ + private $useIncludePath = false; + + /** + * @var array + */ + private $classMap = array(); + + /** @var bool */ + private $classMapAuthoritative = false; + + /** + * @var array + */ + private $missingClasses = array(); + + /** @var string|null */ + private $apcuPrefix; + + /** + * @var array + */ + private static $registeredLoaders = array(); + + /** + * @param string|null $vendorDir + */ + public function __construct($vendorDir = null) + { + $this->vendorDir = $vendorDir; + self::initializeIncludeClosure(); + } + + /** + * @return array> + */ + public function getPrefixes() + { + if (!empty($this->prefixesPsr0)) { + return call_user_func_array('array_merge', array_values($this->prefixesPsr0)); + } + + return array(); + } + + /** + * @return array> + */ + public function getPrefixesPsr4() + { + return $this->prefixDirsPsr4; + } + + /** + * @return list + */ + public function getFallbackDirs() + { + return $this->fallbackDirsPsr0; + } + + /** + * @return list + */ + public function getFallbackDirsPsr4() + { + return $this->fallbackDirsPsr4; + } + + /** + * @return array Array of classname => path + */ + public function getClassMap() + { + return $this->classMap; + } + + /** + * @param array $classMap Class to filename map + * + * @return void + */ + public function addClassMap(array $classMap) + { + if ($this->classMap) { + $this->classMap = array_merge($this->classMap, $classMap); + } else { + $this->classMap = $classMap; + } + } + + /** + * Registers a set of PSR-0 directories for a given prefix, either + * appending or prepending to the ones previously set for this prefix. + * + * @param string $prefix The prefix + * @param list|string $paths The PSR-0 root directories + * @param bool $prepend Whether to prepend the directories + * + * @return void + */ + public function add($prefix, $paths, $prepend = false) + { + $paths = (array) $paths; + if (!$prefix) { + if ($prepend) { + $this->fallbackDirsPsr0 = array_merge( + $paths, + $this->fallbackDirsPsr0 + ); + } else { + $this->fallbackDirsPsr0 = array_merge( + $this->fallbackDirsPsr0, + $paths + ); + } + + return; + } + + $first = $prefix[0]; + if (!isset($this->prefixesPsr0[$first][$prefix])) { + $this->prefixesPsr0[$first][$prefix] = $paths; + + return; + } + if ($prepend) { + $this->prefixesPsr0[$first][$prefix] = array_merge( + $paths, + $this->prefixesPsr0[$first][$prefix] + ); + } else { + $this->prefixesPsr0[$first][$prefix] = array_merge( + $this->prefixesPsr0[$first][$prefix], + $paths + ); + } + } + + /** + * Registers a set of PSR-4 directories for a given namespace, either + * appending or prepending to the ones previously set for this namespace. + * + * @param string $prefix The prefix/namespace, with trailing '\\' + * @param list|string $paths The PSR-4 base directories + * @param bool $prepend Whether to prepend the directories + * + * @throws \InvalidArgumentException + * + * @return void + */ + public function addPsr4($prefix, $paths, $prepend = false) + { + $paths = (array) $paths; + if (!$prefix) { + // Register directories for the root namespace. + if ($prepend) { + $this->fallbackDirsPsr4 = array_merge( + $paths, + $this->fallbackDirsPsr4 + ); + } else { + $this->fallbackDirsPsr4 = array_merge( + $this->fallbackDirsPsr4, + $paths + ); + } + } elseif (!isset($this->prefixDirsPsr4[$prefix])) { + // Register directories for a new namespace. + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); + } + $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; + $this->prefixDirsPsr4[$prefix] = $paths; + } elseif ($prepend) { + // Prepend directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + $paths, + $this->prefixDirsPsr4[$prefix] + ); + } else { + // Append directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + $this->prefixDirsPsr4[$prefix], + $paths + ); + } + } + + /** + * Registers a set of PSR-0 directories for a given prefix, + * replacing any others previously set for this prefix. + * + * @param string $prefix The prefix + * @param list|string $paths The PSR-0 base directories + * + * @return void + */ + public function set($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr0 = (array) $paths; + } else { + $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths; + } + } + + /** + * Registers a set of PSR-4 directories for a given namespace, + * replacing any others previously set for this namespace. + * + * @param string $prefix The prefix/namespace, with trailing '\\' + * @param list|string $paths The PSR-4 base directories + * + * @throws \InvalidArgumentException + * + * @return void + */ + public function setPsr4($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr4 = (array) $paths; + } else { + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); + } + $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; + $this->prefixDirsPsr4[$prefix] = (array) $paths; + } + } + + /** + * Turns on searching the include path for class files. + * + * @param bool $useIncludePath + * + * @return void + */ + public function setUseIncludePath($useIncludePath) + { + $this->useIncludePath = $useIncludePath; + } + + /** + * Can be used to check if the autoloader uses the include path to check + * for classes. + * + * @return bool + */ + public function getUseIncludePath() + { + return $this->useIncludePath; + } + + /** + * Turns off searching the prefix and fallback directories for classes + * that have not been registered with the class map. + * + * @param bool $classMapAuthoritative + * + * @return void + */ + public function setClassMapAuthoritative($classMapAuthoritative) + { + $this->classMapAuthoritative = $classMapAuthoritative; + } + + /** + * Should class lookup fail if not found in the current class map? + * + * @return bool + */ + public function isClassMapAuthoritative() + { + return $this->classMapAuthoritative; + } + + /** + * APCu prefix to use to cache found/not-found classes, if the extension is enabled. + * + * @param string|null $apcuPrefix + * + * @return void + */ + public function setApcuPrefix($apcuPrefix) + { + $this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null; + } + + /** + * The APCu prefix in use, or null if APCu caching is not enabled. + * + * @return string|null + */ + public function getApcuPrefix() + { + return $this->apcuPrefix; + } + + /** + * Registers this instance as an autoloader. + * + * @param bool $prepend Whether to prepend the autoloader or not + * + * @return void + */ + public function register($prepend = false) + { + spl_autoload_register(array($this, 'loadClass'), true, $prepend); + + if (null === $this->vendorDir) { + return; + } + + if ($prepend) { + self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders; + } else { + unset(self::$registeredLoaders[$this->vendorDir]); + self::$registeredLoaders[$this->vendorDir] = $this; + } + } + + /** + * Unregisters this instance as an autoloader. + * + * @return void + */ + public function unregister() + { + spl_autoload_unregister(array($this, 'loadClass')); + + if (null !== $this->vendorDir) { + unset(self::$registeredLoaders[$this->vendorDir]); + } + } + + /** + * Loads the given class or interface. + * + * @param string $class The name of the class + * @return true|null True if loaded, null otherwise + */ + public function loadClass($class) + { + if ($file = $this->findFile($class)) { + $includeFile = self::$includeFile; + $includeFile($file); + + return true; + } + + return null; + } + + /** + * Finds the path to the file where the class is defined. + * + * @param string $class The name of the class + * + * @return string|false The path if found, false otherwise + */ + public function findFile($class) + { + // class map lookup + if (isset($this->classMap[$class])) { + return $this->classMap[$class]; + } + if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) { + return false; + } + if (null !== $this->apcuPrefix) { + $file = apcu_fetch($this->apcuPrefix.$class, $hit); + if ($hit) { + return $file; + } + } + + $file = $this->findFileWithExtension($class, '.php'); + + // Search for Hack files if we are running on HHVM + if (false === $file && defined('HHVM_VERSION')) { + $file = $this->findFileWithExtension($class, '.hh'); + } + + if (null !== $this->apcuPrefix) { + apcu_add($this->apcuPrefix.$class, $file); + } + + if (false === $file) { + // Remember that this class does not exist. + $this->missingClasses[$class] = true; + } + + return $file; + } + + /** + * Returns the currently registered loaders keyed by their corresponding vendor directories. + * + * @return array + */ + public static function getRegisteredLoaders() + { + return self::$registeredLoaders; + } + + /** + * @param string $class + * @param string $ext + * @return string|false + */ + private function findFileWithExtension($class, $ext) + { + // PSR-4 lookup + $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; + + $first = $class[0]; + if (isset($this->prefixLengthsPsr4[$first])) { + $subPath = $class; + while (false !== $lastPos = strrpos($subPath, '\\')) { + $subPath = substr($subPath, 0, $lastPos); + $search = $subPath . '\\'; + if (isset($this->prefixDirsPsr4[$search])) { + $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1); + foreach ($this->prefixDirsPsr4[$search] as $dir) { + if (file_exists($file = $dir . $pathEnd)) { + return $file; + } + } + } + } + } + + // PSR-4 fallback dirs + foreach ($this->fallbackDirsPsr4 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { + return $file; + } + } + + // PSR-0 lookup + if (false !== $pos = strrpos($class, '\\')) { + // namespaced class name + $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) + . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); + } else { + // PEAR-like class name + $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; + } + + if (isset($this->prefixesPsr0[$first])) { + foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { + if (0 === strpos($class, $prefix)) { + foreach ($dirs as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + } + } + } + + // PSR-0 fallback dirs + foreach ($this->fallbackDirsPsr0 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + + // PSR-0 include paths. + if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { + return $file; + } + + return false; + } + + /** + * @return void + */ + private static function initializeIncludeClosure() + { + if (self::$includeFile !== null) { + return; + } + + /** + * Scope isolated include. + * + * Prevents access to $this/self from included files. + * + * @param string $file + * @return void + */ + self::$includeFile = \Closure::bind(static function($file) { + include $file; + }, null, null); + } +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/InstalledVersions.php b/wp-content/plugins/simple-local-avatars/vendor/composer/InstalledVersions.php new file mode 100644 index 00000000..51e734a7 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/InstalledVersions.php @@ -0,0 +1,359 @@ + + * Jordi Boggiano + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer; + +use Composer\Autoload\ClassLoader; +use Composer\Semver\VersionParser; + +/** + * This class is copied in every Composer installed project and available to all + * + * See also https://getcomposer.org/doc/07-runtime.md#installed-versions + * + * To require its presence, you can require `composer-runtime-api ^2.0` + * + * @final + */ +class InstalledVersions +{ + /** + * @var mixed[]|null + * @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array}|array{}|null + */ + private static $installed; + + /** + * @var bool|null + */ + private static $canGetVendors; + + /** + * @var array[] + * @psalm-var array}> + */ + private static $installedByVendor = array(); + + /** + * Returns a list of all package names which are present, either by being installed, replaced or provided + * + * @return string[] + * @psalm-return list + */ + public static function getInstalledPackages() + { + $packages = array(); + foreach (self::getInstalled() as $installed) { + $packages[] = array_keys($installed['versions']); + } + + if (1 === \count($packages)) { + return $packages[0]; + } + + return array_keys(array_flip(\call_user_func_array('array_merge', $packages))); + } + + /** + * Returns a list of all package names with a specific type e.g. 'library' + * + * @param string $type + * @return string[] + * @psalm-return list + */ + public static function getInstalledPackagesByType($type) + { + $packagesByType = array(); + + foreach (self::getInstalled() as $installed) { + foreach ($installed['versions'] as $name => $package) { + if (isset($package['type']) && $package['type'] === $type) { + $packagesByType[] = $name; + } + } + } + + return $packagesByType; + } + + /** + * Checks whether the given package is installed + * + * This also returns true if the package name is provided or replaced by another package + * + * @param string $packageName + * @param bool $includeDevRequirements + * @return bool + */ + public static function isInstalled($packageName, $includeDevRequirements = true) + { + foreach (self::getInstalled() as $installed) { + if (isset($installed['versions'][$packageName])) { + return $includeDevRequirements || !isset($installed['versions'][$packageName]['dev_requirement']) || $installed['versions'][$packageName]['dev_requirement'] === false; + } + } + + return false; + } + + /** + * Checks whether the given package satisfies a version constraint + * + * e.g. If you want to know whether version 2.3+ of package foo/bar is installed, you would call: + * + * Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3') + * + * @param VersionParser $parser Install composer/semver to have access to this class and functionality + * @param string $packageName + * @param string|null $constraint A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package + * @return bool + */ + public static function satisfies(VersionParser $parser, $packageName, $constraint) + { + $constraint = $parser->parseConstraints((string) $constraint); + $provided = $parser->parseConstraints(self::getVersionRanges($packageName)); + + return $provided->matches($constraint); + } + + /** + * Returns a version constraint representing all the range(s) which are installed for a given package + * + * It is easier to use this via isInstalled() with the $constraint argument if you need to check + * whether a given version of a package is installed, and not just whether it exists + * + * @param string $packageName + * @return string Version constraint usable with composer/semver + */ + public static function getVersionRanges($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + $ranges = array(); + if (isset($installed['versions'][$packageName]['pretty_version'])) { + $ranges[] = $installed['versions'][$packageName]['pretty_version']; + } + if (array_key_exists('aliases', $installed['versions'][$packageName])) { + $ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']); + } + if (array_key_exists('replaced', $installed['versions'][$packageName])) { + $ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']); + } + if (array_key_exists('provided', $installed['versions'][$packageName])) { + $ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']); + } + + return implode(' || ', $ranges); + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @param string $packageName + * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present + */ + public static function getVersion($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + if (!isset($installed['versions'][$packageName]['version'])) { + return null; + } + + return $installed['versions'][$packageName]['version']; + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @param string $packageName + * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present + */ + public static function getPrettyVersion($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + if (!isset($installed['versions'][$packageName]['pretty_version'])) { + return null; + } + + return $installed['versions'][$packageName]['pretty_version']; + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @param string $packageName + * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as reference + */ + public static function getReference($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + if (!isset($installed['versions'][$packageName]['reference'])) { + return null; + } + + return $installed['versions'][$packageName]['reference']; + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @param string $packageName + * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as install path. Packages of type metapackages also have a null install path. + */ + public static function getInstallPath($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + return isset($installed['versions'][$packageName]['install_path']) ? $installed['versions'][$packageName]['install_path'] : null; + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @return array + * @psalm-return array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool} + */ + public static function getRootPackage() + { + $installed = self::getInstalled(); + + return $installed[0]['root']; + } + + /** + * Returns the raw installed.php data for custom implementations + * + * @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect. + * @return array[] + * @psalm-return array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} + */ + public static function getRawData() + { + @trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED); + + if (null === self::$installed) { + // only require the installed.php file if this file is loaded from its dumped location, + // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937 + if (substr(__DIR__, -8, 1) !== 'C') { + self::$installed = include __DIR__ . '/installed.php'; + } else { + self::$installed = array(); + } + } + + return self::$installed; + } + + /** + * Returns the raw data of all installed.php which are currently loaded for custom implementations + * + * @return array[] + * @psalm-return list}> + */ + public static function getAllRawData() + { + return self::getInstalled(); + } + + /** + * Lets you reload the static array from another file + * + * This is only useful for complex integrations in which a project needs to use + * this class but then also needs to execute another project's autoloader in process, + * and wants to ensure both projects have access to their version of installed.php. + * + * A typical case would be PHPUnit, where it would need to make sure it reads all + * the data it needs from this class, then call reload() with + * `require $CWD/vendor/composer/installed.php` (or similar) as input to make sure + * the project in which it runs can then also use this class safely, without + * interference between PHPUnit's dependencies and the project's dependencies. + * + * @param array[] $data A vendor/composer/installed.php data set + * @return void + * + * @psalm-param array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $data + */ + public static function reload($data) + { + self::$installed = $data; + self::$installedByVendor = array(); + } + + /** + * @return array[] + * @psalm-return list}> + */ + private static function getInstalled() + { + if (null === self::$canGetVendors) { + self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders'); + } + + $installed = array(); + + if (self::$canGetVendors) { + foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) { + if (isset(self::$installedByVendor[$vendorDir])) { + $installed[] = self::$installedByVendor[$vendorDir]; + } elseif (is_file($vendorDir.'/composer/installed.php')) { + /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $required */ + $required = require $vendorDir.'/composer/installed.php'; + $installed[] = self::$installedByVendor[$vendorDir] = $required; + if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) { + self::$installed = $installed[count($installed) - 1]; + } + } + } + } + + if (null === self::$installed) { + // only require the installed.php file if this file is loaded from its dumped location, + // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937 + if (substr(__DIR__, -8, 1) !== 'C') { + /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $required */ + $required = require __DIR__ . '/installed.php'; + self::$installed = $required; + } else { + self::$installed = array(); + } + } + + if (self::$installed !== array()) { + $installed[] = self::$installed; + } + + return $installed; + } +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/LICENSE b/wp-content/plugins/simple-local-avatars/vendor/composer/LICENSE new file mode 100644 index 00000000..f27399a0 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/LICENSE @@ -0,0 +1,21 @@ + +Copyright (c) Nils Adermann, Jordi Boggiano + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/autoload_classmap.php b/wp-content/plugins/simple-local-avatars/vendor/composer/autoload_classmap.php new file mode 100644 index 00000000..0fb0a2c1 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/autoload_classmap.php @@ -0,0 +1,10 @@ + $vendorDir . '/composer/InstalledVersions.php', +); diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/autoload_namespaces.php b/wp-content/plugins/simple-local-avatars/vendor/composer/autoload_namespaces.php new file mode 100644 index 00000000..15a2ff3a --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/autoload_namespaces.php @@ -0,0 +1,9 @@ + array($baseDir . '/10up-lib/wp-compat-validation-tool/src'), + 'Composer\\Installers\\' => array($vendorDir . '/composer/installers/src/Composer/Installers'), +); diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/autoload_real.php b/wp-content/plugins/simple-local-avatars/vendor/composer/autoload_real.php new file mode 100644 index 00000000..c93fe041 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/autoload_real.php @@ -0,0 +1,38 @@ +register(true); + + return $loader; + } +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/autoload_static.php b/wp-content/plugins/simple-local-avatars/vendor/composer/autoload_static.php new file mode 100644 index 00000000..692e5992 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/autoload_static.php @@ -0,0 +1,44 @@ + + array ( + 'WP_Compat_Validation_Tool\\' => 26, + ), + 'C' => + array ( + 'Composer\\Installers\\' => 20, + ), + ); + + public static $prefixDirsPsr4 = array ( + 'WP_Compat_Validation_Tool\\' => + array ( + 0 => __DIR__ . '/../..' . '/10up-lib/wp-compat-validation-tool/src', + ), + 'Composer\\Installers\\' => + array ( + 0 => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers', + ), + ); + + public static $classMap = array ( + 'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php', + ); + + public static function getInitializer(ClassLoader $loader) + { + return \Closure::bind(function () use ($loader) { + $loader->prefixLengthsPsr4 = ComposerStaticInit998b6fd9c25857a5c183b81c7706d47e::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInit998b6fd9c25857a5c183b81c7706d47e::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInit998b6fd9c25857a5c183b81c7706d47e::$classMap; + + }, null, ClassLoader::class); + } +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installed.json b/wp-content/plugins/simple-local-avatars/vendor/composer/installed.json new file mode 100644 index 00000000..c286cb52 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installed.json @@ -0,0 +1,194 @@ +{ + "packages": [ + { + "name": "10up/wp-compat-validation-tool", + "version": "dev-trunk", + "version_normalized": "dev-trunk", + "source": { + "type": "git", + "url": "https://github.com/10up/wp-compat-validation-tool.git", + "reference": "19a8c7c1d39d3a4c896aeeac8d42edd20b8d2317" + }, + "require": { + "composer/installers": "^2.2" + }, + "time": "2023-11-09T18:48:23+00:00", + "type": "wordpress-plugin", + "extra": { + "installer-name": "10up-lib/wp-compat-validation-tool" + }, + "installation-source": "source", + "autoload": { + "psr-4": { + "WP_Compat_Validation_Tool\\": "src/" + } + }, + "license": [ + "MIT" + ], + "authors": [ + { + "name": "10up", + "email": "opensource@10up.com", + "homepage": "https://10up.com", + "role": "Developer" + } + ], + "description": "Perform PHP and WP version compatibility checks in your plugin.", + "homepage": "https://github.com/10up/wp-compat-validation-tool", + "install-path": "../../10up-lib/wp-compat-validation-tool" + }, + { + "name": "composer/installers", + "version": "dev-main", + "version_normalized": "dev-main", + "source": { + "type": "git", + "url": "https://github.com/composer/installers.git", + "reference": "12fb2dfe5e16183de69e784a7b84046c43d97e8e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/installers/zipball/12fb2dfe5e16183de69e784a7b84046c43d97e8e", + "reference": "12fb2dfe5e16183de69e784a7b84046c43d97e8e", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0 || ^2.0", + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "composer/composer": "^1.10.27 || ^2.7", + "composer/semver": "^1.7.2 || ^3.4.0", + "phpstan/phpstan": "^1.11", + "phpstan/phpstan-phpunit": "^1", + "symfony/phpunit-bridge": "^7.1.1", + "symfony/process": "^5 || ^6 || ^7" + }, + "time": "2024-06-24T20:46:46+00:00", + "default-branch": true, + "type": "composer-plugin", + "extra": { + "class": "Composer\\Installers\\Plugin", + "branch-alias": { + "dev-main": "2.x-dev" + }, + "plugin-modifies-install-path": true + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Composer\\Installers\\": "src/Composer/Installers" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Kyle Robinson Young", + "email": "kyle@dontkry.com", + "homepage": "https://github.com/shama" + } + ], + "description": "A multi-framework Composer library installer", + "homepage": "https://composer.github.io/installers/", + "keywords": [ + "Dolibarr", + "Eliasis", + "Hurad", + "ImageCMS", + "Kanboard", + "Lan Management System", + "MODX Evo", + "MantisBT", + "Mautic", + "Maya", + "OXID", + "Plentymarkets", + "Porto", + "RadPHP", + "SMF", + "Starbug", + "Thelia", + "Whmcs", + "WolfCMS", + "agl", + "annotatecms", + "attogram", + "bitrix", + "cakephp", + "chef", + "cockpit", + "codeigniter", + "concrete5", + "concreteCMS", + "croogo", + "dokuwiki", + "drupal", + "eZ Platform", + "elgg", + "expressionengine", + "fuelphp", + "grav", + "installer", + "itop", + "known", + "kohana", + "laravel", + "lavalite", + "lithium", + "magento", + "majima", + "mako", + "matomo", + "mediawiki", + "miaoxing", + "modulework", + "modx", + "moodle", + "osclass", + "pantheon", + "phpbb", + "piwik", + "ppi", + "processwire", + "puppet", + "pxcms", + "reindex", + "roundcube", + "shopware", + "silverstripe", + "sydes", + "sylius", + "tastyigniter", + "wordpress", + "yawik", + "zend", + "zikula" + ], + "support": { + "issues": "https://github.com/composer/installers/issues", + "source": "https://github.com/composer/installers/tree/v2.3.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" + } + ], + "install-path": "./installers" + } + ], + "dev": false, + "dev-package-names": [] +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installed.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installed.php new file mode 100644 index 00000000..2d9a55b6 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installed.php @@ -0,0 +1,43 @@ + array( + 'name' => '10up/simple-local-avatars', + 'pretty_version' => '2.8.3', + 'version' => '2.8.3.0', + 'reference' => 'f30aabcce169c2325759a8e9754e8ac82d948396', + 'type' => 'wordpress-plugin', + 'install_path' => __DIR__ . '/../../', + 'aliases' => array(), + 'dev' => false, + ), + 'versions' => array( + '10up/simple-local-avatars' => array( + 'pretty_version' => '2.8.3', + 'version' => '2.8.3.0', + 'reference' => 'f30aabcce169c2325759a8e9754e8ac82d948396', + 'type' => 'wordpress-plugin', + 'install_path' => __DIR__ . '/../../', + 'aliases' => array(), + 'dev_requirement' => false, + ), + '10up/wp-compat-validation-tool' => array( + 'pretty_version' => 'dev-trunk', + 'version' => 'dev-trunk', + 'reference' => '19a8c7c1d39d3a4c896aeeac8d42edd20b8d2317', + 'type' => 'wordpress-plugin', + 'install_path' => __DIR__ . '/../../10up-lib/wp-compat-validation-tool', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'composer/installers' => array( + 'pretty_version' => 'dev-main', + 'version' => 'dev-main', + 'reference' => '12fb2dfe5e16183de69e784a7b84046c43d97e8e', + 'type' => 'composer-plugin', + 'install_path' => __DIR__ . '/./installers', + 'aliases' => array( + 0 => '2.x-dev', + ), + 'dev_requirement' => false, + ), + ), +); diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/.github/workflows/continuous-integration.yml b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/.github/workflows/continuous-integration.yml new file mode 100644 index 00000000..2ecae136 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/.github/workflows/continuous-integration.yml @@ -0,0 +1,65 @@ +name: "Continuous Integration" + +on: + - push + - pull_request + +env: + COMPOSER_FLAGS: "--ansi --no-interaction --no-progress --prefer-dist" + SYMFONY_PHPUNIT_REMOVE_RETURN_TYPEHINT: "1" + +permissions: + contents: read + +jobs: + tests: + name: "CI" + + runs-on: ubuntu-latest + + strategy: + matrix: + php-version: + - "7.2" + - "7.3" + - "7.4" + - "8.0" + - "8.1" + dependencies: [locked] + include: + - php-version: "7.2" + dependencies: lowest + - php-version: "8.1" + dependencies: lowest + + steps: + - name: "Checkout" + uses: "actions/checkout@v2" + + - name: "Install PHP" + uses: "shivammathur/setup-php@v2" + with: + coverage: "none" + php-version: "${{ matrix.php-version }}" + tools: composer:snapshot + + - name: Get composer cache directory + id: composercache + run: echo "::set-output name=dir::$(composer config cache-files-dir)" + + - name: Cache dependencies + uses: actions/cache@v2 + with: + path: ${{ steps.composercache.outputs.dir }} + key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} + restore-keys: ${{ runner.os }}-composer- + + - name: "Handle lowest dependencies update" + if: "contains(matrix.dependencies, 'lowest')" + run: "echo \"COMPOSER_FLAGS=$COMPOSER_FLAGS --prefer-lowest\" >> $GITHUB_ENV" + + - name: "Install latest dependencies" + run: "composer update ${{ env.COMPOSER_FLAGS }}" + + - name: "Run tests" + run: "vendor/bin/simple-phpunit --verbose" diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/.github/workflows/lint.yml b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/.github/workflows/lint.yml new file mode 100644 index 00000000..61b56333 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/.github/workflows/lint.yml @@ -0,0 +1,33 @@ +name: "PHP Lint" + +on: + - push + - pull_request + +permissions: + contents: read + +jobs: + tests: + name: "Lint" + + runs-on: ubuntu-latest + + strategy: + matrix: + php-version: + - "7.2" + - "latest" + + steps: + - name: "Checkout" + uses: "actions/checkout@v2" + + - name: "Install PHP" + uses: "shivammathur/setup-php@v2" + with: + coverage: "none" + php-version: "${{ matrix.php-version }}" + + - name: "Lint PHP files" + run: "find src/ -type f -name '*.php' -print0 | xargs -0 -L1 -P4 -- php -l -f" diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/.github/workflows/phpstan.yml b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/.github/workflows/phpstan.yml new file mode 100644 index 00000000..c638b440 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/.github/workflows/phpstan.yml @@ -0,0 +1,52 @@ +name: "PHPStan" + +on: + - push + - pull_request + +env: + COMPOSER_FLAGS: "--ansi --no-interaction --no-progress --prefer-dist" + SYMFONY_PHPUNIT_VERSION: "" + +permissions: + contents: read + +jobs: + tests: + name: "PHPStan" + + runs-on: ubuntu-latest + + strategy: + matrix: + php-version: + - "8.0" + + steps: + - name: "Checkout" + uses: "actions/checkout@v2" + + - name: "Install PHP" + uses: "shivammathur/setup-php@v2" + with: + coverage: "none" + php-version: "${{ matrix.php-version }}" + + - name: Get composer cache directory + id: composercache + run: echo "::set-output name=dir::$(composer config cache-files-dir)" + + - name: Cache dependencies + uses: actions/cache@v2 + with: + path: ${{ steps.composercache.outputs.dir }} + key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} + restore-keys: ${{ runner.os }}-composer- + + - name: "Install latest dependencies" + run: "composer update ${{ env.COMPOSER_FLAGS }}" + + - name: Run PHPStan + run: | + composer require --dev phpunit/phpunit:^8.5.18 --with-all-dependencies ${{ env.COMPOSER_FLAGS }} + vendor/bin/phpstan analyse diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/LICENSE b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/LICENSE new file mode 100644 index 00000000..85f97fc7 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2012 Kyle Robinson Young + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. \ No newline at end of file diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/composer.json b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/composer.json new file mode 100644 index 00000000..91034848 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/composer.json @@ -0,0 +1,117 @@ +{ + "name": "composer/installers", + "type": "composer-plugin", + "license": "MIT", + "description": "A multi-framework Composer library installer", + "keywords": [ + "installer", + "AGL", + "AnnotateCms", + "Attogram", + "Bitrix", + "CakePHP", + "Chef", + "Cockpit", + "CodeIgniter", + "concrete5", + "ConcreteCMS", + "Croogo", + "DokuWiki", + "Dolibarr", + "Drupal", + "Elgg", + "Eliasis", + "ExpressionEngine", + "eZ Platform", + "FuelPHP", + "Grav", + "Hurad", + "ImageCMS", + "iTop", + "Kanboard", + "Known", + "Kohana", + "Lan Management System", + "Laravel", + "Lavalite", + "Lithium", + "Magento", + "majima", + "Mako", + "MantisBT", + "Matomo", + "Mautic", + "Maya", + "MODX", + "MODX Evo", + "MediaWiki", + "Miaoxing", + "OXID", + "osclass", + "MODULEWork", + "Moodle", + "Pantheon", + "Piwik", + "pxcms", + "phpBB", + "Plentymarkets", + "PPI", + "Puppet", + "Porto", + "ProcessWire", + "RadPHP", + "ReIndex", + "Roundcube", + "shopware", + "SilverStripe", + "SMF", + "Starbug", + "SyDES", + "Sylius", + "TastyIgniter", + "Thelia", + "WHMCS", + "WolfCMS", + "WordPress", + "YAWIK", + "Zend", + "Zikula" + ], + "homepage": "https://composer.github.io/installers/", + "authors": [ + { + "name": "Kyle Robinson Young", + "email": "kyle@dontkry.com", + "homepage": "https://github.com/shama" + } + ], + "autoload": { + "psr-4": { "Composer\\Installers\\": "src/Composer/Installers" } + }, + "autoload-dev": { + "psr-4": { "Composer\\Installers\\Test\\": "tests/Composer/Installers/Test" } + }, + "extra": { + "class": "Composer\\Installers\\Plugin", + "branch-alias": { + "dev-main": "2.x-dev" + }, + "plugin-modifies-install-path": true + }, + "require": { + "php": "^7.2 || ^8.0", + "composer-plugin-api": "^1.0 || ^2.0" + }, + "require-dev": { + "composer/composer": "^1.10.27 || ^2.7", + "composer/semver": "^1.7.2 || ^3.4.0", + "symfony/phpunit-bridge": "^7.1.1", + "phpstan/phpstan": "^1.11", + "symfony/process": "^5 || ^6 || ^7", + "phpstan/phpstan-phpunit": "^1" + }, + "scripts": { + "test": "@php vendor/bin/simple-phpunit", + "phpstan": "@php vendor/bin/phpstan analyse" + } +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/AglInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/AglInstaller.php new file mode 100644 index 00000000..b0996a6a --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/AglInstaller.php @@ -0,0 +1,29 @@ + */ + protected $locations = array( + 'module' => 'More/{$name}/', + ); + + /** + * Format package name to CamelCase + */ + public function inflectPackageVars(array $vars): array + { + $name = preg_replace_callback('/(?:^|_|-)(.?)/', function ($matches) { + return strtoupper($matches[1]); + }, $vars['name']); + + if (null === $name) { + throw new \RuntimeException('Failed to run preg_replace_callback: '.preg_last_error()); + } + + $vars['name'] = $name; + + return $vars; + } +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/AkauntingInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/AkauntingInstaller.php new file mode 100644 index 00000000..c504c70f --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/AkauntingInstaller.php @@ -0,0 +1,23 @@ + */ + protected $locations = array( + 'module' => 'modules/{$name}', + ); + + /** + * Format package name to CamelCase + */ + public function inflectPackageVars(array $vars): array + { + $vars['name'] = strtolower($this->pregReplace('/(?<=\\w)([A-Z])/', '_\\1', $vars['name'])); + $vars['name'] = str_replace(array('-', '_'), ' ', $vars['name']); + $vars['name'] = str_replace(' ', '', ucwords($vars['name'])); + + return $vars; + } +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/AnnotateCmsInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/AnnotateCmsInstaller.php new file mode 100644 index 00000000..58a0f666 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/AnnotateCmsInstaller.php @@ -0,0 +1,13 @@ + */ + protected $locations = array( + 'module' => 'addons/modules/{$name}/', + 'component' => 'addons/components/{$name}/', + 'service' => 'addons/services/{$name}/', + ); +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/AsgardInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/AsgardInstaller.php new file mode 100644 index 00000000..f01b3991 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/AsgardInstaller.php @@ -0,0 +1,58 @@ + */ + protected $locations = array( + 'module' => 'Modules/{$name}/', + 'theme' => 'Themes/{$name}/' + ); + + /** + * Format package name. + * + * For package type asgard-module, cut off a trailing '-plugin' if present. + * + * For package type asgard-theme, cut off a trailing '-theme' if present. + */ + public function inflectPackageVars(array $vars): array + { + if ($vars['type'] === 'asgard-module') { + return $this->inflectPluginVars($vars); + } + + if ($vars['type'] === 'asgard-theme') { + return $this->inflectThemeVars($vars); + } + + return $vars; + } + + /** + * @param array $vars + * @return array + */ + protected function inflectPluginVars(array $vars): array + { + $vars['name'] = $this->pregReplace('/-module$/', '', $vars['name']); + $vars['name'] = str_replace(array('-', '_'), ' ', $vars['name']); + $vars['name'] = str_replace(' ', '', ucwords($vars['name'])); + + return $vars; + } + + /** + * @param array $vars + * @return array + */ + protected function inflectThemeVars(array $vars): array + { + $vars['name'] = $this->pregReplace('/-theme$/', '', $vars['name']); + $vars['name'] = str_replace(array('-', '_'), ' ', $vars['name']); + $vars['name'] = str_replace(' ', '', ucwords($vars['name'])); + + return $vars; + } +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/AttogramInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/AttogramInstaller.php new file mode 100644 index 00000000..bd7dd8d7 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/AttogramInstaller.php @@ -0,0 +1,11 @@ + */ + protected $locations = array( + 'module' => 'modules/{$name}/', + ); +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/BaseInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/BaseInstaller.php new file mode 100644 index 00000000..663ec2af --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/BaseInstaller.php @@ -0,0 +1,137 @@ + */ + protected $locations = array(); + /** @var Composer */ + protected $composer; + /** @var PackageInterface */ + protected $package; + /** @var IOInterface */ + protected $io; + + /** + * Initializes base installer. + */ + public function __construct(PackageInterface $package, Composer $composer, IOInterface $io) + { + $this->composer = $composer; + $this->package = $package; + $this->io = $io; + } + + /** + * Return the install path based on package type. + */ + public function getInstallPath(PackageInterface $package, string $frameworkType = ''): string + { + $type = $this->package->getType(); + + $prettyName = $this->package->getPrettyName(); + if (strpos($prettyName, '/') !== false) { + list($vendor, $name) = explode('/', $prettyName); + } else { + $vendor = ''; + $name = $prettyName; + } + + $availableVars = $this->inflectPackageVars(compact('name', 'vendor', 'type')); + + $extra = $package->getExtra(); + if (!empty($extra['installer-name'])) { + $availableVars['name'] = $extra['installer-name']; + } + + $extra = $this->composer->getPackage()->getExtra(); + if (!empty($extra['installer-paths'])) { + $customPath = $this->mapCustomInstallPaths($extra['installer-paths'], $prettyName, $type, $vendor); + if ($customPath !== false) { + return $this->templatePath($customPath, $availableVars); + } + } + + $packageType = substr($type, strlen($frameworkType) + 1); + $locations = $this->getLocations($frameworkType); + if (!isset($locations[$packageType])) { + throw new \InvalidArgumentException(sprintf('Package type "%s" is not supported', $type)); + } + + return $this->templatePath($locations[$packageType], $availableVars); + } + + /** + * For an installer to override to modify the vars per installer. + * + * @param array $vars This will normally receive array{name: string, vendor: string, type: string} + * @return array + */ + public function inflectPackageVars(array $vars): array + { + return $vars; + } + + /** + * Gets the installer's locations + * + * @return array map of package types => install path + */ + public function getLocations(string $frameworkType) + { + return $this->locations; + } + + /** + * Replace vars in a path + * + * @param array $vars + */ + protected function templatePath(string $path, array $vars = array()): string + { + if (strpos($path, '{') !== false) { + extract($vars); + preg_match_all('@\{\$([A-Za-z0-9_]*)\}@i', $path, $matches); + if (!empty($matches[1])) { + foreach ($matches[1] as $var) { + $path = str_replace('{$' . $var . '}', $$var, $path); + } + } + } + + return $path; + } + + /** + * Search through a passed paths array for a custom install path. + * + * @param array $paths + * @return string|false + */ + protected function mapCustomInstallPaths(array $paths, string $name, string $type, ?string $vendor = null) + { + foreach ($paths as $path => $names) { + $names = (array) $names; + if (in_array($name, $names) || in_array('type:' . $type, $names) || in_array('vendor:' . $vendor, $names)) { + return $path; + } + } + + return false; + } + + protected function pregReplace(string $pattern, string $replacement, string $subject): string + { + $result = preg_replace($pattern, $replacement, $subject); + if (null === $result) { + throw new \RuntimeException('Failed to run preg_replace with '.$pattern.': '.preg_last_error()); + } + + return $result; + } +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/BitrixInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/BitrixInstaller.php new file mode 100644 index 00000000..705ecb4f --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/BitrixInstaller.php @@ -0,0 +1,123 @@ +.`. + * - `bitrix-d7-component` — copy the component to directory `bitrix/components//`. + * - `bitrix-d7-template` — copy the template to directory `bitrix/templates/_`. + * + * You can set custom path to directory with Bitrix kernel in `composer.json`: + * + * ```json + * { + * "extra": { + * "bitrix-dir": "s1/bitrix" + * } + * } + * ``` + * + * @author Nik Samokhvalov + * @author Denis Kulichkin + */ +class BitrixInstaller extends BaseInstaller +{ + /** @var array */ + protected $locations = array( + 'module' => '{$bitrix_dir}/modules/{$name}/', // deprecated, remove on the major release (Backward compatibility will be broken) + 'component' => '{$bitrix_dir}/components/{$name}/', // deprecated, remove on the major release (Backward compatibility will be broken) + 'theme' => '{$bitrix_dir}/templates/{$name}/', // deprecated, remove on the major release (Backward compatibility will be broken) + 'd7-module' => '{$bitrix_dir}/modules/{$vendor}.{$name}/', + 'd7-component' => '{$bitrix_dir}/components/{$vendor}/{$name}/', + 'd7-template' => '{$bitrix_dir}/templates/{$vendor}_{$name}/', + ); + + /** + * @var string[] Storage for informations about duplicates at all the time of installation packages. + */ + private static $checkedDuplicates = array(); + + public function inflectPackageVars(array $vars): array + { + /** @phpstan-ignore-next-line */ + if ($this->composer->getPackage()) { + $extra = $this->composer->getPackage()->getExtra(); + + if (isset($extra['bitrix-dir'])) { + $vars['bitrix_dir'] = $extra['bitrix-dir']; + } + } + + if (!isset($vars['bitrix_dir'])) { + $vars['bitrix_dir'] = 'bitrix'; + } + + return parent::inflectPackageVars($vars); + } + + /** + * {@inheritdoc} + */ + protected function templatePath(string $path, array $vars = array()): string + { + $templatePath = parent::templatePath($path, $vars); + $this->checkDuplicates($templatePath, $vars); + + return $templatePath; + } + + /** + * Duplicates search packages. + * + * @param array $vars + */ + protected function checkDuplicates(string $path, array $vars = array()): void + { + $packageType = substr($vars['type'], strlen('bitrix') + 1); + $localDir = explode('/', $vars['bitrix_dir']); + array_pop($localDir); + $localDir[] = 'local'; + $localDir = implode('/', $localDir); + + $oldPath = str_replace( + array('{$bitrix_dir}', '{$name}'), + array($localDir, $vars['name']), + $this->locations[$packageType] + ); + + if (in_array($oldPath, static::$checkedDuplicates)) { + return; + } + + if ($oldPath !== $path && file_exists($oldPath) && $this->io->isInteractive()) { + $this->io->writeError(' Duplication of packages:'); + $this->io->writeError(' Package ' . $oldPath . ' will be called instead package ' . $path . ''); + + while (true) { + switch ($this->io->ask(' Delete ' . $oldPath . ' [y,n,?]? ', '?')) { + case 'y': + $fs = new Filesystem(); + $fs->removeDirectory($oldPath); + break 2; + + case 'n': + break 2; + + case '?': + default: + $this->io->writeError(array( + ' y - delete package ' . $oldPath . ' and to continue with the installation', + ' n - don\'t delete and to continue with the installation', + )); + $this->io->writeError(' ? - print help'); + break; + } + } + } + + static::$checkedDuplicates[] = $oldPath; + } +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/BonefishInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/BonefishInstaller.php new file mode 100644 index 00000000..ab022d99 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/BonefishInstaller.php @@ -0,0 +1,11 @@ + */ + protected $locations = array( + 'package' => 'Packages/{$vendor}/{$name}/' + ); +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/BotbleInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/BotbleInstaller.php new file mode 100644 index 00000000..35e1cb8d --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/BotbleInstaller.php @@ -0,0 +1,12 @@ + */ + protected $locations = array( + 'plugin' => 'platform/plugins/{$name}/', + 'theme' => 'platform/themes/{$name}/', + ); +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/CakePHPInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/CakePHPInstaller.php new file mode 100644 index 00000000..12b4ed40 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/CakePHPInstaller.php @@ -0,0 +1,67 @@ + */ + protected $locations = array( + 'plugin' => 'Plugin/{$name}/', + ); + + /** + * Format package name to CamelCase + */ + public function inflectPackageVars(array $vars): array + { + if ($this->matchesCakeVersion('>=', '3.0.0')) { + return $vars; + } + + $nameParts = explode('/', $vars['name']); + foreach ($nameParts as &$value) { + $value = strtolower($this->pregReplace('/(?<=\\w)([A-Z])/', '_\\1', $value)); + $value = str_replace(array('-', '_'), ' ', $value); + $value = str_replace(' ', '', ucwords($value)); + } + $vars['name'] = implode('/', $nameParts); + + return $vars; + } + + /** + * Change the default plugin location when cakephp >= 3.0 + */ + public function getLocations(string $frameworkType): array + { + if ($this->matchesCakeVersion('>=', '3.0.0')) { + $this->locations['plugin'] = $this->composer->getConfig()->get('vendor-dir') . '/{$vendor}/{$name}/'; + } + return $this->locations; + } + + /** + * Check if CakePHP version matches against a version + * + * @phpstan-param '='|'=='|'<'|'<='|'>'|'>='|'<>'|'!=' $matcher + */ + protected function matchesCakeVersion(string $matcher, string $version): bool + { + $repositoryManager = $this->composer->getRepositoryManager(); + /** @phpstan-ignore-next-line */ + if (!$repositoryManager) { + return false; + } + + $repos = $repositoryManager->getLocalRepository(); + /** @phpstan-ignore-next-line */ + if (!$repos) { + return false; + } + + return $repos->findPackage('cakephp/cakephp', new Constraint($matcher, $version)) !== null; + } +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/ChefInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/ChefInstaller.php new file mode 100644 index 00000000..b0d3c5f7 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/ChefInstaller.php @@ -0,0 +1,12 @@ + */ + protected $locations = array( + 'cookbook' => 'Chef/{$vendor}/{$name}/', + 'role' => 'Chef/roles/{$name}/', + ); +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/CiviCrmInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/CiviCrmInstaller.php new file mode 100644 index 00000000..1c52e0cd --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/CiviCrmInstaller.php @@ -0,0 +1,11 @@ + */ + protected $locations = array( + 'ext' => 'ext/{$name}/' + ); +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/ClanCatsFrameworkInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/ClanCatsFrameworkInstaller.php new file mode 100644 index 00000000..2c943b21 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/ClanCatsFrameworkInstaller.php @@ -0,0 +1,12 @@ + */ + protected $locations = array( + 'ship' => 'CCF/orbit/{$name}/', + 'theme' => 'CCF/app/themes/{$name}/', + ); +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/CockpitInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/CockpitInstaller.php new file mode 100644 index 00000000..d3fcdf7d --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/CockpitInstaller.php @@ -0,0 +1,36 @@ + */ + protected $locations = array( + 'module' => 'cockpit/modules/addons/{$name}/', + ); + + /** + * Format module name. + * + * Strip `module-` prefix from package name. + */ + public function inflectPackageVars(array $vars): array + { + if ($vars['type'] == 'cockpit-module') { + return $this->inflectModuleVars($vars); + } + + return $vars; + } + + /** + * @param array $vars + * @return array + */ + public function inflectModuleVars(array $vars): array + { + $vars['name'] = ucfirst($this->pregReplace('/cockpit-/i', '', $vars['name'])); + + return $vars; + } +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/CodeIgniterInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/CodeIgniterInstaller.php new file mode 100644 index 00000000..a183e078 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/CodeIgniterInstaller.php @@ -0,0 +1,13 @@ + */ + protected $locations = array( + 'library' => 'application/libraries/{$name}/', + 'third-party' => 'application/third_party/{$name}/', + 'module' => 'application/modules/{$name}/', + ); +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/Concrete5Installer.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/Concrete5Installer.php new file mode 100644 index 00000000..2f5fecb3 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/Concrete5Installer.php @@ -0,0 +1,15 @@ + */ + protected $locations = array( + 'core' => 'concrete/', + 'block' => 'application/blocks/{$name}/', + 'package' => 'packages/{$name}/', + 'theme' => 'application/themes/{$name}/', + 'update' => 'updates/{$name}/', + ); +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/ConcreteCMSInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/ConcreteCMSInstaller.php new file mode 100644 index 00000000..b6e7f009 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/ConcreteCMSInstaller.php @@ -0,0 +1,15 @@ + */ + protected $locations = array( + 'core' => 'concrete/', + 'block' => 'application/blocks/{$name}/', + 'package' => 'packages/{$name}/', + 'theme' => 'application/themes/{$name}/', + 'update' => 'updates/{$name}/', + ); +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/CroogoInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/CroogoInstaller.php new file mode 100644 index 00000000..31d4939b --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/CroogoInstaller.php @@ -0,0 +1,23 @@ + */ + protected $locations = array( + 'plugin' => 'Plugin/{$name}/', + 'theme' => 'View/Themed/{$name}/', + ); + + /** + * Format package name to CamelCase + */ + public function inflectPackageVars(array $vars): array + { + $vars['name'] = strtolower(str_replace(array('-', '_'), ' ', $vars['name'])); + $vars['name'] = str_replace(' ', '', ucwords($vars['name'])); + + return $vars; + } +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/DecibelInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/DecibelInstaller.php new file mode 100644 index 00000000..88f53f73 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/DecibelInstaller.php @@ -0,0 +1,12 @@ + */ + protected $locations = array( + 'app' => 'app/{$name}/', + ); +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/DframeInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/DframeInstaller.php new file mode 100644 index 00000000..196f60ef --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/DframeInstaller.php @@ -0,0 +1,11 @@ + */ + protected $locations = array( + 'module' => 'modules/{$vendor}/{$name}/', + ); +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/DokuWikiInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/DokuWikiInstaller.php new file mode 100644 index 00000000..aa3a2e60 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/DokuWikiInstaller.php @@ -0,0 +1,57 @@ + */ + protected $locations = array( + 'plugin' => 'lib/plugins/{$name}/', + 'template' => 'lib/tpl/{$name}/', + ); + + /** + * Format package name. + * + * For package type dokuwiki-plugin, cut off a trailing '-plugin', + * or leading dokuwiki_ if present. + * + * For package type dokuwiki-template, cut off a trailing '-template' if present. + */ + public function inflectPackageVars(array $vars): array + { + if ($vars['type'] === 'dokuwiki-plugin') { + return $this->inflectPluginVars($vars); + } + + if ($vars['type'] === 'dokuwiki-template') { + return $this->inflectTemplateVars($vars); + } + + return $vars; + } + + /** + * @param array $vars + * @return array + */ + protected function inflectPluginVars(array $vars): array + { + $vars['name'] = $this->pregReplace('/-plugin$/', '', $vars['name']); + $vars['name'] = $this->pregReplace('/^dokuwiki_?-?/', '', $vars['name']); + + return $vars; + } + + /** + * @param array $vars + * @return array + */ + protected function inflectTemplateVars(array $vars): array + { + $vars['name'] = $this->pregReplace('/-template$/', '', $vars['name']); + $vars['name'] = $this->pregReplace('/^dokuwiki_?-?/', '', $vars['name']); + + return $vars; + } +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/DolibarrInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/DolibarrInstaller.php new file mode 100644 index 00000000..c583619c --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/DolibarrInstaller.php @@ -0,0 +1,18 @@ + + */ +class DolibarrInstaller extends BaseInstaller +{ + //TODO: Add support for scripts and themes + /** @var array */ + protected $locations = array( + 'module' => 'htdocs/custom/{$name}/', + ); +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/DrupalInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/DrupalInstaller.php new file mode 100644 index 00000000..65a3a91a --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/DrupalInstaller.php @@ -0,0 +1,25 @@ + */ + protected $locations = array( + 'core' => 'core/', + 'module' => 'modules/{$name}/', + 'theme' => 'themes/{$name}/', + 'library' => 'libraries/{$name}/', + 'profile' => 'profiles/{$name}/', + 'database-driver' => 'drivers/lib/Drupal/Driver/Database/{$name}/', + 'drush' => 'drush/{$name}/', + 'custom-theme' => 'themes/custom/{$name}/', + 'custom-module' => 'modules/custom/{$name}/', + 'custom-profile' => 'profiles/custom/{$name}/', + 'drupal-multisite' => 'sites/{$name}/', + 'console' => 'console/{$name}/', + 'console-language' => 'console/language/{$name}/', + 'config' => 'config/sync/', + 'recipe' => 'recipes/{$name}', + ); +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/ElggInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/ElggInstaller.php new file mode 100644 index 00000000..48ef2ecd --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/ElggInstaller.php @@ -0,0 +1,11 @@ + */ + protected $locations = array( + 'plugin' => 'mod/{$name}/', + ); +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/EliasisInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/EliasisInstaller.php new file mode 100644 index 00000000..d7dd9a92 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/EliasisInstaller.php @@ -0,0 +1,14 @@ + */ + protected $locations = array( + 'component' => 'components/{$name}/', + 'module' => 'modules/{$name}/', + 'plugin' => 'plugins/{$name}/', + 'template' => 'templates/{$name}/', + ); +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/ExpressionEngineInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/ExpressionEngineInstaller.php new file mode 100644 index 00000000..fe1d468a --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/ExpressionEngineInstaller.php @@ -0,0 +1,31 @@ + */ + private $ee2Locations = array( + 'addon' => 'system/expressionengine/third_party/{$name}/', + 'theme' => 'themes/third_party/{$name}/', + ); + + /** @var array */ + private $ee3Locations = array( + 'addon' => 'system/user/addons/{$name}/', + 'theme' => 'themes/user/{$name}/', + ); + + public function getLocations(string $frameworkType): array + { + if ($frameworkType === 'ee2') { + $this->locations = $this->ee2Locations; + } else { + $this->locations = $this->ee3Locations; + } + + return $this->locations; + } +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/EzPlatformInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/EzPlatformInstaller.php new file mode 100644 index 00000000..1f5b84e2 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/EzPlatformInstaller.php @@ -0,0 +1,12 @@ + */ + protected $locations = array( + 'meta-assets' => 'web/assets/ezplatform/', + 'assets' => 'web/assets/ezplatform/{$name}/', + ); +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/ForkCMSInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/ForkCMSInstaller.php new file mode 100644 index 00000000..cf629267 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/ForkCMSInstaller.php @@ -0,0 +1,58 @@ + */ + protected $locations = [ + 'module' => 'src/Modules/{$name}/', + 'theme' => 'src/Themes/{$name}/' + ]; + + /** + * Format package name. + * + * For package type fork-cms-module, cut off a trailing '-plugin' if present. + * + * For package type fork-cms-theme, cut off a trailing '-theme' if present. + */ + public function inflectPackageVars(array $vars): array + { + if ($vars['type'] === 'fork-cms-module') { + return $this->inflectModuleVars($vars); + } + + if ($vars['type'] === 'fork-cms-theme') { + return $this->inflectThemeVars($vars); + } + + return $vars; + } + + /** + * @param array $vars + * @return array + */ + protected function inflectModuleVars(array $vars): array + { + $vars['name'] = $this->pregReplace('/^fork-cms-|-module|ForkCMS|ForkCms|Forkcms|forkcms|Module$/', '', $vars['name']); + $vars['name'] = str_replace(array('-', '_'), ' ', $vars['name']); // replace hyphens with spaces + $vars['name'] = str_replace(' ', '', ucwords($vars['name'])); // make module name camelcased + + return $vars; + } + + /** + * @param array $vars + * @return array + */ + protected function inflectThemeVars(array $vars): array + { + $vars['name'] = $this->pregReplace('/^fork-cms-|-theme|ForkCMS|ForkCms|Forkcms|forkcms|Theme$/', '', $vars['name']); + $vars['name'] = str_replace(array('-', '_'), ' ', $vars['name']); // replace hyphens with spaces + $vars['name'] = str_replace(' ', '', ucwords($vars['name'])); // make theme name camelcased + + return $vars; + } +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/FuelInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/FuelInstaller.php new file mode 100644 index 00000000..5948572e --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/FuelInstaller.php @@ -0,0 +1,13 @@ + */ + protected $locations = array( + 'module' => 'fuel/app/modules/{$name}/', + 'package' => 'fuel/packages/{$name}/', + 'theme' => 'fuel/app/themes/{$name}/', + ); +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/FuelphpInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/FuelphpInstaller.php new file mode 100644 index 00000000..b4d80ed3 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/FuelphpInstaller.php @@ -0,0 +1,11 @@ + */ + protected $locations = array( + 'component' => 'components/{$name}/', + ); +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/GravInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/GravInstaller.php new file mode 100644 index 00000000..f5792e36 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/GravInstaller.php @@ -0,0 +1,29 @@ + */ + protected $locations = array( + 'plugin' => 'user/plugins/{$name}/', + 'theme' => 'user/themes/{$name}/', + ); + + /** + * Format package name + */ + public function inflectPackageVars(array $vars): array + { + $restrictedWords = implode('|', array_keys($this->locations)); + + $vars['name'] = strtolower($vars['name']); + $vars['name'] = $this->pregReplace( + '/^(?:grav-)?(?:(?:'.$restrictedWords.')-)?(.*?)(?:-(?:'.$restrictedWords.'))?$/ui', + '$1', + $vars['name'] + ); + + return $vars; + } +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/HuradInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/HuradInstaller.php new file mode 100644 index 00000000..dd76c5b6 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/HuradInstaller.php @@ -0,0 +1,27 @@ + */ + protected $locations = array( + 'plugin' => 'plugins/{$name}/', + 'theme' => 'plugins/{$name}/', + ); + + /** + * Format package name to CamelCase + */ + public function inflectPackageVars(array $vars): array + { + $nameParts = explode('/', $vars['name']); + foreach ($nameParts as &$value) { + $value = strtolower($this->pregReplace('/(?<=\\w)([A-Z])/', '_\\1', $value)); + $value = str_replace(array('-', '_'), ' ', $value); + $value = str_replace(' ', '', ucwords($value)); + } + $vars['name'] = implode('/', $nameParts); + return $vars; + } +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/ImageCMSInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/ImageCMSInstaller.php new file mode 100644 index 00000000..4157ceca --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/ImageCMSInstaller.php @@ -0,0 +1,13 @@ + */ + protected $locations = array( + 'template' => 'templates/{$name}/', + 'module' => 'application/modules/{$name}/', + 'library' => 'application/libraries/{$name}/', + ); +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/Installer.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/Installer.php new file mode 100644 index 00000000..862d8ae2 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/Installer.php @@ -0,0 +1,288 @@ + + */ + private $supportedTypes = array( + 'akaunting' => 'AkauntingInstaller', + 'asgard' => 'AsgardInstaller', + 'attogram' => 'AttogramInstaller', + 'agl' => 'AglInstaller', + 'annotatecms' => 'AnnotateCmsInstaller', + 'bitrix' => 'BitrixInstaller', + 'botble' => 'BotbleInstaller', + 'bonefish' => 'BonefishInstaller', + 'cakephp' => 'CakePHPInstaller', + 'chef' => 'ChefInstaller', + 'civicrm' => 'CiviCrmInstaller', + 'ccframework' => 'ClanCatsFrameworkInstaller', + 'cockpit' => 'CockpitInstaller', + 'codeigniter' => 'CodeIgniterInstaller', + 'concrete5' => 'Concrete5Installer', + 'concretecms' => 'ConcreteCMSInstaller', + 'croogo' => 'CroogoInstaller', + 'dframe' => 'DframeInstaller', + 'dokuwiki' => 'DokuWikiInstaller', + 'dolibarr' => 'DolibarrInstaller', + 'decibel' => 'DecibelInstaller', + 'drupal' => 'DrupalInstaller', + 'elgg' => 'ElggInstaller', + 'eliasis' => 'EliasisInstaller', + 'ee3' => 'ExpressionEngineInstaller', + 'ee2' => 'ExpressionEngineInstaller', + 'ezplatform' => 'EzPlatformInstaller', + 'fork' => 'ForkCMSInstaller', + 'fuel' => 'FuelInstaller', + 'fuelphp' => 'FuelphpInstaller', + 'grav' => 'GravInstaller', + 'hurad' => 'HuradInstaller', + 'tastyigniter' => 'TastyIgniterInstaller', + 'imagecms' => 'ImageCMSInstaller', + 'itop' => 'ItopInstaller', + 'kanboard' => 'KanboardInstaller', + 'known' => 'KnownInstaller', + 'kodicms' => 'KodiCMSInstaller', + 'kohana' => 'KohanaInstaller', + 'lms' => 'LanManagementSystemInstaller', + 'laravel' => 'LaravelInstaller', + 'lavalite' => 'LavaLiteInstaller', + 'lithium' => 'LithiumInstaller', + 'magento' => 'MagentoInstaller', + 'majima' => 'MajimaInstaller', + 'mantisbt' => 'MantisBTInstaller', + 'mako' => 'MakoInstaller', + 'matomo' => 'MatomoInstaller', + 'maya' => 'MayaInstaller', + 'mautic' => 'MauticInstaller', + 'mediawiki' => 'MediaWikiInstaller', + 'miaoxing' => 'MiaoxingInstaller', + 'microweber' => 'MicroweberInstaller', + 'modulework' => 'MODULEWorkInstaller', + 'modx' => 'ModxInstaller', + 'modxevo' => 'MODXEvoInstaller', + 'moodle' => 'MoodleInstaller', + 'october' => 'OctoberInstaller', + 'ontowiki' => 'OntoWikiInstaller', + 'oxid' => 'OxidInstaller', + 'osclass' => 'OsclassInstaller', + 'pxcms' => 'PxcmsInstaller', + 'phpbb' => 'PhpBBInstaller', + 'piwik' => 'PiwikInstaller', + 'plentymarkets'=> 'PlentymarketsInstaller', + 'ppi' => 'PPIInstaller', + 'puppet' => 'PuppetInstaller', + 'radphp' => 'RadPHPInstaller', + 'phifty' => 'PhiftyInstaller', + 'porto' => 'PortoInstaller', + 'processwire' => 'ProcessWireInstaller', + 'quicksilver' => 'PantheonInstaller', + 'redaxo' => 'RedaxoInstaller', + 'redaxo5' => 'Redaxo5Installer', + 'reindex' => 'ReIndexInstaller', + 'roundcube' => 'RoundcubeInstaller', + 'shopware' => 'ShopwareInstaller', + 'sitedirect' => 'SiteDirectInstaller', + 'silverstripe' => 'SilverStripeInstaller', + 'smf' => 'SMFInstaller', + 'starbug' => 'StarbugInstaller', + 'sydes' => 'SyDESInstaller', + 'sylius' => 'SyliusInstaller', + 'tao' => 'TaoInstaller', + 'thelia' => 'TheliaInstaller', + 'tusk' => 'TuskInstaller', + 'userfrosting' => 'UserFrostingInstaller', + 'vanilla' => 'VanillaInstaller', + 'whmcs' => 'WHMCSInstaller', + 'winter' => 'WinterInstaller', + 'wolfcms' => 'WolfCMSInstaller', + 'wordpress' => 'WordPressInstaller', + 'yawik' => 'YawikInstaller', + 'zend' => 'ZendInstaller', + 'zikula' => 'ZikulaInstaller', + 'prestashop' => 'PrestashopInstaller' + ); + + /** + * Disables installers specified in main composer extra installer-disable + * list + */ + public function __construct( + IOInterface $io, + Composer $composer, + string $type = 'library', + ?Filesystem $filesystem = null, + ?BinaryInstaller $binaryInstaller = null + ) { + parent::__construct($io, $composer, $type, $filesystem, $binaryInstaller); + $this->removeDisabledInstallers(); + } + + /** + * {@inheritDoc} + */ + public function getInstallPath(PackageInterface $package) + { + $type = $package->getType(); + $frameworkType = $this->findFrameworkType($type); + + if ($frameworkType === false) { + throw new \InvalidArgumentException( + 'Sorry the package type of this package is not yet supported.' + ); + } + + $class = 'Composer\\Installers\\' . $this->supportedTypes[$frameworkType]; + /** + * @var BaseInstaller + */ + $installer = new $class($package, $this->composer, $this->getIO()); + + $path = $installer->getInstallPath($package, $frameworkType); + if (!$this->filesystem->isAbsolutePath($path)) { + $path = getcwd() . '/' . $path; + } + + return $path; + } + + public function uninstall(InstalledRepositoryInterface $repo, PackageInterface $package) + { + $installPath = $this->getPackageBasePath($package); + $io = $this->io; + $outputStatus = function () use ($io, $installPath) { + $io->write(sprintf('Deleting %s - %s', $installPath, !file_exists($installPath) ? 'deleted' : 'not deleted')); + }; + + $promise = parent::uninstall($repo, $package); + + // Composer v2 might return a promise here + if ($promise instanceof PromiseInterface) { + return $promise->then($outputStatus); + } + + // If not, execute the code right away as parent::uninstall executed synchronously (composer v1, or v2 without async) + $outputStatus(); + + return null; + } + + /** + * {@inheritDoc} + * + * @param string $packageType + */ + public function supports($packageType) + { + $frameworkType = $this->findFrameworkType($packageType); + + if ($frameworkType === false) { + return false; + } + + $locationPattern = $this->getLocationPattern($frameworkType); + + return preg_match('#' . $frameworkType . '-' . $locationPattern . '#', $packageType, $matches) === 1; + } + + /** + * Finds a supported framework type if it exists and returns it + * + * @return string|false + */ + protected function findFrameworkType(string $type) + { + krsort($this->supportedTypes); + + foreach ($this->supportedTypes as $key => $val) { + if ($key === substr($type, 0, strlen($key))) { + return substr($type, 0, strlen($key)); + } + } + + return false; + } + + /** + * Get the second part of the regular expression to check for support of a + * package type + */ + protected function getLocationPattern(string $frameworkType): string + { + $pattern = null; + if (!empty($this->supportedTypes[$frameworkType])) { + $frameworkClass = 'Composer\\Installers\\' . $this->supportedTypes[$frameworkType]; + /** @var BaseInstaller $framework */ + $framework = new $frameworkClass(new Package('dummy/pkg', '1.0.0.0', '1.0.0'), $this->composer, $this->getIO()); + $locations = array_keys($framework->getLocations($frameworkType)); + if ($locations) { + $pattern = '(' . implode('|', $locations) . ')'; + } + } + + return $pattern ?: '(\w+)'; + } + + private function getIO(): IOInterface + { + return $this->io; + } + + /** + * Look for installers set to be disabled in composer's extra config and + * remove them from the list of supported installers. + * + * Globals: + * - true, "all", and "*" - disable all installers. + * - false - enable all installers (useful with + * wikimedia/composer-merge-plugin or similar) + */ + protected function removeDisabledInstallers(): void + { + $extra = $this->composer->getPackage()->getExtra(); + + if (!isset($extra['installer-disable']) || $extra['installer-disable'] === false) { + // No installers are disabled + return; + } + + // Get installers to disable + $disable = $extra['installer-disable']; + + // Ensure $disabled is an array + if (!is_array($disable)) { + $disable = array($disable); + } + + // Check which installers should be disabled + $all = array(true, "all", "*"); + $intersect = array_intersect($all, $disable); + if (!empty($intersect)) { + // Disable all installers + $this->supportedTypes = array(); + return; + } + + // Disable specified installers + foreach ($disable as $key => $installer) { + if (is_string($installer) && key_exists($installer, $this->supportedTypes)) { + unset($this->supportedTypes[$installer]); + } + } + } +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/ItopInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/ItopInstaller.php new file mode 100644 index 00000000..06af0687 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/ItopInstaller.php @@ -0,0 +1,11 @@ + */ + protected $locations = array( + 'extension' => 'extensions/{$name}/', + ); +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/KanboardInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/KanboardInstaller.php new file mode 100644 index 00000000..bca954b2 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/KanboardInstaller.php @@ -0,0 +1,20 @@ + */ + protected $locations = array( + 'plugin' => 'plugins/{$name}/', + ); +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/KnownInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/KnownInstaller.php new file mode 100644 index 00000000..61910a86 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/KnownInstaller.php @@ -0,0 +1,13 @@ + */ + protected $locations = array( + 'plugin' => 'IdnoPlugins/{$name}/', + 'theme' => 'Themes/{$name}/', + 'console' => 'ConsolePlugins/{$name}/', + ); +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/KodiCMSInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/KodiCMSInstaller.php new file mode 100644 index 00000000..2505ac68 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/KodiCMSInstaller.php @@ -0,0 +1,12 @@ + */ + protected $locations = array( + 'plugin' => 'cms/plugins/{$name}/', + 'media' => 'cms/media/vendor/{$name}/' + ); +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/KohanaInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/KohanaInstaller.php new file mode 100644 index 00000000..b6aa8097 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/KohanaInstaller.php @@ -0,0 +1,11 @@ + */ + protected $locations = array( + 'module' => 'modules/{$name}/', + ); +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/LanManagementSystemInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/LanManagementSystemInstaller.php new file mode 100644 index 00000000..7fe9d9b7 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/LanManagementSystemInstaller.php @@ -0,0 +1,27 @@ + */ + protected $locations = array( + 'plugin' => 'plugins/{$name}/', + 'template' => 'templates/{$name}/', + 'document-template' => 'documents/templates/{$name}/', + 'userpanel-module' => 'userpanel/modules/{$name}/', + ); + + /** + * Format package name to CamelCase + */ + public function inflectPackageVars(array $vars): array + { + $vars['name'] = strtolower($this->pregReplace('/(?<=\\w)([A-Z])/', '_\\1', $vars['name'])); + $vars['name'] = str_replace(array('-', '_'), ' ', $vars['name']); + $vars['name'] = str_replace(' ', '', ucwords($vars['name'])); + + return $vars; + } +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/LaravelInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/LaravelInstaller.php new file mode 100644 index 00000000..a69dc889 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/LaravelInstaller.php @@ -0,0 +1,11 @@ + */ + protected $locations = array( + 'library' => 'libraries/{$name}/', + ); +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/LavaLiteInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/LavaLiteInstaller.php new file mode 100644 index 00000000..e4a7c7da --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/LavaLiteInstaller.php @@ -0,0 +1,12 @@ + */ + protected $locations = array( + 'package' => 'packages/{$vendor}/{$name}/', + 'theme' => 'public/themes/{$name}/', + ); +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/LithiumInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/LithiumInstaller.php new file mode 100644 index 00000000..b24bea20 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/LithiumInstaller.php @@ -0,0 +1,12 @@ + */ + protected $locations = array( + 'library' => 'libraries/{$name}/', + 'source' => 'libraries/_source/{$name}/', + ); +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/MODULEWorkInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/MODULEWorkInstaller.php new file mode 100644 index 00000000..369e8b45 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/MODULEWorkInstaller.php @@ -0,0 +1,11 @@ + */ + protected $locations = array( + 'module' => 'modules/{$name}/', + ); +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/MODXEvoInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/MODXEvoInstaller.php new file mode 100644 index 00000000..062a839b --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/MODXEvoInstaller.php @@ -0,0 +1,18 @@ + */ + protected $locations = array( + 'snippet' => 'assets/snippets/{$name}/', + 'plugin' => 'assets/plugins/{$name}/', + 'module' => 'assets/modules/{$name}/', + 'template' => 'assets/templates/{$name}/', + 'lib' => 'assets/lib/{$name}/' + ); +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/MagentoInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/MagentoInstaller.php new file mode 100644 index 00000000..ec07cd64 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/MagentoInstaller.php @@ -0,0 +1,13 @@ + */ + protected $locations = array( + 'theme' => 'app/design/frontend/{$name}/', + 'skin' => 'skin/frontend/default/{$name}/', + 'library' => 'lib/{$name}/', + ); +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/MajimaInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/MajimaInstaller.php new file mode 100644 index 00000000..6fc3089d --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/MajimaInstaller.php @@ -0,0 +1,46 @@ + */ + protected $locations = array( + 'plugin' => 'plugins/{$name}/', + ); + + /** + * Transforms the names + * + * @param array $vars + * @return array + */ + public function inflectPackageVars(array $vars): array + { + return $this->correctPluginName($vars); + } + + /** + * Change hyphenated names to camelcase + * + * @param array $vars + * @return array + */ + private function correctPluginName(array $vars): array + { + $camelCasedName = preg_replace_callback('/(-[a-z])/', function ($matches) { + return strtoupper($matches[0][1]); + }, $vars['name']); + + if (null === $camelCasedName) { + throw new \RuntimeException('Failed to run preg_replace_callback: '.preg_last_error()); + } + + $vars['name'] = ucfirst($camelCasedName); + return $vars; + } +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/MakoInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/MakoInstaller.php new file mode 100644 index 00000000..cbe3760b --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/MakoInstaller.php @@ -0,0 +1,11 @@ + */ + protected $locations = array( + 'package' => 'app/packages/{$name}/', + ); +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/MantisBTInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/MantisBTInstaller.php new file mode 100644 index 00000000..98e230fb --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/MantisBTInstaller.php @@ -0,0 +1,25 @@ + */ + protected $locations = array( + 'plugin' => 'plugins/{$name}/', + ); + + /** + * Format package name to CamelCase + */ + public function inflectPackageVars(array $vars): array + { + $vars['name'] = strtolower($this->pregReplace('/(?<=\\w)([A-Z])/', '_\\1', $vars['name'])); + $vars['name'] = str_replace(array('-', '_'), ' ', $vars['name']); + $vars['name'] = str_replace(' ', '', ucwords($vars['name'])); + + return $vars; + } +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/MatomoInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/MatomoInstaller.php new file mode 100644 index 00000000..57fdb033 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/MatomoInstaller.php @@ -0,0 +1,28 @@ + */ + protected $locations = array( + 'plugin' => 'plugins/{$name}/', + ); + + /** + * Format package name to CamelCase + */ + public function inflectPackageVars(array $vars): array + { + $vars['name'] = strtolower($this->pregReplace('/(?<=\\w)([A-Z])/', '_\\1', $vars['name'])); + $vars['name'] = str_replace(array('-', '_'), ' ', $vars['name']); + $vars['name'] = str_replace(' ', '', ucwords($vars['name'])); + + return $vars; + } +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/MauticInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/MauticInstaller.php new file mode 100644 index 00000000..e48c133b --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/MauticInstaller.php @@ -0,0 +1,43 @@ + */ + protected $locations = array( + 'plugin' => 'plugins/{$name}/', + 'theme' => 'themes/{$name}/', + 'core' => 'app/', + ); + + private function getDirectoryName(): string + { + $extra = $this->package->getExtra(); + if (!empty($extra['install-directory-name'])) { + return $extra['install-directory-name']; + } + + return $this->toCamelCase($this->package->getPrettyName()); + } + + private function toCamelCase(string $packageName): string + { + return str_replace(' ', '', ucwords(str_replace('-', ' ', basename($packageName)))); + } + + /** + * Format package name of mautic-plugins to CamelCase + */ + public function inflectPackageVars(array $vars): array + { + if ($vars['type'] == 'mautic-plugin' || $vars['type'] == 'mautic-theme') { + $directoryName = $this->getDirectoryName(); + $vars['name'] = $directoryName; + } + + return $vars; + } +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/MayaInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/MayaInstaller.php new file mode 100644 index 00000000..df486dac --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/MayaInstaller.php @@ -0,0 +1,38 @@ + */ + protected $locations = array( + 'module' => 'modules/{$name}/', + ); + + /** + * Format package name. + * + * For package type maya-module, cut off a trailing '-module' if present. + */ + public function inflectPackageVars(array $vars): array + { + if ($vars['type'] === 'maya-module') { + return $this->inflectModuleVars($vars); + } + + return $vars; + } + + /** + * @param array $vars + * @return array + */ + protected function inflectModuleVars(array $vars): array + { + $vars['name'] = $this->pregReplace('/-module$/', '', $vars['name']); + $vars['name'] = str_replace(array('-', '_'), ' ', $vars['name']); + $vars['name'] = str_replace(' ', '', ucwords($vars['name'])); + + return $vars; + } +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/MediaWikiInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/MediaWikiInstaller.php new file mode 100644 index 00000000..8e9d7713 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/MediaWikiInstaller.php @@ -0,0 +1,58 @@ + */ + protected $locations = array( + 'core' => 'core/', + 'extension' => 'extensions/{$name}/', + 'skin' => 'skins/{$name}/', + ); + + /** + * Format package name. + * + * For package type mediawiki-extension, cut off a trailing '-extension' if present and transform + * to CamelCase keeping existing uppercase chars. + * + * For package type mediawiki-skin, cut off a trailing '-skin' if present. + */ + public function inflectPackageVars(array $vars): array + { + if ($vars['type'] === 'mediawiki-extension') { + return $this->inflectExtensionVars($vars); + } + + if ($vars['type'] === 'mediawiki-skin') { + return $this->inflectSkinVars($vars); + } + + return $vars; + } + + /** + * @param array $vars + * @return array + */ + protected function inflectExtensionVars(array $vars): array + { + $vars['name'] = $this->pregReplace('/-extension$/', '', $vars['name']); + $vars['name'] = str_replace('-', ' ', $vars['name']); + $vars['name'] = str_replace(' ', '', ucwords($vars['name'])); + + return $vars; + } + + /** + * @param array $vars + * @return array + */ + protected function inflectSkinVars(array $vars): array + { + $vars['name'] = $this->pregReplace('/-skin$/', '', $vars['name']); + + return $vars; + } +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/MiaoxingInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/MiaoxingInstaller.php new file mode 100644 index 00000000..02541779 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/MiaoxingInstaller.php @@ -0,0 +1,11 @@ + */ + protected $locations = array( + 'plugin' => 'plugins/{$name}/', + ); +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/MicroweberInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/MicroweberInstaller.php new file mode 100644 index 00000000..a4d97ab0 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/MicroweberInstaller.php @@ -0,0 +1,145 @@ + */ + protected $locations = array( + 'module' => 'userfiles/modules/{$install_item_dir}/', + 'module-skin' => 'userfiles/modules/{$install_item_dir}/templates/', + 'template' => 'userfiles/templates/{$install_item_dir}/', + 'element' => 'userfiles/elements/{$install_item_dir}/', + 'vendor' => 'vendor/{$install_item_dir}/', + 'components' => 'components/{$install_item_dir}/' + ); + + /** + * Format package name. + * + * For package type microweber-module, cut off a trailing '-module' if present + * + * For package type microweber-template, cut off a trailing '-template' if present. + */ + public function inflectPackageVars(array $vars): array + { + if ($this->package->getTargetDir() !== null && $this->package->getTargetDir() !== '') { + $vars['install_item_dir'] = $this->package->getTargetDir(); + } else { + $vars['install_item_dir'] = $vars['name']; + if ($vars['type'] === 'microweber-template') { + return $this->inflectTemplateVars($vars); + } + if ($vars['type'] === 'microweber-templates') { + return $this->inflectTemplatesVars($vars); + } + if ($vars['type'] === 'microweber-core') { + return $this->inflectCoreVars($vars); + } + if ($vars['type'] === 'microweber-adapter') { + return $this->inflectCoreVars($vars); + } + if ($vars['type'] === 'microweber-module') { + return $this->inflectModuleVars($vars); + } + if ($vars['type'] === 'microweber-modules') { + return $this->inflectModulesVars($vars); + } + if ($vars['type'] === 'microweber-skin') { + return $this->inflectSkinVars($vars); + } + if ($vars['type'] === 'microweber-element' or $vars['type'] === 'microweber-elements') { + return $this->inflectElementVars($vars); + } + } + + return $vars; + } + + /** + * @param array $vars + * @return array + */ + protected function inflectTemplateVars(array $vars): array + { + $vars['install_item_dir'] = $this->pregReplace('/-template$/', '', $vars['install_item_dir']); + $vars['install_item_dir'] = $this->pregReplace('/template-$/', '', $vars['install_item_dir']); + + return $vars; + } + + /** + * @param array $vars + * @return array + */ + protected function inflectTemplatesVars(array $vars): array + { + $vars['install_item_dir'] = $this->pregReplace('/-templates$/', '', $vars['install_item_dir']); + $vars['install_item_dir'] = $this->pregReplace('/templates-$/', '', $vars['install_item_dir']); + + return $vars; + } + + /** + * @param array $vars + * @return array + */ + protected function inflectCoreVars(array $vars): array + { + $vars['install_item_dir'] = $this->pregReplace('/-providers$/', '', $vars['install_item_dir']); + $vars['install_item_dir'] = $this->pregReplace('/-provider$/', '', $vars['install_item_dir']); + $vars['install_item_dir'] = $this->pregReplace('/-adapter$/', '', $vars['install_item_dir']); + + return $vars; + } + + /** + * @param array $vars + * @return array + */ + protected function inflectModuleVars(array $vars): array + { + $vars['install_item_dir'] = $this->pregReplace('/-module$/', '', $vars['install_item_dir']); + $vars['install_item_dir'] = $this->pregReplace('/module-$/', '', $vars['install_item_dir']); + + return $vars; + } + + /** + * @param array $vars + * @return array + */ + protected function inflectModulesVars(array $vars): array + { + $vars['install_item_dir'] = $this->pregReplace('/-modules$/', '', $vars['install_item_dir']); + $vars['install_item_dir'] = $this->pregReplace('/modules-$/', '', $vars['install_item_dir']); + + return $vars; + } + + /** + * @param array $vars + * @return array + */ + protected function inflectSkinVars(array $vars): array + { + $vars['install_item_dir'] = $this->pregReplace('/-skin$/', '', $vars['install_item_dir']); + $vars['install_item_dir'] = $this->pregReplace('/skin-$/', '', $vars['install_item_dir']); + + return $vars; + } + + /** + * @param array $vars + * @return array + */ + protected function inflectElementVars(array $vars): array + { + $vars['install_item_dir'] = $this->pregReplace('/-elements$/', '', $vars['install_item_dir']); + $vars['install_item_dir'] = $this->pregReplace('/elements-$/', '', $vars['install_item_dir']); + $vars['install_item_dir'] = $this->pregReplace('/-element$/', '', $vars['install_item_dir']); + $vars['install_item_dir'] = $this->pregReplace('/element-$/', '', $vars['install_item_dir']); + + return $vars; + } +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/ModxInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/ModxInstaller.php new file mode 100644 index 00000000..e2dddec5 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/ModxInstaller.php @@ -0,0 +1,14 @@ + */ + protected $locations = array( + 'extra' => 'core/packages/{$name}/' + ); +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/MoodleInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/MoodleInstaller.php new file mode 100644 index 00000000..eb2b8acf --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/MoodleInstaller.php @@ -0,0 +1,73 @@ + */ + protected $locations = array( + 'mod' => 'mod/{$name}/', + 'admin_report' => 'admin/report/{$name}/', + 'atto' => 'lib/editor/atto/plugins/{$name}/', + 'tool' => 'admin/tool/{$name}/', + 'assignment' => 'mod/assignment/type/{$name}/', + 'assignsubmission' => 'mod/assign/submission/{$name}/', + 'assignfeedback' => 'mod/assign/feedback/{$name}/', + 'antivirus' => 'lib/antivirus/{$name}/', + 'auth' => 'auth/{$name}/', + 'availability' => 'availability/condition/{$name}/', + 'block' => 'blocks/{$name}/', + 'booktool' => 'mod/book/tool/{$name}/', + 'cachestore' => 'cache/stores/{$name}/', + 'cachelock' => 'cache/locks/{$name}/', + 'calendartype' => 'calendar/type/{$name}/', + 'communication' => 'communication/provider/{$name}/', + 'customfield' => 'customfield/field/{$name}/', + 'fileconverter' => 'files/converter/{$name}/', + 'format' => 'course/format/{$name}/', + 'coursereport' => 'course/report/{$name}/', + 'contenttype' => 'contentbank/contenttype/{$name}/', + 'customcertelement' => 'mod/customcert/element/{$name}/', + 'datafield' => 'mod/data/field/{$name}/', + 'dataformat' => 'dataformat/{$name}/', + 'datapreset' => 'mod/data/preset/{$name}/', + 'editor' => 'lib/editor/{$name}/', + 'enrol' => 'enrol/{$name}/', + 'filter' => 'filter/{$name}/', + 'forumreport' => 'mod/forum/report/{$name}/', + 'gradeexport' => 'grade/export/{$name}/', + 'gradeimport' => 'grade/import/{$name}/', + 'gradereport' => 'grade/report/{$name}/', + 'gradingform' => 'grade/grading/form/{$name}/', + 'h5plib' => 'h5p/h5plib/{$name}/', + 'local' => 'local/{$name}/', + 'logstore' => 'admin/tool/log/store/{$name}/', + 'ltisource' => 'mod/lti/source/{$name}/', + 'ltiservice' => 'mod/lti/service/{$name}/', + 'media' => 'media/player/{$name}/', + 'message' => 'message/output/{$name}/', + 'mlbackend' => 'lib/mlbackend/{$name}/', + 'mnetservice' => 'mnet/service/{$name}/', + 'paygw' => 'payment/gateway/{$name}/', + 'plagiarism' => 'plagiarism/{$name}/', + 'portfolio' => 'portfolio/{$name}/', + 'qbank' => 'question/bank/{$name}/', + 'qbehaviour' => 'question/behaviour/{$name}/', + 'qformat' => 'question/format/{$name}/', + 'qtype' => 'question/type/{$name}/', + 'quizaccess' => 'mod/quiz/accessrule/{$name}/', + 'quiz' => 'mod/quiz/report/{$name}/', + 'report' => 'report/{$name}/', + 'repository' => 'repository/{$name}/', + 'scormreport' => 'mod/scorm/report/{$name}/', + 'search' => 'search/engine/{$name}/', + 'theme' => 'theme/{$name}/', + 'tiny' => 'lib/editor/tiny/plugins/{$name}/', + 'tinymce' => 'lib/editor/tinymce/plugins/{$name}/', + 'profilefield' => 'user/profile/field/{$name}/', + 'webservice' => 'webservice/{$name}/', + 'workshopallocation' => 'mod/workshop/allocation/{$name}/', + 'workshopeval' => 'mod/workshop/eval/{$name}/', + 'workshopform' => 'mod/workshop/form/{$name}/' + ); +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/OctoberInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/OctoberInstaller.php new file mode 100644 index 00000000..524f17d8 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/OctoberInstaller.php @@ -0,0 +1,57 @@ + */ + protected $locations = array( + 'module' => 'modules/{$name}/', + 'plugin' => 'plugins/{$vendor}/{$name}/', + 'theme' => 'themes/{$vendor}-{$name}/' + ); + + /** + * Format package name. + * + * For package type october-plugin, cut off a trailing '-plugin' if present. + * + * For package type october-theme, cut off a trailing '-theme' if present. + */ + public function inflectPackageVars(array $vars): array + { + if ($vars['type'] === 'october-plugin') { + return $this->inflectPluginVars($vars); + } + + if ($vars['type'] === 'october-theme') { + return $this->inflectThemeVars($vars); + } + + return $vars; + } + + /** + * @param array $vars + * @return array + */ + protected function inflectPluginVars(array $vars): array + { + $vars['name'] = $this->pregReplace('/^oc-|-plugin$/', '', $vars['name']); + $vars['vendor'] = $this->pregReplace('/[^a-z0-9_]/i', '', $vars['vendor']); + + return $vars; + } + + /** + * @param array $vars + * @return array + */ + protected function inflectThemeVars(array $vars): array + { + $vars['name'] = $this->pregReplace('/^oc-|-theme$/', '', $vars['name']); + $vars['vendor'] = $this->pregReplace('/[^a-z0-9_]/i', '', $vars['vendor']); + + return $vars; + } +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/OntoWikiInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/OntoWikiInstaller.php new file mode 100644 index 00000000..fd20c1a8 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/OntoWikiInstaller.php @@ -0,0 +1,26 @@ + */ + protected $locations = array( + 'extension' => 'extensions/{$name}/', + 'theme' => 'extensions/themes/{$name}/', + 'translation' => 'extensions/translations/{$name}/', + ); + + /** + * Format package name to lower case and remove ".ontowiki" suffix + */ + public function inflectPackageVars(array $vars): array + { + $vars['name'] = strtolower($vars['name']); + $vars['name'] = $this->pregReplace('/.ontowiki$/', '', $vars['name']); + $vars['name'] = $this->pregReplace('/-theme$/', '', $vars['name']); + $vars['name'] = $this->pregReplace('/-translation$/', '', $vars['name']); + + return $vars; + } +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/OsclassInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/OsclassInstaller.php new file mode 100644 index 00000000..e61d61f8 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/OsclassInstaller.php @@ -0,0 +1,14 @@ + */ + protected $locations = array( + 'plugin' => 'oc-content/plugins/{$name}/', + 'theme' => 'oc-content/themes/{$name}/', + 'language' => 'oc-content/languages/{$name}/', + ); +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/OxidInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/OxidInstaller.php new file mode 100644 index 00000000..6e1e8624 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/OxidInstaller.php @@ -0,0 +1,49 @@ +.+)\/.+/'; + + /** @var array */ + protected $locations = array( + 'module' => 'modules/{$name}/', + 'theme' => 'application/views/{$name}/', + 'out' => 'out/{$name}/', + ); + + public function getInstallPath(PackageInterface $package, string $frameworkType = ''): string + { + $installPath = parent::getInstallPath($package, $frameworkType); + $type = $this->package->getType(); + if ($type === 'oxid-module') { + $this->prepareVendorDirectory($installPath); + } + return $installPath; + } + + /** + * Makes sure there is a vendormetadata.php file inside + * the vendor folder if there is a vendor folder. + */ + protected function prepareVendorDirectory(string $installPath): void + { + $matches = ''; + $hasVendorDirectory = preg_match(self::VENDOR_PATTERN, $installPath, $matches); + if (!$hasVendorDirectory) { + return; + } + + $vendorDirectory = $matches['vendor']; + $vendorPath = getcwd() . '/modules/' . $vendorDirectory; + if (!file_exists($vendorPath)) { + mkdir($vendorPath, 0755, true); + } + + $vendorMetaDataPath = $vendorPath . '/vendormetadata.php'; + touch($vendorMetaDataPath); + } +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/PPIInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/PPIInstaller.php new file mode 100644 index 00000000..714c4679 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/PPIInstaller.php @@ -0,0 +1,11 @@ + */ + protected $locations = array( + 'module' => 'modules/{$name}/', + ); +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/PantheonInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/PantheonInstaller.php new file mode 100644 index 00000000..439f61a0 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/PantheonInstaller.php @@ -0,0 +1,12 @@ + */ + protected $locations = array( + 'script' => 'web/private/scripts/quicksilver/{$name}', + 'module' => 'web/private/scripts/quicksilver/{$name}', + ); +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/PhiftyInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/PhiftyInstaller.php new file mode 100644 index 00000000..3c970e21 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/PhiftyInstaller.php @@ -0,0 +1,13 @@ + */ + protected $locations = array( + 'bundle' => 'bundles/{$name}/', + 'library' => 'libraries/{$name}/', + 'framework' => 'frameworks/{$name}/', + ); +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/PhpBBInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/PhpBBInstaller.php new file mode 100644 index 00000000..d53ee4f6 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/PhpBBInstaller.php @@ -0,0 +1,13 @@ + */ + protected $locations = array( + 'extension' => 'ext/{$vendor}/{$name}/', + 'language' => 'language/{$name}/', + 'style' => 'styles/{$name}/', + ); +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/PiwikInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/PiwikInstaller.php new file mode 100644 index 00000000..b2faf44a --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/PiwikInstaller.php @@ -0,0 +1,28 @@ + */ + protected $locations = array( + 'plugin' => 'plugins/{$name}/', + ); + + /** + * Format package name to CamelCase + */ + public function inflectPackageVars(array $vars): array + { + $vars['name'] = strtolower($this->pregReplace('/(?<=\\w)([A-Z])/', '_\\1', $vars['name'])); + $vars['name'] = str_replace(array('-', '_'), ' ', $vars['name']); + $vars['name'] = str_replace(' ', '', ucwords($vars['name'])); + + return $vars; + } +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/PlentymarketsInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/PlentymarketsInstaller.php new file mode 100644 index 00000000..0c063598 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/PlentymarketsInstaller.php @@ -0,0 +1,28 @@ + */ + protected $locations = array( + 'plugin' => '{$name}/' + ); + + /** + * Remove hyphen, "plugin" and format to camelcase + */ + public function inflectPackageVars(array $vars): array + { + $nameBits = explode("-", $vars['name']); + foreach ($nameBits as $key => $name) { + $nameBits[$key] = ucfirst($name); + if (strcasecmp($name, "Plugin") == 0) { + unset($nameBits[$key]); + } + } + $vars['name'] = implode('', $nameBits); + + return $vars; + } +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/Plugin.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/Plugin.php new file mode 100644 index 00000000..437a9493 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/Plugin.php @@ -0,0 +1,28 @@ +installer = new Installer($io, $composer); + $composer->getInstallationManager()->addInstaller($this->installer); + } + + public function deactivate(Composer $composer, IOInterface $io): void + { + $composer->getInstallationManager()->removeInstaller($this->installer); + } + + public function uninstall(Composer $composer, IOInterface $io): void + { + } +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/PortoInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/PortoInstaller.php new file mode 100644 index 00000000..a01d7a0b --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/PortoInstaller.php @@ -0,0 +1,11 @@ + */ + protected $locations = array( + 'container' => 'app/Containers/{$name}/', + ); +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/PrestashopInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/PrestashopInstaller.php new file mode 100644 index 00000000..23f156f5 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/PrestashopInstaller.php @@ -0,0 +1,12 @@ + */ + protected $locations = array( + 'module' => 'modules/{$name}/', + 'theme' => 'themes/{$name}/', + ); +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/ProcessWireInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/ProcessWireInstaller.php new file mode 100644 index 00000000..a7eb1eec --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/ProcessWireInstaller.php @@ -0,0 +1,23 @@ + */ + protected $locations = array( + 'module' => 'site/modules/{$name}/', + ); + + /** + * Format package name to CamelCase + */ + public function inflectPackageVars(array $vars): array + { + $vars['name'] = strtolower($this->pregReplace('/(?<=\\w)([A-Z])/', '_\\1', $vars['name'])); + $vars['name'] = str_replace(array('-', '_'), ' ', $vars['name']); + $vars['name'] = str_replace(' ', '', ucwords($vars['name'])); + + return $vars; + } +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/PuppetInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/PuppetInstaller.php new file mode 100644 index 00000000..1a0a8a3f --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/PuppetInstaller.php @@ -0,0 +1,12 @@ + */ + protected $locations = array( + 'module' => 'modules/{$name}/', + ); +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/PxcmsInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/PxcmsInstaller.php new file mode 100644 index 00000000..fc58b8a6 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/PxcmsInstaller.php @@ -0,0 +1,62 @@ + */ + protected $locations = array( + 'module' => 'app/Modules/{$name}/', + 'theme' => 'themes/{$name}/', + ); + + /** + * Format package name. + */ + public function inflectPackageVars(array $vars): array + { + if ($vars['type'] === 'pxcms-module') { + return $this->inflectModuleVars($vars); + } + + if ($vars['type'] === 'pxcms-theme') { + return $this->inflectThemeVars($vars); + } + + return $vars; + } + + /** + * For package type pxcms-module, cut off a trailing '-plugin' if present. + * + * @param array $vars + * @return array + */ + protected function inflectModuleVars(array $vars): array + { + $vars['name'] = str_replace('pxcms-', '', $vars['name']); // strip out pxcms- just incase (legacy) + $vars['name'] = str_replace('module-', '', $vars['name']); // strip out module- + $vars['name'] = $this->pregReplace('/-module$/', '', $vars['name']); // strip out -module + $vars['name'] = str_replace('-', '_', $vars['name']); // make -'s be _'s + $vars['name'] = ucwords($vars['name']); // make module name camelcased + + return $vars; + } + + /** + * For package type pxcms-module, cut off a trailing '-plugin' if present. + * + * @param array $vars + * @return array + */ + protected function inflectThemeVars(array $vars): array + { + $vars['name'] = str_replace('pxcms-', '', $vars['name']); // strip out pxcms- just incase (legacy) + $vars['name'] = str_replace('theme-', '', $vars['name']); // strip out theme- + $vars['name'] = $this->pregReplace('/-theme$/', '', $vars['name']); // strip out -theme + $vars['name'] = str_replace('-', '_', $vars['name']); // make -'s be _'s + $vars['name'] = ucwords($vars['name']); // make module name camelcased + + return $vars; + } +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/RadPHPInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/RadPHPInstaller.php new file mode 100644 index 00000000..4caae51d --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/RadPHPInstaller.php @@ -0,0 +1,26 @@ + */ + protected $locations = array( + 'bundle' => 'src/{$name}/' + ); + + /** + * Format package name to CamelCase + */ + public function inflectPackageVars(array $vars): array + { + $nameParts = explode('/', $vars['name']); + foreach ($nameParts as &$value) { + $value = strtolower($this->pregReplace('/(?<=\\w)([A-Z])/', '_\\1', $value)); + $value = str_replace(array('-', '_'), ' ', $value); + $value = str_replace(' ', '', ucwords($value)); + } + $vars['name'] = implode('/', $nameParts); + return $vars; + } +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/ReIndexInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/ReIndexInstaller.php new file mode 100644 index 00000000..a19eaaf2 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/ReIndexInstaller.php @@ -0,0 +1,12 @@ + */ + protected $locations = array( + 'theme' => 'themes/{$name}/', + 'plugin' => 'plugins/{$name}/' + ); +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/Redaxo5Installer.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/Redaxo5Installer.php new file mode 100644 index 00000000..b62c926a --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/Redaxo5Installer.php @@ -0,0 +1,12 @@ + */ + protected $locations = array( + 'addon' => 'redaxo/src/addons/{$name}/', + 'bestyle-plugin' => 'redaxo/src/addons/be_style/plugins/{$name}/' + ); +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/RedaxoInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/RedaxoInstaller.php new file mode 100644 index 00000000..26b3aa84 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/RedaxoInstaller.php @@ -0,0 +1,12 @@ + */ + protected $locations = array( + 'addon' => 'redaxo/include/addons/{$name}/', + 'bestyle-plugin' => 'redaxo/include/addons/be_style/plugins/{$name}/' + ); +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/RoundcubeInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/RoundcubeInstaller.php new file mode 100644 index 00000000..7e716748 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/RoundcubeInstaller.php @@ -0,0 +1,21 @@ + */ + protected $locations = array( + 'plugin' => 'plugins/{$name}/', + ); + + /** + * Lowercase name and changes the name to a underscores + */ + public function inflectPackageVars(array $vars): array + { + $vars['name'] = strtolower(str_replace('-', '_', $vars['name'])); + + return $vars; + } +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/SMFInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/SMFInstaller.php new file mode 100644 index 00000000..7321046f --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/SMFInstaller.php @@ -0,0 +1,12 @@ + */ + protected $locations = array( + 'module' => 'Sources/{$name}/', + 'theme' => 'Themes/{$name}/', + ); +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/ShopwareInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/ShopwareInstaller.php new file mode 100644 index 00000000..82b8e28c --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/ShopwareInstaller.php @@ -0,0 +1,66 @@ + */ + protected $locations = array( + 'backend-plugin' => 'engine/Shopware/Plugins/Local/Backend/{$name}/', + 'core-plugin' => 'engine/Shopware/Plugins/Local/Core/{$name}/', + 'frontend-plugin' => 'engine/Shopware/Plugins/Local/Frontend/{$name}/', + 'theme' => 'templates/{$name}/', + 'plugin' => 'custom/plugins/{$name}/', + 'frontend-theme' => 'themes/Frontend/{$name}/', + ); + + /** + * Transforms the names + */ + public function inflectPackageVars(array $vars): array + { + if ($vars['type'] === 'shopware-theme') { + return $this->correctThemeName($vars); + } + + return $this->correctPluginName($vars); + } + + /** + * Changes the name to a camelcased combination of vendor and name + * + * @param array $vars + * @return array + */ + private function correctPluginName(array $vars): array + { + $camelCasedName = preg_replace_callback('/(-[a-z])/', function ($matches) { + return strtoupper($matches[0][1]); + }, $vars['name']); + + if (null === $camelCasedName) { + throw new \RuntimeException('Failed to run preg_replace_callback: '.preg_last_error()); + } + + $vars['name'] = ucfirst($vars['vendor']) . ucfirst($camelCasedName); + + return $vars; + } + + /** + * Changes the name to a underscore separated name + * + * @param array $vars + * @return array + */ + private function correctThemeName(array $vars): array + { + $vars['name'] = str_replace('-', '_', $vars['name']); + + return $vars; + } +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/SilverStripeInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/SilverStripeInstaller.php new file mode 100644 index 00000000..aa2de216 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/SilverStripeInstaller.php @@ -0,0 +1,33 @@ + */ + protected $locations = array( + 'module' => '{$name}/', + 'theme' => 'themes/{$name}/', + ); + + /** + * Return the install path based on package type. + * + * Relies on built-in BaseInstaller behaviour with one exception: silverstripe/framework + * must be installed to 'sapphire' and not 'framework' if the version is <3.0.0 + */ + public function getInstallPath(PackageInterface $package, string $frameworkType = ''): string + { + if ( + $package->getName() == 'silverstripe/framework' + && preg_match('/^\d+\.\d+\.\d+/', $package->getVersion()) + && version_compare($package->getVersion(), '2.999.999') < 0 + ) { + return $this->templatePath($this->locations['module'], array('name' => 'sapphire')); + } + + return parent::getInstallPath($package, $frameworkType); + } +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/SiteDirectInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/SiteDirectInstaller.php new file mode 100644 index 00000000..0af3239b --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/SiteDirectInstaller.php @@ -0,0 +1,34 @@ + */ + protected $locations = array( + 'module' => 'modules/{$vendor}/{$name}/', + 'plugin' => 'plugins/{$vendor}/{$name}/' + ); + + /** + * @param array $vars + * @return array + */ + public function inflectPackageVars(array $vars): array + { + return $this->parseVars($vars); + } + + /** + * @param array $vars + * @return array + */ + protected function parseVars(array $vars): array + { + $vars['vendor'] = strtolower($vars['vendor']) == 'sitedirect' ? 'SiteDirect' : $vars['vendor']; + $vars['name'] = str_replace(array('-', '_'), ' ', $vars['name']); + $vars['name'] = str_replace(' ', '', ucwords($vars['name'])); + + return $vars; + } +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/StarbugInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/StarbugInstaller.php new file mode 100644 index 00000000..72afa081 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/StarbugInstaller.php @@ -0,0 +1,14 @@ + */ + protected $locations = array( + 'module' => 'modules/{$name}/', + 'theme' => 'themes/{$name}/', + 'custom-module' => 'app/modules/{$name}/', + 'custom-theme' => 'app/themes/{$name}/' + ); +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/SyDESInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/SyDESInstaller.php new file mode 100644 index 00000000..24673d2f --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/SyDESInstaller.php @@ -0,0 +1,55 @@ + */ + protected $locations = array( + 'module' => 'app/modules/{$name}/', + 'theme' => 'themes/{$name}/', + ); + + /** + * Format module name. + * + * Strip `sydes-` prefix and a trailing '-theme' or '-module' from package name if present. + */ + public function inflectPackageVars(array $vars): array + { + if ($vars['type'] == 'sydes-module') { + return $this->inflectModuleVars($vars); + } + + if ($vars['type'] === 'sydes-theme') { + return $this->inflectThemeVars($vars); + } + + return $vars; + } + + /** + * @param array $vars + * @return array + */ + public function inflectModuleVars(array $vars): array + { + $vars['name'] = $this->pregReplace('/(^sydes-|-module$)/i', '', $vars['name']); + $vars['name'] = str_replace(array('-', '_'), ' ', $vars['name']); + $vars['name'] = str_replace(' ', '', ucwords($vars['name'])); + + return $vars; + } + + /** + * @param array $vars + * @return array + */ + protected function inflectThemeVars(array $vars): array + { + $vars['name'] = $this->pregReplace('/(^sydes-|-theme$)/', '', $vars['name']); + $vars['name'] = strtolower($vars['name']); + + return $vars; + } +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/SyliusInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/SyliusInstaller.php new file mode 100644 index 00000000..c82bd855 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/SyliusInstaller.php @@ -0,0 +1,11 @@ + */ + protected $locations = array( + 'theme' => 'themes/{$name}/', + ); +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/TaoInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/TaoInstaller.php new file mode 100644 index 00000000..8c1d8144 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/TaoInstaller.php @@ -0,0 +1,32 @@ + */ + protected $locations = array( + 'extension' => '{$name}' + ); + + public function inflectPackageVars(array $vars): array + { + $extra = $this->package->getExtra(); + + if (array_key_exists(self::EXTRA_TAO_EXTENSION_NAME, $extra)) { + $vars['name'] = $extra[self::EXTRA_TAO_EXTENSION_NAME]; + return $vars; + } + + $vars['name'] = str_replace('extension-', '', $vars['name']); + $vars['name'] = str_replace('-', ' ', $vars['name']); + $vars['name'] = lcfirst(str_replace(' ', '', ucwords($vars['name']))); + + return $vars; + } +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/TastyIgniterInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/TastyIgniterInstaller.php new file mode 100644 index 00000000..39ceae07 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/TastyIgniterInstaller.php @@ -0,0 +1,85 @@ + */ + protected $locations = [ + 'module' => 'app/{$name}/', + 'extension' => 'extensions/{$vendor}/{$name}/', + 'theme' => 'themes/{$name}/', + ]; + + /** + * Format package name. + * + * Cut off leading 'ti-ext-' or 'ti-theme-' if present. + * Strip vendor name of characters that is not alphanumeric or an underscore + * + */ + public function inflectPackageVars(array $vars): array + { + $extra = $this->package->getExtra(); + + if ($vars['type'] === 'tastyigniter-module') { + return $this->inflectModuleVars($vars); + } + + if ($vars['type'] === 'tastyigniter-extension') { + return $this->inflectExtensionVars($vars, $extra); + } + + if ($vars['type'] === 'tastyigniter-theme') { + return $this->inflectThemeVars($vars, $extra); + } + + return $vars; + } + + /** + * @param array $vars + * @return array + */ + protected function inflectModuleVars(array $vars): array + { + $vars['name'] = $this->pregReplace('/^ti-module-/', '', $vars['name']); + + return $vars; + } + + /** + * @param array $vars + * @param array $extra + * @return array + */ + protected function inflectExtensionVars(array $vars, array $extra): array + { + if (!empty($extra['tastyigniter-extension']['code'])) { + $parts = explode('.', $extra['tastyigniter-extension']['code']); + $vars['vendor'] = (string)$parts[0]; + $vars['name'] = (string)($parts[1] ?? ''); + } + + $vars['vendor'] = $this->pregReplace('/[^a-z0-9_]/i', '', $vars['vendor']); + $vars['name'] = $this->pregReplace('/^ti-ext-/', '', $vars['name']); + + return $vars; + } + + /** + * @param array $vars + * @param array $extra + * @return array + */ + protected function inflectThemeVars(array $vars, array $extra): array + { + if (!empty($extra['tastyigniter-theme']['code'])) { + $vars['name'] = $extra['tastyigniter-theme']['code']; + } + + $vars['name'] = $this->pregReplace('/^ti-theme-/', '', $vars['name']); + + return $vars; + } +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/TheliaInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/TheliaInstaller.php new file mode 100644 index 00000000..896bed5c --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/TheliaInstaller.php @@ -0,0 +1,14 @@ + */ + protected $locations = array( + 'module' => 'local/modules/{$name}/', + 'frontoffice-template' => 'templates/frontOffice/{$name}/', + 'backoffice-template' => 'templates/backOffice/{$name}/', + 'email-template' => 'templates/email/{$name}/', + ); +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/TuskInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/TuskInstaller.php new file mode 100644 index 00000000..3b5f1424 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/TuskInstaller.php @@ -0,0 +1,17 @@ + + */ +class TuskInstaller extends BaseInstaller +{ + /** @var array */ + protected $locations = array( + 'task' => '.tusk/tasks/{$name}/', + 'command' => '.tusk/commands/{$name}/', + 'asset' => 'assets/tusk/{$name}/', + ); +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/UserFrostingInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/UserFrostingInstaller.php new file mode 100644 index 00000000..a646c5b2 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/UserFrostingInstaller.php @@ -0,0 +1,11 @@ + */ + protected $locations = array( + 'sprinkle' => 'app/sprinkles/{$name}/', + ); +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/VanillaInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/VanillaInstaller.php new file mode 100644 index 00000000..06d5db3a --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/VanillaInstaller.php @@ -0,0 +1,12 @@ + */ + protected $locations = array( + 'plugin' => 'plugins/{$name}/', + 'theme' => 'themes/{$name}/', + ); +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/VgmcpInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/VgmcpInstaller.php new file mode 100644 index 00000000..cf094dd5 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/VgmcpInstaller.php @@ -0,0 +1,59 @@ + */ + protected $locations = array( + 'bundle' => 'src/{$vendor}/{$name}/', + 'theme' => 'themes/{$name}/' + ); + + /** + * Format package name. + * + * For package type vgmcp-bundle, cut off a trailing '-bundle' if present. + * + * For package type vgmcp-theme, cut off a trailing '-theme' if present. + * + */ + public function inflectPackageVars(array $vars): array + { + if ($vars['type'] === 'vgmcp-bundle') { + return $this->inflectPluginVars($vars); + } + + if ($vars['type'] === 'vgmcp-theme') { + return $this->inflectThemeVars($vars); + } + + return $vars; + } + + /** + * @param array $vars + * @return array + */ + protected function inflectPluginVars(array $vars): array + { + $vars['name'] = $this->pregReplace('/-bundle$/', '', $vars['name']); + $vars['name'] = str_replace(array('-', '_'), ' ', $vars['name']); + $vars['name'] = str_replace(' ', '', ucwords($vars['name'])); + + return $vars; + } + + /** + * @param array $vars + * @return array + */ + protected function inflectThemeVars(array $vars): array + { + $vars['name'] = $this->pregReplace('/-theme$/', '', $vars['name']); + $vars['name'] = str_replace(array('-', '_'), ' ', $vars['name']); + $vars['name'] = str_replace(' ', '', ucwords($vars['name'])); + + return $vars; + } +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/WHMCSInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/WHMCSInstaller.php new file mode 100644 index 00000000..91b19fd0 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/WHMCSInstaller.php @@ -0,0 +1,22 @@ + */ + protected $locations = array( + 'addons' => 'modules/addons/{$vendor}_{$name}/', + 'fraud' => 'modules/fraud/{$vendor}_{$name}/', + 'gateways' => 'modules/gateways/{$vendor}_{$name}/', + 'notifications' => 'modules/notifications/{$vendor}_{$name}/', + 'registrars' => 'modules/registrars/{$vendor}_{$name}/', + 'reports' => 'modules/reports/{$vendor}_{$name}/', + 'security' => 'modules/security/{$vendor}_{$name}/', + 'servers' => 'modules/servers/{$vendor}_{$name}/', + 'social' => 'modules/social/{$vendor}_{$name}/', + 'support' => 'modules/support/{$vendor}_{$name}/', + 'templates' => 'templates/{$vendor}_{$name}/', + 'includes' => 'includes/{$vendor}_{$name}/' + ); +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/WinterInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/WinterInstaller.php new file mode 100644 index 00000000..f75a6817 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/WinterInstaller.php @@ -0,0 +1,71 @@ + */ + protected $locations = array( + 'module' => 'modules/{$name}/', + 'plugin' => 'plugins/{$vendor}/{$name}/', + 'theme' => 'themes/{$name}/' + ); + + /** + * Format package name. + * + * For package type winter-plugin, cut off a trailing '-plugin' if present. + * + * For package type winter-theme, cut off a trailing '-theme' if present. + */ + public function inflectPackageVars(array $vars): array + { + if ($vars['type'] === 'winter-module') { + return $this->inflectModuleVars($vars); + } + + if ($vars['type'] === 'winter-plugin') { + return $this->inflectPluginVars($vars); + } + + if ($vars['type'] === 'winter-theme') { + return $this->inflectThemeVars($vars); + } + + return $vars; + } + + /** + * @param array $vars + * @return array + */ + protected function inflectModuleVars(array $vars): array + { + $vars['name'] = $this->pregReplace('/^wn-|-module$/', '', $vars['name']); + + return $vars; + } + + /** + * @param array $vars + * @return array + */ + protected function inflectPluginVars(array $vars): array + { + $vars['name'] = $this->pregReplace('/^wn-|-plugin$/', '', $vars['name']); + $vars['vendor'] = $this->pregReplace('/[^a-z0-9_]/i', '', $vars['vendor']); + + return $vars; + } + + /** + * @param array $vars + * @return array + */ + protected function inflectThemeVars(array $vars): array + { + $vars['name'] = $this->pregReplace('/^wn-|-theme$/', '', $vars['name']); + + return $vars; + } +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/WolfCMSInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/WolfCMSInstaller.php new file mode 100644 index 00000000..58a95879 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/WolfCMSInstaller.php @@ -0,0 +1,11 @@ + */ + protected $locations = array( + 'plugin' => 'wolf/plugins/{$name}/', + ); +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/WordPressInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/WordPressInstaller.php new file mode 100644 index 00000000..d46d5ab8 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/WordPressInstaller.php @@ -0,0 +1,14 @@ + */ + protected $locations = array( + 'plugin' => 'wp-content/plugins/{$name}/', + 'theme' => 'wp-content/themes/{$name}/', + 'muplugin' => 'wp-content/mu-plugins/{$name}/', + 'dropin' => 'wp-content/{$name}/', + ); +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/YawikInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/YawikInstaller.php new file mode 100644 index 00000000..d609dea5 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/YawikInstaller.php @@ -0,0 +1,23 @@ + */ + protected $locations = array( + 'module' => 'module/{$name}/', + ); + + /** + * Format package name to CamelCase + */ + public function inflectPackageVars(array $vars): array + { + $vars['name'] = strtolower($this->pregReplace('/(?<=\\w)([A-Z])/', '_\\1', $vars['name'])); + $vars['name'] = str_replace(array('-', '_'), ' ', $vars['name']); + $vars['name'] = str_replace(' ', '', ucwords($vars['name'])); + + return $vars; + } +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/ZendInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/ZendInstaller.php new file mode 100644 index 00000000..ccfcd4a0 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/ZendInstaller.php @@ -0,0 +1,13 @@ + */ + protected $locations = array( + 'library' => 'library/{$name}/', + 'extra' => 'extras/library/{$name}/', + 'module' => 'module/{$name}/', + ); +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/ZikulaInstaller.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/ZikulaInstaller.php new file mode 100644 index 00000000..d1fd1d78 --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/Composer/Installers/ZikulaInstaller.php @@ -0,0 +1,12 @@ + */ + protected $locations = array( + 'module' => 'modules/{$vendor}-{$name}/', + 'theme' => 'themes/{$vendor}-{$name}/' + ); +} diff --git a/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/bootstrap.php b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/bootstrap.php new file mode 100644 index 00000000..a5bb9add --- /dev/null +++ b/wp-content/plugins/simple-local-avatars/vendor/composer/installers/src/bootstrap.php @@ -0,0 +1,18 @@ += 70400)) { + $issues[] = 'Your Composer dependencies require a PHP version ">= 7.4.0". You are running ' . PHP_VERSION . '.'; +} + +if ($issues) { + if (!headers_sent()) { + header('HTTP/1.1 500 Internal Server Error'); + } + if (!ini_get('display_errors')) { + if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') { + fwrite(STDERR, 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . implode(PHP_EOL, $issues) . PHP_EOL.PHP_EOL); + } elseif (!headers_sent()) { + echo 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . str_replace('You are running '.PHP_VERSION.'.', '', implode(PHP_EOL, $issues)) . PHP_EOL.PHP_EOL; + } + } + trigger_error( + 'Composer detected issues in your platform: ' . implode(' ', $issues), + E_USER_ERROR + ); +}