Changeset 3389705
- Timestamp:
- 11/04/2025 01:40:30 PM (5 months ago)
- Location:
- sendcloud-connected-shipping
- Files:
-
- 131 added
- 17 edited
-
tags/1.0.18 (added)
-
tags/1.0.18/changelog.txt (added)
-
tags/1.0.18/composer.json (added)
-
tags/1.0.18/composer.lock (added)
-
tags/1.0.18/database (added)
-
tags/1.0.18/database/Exceptions (added)
-
tags/1.0.18/database/Exceptions/class-migration-exception.php (added)
-
tags/1.0.18/database/Migrations (added)
-
tags/1.0.18/database/Migrations/migration.v.1.0.0.php (added)
-
tags/1.0.18/database/Migrations/migration.v.1.0.1.php (added)
-
tags/1.0.18/database/Migrations/migration.v.1.0.11.php (added)
-
tags/1.0.18/database/Utility (added)
-
tags/1.0.18/database/Utility/class-migration-reader.php (added)
-
tags/1.0.18/database/class-abstract-migration.php (added)
-
tags/1.0.18/database/class-migrator.php (added)
-
tags/1.0.18/i18n (added)
-
tags/1.0.18/i18n/languages (added)
-
tags/1.0.18/i18n/languages/sendcloud-connected-shipping-de_DE.mo (added)
-
tags/1.0.18/i18n/languages/sendcloud-connected-shipping-de_DE.po (added)
-
tags/1.0.18/i18n/languages/sendcloud-connected-shipping-en_GB.mo (added)
-
tags/1.0.18/i18n/languages/sendcloud-connected-shipping-en_GB.po (added)
-
tags/1.0.18/i18n/languages/sendcloud-connected-shipping-en_US.mo (added)
-
tags/1.0.18/i18n/languages/sendcloud-connected-shipping-en_US.po (added)
-
tags/1.0.18/i18n/languages/sendcloud-connected-shipping-es_ES.mo (added)
-
tags/1.0.18/i18n/languages/sendcloud-connected-shipping-es_ES.po (added)
-
tags/1.0.18/i18n/languages/sendcloud-connected-shipping-fr_FR.mo (added)
-
tags/1.0.18/i18n/languages/sendcloud-connected-shipping-fr_FR.po (added)
-
tags/1.0.18/i18n/languages/sendcloud-connected-shipping-it_IT.mo (added)
-
tags/1.0.18/i18n/languages/sendcloud-connected-shipping-it_IT.po (added)
-
tags/1.0.18/i18n/languages/sendcloud-connected-shipping-nl_NL.mo (added)
-
tags/1.0.18/i18n/languages/sendcloud-connected-shipping-nl_NL.po (added)
-
tags/1.0.18/i18n/languages/sendcloud-connected-shipping.pot (added)
-
tags/1.0.18/includes (added)
-
tags/1.0.18/includes/Controllers (added)
-
tags/1.0.18/includes/Controllers/Api (added)
-
tags/1.0.18/includes/Controllers/Api/class-authorization.php (added)
-
tags/1.0.18/includes/Controllers/Api/class-base-wc-rest-controller.php (added)
-
tags/1.0.18/includes/Controllers/Api/class-integration-controller.php (added)
-
tags/1.0.18/includes/Controllers/Api/class-service-point-controller.php (added)
-
tags/1.0.18/includes/Controllers/Api/class-status-controller.php (added)
-
tags/1.0.18/includes/Controllers/Backend (added)
-
tags/1.0.18/includes/Controllers/Backend/class-connect-controller.php (added)
-
tags/1.0.18/includes/Controllers/Backend/class-migration-controller.php (added)
-
tags/1.0.18/includes/Controllers/Backend/class-support-controller.php (added)
-
tags/1.0.18/includes/Controllers/Backend/class-view-controller.php (added)
-
tags/1.0.18/includes/Controllers/Frontend (added)
-
tags/1.0.18/includes/Controllers/Frontend/class-base-controller.php (added)
-
tags/1.0.18/includes/Controllers/Frontend/class-oauth-complete-controller.php (added)
-
tags/1.0.18/includes/Controllers/Frontend/class-oauth-connect-controller.php (added)
-
tags/1.0.18/includes/Exceptions (added)
-
tags/1.0.18/includes/Exceptions/class-http-unsuccessful-response.php (added)
-
tags/1.0.18/includes/Exceptions/class-invalid-payload-exception.php (added)
-
tags/1.0.18/includes/Exceptions/class-missing-auth-data-exception.php (added)
-
tags/1.0.18/includes/Exceptions/class-missing-consumer-key-exception.php (added)
-
tags/1.0.18/includes/Exceptions/class-request-missing-parameters-exception.php (added)
-
tags/1.0.18/includes/HookHandlers (added)
-
tags/1.0.18/includes/HookHandlers/class-api-handler.php (added)
-
tags/1.0.18/includes/HookHandlers/class-plugin-disable-handler.php (added)
-
tags/1.0.18/includes/HookHandlers/class-product-handler.php (added)
-
tags/1.0.18/includes/Models (added)
-
tags/1.0.18/includes/Models/class-api-key.php (added)
-
tags/1.0.18/includes/Models/class-auth-data.php (added)
-
tags/1.0.18/includes/Models/class-deactivation-data.php (added)
-
tags/1.0.18/includes/Models/class-service-point-instance.php (added)
-
tags/1.0.18/includes/Models/class-service-point-meta.php (added)
-
tags/1.0.18/includes/Repositories (added)
-
tags/1.0.18/includes/Repositories/class-abstract-repository.php (added)
-
tags/1.0.18/includes/Repositories/class-api-key-repository.php (added)
-
tags/1.0.18/includes/Repositories/class-config-repository.php (added)
-
tags/1.0.18/includes/Repositories/class-order-repository.php (added)
-
tags/1.0.18/includes/Repositories/class-shipping-method-options-repository.php (added)
-
tags/1.0.18/includes/ServicePoint (added)
-
tags/1.0.18/includes/ServicePoint/Checkout (added)
-
tags/1.0.18/includes/ServicePoint/Checkout/class-checkout-block-handler.php (added)
-
tags/1.0.18/includes/ServicePoint/Checkout/class-checkout-handler.php (added)
-
tags/1.0.18/includes/ServicePoint/Shipping (added)
-
tags/1.0.18/includes/ServicePoint/Shipping/class-abstract-flat-rate-free-shipping-method.php (added)
-
tags/1.0.18/includes/ServicePoint/Shipping/class-service-point-shipping-method.php (added)
-
tags/1.0.18/includes/ServicePoint/class-email-handler.php (added)
-
tags/1.0.18/includes/ServicePoint/class-order-admin-handler.php (added)
-
tags/1.0.18/includes/Services (added)
-
tags/1.0.18/includes/Services/class-auth-service.php (added)
-
tags/1.0.18/includes/Services/class-config-service.php (added)
-
tags/1.0.18/includes/Services/class-connect-service.php (added)
-
tags/1.0.18/includes/Services/class-webhook-service.php (added)
-
tags/1.0.18/includes/Utility (added)
-
tags/1.0.18/includes/Utility/class-auth-code-generator.php (added)
-
tags/1.0.18/includes/Utility/class-base64-url-encoder.php (added)
-
tags/1.0.18/includes/Utility/class-database.php (added)
-
tags/1.0.18/includes/Utility/class-http-client.php (added)
-
tags/1.0.18/includes/Utility/class-logger-factory.php (added)
-
tags/1.0.18/includes/Utility/class-logger.php (added)
-
tags/1.0.18/includes/Utility/class-response.php (added)
-
tags/1.0.18/includes/Utility/class-shop-helper.php (added)
-
tags/1.0.18/includes/Utility/class-version-utility.php (added)
-
tags/1.0.18/includes/Utility/class-view.php (added)
-
tags/1.0.18/includes/class-sendcloud.php (added)
-
tags/1.0.18/readme.txt (added)
-
tags/1.0.18/resources (added)
-
tags/1.0.18/resources/css (added)
-
tags/1.0.18/resources/css/sendcloud.css (added)
-
tags/1.0.18/resources/js (added)
-
tags/1.0.18/resources/js/sendcloud.page.js (added)
-
tags/1.0.18/resources/js/service-point-block.js (added)
-
tags/1.0.18/resources/views (added)
-
tags/1.0.18/resources/views/plugin (added)
-
tags/1.0.18/resources/views/plugin/deactivation-notice.php (added)
-
tags/1.0.18/resources/views/service-point (added)
-
tags/1.0.18/resources/views/service-point/checkout (added)
-
tags/1.0.18/resources/views/service-point/checkout/service-point-carriers.php (added)
-
tags/1.0.18/resources/views/service-point/email-template.php (added)
-
tags/1.0.18/resources/views/service-point/order-admin.php (added)
-
tags/1.0.18/resources/views/service-point/order-confirmation-page.php (added)
-
tags/1.0.18/resources/views/wc-settings (added)
-
tags/1.0.18/resources/views/wc-settings/sendcloud-page.php (added)
-
tags/1.0.18/sendcloud-connected-shipping.php (added)
-
tags/1.0.18/uninstall.php (added)
-
tags/1.0.18/vendor (added)
-
tags/1.0.18/vendor/autoload.php (added)
-
tags/1.0.18/vendor/composer (added)
-
tags/1.0.18/vendor/composer/ClassLoader.php (added)
-
tags/1.0.18/vendor/composer/InstalledVersions.php (added)
-
tags/1.0.18/vendor/composer/LICENSE (added)
-
tags/1.0.18/vendor/composer/autoload_classmap.php (added)
-
tags/1.0.18/vendor/composer/autoload_namespaces.php (added)
-
tags/1.0.18/vendor/composer/autoload_psr4.php (added)
-
tags/1.0.18/vendor/composer/autoload_real.php (added)
-
tags/1.0.18/vendor/composer/autoload_static.php (added)
-
tags/1.0.18/vendor/composer/installed.json (added)
-
tags/1.0.18/vendor/composer/installed.php (added)
-
tags/1.0.18/vendor/composer/platform_check.php (added)
-
trunk/changelog.txt (modified) (1 diff)
-
trunk/composer.lock (modified) (2 diffs)
-
trunk/includes/HookHandlers/class-product-handler.php (modified) (3 diffs)
-
trunk/includes/Repositories/class-order-repository.php (modified) (2 diffs)
-
trunk/includes/class-sendcloud.php (modified) (1 diff)
-
trunk/readme.txt (modified) (3 diffs)
-
trunk/sendcloud-connected-shipping.php (modified) (1 diff)
-
trunk/vendor/autoload.php (modified) (1 diff)
-
trunk/vendor/composer/ClassLoader.php (modified) (25 diffs)
-
trunk/vendor/composer/InstalledVersions.php (modified) (12 diffs)
-
trunk/vendor/composer/LICENSE (modified) (2 diffs)
-
trunk/vendor/composer/autoload_classmap.php (modified) (1 diff)
-
trunk/vendor/composer/autoload_namespaces.php (modified) (1 diff)
-
trunk/vendor/composer/autoload_psr4.php (modified) (1 diff)
-
trunk/vendor/composer/autoload_real.php (modified) (2 diffs)
-
trunk/vendor/composer/autoload_static.php (modified) (2 diffs)
-
trunk/vendor/composer/installed.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
sendcloud-connected-shipping/trunk/changelog.txt
r3381752 r3389705 1 1 *** WooCommerce Sendcloud | The all-in-one shipping platform Changelog *** 2 2 3 = 2025-10-13 - version 1.0.17 = 4 * Fix service point validation on initial load in block checkout 3 = 2025-11-04 - version 1.0.18 = 4 * Track product EAN change and update related unprocessed orders 5 6 = 2025-10-20 - version 1.0.17 = 7 * Service Point validation on initial load in Block Checkout. 8 * Ensured compatibility with other checkout modules. 5 9 6 10 = 2025-09-24 - version 1.0.16 = -
sendcloud-connected-shipping/trunk/composer.lock
r3336392 r3389705 10 10 "aliases": [], 11 11 "minimum-stability": "stable", 12 "stability-flags": [],12 "stability-flags": {}, 13 13 "prefer-stable": false, 14 14 "prefer-lowest": false, … … 17 17 "ext-json": "*" 18 18 }, 19 "platform-dev": [],20 "plugin-api-version": "2. 2.0"19 "platform-dev": {}, 20 "plugin-api-version": "2.6.0" 21 21 } -
sendcloud-connected-shipping/trunk/includes/HookHandlers/class-product-handler.php
r3266337 r3389705 3 3 namespace SCCSP\SendCloud\Connected\Shipping\HookHandlers; 4 4 5 use SCCSP\SendCloud\Connected\Shipping\Repositories\SCCSP_Order_Repository; 6 use SCCSP\SendCloud\Connected\Shipping\Utility\SCCSP_Logger; 5 7 use SCCSP\SendCloud\Connected\Shipping\Utility\SCCSP_Version_Utility; 6 8 use WC_Product; … … 15 17 static $ean_code_key = 'sc_ean_code'; 16 18 19 20 /** 21 * @var \SCCSP\SendCloud\Connected\Shipping\Repositories\SCCSP_Order_Repository 22 */ 23 private $order_repository; 24 25 /** 26 * Checkout_Handler constructor 27 */ 28 public function __construct() 29 { 30 $this->order_repository = new SCCSP_Order_Repository(); 31 } 17 32 18 33 /** … … 30 45 'add_international_shipping_fields' 31 46 ) ); 47 add_action( 'woocommerce_update_product', array( 48 $this, 49 'on_update_product' 50 ), 10, 2); 32 51 } 52 53 /** 54 * Checks if product ean field is changed and updates related orders 55 * 56 * @param $product_id 57 * @param $product 58 * @return void 59 */ 60 public function on_update_product($product_id, $product){ 61 $ean = SCCSP_Version_Utility::compare( '9.2', '<' ) 62 ? $product->get_meta( self::$ean_code_key ) 63 : $product->get_global_unique_id();; 64 65 $hash = md5(json_encode([$ean])); 66 $hashBefore = get_post_meta( $product_id, "productUpdateHash", true ); 67 68 if ($hash !== $hashBefore) { 69 $order_ids = $this->order_repository->get_orders_by_product_id( $product_id ); 70 add_post_meta($product_id, "productUpdateHash", $hash); 71 72 if (!$order_ids) { 73 return; 74 } 75 76 $this->order_repository->set_orders_updated_by_id($order_ids); 77 SCCSP_Logger::debug( sprintf('Orders (%s) updated after product (%d) EAN update', 78 implode(", ", $order_ids), 79 $product_id 80 )); 81 } 82 } 33 83 34 84 /** -
sendcloud-connected-shipping/trunk/includes/Repositories/class-order-repository.php
r3312433 r3389705 3 3 namespace SCCSP\SendCloud\Connected\Shipping\Repositories; 4 4 5 use Automattic\WooCommerce\Internal\DataStores\Orders\OrdersTableDataStore; 6 use Automattic\WooCommerce\Enums\OrderStatus; 5 7 use SCCSP\SendCloud\Connected\Shipping\Models\SCCSP_Service_Point_Meta; 6 8 … … 51 53 $order->save(); 52 54 } 55 56 /** 57 * @param int $product_id 58 * 59 * @return array|null 60 * @throws \Exception 61 */ 62 public function get_orders_by_product_id( $product_id ) { 63 global $wpdb; 64 $product_table = $wpdb->prefix . 'wc_order_product_lookup'; 65 $order_table = $wpdb->prefix . 'wc_orders'; 66 67 $sync_statuses = [ 68 "wc-" . OrderStatus::COMPLETED, 69 "wc-" . OrderStatus::CANCELLED, 70 "wc-" . OrderStatus::REFUNDED, 71 "wc-" . OrderStatus::FAILED, 72 "wc-" . OrderStatus::TRASH 73 ]; 74 75 $sql = " 76 SELECT p.order_id 77 FROM %1s p 78 LEFT JOIN %1s o ON p.order_id = o.id 79 WHERE p.product_id = %d 80 AND o.status NOT IN(".implode(', ', array_fill(0, count($sync_statuses), '%s')).") 81 AND o.date_created_gmt > NOW() - INTERVAL 30 DAY 82 "; 83 84 $query = call_user_func_array( 85 array($wpdb, 'prepare'), 86 array_merge(array($sql, $product_table, $order_table, $product_id), $sync_statuses) 87 ); 88 $result = $wpdb->get_results($query, ARRAY_A); 89 90 return $result ? array_column($result, 'order_id') : array(); 91 } 92 93 /** 94 * @param $order_ids 95 * @return void 96 */ 97 public function set_orders_updated_by_id( $order_ids ) 98 { 99 global $wpdb; 100 101 foreach ($order_ids as $order_id) { 102 $wpdb->update( 103 $wpdb->prefix . 'wc_orders', 104 array( 105 'date_updated_gmt' => current_time( 'mysql', true ), 106 ), 107 array( 108 'id' => $order_id, 109 ), 110 array( 111 '%s', 112 ), 113 array( 114 '%d', 115 ) 116 ); 117 } 118 119 } 53 120 } -
sendcloud-connected-shipping/trunk/includes/class-sendcloud.php
r3381752 r3389705 27 27 28 28 class SCCSP_Sendcloud { 29 const VERSION = '1.0.1 7';29 const VERSION = '1.0.18'; 30 30 31 31 const INTEGRATION_NAME = 'sendcloudshipping'; -
sendcloud-connected-shipping/trunk/readme.txt
r3381752 r3389705 1 1 === Sendcloud Shipping === 2 Version: 1.0.1 72 Version: 1.0.18 3 3 Developer: SendCloud Global B.V. 4 4 Developer URI: http://sendcloud.com … … 7 7 Requires PHP: 7.0 8 8 Tested up to: 6.8.2 9 Stable tag: 1.0.1 79 Stable tag: 1.0.18 10 10 License: GPLv2 11 11 License URI: http://www.gnu.org/licenses/gpl-2.0.html … … 104 104 == Changelog == 105 105 = 1.0.17 = 106 * Fix service point validation on initial load in block checkout 106 * Service Point validation on initial load in Block Checkout. 107 * Ensured compatibility with other checkout modules. 107 108 108 109 = 1.0.16 = -
sendcloud-connected-shipping/trunk/sendcloud-connected-shipping.php
r3381752 r3389705 4 4 * Plugin URI: https://wordpress.org/plugins/sendcloud-connected-shipping/ 5 5 * Description: Sendcloud plugin. 6 * Version: 1.0.1 76 * Version: 1.0.18 7 7 * Woo: 8 8 * Author: Sendcloud B.V. -
sendcloud-connected-shipping/trunk/vendor/autoload.php
r3381752 r3389705 3 3 // autoload.php @generated by Composer 4 4 5 if (PHP_VERSION_ID < 50600) { 6 if (!headers_sent()) { 7 header('HTTP/1.1 500 Internal Server Error'); 8 } 9 $err = 'Composer 2.3.0 dropped support for autoloading on PHP <5.6 and you are running '.PHP_VERSION.', please upgrade PHP or use Composer 2.2 LTS via "composer self-update --2.2". Aborting.'.PHP_EOL; 10 if (!ini_get('display_errors')) { 11 if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') { 12 fwrite(STDERR, $err); 13 } elseif (!headers_sent()) { 14 echo $err; 15 } 16 } 17 trigger_error( 18 $err, 19 E_USER_ERROR 20 ); 21 } 22 5 23 require_once __DIR__ . '/composer/autoload_real.php'; 6 24 7 return ComposerAutoloaderInit 9c50fdbcac5d18c35949c84dab27a224::getLoader();25 return ComposerAutoloaderInit799da1d7fc2f83b97f37781f90812d9d::getLoader(); -
sendcloud-connected-shipping/trunk/vendor/composer/ClassLoader.php
r3336392 r3389705 43 43 class ClassLoader 44 44 { 45 /** @var ?string */ 45 /** @var \Closure(string):void */ 46 private static $includeFile; 47 48 /** @var string|null */ 46 49 private $vendorDir; 47 50 48 51 // PSR-4 49 52 /** 50 * @var array[] 51 * @psalm-var array<string, array<string, int>> 53 * @var array<string, array<string, int>> 52 54 */ 53 55 private $prefixLengthsPsr4 = array(); 54 56 /** 55 * @var array[] 56 * @psalm-var array<string, array<int, string>> 57 * @var array<string, list<string>> 57 58 */ 58 59 private $prefixDirsPsr4 = array(); 59 60 /** 60 * @var array[] 61 * @psalm-var array<string, string> 61 * @var list<string> 62 62 */ 63 63 private $fallbackDirsPsr4 = array(); … … 65 65 // PSR-0 66 66 /** 67 * @var array[] 68 * @psalm-var array<string, array<string, string[]>> 67 * List of PSR-0 prefixes 68 * 69 * Structured as array('F (first letter)' => array('Foo\Bar (full prefix)' => array('path', 'path2'))) 70 * 71 * @var array<string, array<string, list<string>>> 69 72 */ 70 73 private $prefixesPsr0 = array(); 71 74 /** 72 * @var array[] 73 * @psalm-var array<string, string> 75 * @var list<string> 74 76 */ 75 77 private $fallbackDirsPsr0 = array(); … … 79 81 80 82 /** 81 * @var string[] 82 * @psalm-var array<string, string> 83 * @var array<string, string> 83 84 */ 84 85 private $classMap = array(); … … 88 89 89 90 /** 90 * @var bool[] 91 * @psalm-var array<string, bool> 91 * @var array<string, bool> 92 92 */ 93 93 private $missingClasses = array(); 94 94 95 /** @var ?string*/95 /** @var string|null */ 96 96 private $apcuPrefix; 97 97 98 98 /** 99 * @var self[]99 * @var array<string, self> 100 100 */ 101 101 private static $registeredLoaders = array(); 102 102 103 103 /** 104 * @param ?string$vendorDir104 * @param string|null $vendorDir 105 105 */ 106 106 public function __construct($vendorDir = null) 107 107 { 108 108 $this->vendorDir = $vendorDir; 109 } 110 111 /** 112 * @return string[] 109 self::initializeIncludeClosure(); 110 } 111 112 /** 113 * @return array<string, list<string>> 113 114 */ 114 115 public function getPrefixes() … … 122 123 123 124 /** 124 * @return array[] 125 * @psalm-return array<string, array<int, string>> 125 * @return array<string, list<string>> 126 126 */ 127 127 public function getPrefixesPsr4() … … 131 131 132 132 /** 133 * @return array[] 134 * @psalm-return array<string, string> 133 * @return list<string> 135 134 */ 136 135 public function getFallbackDirs() … … 140 139 141 140 /** 142 * @return array[] 143 * @psalm-return array<string, string> 141 * @return list<string> 144 142 */ 145 143 public function getFallbackDirsPsr4() … … 149 147 150 148 /** 151 * @return string[] Array of classname => path 152 * @psalm-return array<string, string> 149 * @return array<string, string> Array of classname => path 153 150 */ 154 151 public function getClassMap() … … 158 155 159 156 /** 160 * @param string[] $classMap Class to filename map 161 * @psalm-param array<string, string> $classMap 157 * @param array<string, string> $classMap Class to filename map 162 158 * 163 159 * @return void … … 176 172 * appending or prepending to the ones previously set for this prefix. 177 173 * 178 * @param string $prefix The prefix179 * @param string[]|string $paths The PSR-0 root directories180 * @param bool $prepend Whether to prepend the directories174 * @param string $prefix The prefix 175 * @param list<string>|string $paths The PSR-0 root directories 176 * @param bool $prepend Whether to prepend the directories 181 177 * 182 178 * @return void … … 184 180 public function add($prefix, $paths, $prepend = false) 185 181 { 182 $paths = (array) $paths; 186 183 if (!$prefix) { 187 184 if ($prepend) { 188 185 $this->fallbackDirsPsr0 = array_merge( 189 (array)$paths,186 $paths, 190 187 $this->fallbackDirsPsr0 191 188 ); … … 193 190 $this->fallbackDirsPsr0 = array_merge( 194 191 $this->fallbackDirsPsr0, 195 (array)$paths192 $paths 196 193 ); 197 194 } … … 202 199 $first = $prefix[0]; 203 200 if (!isset($this->prefixesPsr0[$first][$prefix])) { 204 $this->prefixesPsr0[$first][$prefix] = (array)$paths;201 $this->prefixesPsr0[$first][$prefix] = $paths; 205 202 206 203 return; … … 208 205 if ($prepend) { 209 206 $this->prefixesPsr0[$first][$prefix] = array_merge( 210 (array)$paths,207 $paths, 211 208 $this->prefixesPsr0[$first][$prefix] 212 209 ); … … 214 211 $this->prefixesPsr0[$first][$prefix] = array_merge( 215 212 $this->prefixesPsr0[$first][$prefix], 216 (array)$paths213 $paths 217 214 ); 218 215 } … … 223 220 * appending or prepending to the ones previously set for this namespace. 224 221 * 225 * @param string $prefix The prefix/namespace, with trailing '\\'226 * @param string[]|string $paths The PSR-4 base directories227 * @param bool $prepend Whether to prepend the directories222 * @param string $prefix The prefix/namespace, with trailing '\\' 223 * @param list<string>|string $paths The PSR-4 base directories 224 * @param bool $prepend Whether to prepend the directories 228 225 * 229 226 * @throws \InvalidArgumentException … … 233 230 public function addPsr4($prefix, $paths, $prepend = false) 234 231 { 232 $paths = (array) $paths; 235 233 if (!$prefix) { 236 234 // Register directories for the root namespace. 237 235 if ($prepend) { 238 236 $this->fallbackDirsPsr4 = array_merge( 239 (array)$paths,237 $paths, 240 238 $this->fallbackDirsPsr4 241 239 ); … … 243 241 $this->fallbackDirsPsr4 = array_merge( 244 242 $this->fallbackDirsPsr4, 245 (array)$paths243 $paths 246 244 ); 247 245 } … … 253 251 } 254 252 $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; 255 $this->prefixDirsPsr4[$prefix] = (array)$paths;253 $this->prefixDirsPsr4[$prefix] = $paths; 256 254 } elseif ($prepend) { 257 255 // Prepend directories for an already registered namespace. 258 256 $this->prefixDirsPsr4[$prefix] = array_merge( 259 (array)$paths,257 $paths, 260 258 $this->prefixDirsPsr4[$prefix] 261 259 ); … … 264 262 $this->prefixDirsPsr4[$prefix] = array_merge( 265 263 $this->prefixDirsPsr4[$prefix], 266 (array)$paths264 $paths 267 265 ); 268 266 } … … 273 271 * replacing any others previously set for this prefix. 274 272 * 275 * @param string $prefix The prefix276 * @param string[]|string $paths The PSR-0 base directories273 * @param string $prefix The prefix 274 * @param list<string>|string $paths The PSR-0 base directories 277 275 * 278 276 * @return void … … 291 289 * replacing any others previously set for this namespace. 292 290 * 293 * @param string $prefix The prefix/namespace, with trailing '\\'294 * @param string[]|string $paths The PSR-4 base directories291 * @param string $prefix The prefix/namespace, with trailing '\\' 292 * @param list<string>|string $paths The PSR-4 base directories 295 293 * 296 294 * @throws \InvalidArgumentException … … 426 424 { 427 425 if ($file = $this->findFile($class)) { 428 includeFile($file); 426 $includeFile = self::$includeFile; 427 $includeFile($file); 429 428 430 429 return true; … … 477 476 478 477 /** 479 * Returns the currently registered loaders indexed by their corresponding vendor directories.480 * 481 * @return self[]478 * Returns the currently registered loaders keyed by their corresponding vendor directories. 479 * 480 * @return array<string, self> 482 481 */ 483 482 public static function getRegisteredLoaders() … … 556 555 return false; 557 556 } 557 558 /** 559 * @return void 560 */ 561 private static function initializeIncludeClosure() 562 { 563 if (self::$includeFile !== null) { 564 return; 565 } 566 567 /** 568 * Scope isolated include. 569 * 570 * Prevents access to $this/self from included files. 571 * 572 * @param string $file 573 * @return void 574 */ 575 self::$includeFile = \Closure::bind(static function($file) { 576 include $file; 577 }, null, null); 578 } 558 579 } 559 560 /**561 * Scope isolated include.562 *563 * Prevents access to $this/self from included files.564 *565 * @param string $file566 * @return void567 * @private568 */569 function includeFile($file)570 {571 include $file;572 } -
sendcloud-connected-shipping/trunk/vendor/composer/InstalledVersions.php
r3336392 r3389705 22 22 * 23 23 * To require its presence, you can require `composer-runtime-api ^2.0` 24 * 25 * @final 24 26 */ 25 27 class InstalledVersions … … 27 29 /** 28 30 * @var mixed[]|null 29 * @psalm-var array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}|array{}|null31 * @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<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}|array{}|null 30 32 */ 31 33 private static $installed; 32 34 33 35 /** 36 * @var bool 37 */ 38 private static $installedIsLocalDir; 39 40 /** 34 41 * @var bool|null 35 42 */ … … 38 45 /** 39 46 * @var array[] 40 * @psalm-var array<string, array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}>47 * @psalm-var array<string, array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}> 41 48 */ 42 49 private static $installedByVendor = array(); … … 97 104 foreach (self::getInstalled() as $installed) { 98 105 if (isset($installed['versions'][$packageName])) { 99 return $includeDevRequirements || empty($installed['versions'][$packageName]['dev_requirement']);106 return $includeDevRequirements || !isset($installed['versions'][$packageName]['dev_requirement']) || $installed['versions'][$packageName]['dev_requirement'] === false; 100 107 } 101 108 } … … 118 125 public static function satisfies(VersionParser $parser, $packageName, $constraint) 119 126 { 120 $constraint = $parser->parseConstraints( $constraint);127 $constraint = $parser->parseConstraints((string) $constraint); 121 128 $provided = $parser->parseConstraints(self::getVersionRanges($packageName)); 122 129 … … 242 249 /** 243 250 * @return array 244 * @psalm-return array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}251 * @psalm-return array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool} 245 252 */ 246 253 public static function getRootPackage() … … 256 263 * @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. 257 264 * @return array[] 258 * @psalm-return array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}265 * @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<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} 259 266 */ 260 267 public static function getRawData() … … 279 286 * 280 287 * @return array[] 281 * @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}>288 * @psalm-return list<array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}> 282 289 */ 283 290 public static function getAllRawData() … … 302 309 * @return void 303 310 * 304 * @psalm-param array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>} $data311 * @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<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $data 305 312 */ 306 313 public static function reload($data) … … 308 315 self::$installed = $data; 309 316 self::$installedByVendor = array(); 317 318 // when using reload, we disable the duplicate protection to ensure that self::$installed data is 319 // always returned, but we cannot know whether it comes from the installed.php in __DIR__ or not, 320 // so we have to assume it does not, and that may result in duplicate data being returned when listing 321 // all installed packages for example 322 self::$installedIsLocalDir = false; 310 323 } 311 324 312 325 /** 313 326 * @return array[] 314 * @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}>327 * @psalm-return list<array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}> 315 328 */ 316 329 private static function getInstalled() … … 321 334 322 335 $installed = array(); 336 $copiedLocalDir = false; 323 337 324 338 if (self::$canGetVendors) { 339 $selfDir = strtr(__DIR__, '\\', '/'); 325 340 foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) { 341 $vendorDir = strtr($vendorDir, '\\', '/'); 326 342 if (isset(self::$installedByVendor[$vendorDir])) { 327 343 $installed[] = self::$installedByVendor[$vendorDir]; 328 344 } elseif (is_file($vendorDir.'/composer/installed.php')) { 329 $installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php'; 330 if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) { 331 self::$installed = $installed[count($installed) - 1]; 345 /** @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<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */ 346 $required = require $vendorDir.'/composer/installed.php'; 347 self::$installedByVendor[$vendorDir] = $required; 348 $installed[] = $required; 349 if (self::$installed === null && $vendorDir.'/composer' === $selfDir) { 350 self::$installed = $required; 351 self::$installedIsLocalDir = true; 332 352 } 353 } 354 if (self::$installedIsLocalDir && $vendorDir.'/composer' === $selfDir) { 355 $copiedLocalDir = true; 333 356 } 334 357 } … … 339 362 // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937 340 363 if (substr(__DIR__, -8, 1) !== 'C') { 341 self::$installed = require __DIR__ . '/installed.php'; 364 /** @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<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */ 365 $required = require __DIR__ . '/installed.php'; 366 self::$installed = $required; 342 367 } else { 343 368 self::$installed = array(); 344 369 } 345 370 } 346 $installed[] = self::$installed; 371 372 if (self::$installed !== array() && !$copiedLocalDir) { 373 $installed[] = self::$installed; 374 } 347 375 348 376 return $installed; -
sendcloud-connected-shipping/trunk/vendor/composer/LICENSE
r3336392 r3389705 1 1 2 Copyright (c) Nils Adermann, Jordi Boggiano 2 3 … … 18 19 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 20 THE SOFTWARE. 21 -
sendcloud-connected-shipping/trunk/vendor/composer/autoload_classmap.php
r3336392 r3389705 3 3 // autoload_classmap.php @generated by Composer 4 4 5 $vendorDir = dirname( dirname(__FILE__));5 $vendorDir = dirname(__DIR__); 6 6 $baseDir = dirname($vendorDir); 7 7 -
sendcloud-connected-shipping/trunk/vendor/composer/autoload_namespaces.php
r3336392 r3389705 3 3 // autoload_namespaces.php @generated by Composer 4 4 5 $vendorDir = dirname( dirname(__FILE__));5 $vendorDir = dirname(__DIR__); 6 6 $baseDir = dirname($vendorDir); 7 7 -
sendcloud-connected-shipping/trunk/vendor/composer/autoload_psr4.php
r3336392 r3389705 3 3 // autoload_psr4.php @generated by Composer 4 4 5 $vendorDir = dirname( dirname(__FILE__));5 $vendorDir = dirname(__DIR__); 6 6 $baseDir = dirname($vendorDir); 7 7 -
sendcloud-connected-shipping/trunk/vendor/composer/autoload_real.php
r3381752 r3389705 3 3 // autoload_real.php @generated by Composer 4 4 5 class ComposerAutoloaderInit 9c50fdbcac5d18c35949c84dab27a2245 class ComposerAutoloaderInit799da1d7fc2f83b97f37781f90812d9d 6 6 { 7 7 private static $loader; … … 25 25 require __DIR__ . '/platform_check.php'; 26 26 27 spl_autoload_register(array('ComposerAutoloaderInit 9c50fdbcac5d18c35949c84dab27a224', 'loadClassLoader'), true, true);28 self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname( \dirname(__FILE__)));29 spl_autoload_unregister(array('ComposerAutoloaderInit 9c50fdbcac5d18c35949c84dab27a224', 'loadClassLoader'));27 spl_autoload_register(array('ComposerAutoloaderInit799da1d7fc2f83b97f37781f90812d9d', 'loadClassLoader'), true, true); 28 self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); 29 spl_autoload_unregister(array('ComposerAutoloaderInit799da1d7fc2f83b97f37781f90812d9d', 'loadClassLoader')); 30 30 31 $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); 32 if ($useStaticLoader) { 33 require __DIR__ . '/autoload_static.php'; 34 35 call_user_func(\Composer\Autoload\ComposerStaticInit9c50fdbcac5d18c35949c84dab27a224::getInitializer($loader)); 36 } else { 37 $map = require __DIR__ . '/autoload_namespaces.php'; 38 foreach ($map as $namespace => $path) { 39 $loader->set($namespace, $path); 40 } 41 42 $map = require __DIR__ . '/autoload_psr4.php'; 43 foreach ($map as $namespace => $path) { 44 $loader->setPsr4($namespace, $path); 45 } 46 47 $classMap = require __DIR__ . '/autoload_classmap.php'; 48 if ($classMap) { 49 $loader->addClassMap($classMap); 50 } 51 } 31 require __DIR__ . '/autoload_static.php'; 32 call_user_func(\Composer\Autoload\ComposerStaticInit799da1d7fc2f83b97f37781f90812d9d::getInitializer($loader)); 52 33 53 34 $loader->register(true); -
sendcloud-connected-shipping/trunk/vendor/composer/autoload_static.php
r3381752 r3389705 5 5 namespace Composer\Autoload; 6 6 7 class ComposerStaticInit 9c50fdbcac5d18c35949c84dab27a2247 class ComposerStaticInit799da1d7fc2f83b97f37781f90812d9d 8 8 { 9 9 public static $classMap = array ( … … 72 72 { 73 73 return \Closure::bind(function () use ($loader) { 74 $loader->classMap = ComposerStaticInit 9c50fdbcac5d18c35949c84dab27a224::$classMap;74 $loader->classMap = ComposerStaticInit799da1d7fc2f83b97f37781f90812d9d::$classMap; 75 75 76 76 }, null, ClassLoader::class); -
sendcloud-connected-shipping/trunk/vendor/composer/installed.php
r3381752 r3389705 1 1 <?php return array( 2 2 'root' => array( 3 'name' => 'sendcloud/woocommerce', 3 4 'pretty_version' => 'dev-main', 4 5 'version' => 'dev-main', 6 'reference' => 'b03c2e08f518aaf80b2602db2b78fbdd8f036b5f', 5 7 'type' => 'library', 6 8 'install_path' => __DIR__ . '/../../', 7 9 'aliases' => array(), 8 'reference' => '5e61bf9cf645cf75bc09be91d1a7d92b20ece53d',9 'name' => 'sendcloud/woocommerce',10 10 'dev' => false, 11 11 ), … … 14 14 'pretty_version' => 'dev-main', 15 15 'version' => 'dev-main', 16 'reference' => 'b03c2e08f518aaf80b2602db2b78fbdd8f036b5f', 16 17 'type' => 'library', 17 18 'install_path' => __DIR__ . '/../../', 18 19 'aliases' => array(), 19 'reference' => '5e61bf9cf645cf75bc09be91d1a7d92b20ece53d',20 20 'dev_requirement' => false, 21 21 ),
Note: See TracChangeset
for help on using the changeset viewer.