Image optimization & Lazy Load by Optimole - Version 3.1.2

Version Description

Download this release

Release Info

Developer optimole
Plugin Icon 128x128 Image optimization & Lazy Load by Optimole
Version 3.1.2
Comparing to
See all releases

Code changes from version 3.1.1 to 3.1.2

CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
 
 
 
 
 
1
  ##### [Version 3.1.1](https://github.com/Codeinwp/optimole-wp/compare/v3.1.0...v3.1.1) (2021-05-31)
2
 
3
  * Adds option to setup API key via wp-config variables fix [#314](https://github.com/Codeinwp/optimole-wp/issues/314) as OPTIML_API_KEY
1
+ ##### [Version 3.1.2](https://github.com/Codeinwp/optimole-wp/compare/v3.1.1...v3.1.2) (2021-08-04)
2
+
3
+ * Adds a filter to force replacements as optml_force_replacement
4
+ * Fix content path being root directory
5
+
6
  ##### [Version 3.1.1](https://github.com/Codeinwp/optimole-wp/compare/v3.1.0...v3.1.1) (2021-05-31)
7
 
8
  * Adds option to setup API key via wp-config variables fix [#314](https://github.com/Codeinwp/optimole-wp/issues/314) as OPTIML_API_KEY
inc/app_replacer.php CHANGED
@@ -355,8 +355,13 @@ abstract class Optml_App_Replacer {
355
 
356
  $content_parts = parse_url( content_url() );
357
 
358
- $this->upload_resource['content_path'] = $content_parts['path'];
359
- $this->upload_resource['content_folder'] = ltrim( $content_parts['path'], '/' );
 
 
 
 
 
360
  $this->upload_resource['content_folder_length'] = strlen( $this->upload_resource['content_folder'] );
361
  $this->upload_resource['content_host'] = $content_parts['scheme'] . '://' . $content_parts['host'];
362
 
355
 
356
  $content_parts = parse_url( content_url() );
357
 
358
+ $this->upload_resource['content_path'] = '/';
359
+ $this->upload_resource['content_folder'] = '/';
360
+ if ( isset( $content_parts['path'] ) ) {
361
+ $this->upload_resource['content_path'] = $content_parts['path'];
362
+ $this->upload_resource['content_folder'] = ltrim( $content_parts['path'], '/' );
363
+ }
364
+
365
  $this->upload_resource['content_folder_length'] = strlen( $this->upload_resource['content_folder'] );
366
  $this->upload_resource['content_host'] = $content_parts['scheme'] . '://' . $content_parts['host'];
367
 
inc/manager.php CHANGED
@@ -148,6 +148,9 @@ final class Optml_Manager {
148
  if ( apply_filters( 'optml_should_replace_page', false ) ) {
149
  return false;
150
  }
 
 
 
151
 
152
  if ( ( is_admin() && ! self::is_ajax_request() ) || ! $this->settings->is_connected() || ! $this->settings->is_enabled() || is_customize_preview() ) {
153
  return false; // @codeCoverageIgnore
@@ -312,7 +315,7 @@ final class Optml_Manager {
312
  */
313
  public function replace_content( $html ) {
314
 
315
- if ( defined( 'REST_REQUEST' ) && REST_REQUEST && is_user_logged_in() ) {
316
  return $html;
317
  }
318
 
148
  if ( apply_filters( 'optml_should_replace_page', false ) ) {
149
  return false;
150
  }
151
+ if ( apply_filters( 'optml_force_replacement', false ) === true ) {
152
+ return true;
153
+ }
154
 
155
  if ( ( is_admin() && ! self::is_ajax_request() ) || ! $this->settings->is_connected() || ! $this->settings->is_enabled() || is_customize_preview() ) {
156
  return false; // @codeCoverageIgnore
315
  */
316
  public function replace_content( $html ) {
317
 
318
+ if ( defined( 'REST_REQUEST' ) && REST_REQUEST && is_user_logged_in() && ( apply_filters( 'optml_force_replacement', false ) !== true ) ) {
319
  return $html;
320
  }
321
 
optimole-wp.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * Plugin Name: Image optimization service by Optimole
4
  * Description: Complete handling of your website images.
5
- * Version: 3.1.1
6
  * Author: Optimole
7
  * Author URI: https://optimole.com
8
  * License: GPL-2.0+
@@ -77,7 +77,7 @@ function optml() {
77
  define( 'OPTML_JS_CDN', 'd5jmkjjpb7yfg.cloudfront.net' );
78
  }
79
  define( 'OPTML_PATH', plugin_dir_path( __FILE__ ) );
80
- define( 'OPTML_VERSION', '3.1.1' );
81
  define( 'OPTML_NAMESPACE', 'optml' );
82
  define( 'OPTML_BASEFILE', __FILE__ );
83
  // Fallback for old PHP versions when this constant is not defined.
2
  /**
3
  * Plugin Name: Image optimization service by Optimole
4
  * Description: Complete handling of your website images.
5
+ * Version: 3.1.2
6
  * Author: Optimole
7
  * Author URI: https://optimole.com
8
  * License: GPL-2.0+
77
  define( 'OPTML_JS_CDN', 'd5jmkjjpb7yfg.cloudfront.net' );
78
  }
79
  define( 'OPTML_PATH', plugin_dir_path( __FILE__ ) );
80
+ define( 'OPTML_VERSION', '3.1.2' );
81
  define( 'OPTML_NAMESPACE', 'optml' );
82
  define( 'OPTML_BASEFILE', __FILE__ );
83
  // Fallback for old PHP versions when this constant is not defined.
readme.txt CHANGED
@@ -2,7 +2,7 @@
2
  Contributors: optimole
3
  Tags: image optimization, convert webp, responsive images, lazy load, images, optimization, performance, photos, free cdn
4
  Requires at least: 4.7
5
- Tested up to: 5.7
6
  Requires PHP: 5.4
7
  License: GPLv3
8
  License URI: https://www.gnu.org/licenses/gpl-3.0.en.html
@@ -93,6 +93,14 @@ Premium users will be able to optimize images for more than 25k monthly active u
93
 
94
  == Changelog ==
95
 
 
 
 
 
 
 
 
 
96
  ##### [Version 3.1.1](https://github.com/Codeinwp/optimole-wp/compare/v3.1.0...v3.1.1) (2021-05-31)
97
 
98
  * Adds option to setup API key via wp-config variables fix [#314](https://github.com/Codeinwp/optimole-wp/issues/314) as OPTIML_API_KEY
2
  Contributors: optimole
3
  Tags: image optimization, convert webp, responsive images, lazy load, images, optimization, performance, photos, free cdn
4
  Requires at least: 4.7
5
+ Tested up to: 5.8
6
  Requires PHP: 5.4
7
  License: GPLv3
8
  License URI: https://www.gnu.org/licenses/gpl-3.0.en.html
93
 
94
  == Changelog ==
95
 
96
+ ##### [Version 3.1.2](https://github.com/Codeinwp/optimole-wp/compare/v3.1.1...v3.1.2) (2021-08-04)
97
+
98
+ * Adds a filter to force replacements as optml_force_replacement
99
+ * Fix content path being root directory
100
+
101
+
102
+
103
+
104
  ##### [Version 3.1.1](https://github.com/Codeinwp/optimole-wp/compare/v3.1.0...v3.1.1) (2021-05-31)
105
 
106
  * Adds option to setup API key via wp-config variables fix [#314](https://github.com/Codeinwp/optimole-wp/issues/314) as OPTIML_API_KEY
vendor/autoload.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
- return ComposerAutoloaderInit9bab1633dba9de16af14207b105e6536::getLoader();
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
+ return ComposerAutoloaderInitdd847f1c6268fddeba8778b2e077d3f0::getLoader();
vendor/codeinwp/themeisle-sdk/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
 
 
 
 
1
  ##### [Version 3.2.20](https://github.com/Codeinwp/themeisle-sdk/compare/v3.2.19...v3.2.20) (2021-03-30)
2
 
3
  add wp-config support
1
+ ##### [Version 3.2.21](https://github.com/Codeinwp/themeisle-sdk/compare/v3.2.20...v3.2.21) (2021-06-30)
2
+
3
+ review and improve compatibility with auto-updates on custom updates endpoint
4
+
5
  ##### [Version 3.2.20](https://github.com/Codeinwp/themeisle-sdk/compare/v3.2.19...v3.2.20) (2021-03-30)
6
 
7
  add wp-config support
vendor/codeinwp/themeisle-sdk/load.php CHANGED
@@ -14,7 +14,7 @@ if ( ! defined( 'ABSPATH' ) ) {
14
  return;
15
  }
16
  // Current SDK version and path.
17
- $themeisle_sdk_version = '3.2.20';
18
  $themeisle_sdk_path = dirname( __FILE__ );
19
 
20
  global $themeisle_sdk_max_version;
14
  return;
15
  }
16
  // Current SDK version and path.
17
+ $themeisle_sdk_version = '3.2.21';
18
  $themeisle_sdk_path = dirname( __FILE__ );
19
 
20
  global $themeisle_sdk_max_version;
vendor/codeinwp/themeisle-sdk/src/Modules/Licenser.php CHANGED
@@ -739,6 +739,9 @@ class Licenser extends Abstract_Module {
739
  }
740
  $api_response = $this->api_request();
741
  if ( false !== $api_response && is_object( $api_response ) && isset( $api_response->new_version ) ) {
 
 
 
742
  if ( version_compare( $this->product->get_version(), $api_response->new_version, '<' ) ) {
743
  $_transient_data->response[ $this->product->get_slug() . '/' . $this->product->get_file() ] = $api_response;
744
  } else {
739
  }
740
  $api_response = $this->api_request();
741
  if ( false !== $api_response && is_object( $api_response ) && isset( $api_response->new_version ) ) {
742
+ if ( ! isset( $api_response->plugin ) ) {
743
+ $api_response->plugin = $this->product->get_slug() . '/' . $this->product->get_file();
744
+ }
745
  if ( version_compare( $this->product->get_version(), $api_response->new_version, '<' ) ) {
746
  $_transient_data->response[ $this->product->get_slug() . '/' . $this->product->get_file() ] = $api_response;
747
  } else {
vendor/composer/ClassLoader.php CHANGED
@@ -338,7 +338,7 @@ class ClassLoader
338
  * Loads the given class or interface.
339
  *
340
  * @param string $class The name of the class
341
- * @return bool|null True if loaded, null otherwise
342
  */
343
  public function loadClass($class)
344
  {
@@ -347,6 +347,8 @@ class ClassLoader
347
 
348
  return true;
349
  }
 
 
350
  }
351
 
352
  /**
338
  * Loads the given class or interface.
339
  *
340
  * @param string $class The name of the class
341
+ * @return true|null True if loaded, null otherwise
342
  */
343
  public function loadClass($class)
344
  {
347
 
348
  return true;
349
  }
350
+
351
+ return null;
352
  }
353
 
354
  /**
vendor/composer/InstalledVersions.php CHANGED
@@ -1,308 +1,337 @@
1
  <?php
2
 
3
-
4
-
5
-
6
-
7
-
8
-
9
-
10
-
11
-
12
 
13
  namespace Composer;
14
 
15
  use Composer\Autoload\ClassLoader;
16
  use Composer\Semver\VersionParser;
17
 
18
-
19
-
20
-
21
-
22
-
23
-
24
-
25
  class InstalledVersions
26
  {
27
- private static $installed = array (
28
- 'root' =>
29
- array (
30
- 'pretty_version' => '1.1.2',
31
- 'version' => '1.1.2.0',
32
- 'aliases' =>
33
- array (
34
- ),
35
- 'reference' => NULL,
36
- 'name' => 'codeinwp/optimole-wp',
37
- ),
38
- 'versions' =>
39
- array (
40
- 'codeinwp/optimole-wp' =>
41
- array (
42
- 'pretty_version' => '1.1.2',
43
- 'version' => '1.1.2.0',
44
- 'aliases' =>
45
- array (
46
- ),
47
- 'reference' => NULL,
48
- ),
49
- 'codeinwp/themeisle-sdk' =>
50
- array (
51
- 'pretty_version' => '3.2.20',
52
- 'version' => '3.2.20.0',
53
- 'aliases' =>
54
- array (
55
- ),
56
- 'reference' => 'aeef3f159c1b35451d87672b6984ccde36c0d21d',
57
- ),
58
- ),
59
- );
60
- private static $canGetVendors;
61
- private static $installedByVendor = array();
62
-
63
-
64
-
65
-
66
-
67
-
68
-
69
- public static function getInstalledPackages()
70
- {
71
- $packages = array();
72
- foreach (self::getInstalled() as $installed) {
73
- $packages[] = array_keys($installed['versions']);
74
- }
75
-
76
- if (1 === \count($packages)) {
77
- return $packages[0];
78
- }
79
-
80
- return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
81
- }
82
-
83
-
84
-
85
-
86
-
87
-
88
-
89
-
90
-
91
- public static function isInstalled($packageName)
92
- {
93
- foreach (self::getInstalled() as $installed) {
94
- if (isset($installed['versions'][$packageName])) {
95
- return true;
96
- }
97
- }
98
-
99
- return false;
100
- }
101
-
102
-
103
-
104
-
105
-
106
-
107
-
108
-
109
-
110
-
111
-
112
-
113
-
114
-
115
- public static function satisfies(VersionParser $parser, $packageName, $constraint)
116
- {
117
- $constraint = $parser->parseConstraints($constraint);
118
- $provided = $parser->parseConstraints(self::getVersionRanges($packageName));
119
-
120
- return $provided->matches($constraint);
121
- }
122
-
123
-
124
-
125
-
126
-
127
-
128
-
129
-
130
-
131
-
132
- public static function getVersionRanges($packageName)
133
- {
134
- foreach (self::getInstalled() as $installed) {
135
- if (!isset($installed['versions'][$packageName])) {
136
- continue;
137
- }
138
-
139
- $ranges = array();
140
- if (isset($installed['versions'][$packageName]['pretty_version'])) {
141
- $ranges[] = $installed['versions'][$packageName]['pretty_version'];
142
- }
143
- if (array_key_exists('aliases', $installed['versions'][$packageName])) {
144
- $ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
145
- }
146
- if (array_key_exists('replaced', $installed['versions'][$packageName])) {
147
- $ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
148
- }
149
- if (array_key_exists('provided', $installed['versions'][$packageName])) {
150
- $ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
151
- }
152
-
153
- return implode(' || ', $ranges);
154
- }
155
-
156
- throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
157
- }
158
-
159
-
160
-
161
-
162
-
163
- public static function getVersion($packageName)
164
- {
165
- foreach (self::getInstalled() as $installed) {
166
- if (!isset($installed['versions'][$packageName])) {
167
- continue;
168
- }
169
-
170
- if (!isset($installed['versions'][$packageName]['version'])) {
171
- return null;
172
- }
173
-
174
- return $installed['versions'][$packageName]['version'];
175
- }
176
-
177
- throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
178
- }
179
-
180
-
181
-
182
-
183
-
184
- public static function getPrettyVersion($packageName)
185
- {
186
- foreach (self::getInstalled() as $installed) {
187
- if (!isset($installed['versions'][$packageName])) {
188
- continue;
189
- }
190
-
191
- if (!isset($installed['versions'][$packageName]['pretty_version'])) {
192
- return null;
193
- }
194
-
195
- return $installed['versions'][$packageName]['pretty_version'];
196
- }
197
-
198
- throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
199
- }
200
-
201
-
202
-
203
-
204
-
205
- public static function getReference($packageName)
206
- {
207
- foreach (self::getInstalled() as $installed) {
208
- if (!isset($installed['versions'][$packageName])) {
209
- continue;
210
- }
211
-
212
- if (!isset($installed['versions'][$packageName]['reference'])) {
213
- return null;
214
- }
215
-
216
- return $installed['versions'][$packageName]['reference'];
217
- }
218
-
219
- throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
220
- }
221
-
222
-
223
-
224
-
225
-
226
- public static function getRootPackage()
227
- {
228
- $installed = self::getInstalled();
229
-
230
- return $installed[0]['root'];
231
- }
232
-
233
-
234
-
235
-
236
-
237
-
238
-
239
-
240
- public static function getRawData()
241
- {
242
- @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);
243
-
244
- return self::$installed;
245
- }
246
-
247
-
248
-
249
-
250
-
251
-
252
-
253
- public static function getAllRawData()
254
- {
255
- return self::getInstalled();
256
- }
257
-
258
-
259
-
260
-
261
-
262
-
263
-
264
-
265
-
266
-
267
-
268
-
269
-
270
-
271
-
272
-
273
-
274
-
275
-
276
- public static function reload($data)
277
- {
278
- self::$installed = $data;
279
- self::$installedByVendor = array();
280
- }
281
-
282
-
283
-
284
-
285
-
286
- private static function getInstalled()
287
- {
288
- if (null === self::$canGetVendors) {
289
- self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
290
- }
291
-
292
- $installed = array();
293
-
294
- if (self::$canGetVendors) {
295
- foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
296
- if (isset(self::$installedByVendor[$vendorDir])) {
297
- $installed[] = self::$installedByVendor[$vendorDir];
298
- } elseif (is_file($vendorDir.'/composer/installed.php')) {
299
- $installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php';
300
- }
301
- }
302
- }
303
-
304
- $installed[] = self::$installed;
305
-
306
- return $installed;
307
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
308
  }
1
  <?php
2
 
3
+ /*
4
+ * This file is part of Composer.
5
+ *
6
+ * (c) Nils Adermann <naderman@naderman.de>
7
+ * Jordi Boggiano <j.boggiano@seld.be>
8
+ *
9
+ * For the full copyright and license information, please view the LICENSE
10
+ * file that was distributed with this source code.
11
+ */
12
 
13
  namespace Composer;
14
 
15
  use Composer\Autoload\ClassLoader;
16
  use Composer\Semver\VersionParser;
17
 
18
+ /**
19
+ * This class is copied in every Composer installed project and available to all
20
+ *
21
+ * See also https://getcomposer.org/doc/07-runtime.md#installed-versions
22
+ *
23
+ * To require it's presence, you can require `composer-runtime-api ^2.0`
24
+ */
25
  class InstalledVersions
26
  {
27
+ private static $installed;
28
+ private static $canGetVendors;
29
+ private static $installedByVendor = array();
30
+
31
+ /**
32
+ * Returns a list of all package names which are present, either by being installed, replaced or provided
33
+ *
34
+ * @return string[]
35
+ * @psalm-return list<string>
36
+ */
37
+ public static function getInstalledPackages()
38
+ {
39
+ $packages = array();
40
+ foreach (self::getInstalled() as $installed) {
41
+ $packages[] = array_keys($installed['versions']);
42
+ }
43
+
44
+ if (1 === \count($packages)) {
45
+ return $packages[0];
46
+ }
47
+
48
+ return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
49
+ }
50
+
51
+ /**
52
+ * Returns a list of all package names with a specific type e.g. 'library'
53
+ *
54
+ * @param string $type
55
+ * @return string[]
56
+ * @psalm-return list<string>
57
+ */
58
+ public static function getInstalledPackagesByType($type)
59
+ {
60
+ $packagesByType = array();
61
+
62
+ foreach (self::getInstalled() as $installed) {
63
+ foreach ($installed['versions'] as $name => $package) {
64
+ if (isset($package['type']) && $package['type'] === $type) {
65
+ $packagesByType[] = $name;
66
+ }
67
+ }
68
+ }
69
+
70
+ return $packagesByType;
71
+ }
72
+
73
+ /**
74
+ * Checks whether the given package is installed
75
+ *
76
+ * This also returns true if the package name is provided or replaced by another package
77
+ *
78
+ * @param string $packageName
79
+ * @param bool $includeDevRequirements
80
+ * @return bool
81
+ */
82
+ public static function isInstalled($packageName, $includeDevRequirements = true)
83
+ {
84
+ foreach (self::getInstalled() as $installed) {
85
+ if (isset($installed['versions'][$packageName])) {
86
+ return $includeDevRequirements || empty($installed['versions'][$packageName]['dev_requirement']);
87
+ }
88
+ }
89
+
90
+ return false;
91
+ }
92
+
93
+ /**
94
+ * Checks whether the given package satisfies a version constraint
95
+ *
96
+ * e.g. If you want to know whether version 2.3+ of package foo/bar is installed, you would call:
97
+ *
98
+ * Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3')
99
+ *
100
+ * @param VersionParser $parser Install composer/semver to have access to this class and functionality
101
+ * @param string $packageName
102
+ * @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
103
+ * @return bool
104
+ */
105
+ public static function satisfies(VersionParser $parser, $packageName, $constraint)
106
+ {
107
+ $constraint = $parser->parseConstraints($constraint);
108
+ $provided = $parser->parseConstraints(self::getVersionRanges($packageName));
109
+
110
+ return $provided->matches($constraint);
111
+ }
112
+
113
+ /**
114
+ * Returns a version constraint representing all the range(s) which are installed for a given package
115
+ *
116
+ * It is easier to use this via isInstalled() with the $constraint argument if you need to check
117
+ * whether a given version of a package is installed, and not just whether it exists
118
+ *
119
+ * @param string $packageName
120
+ * @return string Version constraint usable with composer/semver
121
+ */
122
+ public static function getVersionRanges($packageName)
123
+ {
124
+ foreach (self::getInstalled() as $installed) {
125
+ if (!isset($installed['versions'][$packageName])) {
126
+ continue;
127
+ }
128
+
129
+ $ranges = array();
130
+ if (isset($installed['versions'][$packageName]['pretty_version'])) {
131
+ $ranges[] = $installed['versions'][$packageName]['pretty_version'];
132
+ }
133
+ if (array_key_exists('aliases', $installed['versions'][$packageName])) {
134
+ $ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
135
+ }
136
+ if (array_key_exists('replaced', $installed['versions'][$packageName])) {
137
+ $ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
138
+ }
139
+ if (array_key_exists('provided', $installed['versions'][$packageName])) {
140
+ $ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
141
+ }
142
+
143
+ return implode(' || ', $ranges);
144
+ }
145
+
146
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
147
+ }
148
+
149
+ /**
150
+ * @param string $packageName
151
+ * @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
152
+ */
153
+ public static function getVersion($packageName)
154
+ {
155
+ foreach (self::getInstalled() as $installed) {
156
+ if (!isset($installed['versions'][$packageName])) {
157
+ continue;
158
+ }
159
+
160
+ if (!isset($installed['versions'][$packageName]['version'])) {
161
+ return null;
162
+ }
163
+
164
+ return $installed['versions'][$packageName]['version'];
165
+ }
166
+
167
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
168
+ }
169
+
170
+ /**
171
+ * @param string $packageName
172
+ * @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
173
+ */
174
+ public static function getPrettyVersion($packageName)
175
+ {
176
+ foreach (self::getInstalled() as $installed) {
177
+ if (!isset($installed['versions'][$packageName])) {
178
+ continue;
179
+ }
180
+
181
+ if (!isset($installed['versions'][$packageName]['pretty_version'])) {
182
+ return null;
183
+ }
184
+
185
+ return $installed['versions'][$packageName]['pretty_version'];
186
+ }
187
+
188
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
189
+ }
190
+
191
+ /**
192
+ * @param string $packageName
193
+ * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as reference
194
+ */
195
+ public static function getReference($packageName)
196
+ {
197
+ foreach (self::getInstalled() as $installed) {
198
+ if (!isset($installed['versions'][$packageName])) {
199
+ continue;
200
+ }
201
+
202
+ if (!isset($installed['versions'][$packageName]['reference'])) {
203
+ return null;
204
+ }
205
+
206
+ return $installed['versions'][$packageName]['reference'];
207
+ }
208
+
209
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
210
+ }
211
+
212
+ /**
213
+ * @param string $packageName
214
+ * @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.
215
+ */
216
+ public static function getInstallPath($packageName)
217
+ {
218
+ foreach (self::getInstalled() as $installed) {
219
+ if (!isset($installed['versions'][$packageName])) {
220
+ continue;
221
+ }
222
+
223
+ return isset($installed['versions'][$packageName]['install_path']) ? $installed['versions'][$packageName]['install_path'] : null;
224
+ }
225
+
226
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
227
+ }
228
+
229
+ /**
230
+ * @return array
231
+ * @psalm-return array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}
232
+ */
233
+ public static function getRootPackage()
234
+ {
235
+ $installed = self::getInstalled();
236
+
237
+ return $installed[0]['root'];
238
+ }
239
+
240
+ /**
241
+ * Returns the raw installed.php data for custom implementations
242
+ *
243
+ * @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.
244
+ * @return array[]
245
+ * @psalm-return array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>}
246
+ */
247
+ public static function getRawData()
248
+ {
249
+ @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);
250
+
251
+ if (null === self::$installed) {
252
+ // only require the installed.php file if this file is loaded from its dumped location,
253
+ // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
254
+ if (substr(__DIR__, -8, 1) !== 'C') {
255
+ self::$installed = include __DIR__ . '/installed.php';
256
+ } else {
257
+ self::$installed = array();
258
+ }
259
+ }
260
+
261
+ return self::$installed;
262
+ }
263
+
264
+ /**
265
+ * Returns the raw data of all installed.php which are currently loaded for custom implementations
266
+ *
267
+ * @return array[]
268
+ * @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>}>
269
+ */
270
+ public static function getAllRawData()
271
+ {
272
+ return self::getInstalled();
273
+ }
274
+
275
+ /**
276
+ * Lets you reload the static array from another file
277
+ *
278
+ * This is only useful for complex integrations in which a project needs to use
279
+ * this class but then also needs to execute another project's autoloader in process,
280
+ * and wants to ensure both projects have access to their version of installed.php.
281
+ *
282
+ * A typical case would be PHPUnit, where it would need to make sure it reads all
283
+ * the data it needs from this class, then call reload() with
284
+ * `require $CWD/vendor/composer/installed.php` (or similar) as input to make sure
285
+ * the project in which it runs can then also use this class safely, without
286
+ * interference between PHPUnit's dependencies and the project's dependencies.
287
+ *
288
+ * @param array[] $data A vendor/composer/installed.php data set
289
+ * @return void
290
+ *
291
+ * @psalm-param array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>} $data
292
+ */
293
+ public static function reload($data)
294
+ {
295
+ self::$installed = $data;
296
+ self::$installedByVendor = array();
297
+ }
298
+
299
+ /**
300
+ * @return array[]
301
+ * @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>}>
302
+ */
303
+ private static function getInstalled()
304
+ {
305
+ if (null === self::$canGetVendors) {
306
+ self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
307
+ }
308
+
309
+ $installed = array();
310
+
311
+ if (self::$canGetVendors) {
312
+ foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
313
+ if (isset(self::$installedByVendor[$vendorDir])) {
314
+ $installed[] = self::$installedByVendor[$vendorDir];
315
+ } elseif (is_file($vendorDir.'/composer/installed.php')) {
316
+ $installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php';
317
+ if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
318
+ self::$installed = $installed[count($installed) - 1];
319
+ }
320
+ }
321
+ }
322
+ }
323
+
324
+ if (null === self::$installed) {
325
+ // only require the installed.php file if this file is loaded from its dumped location,
326
+ // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
327
+ if (substr(__DIR__, -8, 1) !== 'C') {
328
+ self::$installed = require __DIR__ . '/installed.php';
329
+ } else {
330
+ self::$installed = array();
331
+ }
332
+ }
333
+ $installed[] = self::$installed;
334
+
335
+ return $installed;
336
+ }
337
  }
vendor/composer/autoload_real.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
- class ComposerAutoloaderInit9bab1633dba9de16af14207b105e6536
6
  {
7
  private static $loader;
8
 
@@ -22,15 +22,15 @@ class ComposerAutoloaderInit9bab1633dba9de16af14207b105e6536
22
  return self::$loader;
23
  }
24
 
25
- spl_autoload_register(array('ComposerAutoloaderInit9bab1633dba9de16af14207b105e6536', 'loadClassLoader'), true, true);
26
  self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
27
- spl_autoload_unregister(array('ComposerAutoloaderInit9bab1633dba9de16af14207b105e6536', 'loadClassLoader'));
28
 
29
  $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
30
  if ($useStaticLoader) {
31
  require __DIR__ . '/autoload_static.php';
32
 
33
- call_user_func(\Composer\Autoload\ComposerStaticInit9bab1633dba9de16af14207b105e6536::getInitializer($loader));
34
  } else {
35
  $map = require __DIR__ . '/autoload_namespaces.php';
36
  foreach ($map as $namespace => $path) {
@@ -51,19 +51,19 @@ class ComposerAutoloaderInit9bab1633dba9de16af14207b105e6536
51
  $loader->register(true);
52
 
53
  if ($useStaticLoader) {
54
- $includeFiles = Composer\Autoload\ComposerStaticInit9bab1633dba9de16af14207b105e6536::$files;
55
  } else {
56
  $includeFiles = require __DIR__ . '/autoload_files.php';
57
  }
58
  foreach ($includeFiles as $fileIdentifier => $file) {
59
- composerRequire9bab1633dba9de16af14207b105e6536($fileIdentifier, $file);
60
  }
61
 
62
  return $loader;
63
  }
64
  }
65
 
66
- function composerRequire9bab1633dba9de16af14207b105e6536($fileIdentifier, $file)
67
  {
68
  if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
69
  require $file;
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
+ class ComposerAutoloaderInitdd847f1c6268fddeba8778b2e077d3f0
6
  {
7
  private static $loader;
8
 
22
  return self::$loader;
23
  }
24
 
25
+ spl_autoload_register(array('ComposerAutoloaderInitdd847f1c6268fddeba8778b2e077d3f0', 'loadClassLoader'), true, true);
26
  self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
27
+ spl_autoload_unregister(array('ComposerAutoloaderInitdd847f1c6268fddeba8778b2e077d3f0', 'loadClassLoader'));
28
 
29
  $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
30
  if ($useStaticLoader) {
31
  require __DIR__ . '/autoload_static.php';
32
 
33
+ call_user_func(\Composer\Autoload\ComposerStaticInitdd847f1c6268fddeba8778b2e077d3f0::getInitializer($loader));
34
  } else {
35
  $map = require __DIR__ . '/autoload_namespaces.php';
36
  foreach ($map as $namespace => $path) {
51
  $loader->register(true);
52
 
53
  if ($useStaticLoader) {
54
+ $includeFiles = Composer\Autoload\ComposerStaticInitdd847f1c6268fddeba8778b2e077d3f0::$files;
55
  } else {
56
  $includeFiles = require __DIR__ . '/autoload_files.php';
57
  }
58
  foreach ($includeFiles as $fileIdentifier => $file) {
59
+ composerRequiredd847f1c6268fddeba8778b2e077d3f0($fileIdentifier, $file);
60
  }
61
 
62
  return $loader;
63
  }
64
  }
65
 
66
+ function composerRequiredd847f1c6268fddeba8778b2e077d3f0($fileIdentifier, $file)
67
  {
68
  if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
69
  require $file;
vendor/composer/autoload_static.php CHANGED
@@ -4,7 +4,7 @@
4
 
5
  namespace Composer\Autoload;
6
 
7
- class ComposerStaticInit9bab1633dba9de16af14207b105e6536
8
  {
9
  public static $files = array (
10
  '9fef4034ed73e26a337d9856ea126f7f' => __DIR__ . '/..' . '/codeinwp/themeisle-sdk/load.php',
@@ -17,7 +17,7 @@ class ComposerStaticInit9bab1633dba9de16af14207b105e6536
17
  public static function getInitializer(ClassLoader $loader)
18
  {
19
  return \Closure::bind(function () use ($loader) {
20
- $loader->classMap = ComposerStaticInit9bab1633dba9de16af14207b105e6536::$classMap;
21
 
22
  }, null, ClassLoader::class);
23
  }
4
 
5
  namespace Composer\Autoload;
6
 
7
+ class ComposerStaticInitdd847f1c6268fddeba8778b2e077d3f0
8
  {
9
  public static $files = array (
10
  '9fef4034ed73e26a337d9856ea126f7f' => __DIR__ . '/..' . '/codeinwp/themeisle-sdk/load.php',
17
  public static function getInitializer(ClassLoader $loader)
18
  {
19
  return \Closure::bind(function () use ($loader) {
20
+ $loader->classMap = ComposerStaticInitdd847f1c6268fddeba8778b2e077d3f0::$classMap;
21
 
22
  }, null, ClassLoader::class);
23
  }
vendor/composer/installed.json CHANGED
@@ -2,23 +2,23 @@
2
  "packages": [
3
  {
4
  "name": "codeinwp/themeisle-sdk",
5
- "version": "3.2.20",
6
- "version_normalized": "3.2.20.0",
7
  "source": {
8
  "type": "git",
9
  "url": "https://github.com/Codeinwp/themeisle-sdk.git",
10
- "reference": "aeef3f159c1b35451d87672b6984ccde36c0d21d"
11
  },
12
  "dist": {
13
  "type": "zip",
14
- "url": "https://api.github.com/repos/Codeinwp/themeisle-sdk/zipball/aeef3f159c1b35451d87672b6984ccde36c0d21d",
15
- "reference": "aeef3f159c1b35451d87672b6984ccde36c0d21d",
16
  "shasum": ""
17
  },
18
  "require-dev": {
19
  "codeinwp/phpcs-ruleset": "dev-main"
20
  },
21
- "time": "2021-03-30T09:16:29+00:00",
22
  "type": "library",
23
  "installation-source": "dist",
24
  "notification-url": "https://packagist.org/downloads/",
@@ -39,7 +39,7 @@
39
  ],
40
  "support": {
41
  "issues": "https://github.com/Codeinwp/themeisle-sdk/issues",
42
- "source": "https://github.com/Codeinwp/themeisle-sdk/tree/v3.2.20"
43
  },
44
  "install-path": "../codeinwp/themeisle-sdk"
45
  }
2
  "packages": [
3
  {
4
  "name": "codeinwp/themeisle-sdk",
5
+ "version": "3.2.21",
6
+ "version_normalized": "3.2.21.0",
7
  "source": {
8
  "type": "git",
9
  "url": "https://github.com/Codeinwp/themeisle-sdk.git",
10
+ "reference": "cafd016b61ec0928c0234e312046782a77c14318"
11
  },
12
  "dist": {
13
  "type": "zip",
14
+ "url": "https://api.github.com/repos/Codeinwp/themeisle-sdk/zipball/cafd016b61ec0928c0234e312046782a77c14318",
15
+ "reference": "cafd016b61ec0928c0234e312046782a77c14318",
16
  "shasum": ""
17
  },
18
  "require-dev": {
19
  "codeinwp/phpcs-ruleset": "dev-main"
20
  },
21
+ "time": "2021-06-30T10:55:18+00:00",
22
  "type": "library",
23
  "installation-source": "dist",
24
  "notification-url": "https://packagist.org/downloads/",
39
  ],
40
  "support": {
41
  "issues": "https://github.com/Codeinwp/themeisle-sdk/issues",
42
+ "source": "https://github.com/Codeinwp/themeisle-sdk/tree/v3.2.21"
43
  },
44
  "install-path": "../codeinwp/themeisle-sdk"
45
  }
vendor/composer/installed.php CHANGED
@@ -1,33 +1,32 @@
1
- <?php return array (
2
- 'root' =>
3
- array (
4
- 'pretty_version' => '1.1.2',
5
- 'version' => '1.1.2.0',
6
- 'aliases' =>
7
- array (
 
 
 
8
  ),
9
- 'reference' => NULL,
10
- 'name' => 'codeinwp/optimole-wp',
11
- ),
12
- 'versions' =>
13
- array (
14
- 'codeinwp/optimole-wp' =>
15
- array (
16
- 'pretty_version' => '1.1.2',
17
- 'version' => '1.1.2.0',
18
- 'aliases' =>
19
- array (
20
- ),
21
- 'reference' => NULL,
 
 
 
 
 
 
22
  ),
23
- 'codeinwp/themeisle-sdk' =>
24
- array (
25
- 'pretty_version' => '3.2.20',
26
- 'version' => '3.2.20.0',
27
- 'aliases' =>
28
- array (
29
- ),
30
- 'reference' => 'aeef3f159c1b35451d87672b6984ccde36c0d21d',
31
- ),
32
- ),
33
  );
1
+ <?php return array(
2
+ 'root' => array(
3
+ 'pretty_version' => '1.1.2',
4
+ 'version' => '1.1.2.0',
5
+ 'type' => 'library',
6
+ 'install_path' => __DIR__ . '/../../',
7
+ 'aliases' => array(),
8
+ 'reference' => NULL,
9
+ 'name' => 'codeinwp/optimole-wp',
10
+ 'dev' => false,
11
  ),
12
+ 'versions' => array(
13
+ 'codeinwp/optimole-wp' => array(
14
+ 'pretty_version' => '1.1.2',
15
+ 'version' => '1.1.2.0',
16
+ 'type' => 'library',
17
+ 'install_path' => __DIR__ . '/../../',
18
+ 'aliases' => array(),
19
+ 'reference' => NULL,
20
+ 'dev_requirement' => false,
21
+ ),
22
+ 'codeinwp/themeisle-sdk' => array(
23
+ 'pretty_version' => '3.2.21',
24
+ 'version' => '3.2.21.0',
25
+ 'type' => 'library',
26
+ 'install_path' => __DIR__ . '/../codeinwp/themeisle-sdk',
27
+ 'aliases' => array(),
28
+ 'reference' => 'cafd016b61ec0928c0234e312046782a77c14318',
29
+ 'dev_requirement' => false,
30
+ ),
31
  ),
 
 
 
 
 
 
 
 
 
 
32
  );