Changeset 2824689
- Timestamp:
- 11/26/2022 09:12:32 PM (3 years ago)
- Location:
- jch-optimize/trunk
- Files:
-
- 18 edited
-
jch-optimize.php (modified) (1 diff)
-
lib/src/Core/Combiner.php (modified) (2 diffs)
-
lib/src/Core/Css/Callbacks/CorrectUrls.php (modified) (1 diff)
-
lib/src/Core/Css/Callbacks/ExtractCriticalCss.php (modified) (2 diffs)
-
lib/src/Core/Css/Callbacks/HandleAtRules.php (modified) (1 diff)
-
lib/src/Core/Css/Processor.php (modified) (2 diffs)
-
lib/src/Core/FileUtils.php (modified) (1 diff)
-
lib/src/Core/Html/Callbacks/LazyLoad.php (modified) (2 diffs)
-
lib/src/Core/Html/FilesManager.php (modified) (3 diffs)
-
lib/src/Core/Html/Processor.php (modified) (3 diffs)
-
lib/src/Core/Http2Preload.php (modified) (2 diffs)
-
lib/src/Core/Service/CachingProvider.php (modified) (2 diffs)
-
lib/src/Html/Renderer/Setting.php (modified) (2 diffs)
-
lib/src/Html/TabSettings.php (modified) (2 diffs)
-
lib/vendor/composer/installed.php (modified) (1 diff)
-
media/assets/jscss.php (modified) (1 diff)
-
readme.txt (modified) (2 diffs)
-
version.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
jch-optimize/trunk/jch-optimize.php
r2807121 r2824689 5 5 * Plugin URI: http://www.jch-optimize.net/ 6 6 * Description: Boost your WordPress site's performance with JCH Optimize as measured on PageSpeed 7 * Version: 3.2. 07 * Version: 3.2.1 8 8 * Author: Samuel Marshall 9 9 * License: GNU/GPLv3 -
jch-optimize/trunk/lib/src/Core/Combiner.php
r2807121 r2824689 67 67 * @param Registry $params 68 68 * @param CallbackCache $callbackCache 69 * @param TaggableInterface $taggableCache 70 * @param FileUtils $fileUtils 69 71 * @param ClientInterface|null $http 70 72 * @param bool $isBackend … … 284 286 //Probably a rewrite file 285 287 $urlPath = Paths::path2Url($path); 286 //Check again to make sure it exists to avoid recursive call if redirected to 287 //Not found error page. 288 if (\file_exists($urlPath)) { 289 try { 290 $response = $this->http->get($urlPath, ['Accept-Encoding' => 'identity;q=0']); 291 if ($response->getStatusCode() == '200') { 292 $body = $response->getBody(); 293 $body->rewind(); 294 return $body->getContents(); 295 } 296 } catch (Exception $e) { 297 return '|"COMMENT_START Exception fetching file with message: ' . $e->getMessage() . ' COMMENT_END"|'; 288 try { 289 $response = $this->http->get($urlPath, ['Accept-Encoding' => 'identity;q=0']); 290 if ($response->getStatusCode() == '200') { 291 $body = $response->getBody(); 292 $body->rewind(); 293 return $body->getContents(); 298 294 } 295 } catch (Exception $e) { 296 return '|"COMMENT_START Exception fetching file with message: ' . $e->getMessage() . ' COMMENT_END"|'; 299 297 } 300 298 return '|"COMMENT_START File [' . $path . '] not found COMMENT_END"|'; -
jch-optimize/trunk/lib/src/Core/Css/Callbacks/CorrectUrls.php
r2807121 r2824689 116 116 if (!Url::isAbsolute($sOriginalImageUrl)) { 117 117 $imageUrl = Url::toAbsolute($sOriginalImageUrl, $sCssFileUrl); 118 //If there are any external domains we'll cache them to add preconnects for them 119 if ($this->params->get('pro_optimizeFonts_enable', '0') && !$this->fileUtils->isInternal($imageUrl)) { 120 $preconnectUri = new Uri($imageUrl); 121 $domain = $preconnectUri->toString(['scheme', 'host']); 122 if (!\in_array($domain, $this->preconnects)) { 123 $this->preconnects[] = $domain; 124 } 118 } else { 119 $imageUrl = $sOriginalImageUrl; 120 } 121 //If there are any external domains we'll cache them to add preconnects for them 122 if ($this->params->get('pro_optimizeFonts_enable', '0') && !$this->fileUtils->isInternal($imageUrl)) { 123 $preconnectUri = new Uri($imageUrl); 124 $domain = $preconnectUri->toString(['scheme', 'host']); 125 if (!\in_array($domain, $this->preconnects)) { 126 $this->preconnects[] = $domain; 125 127 } 126 } else { 128 } 129 //If the original url was absolute we can just return it now 130 if (Url::isAbsolute($sOriginalImageUrl)) { 127 131 return $matches[0]; 128 132 } -
jch-optimize/trunk/lib/src/Core/Css/Callbacks/ExtractCriticalCss.php
r2807121 r2824689 25 25 public $oXPath; 26 26 public $postCss = ''; 27 public $preCss = ''; 27 28 public $isPostProcessing = \false; 28 29 protected $criticalCss = ''; … … 55 56 } 56 57 } 58 } 59 //We'll compile these to prepend to the critical CSS, imported Google font files will never be expanded. 60 if ($context == 'import') { 61 $this->preCss .= $matches[0]; 57 62 } 58 63 //We're only interested in global and conditional css -
jch-optimize/trunk/lib/src/Core/Css/Callbacks/HandleAtRules.php
r2807121 r2824689 48 48 $url = $matches[3]; 49 49 $media = $matches[4]; 50 if ($this->params->get('pro_optimize_gfont_enable', '0') && \strpos($url, 'fonts.googleapis.com') !== \false) { 50 //If we're importing a Google font file we may need to optimize it 51 if ($this->params->get('pro_optimizeFonts_enable', '0') && \strpos($url, 'fonts.googleapis.com') !== \false) { 51 52 //We have to add Gfonts here so this info will be cached 52 53 $this->gFonts[] = ['url' => $url, 'media' => $media]; -
jch-optimize/trunk/lib/src/Core/Css/Processor.php
r2807121 r2824689 261 261 $html = $htmlProcessor->cleanHtml(); 262 262 //Place space around HTML attributes for easy processing with XPath 263 $html = \preg_replace('#\\s*=\\s* ["\']([^"\']++)["\']#i', '=" $1 "', $html);263 $html = \preg_replace('#\\s*=\\s*(?|"([^"]*+)"|\'([^\']*+)\'|([^\\s/>]*+))#i', '=" $1 "', $html); 264 264 //Truncate HTML to number of elements set in params 265 265 $sHtmlAboveFold = ''; … … 299 299 //Process Font-Face and Key frames 300 300 $this->extractCriticalCss->isPostProcessing = \true; 301 $preCss = $this->extractCriticalCss->preCss; 301 302 $sPostCss = $oParser->processMatchesWithCallback($this->extractCriticalCss->postCss, $this->extractCriticalCss); 302 303 JCH_DEBUG ? Profiler::stop('OptimizeCssDelivery', \true) : null; 303 return $ sCriticalCss . $sPostCss;304 return $preCss . $sCriticalCss . $sPostCss; 304 305 //$this->_debug(self::cssRulesRegex(), '', 'afterCleanCriticalCss'); 305 306 } -
jch-optimize/trunk/lib/src/Core/FileUtils.php
r2807121 r2824689 40 40 public function getPath(string $url, string $htmlUrl = '') : string 41 41 { 42 $fileUri = new Uri(\ html_entity_decode($url));42 $fileUri = new Uri(\urldecode(\html_entity_decode($url))); 43 43 //If the url of the HTML is not provided we can use the base path of the system uri 44 44 if ($htmlUrl == '') { -
jch-optimize/trunk/lib/src/Core/Html/Callbacks/LazyLoad.php
r2807121 r2824689 66 66 $elementName = !empty($matches[1]) ? $matches[1] : \false; 67 67 $sClassAttribute = !empty($matches[2]) ? $matches[2] : \false; 68 $sClassDelimiter = !empty($matches[3]) ? $matches[3] : \false;68 $sClassDelimiter = !empty($matches[3]) ? $matches[3] : '"'; 69 69 $sClassValue = !empty($matches[4]) ? $matches[4] : \false; 70 70 $sSrcAttribute = $innerContent = $sStyleAttribute = !empty($matches[5]) ? $matches[5] : \false; 71 $sSrcDelimiter = $sStyleDelimiter = !empty($matches[6]) ? $matches[6] : \false;71 $sSrcDelimiter = $sStyleDelimiter = !empty($matches[6]) ? $matches[6] : '"'; 72 72 $sSrcValue = $sBgDeclaration = !empty($matches[7]) ? $matches[7] : \false; 73 73 $sSrcsetAttribute = $sPosterAttribute = $sCssUrl = !empty($matches[8]) ? $matches[8] : \false; … … 147 147 if ($sSrcsetAttribute !== \false && $sImgType == 'embed') { 148 148 $sSvgSrcset = '<svg xmlns="http://www.w3.org/2000/svg" width="' . $sWidthValue . '" height="' . $sHeightValue . '"></svg>'; 149 $sSrcsetDelimiter = $sSrcsetDelimiter ?: '"'; 149 150 $sNewSrcsetAttribute = 'srcset=' . $sSrcsetDelimiter . 'data:image/svg+xml;base64,' . \base64_encode($sSvgSrcset) . $sSrcsetDelimiter . ' data-' . $sSrcsetAttribute; 150 151 $return = \str_replace($sSrcsetAttribute, $sNewSrcsetAttribute, $return); -
jch-optimize/trunk/lib/src/Core/Html/FilesManager.php
r2807121 r2824689 122 122 */ 123 123 private $fileUtils; 124 /** 125 * @var array Array to hold the previous match of a script with module/async/defer attribute 126 */ 127 private static $prevDeferMatches = []; 128 /** 129 * @var int Current index of the defers array 130 */ 131 private static $deferIndex = -1; 124 132 /** 125 133 * Private constructor, need to implement a singleton of this class … … 392 400 // different type is encountered 393 401 if ($this->hasAttributes($this->aMatch[0], ['type=module', 'nomodule'], $matches) || $this->hasAttributes($this->aMatch[0], ['async'], $matches) || $this->hasAttributes($this->aMatch[0], ['defer'], $matches)) { 394 static $prevMatches = []; 395 static $index = -1; 396 if ($matches != $prevMatches) { 397 $index++; 398 $prevMatches = $matches; 399 } 400 $this->defers[$index][] = ['attribute' => $matches[0], 'script' => $this->aMatch[0], 'url' => $url]; 402 if ($matches != self::$prevDeferMatches) { 403 self::$deferIndex++; 404 self::$prevDeferMatches = $matches; 405 } 406 $this->defers[self::$deferIndex][] = ['attribute' => $matches[0], 'script' => $this->aMatch[0], 'url' => $url]; 401 407 $this->bLoadJsAsync = \false; 402 408 $this->excludeJsIEO(); … … 495 501 $this->excludeJsIEO(); 496 502 } 503 //Add all async, modules and nomodules to the defer array, incrementing the index each time a 504 // different type is encountered. The defer attribute on inline scripts is ignored 505 if ($this->hasAttributes($this->aMatch[0], ['type=module', 'nomodule'], $matches) || $this->hasAttributes($this->aMatch[0], ['async'], $matches)) { 506 if ($matches != self::$prevDeferMatches) { 507 self::$deferIndex++; 508 self::$prevDeferMatches = $matches; 509 } 510 $this->defers[self::$deferIndex][] = ['attribute' => $matches[0], 'script' => $this->aMatch[0], 'content' => $content]; 511 $this->bLoadJsAsync = \false; 512 $this->excludeJsIEO(); 513 } 497 514 //process PEO excludes for js scripts 498 515 if (Helper::findExcludes(@$this->aExcludes['excludes_peo']['js_script'], $content, 'js') || !$this->params->get('inlineScripts', '0') || $this->params->get('excludeAllScripts', '0')) { -
jch-optimize/trunk/lib/src/Core/Html/Processor.php
r2807121 r2824689 129 129 $oJsContentElement->setNamesArray(array('script')); 130 130 //language=RegExp 131 $oJsContentElement->addNegAttrCriteriaRegex('src|type==(?!(?>[\'"]?)(?: text|application)/javascript[\'"> ])');131 $oJsContentElement->addNegAttrCriteriaRegex('src|type==(?!(?>[\'"]?)(?:(?:text|application)/javascript|module)[\'"> ])'); 132 132 $oJsContentElement->bCaptureContent = \true; 133 133 $oParser->addElementObject($oJsContentElement); … … 207 207 $sHtml = $this->getBodyHtml(); 208 208 $sAboveFoldHtml = ''; 209 preg_replace_callback('#[^<]*+(?:<[0-9a-z ]++[^>]*+>[^<]*+(?>(?>(<ul\\b[^>]*+>(?>[^<]*+<(?!ul)[^<]*+|(?1))*?</ul>[^<]*+)?)<[^0-9a-z][^<]*+)*+)#six', function ($m) use(&$sAboveFoldHtml) {209 preg_replace_callback('#[^<]*+(?:<[0-9a-z!]++[^>]*+>[^<]*+(?>(?>(<ul\\b[^>]*+>(?>[^<]*+<(?!ul)[^<]*+|(?1))*?</ul>[^<]*+)?)<[^0-9a-z][^<]*+)*+)#six', function ($m) use(&$sAboveFoldHtml) { 210 210 $sAboveFoldHtml .= $m[0]; 211 }, $sHtml, 100);211 }, $sHtml, 50); 212 212 $sBelowFoldHtml = \substr($sHtml, \strlen($sAboveFoldHtml)); 213 213 try { … … 453 453 $element->addPosAttrCriteriaRegex('type==[\'"]?module'); 454 454 $element->setCaptureAttributesArray(['src']); 455 $element->setValueCriteriaRegex('(?=.)'); 455 456 $parser->addElementObject($element); 456 457 return $parser->findMatches($this->getFullHtml(), PREG_PATTERN_ORDER); -
jch-optimize/trunk/lib/src/Core/Http2Preload.php
r2807121 r2824689 16 16 use JchOptimize\Core\Html\LinkBuilder; 17 17 use JchOptimize\Core\Html\Processor; 18 use JchOptimize\Platform\Cache; 18 19 use JchOptimize\Platform\Hooks; 19 use JchOptimize\Platform\Utility;20 20 use _JchOptimizeVendor\Joomla\DI\ContainerAwareInterface; 21 21 use _JchOptimizeVendor\Joomla\DI\ContainerAwareTrait; … … 210 210 //Let's make the default method 'link' 211 211 $method = 'link'; 212 if ($this->cdn->isFileOnCdn($RR_url) || Utility::isPageCacheEnabled($this->params, \true) && \JCH_PRO && $this->params->get('pro_capture_cache_enable', '1') && !$this->params->get('pro_cache_platform', '0')) {212 if ($this->cdn->isFileOnCdn($RR_url) || Cache::isPageCacheEnabled($this->params, \true) && \JCH_PRO && $this->params->get('pro_capture_cache_enable', '1') && !$this->params->get('pro_cache_platform', '0')) { 213 213 $method = 'html'; 214 214 } -
jch-optimize/trunk/lib/src/Core/Service/CachingProvider.php
r2807121 r2824689 132 132 { 133 133 $this->createCacheFolder(); 134 $params = $container->get('params'); 134 135 //Use whichever lifetime is greater to ensure page cache expires before 135 $pageCacheTtl = $ container->get('params')->get('page_cache_lifetime', '900');136 $globalTtl = $ container->get('params')->get('cache_lifetime', '900');136 $pageCacheTtl = $params->get('page_cache_lifetime', '900'); 137 $globalTtl = $params->get('cache_lifetime', '900'); 137 138 $lifetime = max($pageCacheTtl, $globalTtl); 138 139 try { … … 142 143 $cache->getOptions()->setNamespace(Cache::getCacheNamespace())->setTtl($lifetime); 143 144 if ($cache instanceof PluginAwareInterface) { 144 $plugin = (new ClearExpiredByFactor())->setContainer($container); 145 $plugin->setLogger($container->get(LoggerInterface::class)); 146 $plugin->getOptions()->setClearingFactor(100); 147 $cache->addPlugin($plugin); 145 if ($params->get('delete_expiry', '1')) { 146 $plugin = (new ClearExpiredByFactor())->setContainer($container); 147 $plugin->setLogger($container->get(LoggerInterface::class)); 148 $plugin->getOptions()->setClearingFactor(100); 149 $cache->addPlugin($plugin); 150 } 148 151 } 149 152 //Let's make sure we can connect -
jch-optimize/trunk/lib/src/Html/Renderer/Setting.php
r2807121 r2824689 53 53 echo Helper::_('select', __FUNCTION__, '1800', $aOptions); 54 54 } 55 public static function delete_expiry() 56 { 57 echo Helper::_('radio', __FUNCTION__, '1'); 58 } 55 59 public static function html_minify_level() 56 60 { … … 165 169 } 166 170 public static function pro_criticalScripts() 171 { 172 echo Helper::_('multiselect.pro', __FUNCTION__, [], 'js', 'script'); 173 } 174 public static function pro_criticalModules() 175 { 176 echo Helper::_('multiselect.pro', __FUNCTION__, [], 'js', 'file'); 177 } 178 public static function pro_criticalModulesScripts() 167 179 { 168 180 echo Helper::_('multiselect.pro', __FUNCTION__, [], 'js', 'script'); -
jch-optimize/trunk/lib/src/Html/TabSettings.php
r2807121 r2824689 53 53 * Combine CSS JS 54 54 */ 55 'combineCssJsSection' => ['combine_files_enable' => [__('Enable', 'jch-optimize')], 'pro_smart_combine' => [__('Smart combine', 'jch-optimize'), __('Will try to combine system and template files together respectively that are consistent across pages. <p>This produces several smaller combined files promoting browser caching across page loads; reduces chances of excessive cache generation and takes advantages of better files delivery offered by Http/2 servers', 'jch-optimize')], 'cache_lifetime' => [__('Cache lifetime', 'jch-optimize'), __('The lifetime of the cache files generated by the plugin. <p>If you\'re using a Page Cache plugin be sure to set this higher than the lifetime set in Page Cache. <p>If you\'re having issue with excess amount of cache being generated then lowering this setting will help.', 'jch-optimize')], ' html_minify_level' => [__('HTML Minification level', 'jch-optimize'), __('If \'Minify HTML\' is enabled, this will determine the level of minification. The incremental changes per level are as follows: <dl><dt>Basic - </dt><dd>Adjoining whitespaces outside of elements are reduced to one whitespace, HTML comments preserved;</dd><dt>Advanced - </dt><dd>Remove HTML comments, whitespace around block elements and undisplayed elements, Remove unnecessary whitespaces inside of elements and around their attributes;</dd> <dt>Ultra -</dt> <dd>Remove redundant attributes, for example, \'text/javascript\', and remove quotes from around selected attributes (HTML5)</dd> </dl>', 'jch-optimize')], 'htaccess' => [__('Combined files delivery', 'jch-optimize'), __('By default, the combined files will be loaded as static CSS and JavaScript files. You would need to include directives in your .htaccess file to gzip these files. <p>You can use PHP files instead that will be gzipped if that option is set. PHP files can be loaded with a query attached with the information to find the combined files, or you can use url rewrite if it\'s available on the server so the files can be masked as static files. If your server prohibits the use of the Options +FollowSymLinks directive in .htaccess files use the respective option.', 'jch-optimize')], 'try_catch' => [__('Use try-catch', 'jch-optimize'), __('If you\'re seeing JavaScript errors in the console, you can try enabling this option to wrap each JavaScript file in a \'try-catch\' block to prevent the errors from one file affecting the combined file.', 'jch-optimize')]],55 'combineCssJsSection' => ['combine_files_enable' => [__('Enable', 'jch-optimize')], 'pro_smart_combine' => [__('Smart combine', 'jch-optimize'), __('Will try to combine system and template files together respectively that are consistent across pages. <p>This produces several smaller combined files promoting browser caching across page loads; reduces chances of excessive cache generation and takes advantages of better files delivery offered by Http/2 servers', 'jch-optimize')], 'cache_lifetime' => [__('Cache lifetime', 'jch-optimize'), __('The lifetime of the cache files generated by the plugin. <p>If you\'re using a Page Cache plugin be sure to set this higher than the lifetime set in Page Cache. <p>If you\'re having issue with excess amount of cache being generated then lowering this setting will help.', 'jch-optimize')], 'delete_expiry' => [__('Delete expired cache', 'jch-optimize'), __('JCH Optimize will delete cached files when they\'re expired to prevent an excess build-up of cache files on the server. <p> If you\'re using another page cache plugin, you may want to disable this to avoid having orphaned links to CSS or JavaScript files cached on the pages.')], 'html_minify_level' => [__('HTML Minification level', 'jch-optimize'), __('If \'Minify HTML\' is enabled, this will determine the level of minification. The incremental changes per level are as follows: <dl><dt>Basic - </dt><dd>Adjoining whitespaces outside of elements are reduced to one whitespace, HTML comments preserved;</dd><dt>Advanced - </dt><dd>Remove HTML comments, whitespace around block elements and undisplayed elements, Remove unnecessary whitespaces inside of elements and around their attributes;</dd> <dt>Ultra -</dt> <dd>Remove redundant attributes, for example, \'text/javascript\', and remove quotes from around selected attributes (HTML5)</dd> </dl>', 'jch-optimize')], 'htaccess' => [__('Combined files delivery', 'jch-optimize'), __('By default, the combined files will be loaded as static CSS and JavaScript files. You would need to include directives in your .htaccess file to gzip these files. <p>You can use PHP files instead that will be gzipped if that option is set. PHP files can be loaded with a query attached with the information to find the combined files, or you can use url rewrite if it\'s available on the server so the files can be masked as static files. If your server prohibits the use of the Options +FollowSymLinks directive in .htaccess files use the respective option.', 'jch-optimize')], 'try_catch' => [__('Use try-catch', 'jch-optimize'), __('If you\'re seeing JavaScript errors in the console, you can try enabling this option to wrap each JavaScript file in a \'try-catch\' block to prevent the errors from one file affecting the combined file.', 'jch-optimize')]], 56 56 /** 57 57 *Combine Css Js Auto Settings … … 96 96 * Reduce Unused JavaScript 97 97 */ 98 'reduceUnusedJavascriptSection' => ['pro_reduce_unused_js_enable' => [__('Enable', 'jch-optimize')], 'pro_criticalJs' => [__('Critical JavaScript files', 'jch-optimize'), __('Select any files required to perform initial render to exclude from the Reduce Unused JavaScript feature.', 'jch-optimize')], 'pro_criticalScripts' => [__('Critical scripts', 'jch-optimize'), __('Enter any substring of any scripts here that you need to perform any initial render.', 'jch-optimize')] ],98 'reduceUnusedJavascriptSection' => ['pro_reduce_unused_js_enable' => [__('Enable', 'jch-optimize')], 'pro_criticalJs' => [__('Critical JavaScript files', 'jch-optimize'), __('Select any files required to perform initial render to exclude from the Reduce Unused JavaScript feature.', 'jch-optimize')], 'pro_criticalScripts' => [__('Critical scripts', 'jch-optimize'), __('Enter any substring of any scripts here that you need to perform any initial render.', 'jch-optimize')], 'pro_criticalModules' => [__('Critical modules', 'jch-optimize'), __('If your critical scripts you have added above is using any modules you may want to enter them here to exclude them from being dynamically loaded into the DOM.')], 'pro_criticalModulesScripts' => [__('Critical inline modules', 'jch-optimize'), __('You can exclude inline modules in a similar manner as outlined above.')]], 99 99 /** 100 100 * Exclude Preserving Execution Order -
jch-optimize/trunk/lib/vendor/composer/installed.php
r2807121 r2824689 3 3 namespace _JchOptimizeVendor; 4 4 5 return array('root' => array('pretty_version' => 'dev-master', 'version' => 'dev-master', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'reference' => '7 740a4d324f5b843fcd7323f8759ac8723d44f23', 'name' => 'jchoptimize/wordpress-platform', 'dev' => \false), 'versions' => array('codealfa/minify' => array('pretty_version' => '1.0.2', 'version' => '1.0.2.0', 'type' => 'library', 'install_path' => __DIR__ . '/../codealfa/minify', 'aliases' => array(), 'reference' => '2ab712ecf94ac7af1aa11a41c83b7287defc5f8c', 'dev_requirement' => \false), 'codealfa/regextokenizer' => array('pretty_version' => 'dev-filesmanager', 'version' => 'dev-filesmanager', 'type' => 'library', 'install_path' => __DIR__ . '/../codealfa/regextokenizer', 'aliases' => array(), 'reference' => 'e7b6fb3d6d6fbd3f501d86aea6d10ca7f473684e', 'dev_requirement' => \false), 'composer/ca-bundle' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'type' => 'library', 'install_path' => __DIR__ . '/./ca-bundle', 'aliases' => array(0 => '1.x-dev'), 'reference' => '5f7f80cfc25e2e435f960e8ca178aeb9f786ae65', 'dev_requirement' => \false), 'container-interop/container-interop' => array('pretty_version' => '1.2.0', 'version' => '1.2.0.0', 'type' => 'library', 'install_path' => __DIR__ . '/../container-interop/container-interop', 'aliases' => array(), 'reference' => '79cbf1341c22ec75643d841642dd5d6acd83bdb8', 'dev_requirement' => \false), 'container-interop/container-interop-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '^1.2')), 'doctrine/inflector' => array('pretty_version' => '2.1.x-dev', 'version' => '2.1.9999999.9999999-dev', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'reference' => '3249de584daab089c823ddc3f8efb108cee85a10', 'dev_requirement' => \false), 'illuminate/container' => array('pretty_version' => '7.x-dev', 'version' => '7.9999999.9999999.9999999-dev', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/container', 'aliases' => array(), 'reference' => '06456a2ea5656c2f1ebda37039ce14c1bfc973b3', 'dev_requirement' => \false), 'illuminate/contracts' => array('pretty_version' => '7.x-dev', 'version' => '7.9999999.9999999.9999999-dev', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/contracts', 'aliases' => array(), 'reference' => '2449f2ea949ddf995a3dcffe5e21c768cf7d6478', 'dev_requirement' => \false), 'illuminate/events' => array('pretty_version' => '7.x-dev', 'version' => '7.9999999.9999999.9999999-dev', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/events', 'aliases' => array(), 'reference' => '6f64db49dbfd490c6e30c983964543a054882faf', 'dev_requirement' => \false), 'illuminate/filesystem' => array('pretty_version' => '7.x-dev', 'version' => '7.9999999.9999999.9999999-dev', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/filesystem', 'aliases' => array(), 'reference' => '2013f94a3a7dff008be54884774548e3c222c3e8', 'dev_requirement' => \false), 'illuminate/support' => array('pretty_version' => '7.x-dev', 'version' => '7.9999999.9999999.9999999-dev', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/support', 'aliases' => array(), 'reference' => 'c7b42acd009c94a3f8b749a65f6835db90174d58', 'dev_requirement' => \false), 'illuminate/view' => array('pretty_version' => '7.x-dev', 'version' => '7.9999999.9999999.9999999-dev', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/view', 'aliases' => array(), 'reference' => '098e583d43c8fd1d3505ed83b2d54a31ce20bcdb', 'dev_requirement' => \false), 'jchoptimize/wordpress-platform' => array('pretty_version' => 'dev-master', 'version' => 'dev-master', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'reference' => '7740a4d324f5b843fcd7323f8759ac8723d44f23', 'dev_requirement' => \false), 'joomla/controller' => array('pretty_version' => 'dev-2.0-dev', 'version' => 'dev-2.0-dev', 'type' => 'joomla-package', 'install_path' => __DIR__ . '/../joomla/controller', 'aliases' => array(0 => '2.0.x-dev'), 'reference' => '7618deb7f8454f593970b33dcff9f14bf0afbceb', 'dev_requirement' => \false), 'joomla/di' => array('pretty_version' => 'dev-2.0-dev', 'version' => 'dev-2.0-dev', 'type' => 'joomla-package', 'install_path' => __DIR__ . '/../joomla/di', 'aliases' => array(0 => '2.0.x-dev'), 'reference' => '5298258e982033afb23da21d2149ee6dfc374e24', 'dev_requirement' => \false), 'joomla/filesystem' => array('pretty_version' => 'dev-1.x-dev', 'version' => 'dev-1.x-dev', 'type' => 'joomla-package', 'install_path' => __DIR__ . '/../joomla/filesystem', 'aliases' => array(), 'reference' => '9ad5d9b64960f0ea56fb71364a33622843b95c27', 'dev_requirement' => \false), 'joomla/filter' => array('pretty_version' => 'dev-2.0-dev', 'version' => 'dev-2.0-dev', 'type' => 'joomla-package', 'install_path' => __DIR__ . '/../joomla/filter', 'aliases' => array(0 => '2.0.x-dev'), 'reference' => '137ca3f8925c4529a113735404b873fad0a1305f', 'dev_requirement' => \false), 'joomla/http' => array('pretty_version' => 'dev-2.0-dev', 'version' => 'dev-2.0-dev', 'type' => 'joomla-package', 'install_path' => __DIR__ . '/../joomla/http', 'aliases' => array(0 => '2.0.x-dev'), 'reference' => 'e277a136f357896161ad41ac7bcada3f43fac04f', 'dev_requirement' => \false), 'joomla/input' => array('pretty_version' => 'dev-2.0-dev', 'version' => 'dev-2.0-dev', 'type' => 'joomla-package', 'install_path' => __DIR__ . '/../joomla/input', 'aliases' => array(0 => '2.0.x-dev'), 'reference' => '147229d2e0c5ac7db6f972d19c9faa922575e5c2', 'dev_requirement' => \false), 'joomla/model' => array('pretty_version' => 'dev-2.0-dev', 'version' => 'dev-2.0-dev', 'type' => 'joomla-package', 'install_path' => __DIR__ . '/../joomla/model', 'aliases' => array(0 => '2.0.x-dev'), 'reference' => '3b57f8a380fa5cd9f7a6d0a30e9e9c9446511998', 'dev_requirement' => \false), 'joomla/registry' => array('pretty_version' => 'dev-2.0-dev', 'version' => 'dev-2.0-dev', 'type' => 'joomla-package', 'install_path' => __DIR__ . '/../joomla/registry', 'aliases' => array(0 => '2.0.x-dev'), 'reference' => '610ebc46259c3c2ff0283545862a5525a1159b2a', 'dev_requirement' => \false), 'joomla/renderer' => array('pretty_version' => '2.0.0', 'version' => '2.0.0.0', 'type' => 'joomla-package', 'install_path' => __DIR__ . '/../joomla/renderer', 'aliases' => array(), 'reference' => '482896d9b10a3a17bf87cbb531d2ebfb463a3df7', 'dev_requirement' => \false), 'joomla/string' => array('pretty_version' => 'dev-2.0-dev', 'version' => 'dev-2.0-dev', 'type' => 'joomla-package', 'install_path' => __DIR__ . '/../joomla/string', 'aliases' => array(0 => '2.0.x-dev'), 'reference' => '9d60fbfbed56aff4b1afe0203237f2ba0e001894', 'dev_requirement' => \false), 'joomla/uri' => array('pretty_version' => 'dev-2.0-dev', 'version' => 'dev-2.0-dev', 'type' => 'joomla-package', 'install_path' => __DIR__ . '/../joomla/uri', 'aliases' => array(0 => '2.0.x-dev'), 'reference' => '755f1cf80e2463d9a162563e607154c64083184b', 'dev_requirement' => \false), 'joomla/utilities' => array('pretty_version' => 'dev-2.0-dev', 'version' => 'dev-2.0-dev', 'type' => 'joomla-package', 'install_path' => __DIR__ . '/../joomla/utilities', 'aliases' => array(0 => '2.0.x-dev'), 'reference' => '5b4b6e3cc9fcbb19feca987860a8d4217e060f84', 'dev_requirement' => \false), 'joomla/view' => array('pretty_version' => 'dev-2.0-dev', 'version' => 'dev-2.0-dev', 'type' => 'joomla-package', 'install_path' => __DIR__ . '/../joomla/view', 'aliases' => array(0 => '2.0.x-dev'), 'reference' => '1f650fe9a970703e569c79e41f97d123acfacc66', 'dev_requirement' => \false), 'laminas/laminas-cache' => array('pretty_version' => '3.0.x-dev', 'version' => '3.0.9999999.9999999-dev', 'type' => 'library', 'install_path' => __DIR__ . '/../laminas/laminas-cache', 'aliases' => array(), 'reference' => '86b47eb7b05bc4d24edafb3039494ba81405983b', 'dev_requirement' => \false), 'laminas/laminas-cache-storage-adapter-apcu' => array('pretty_version' => '2.1.x-dev', 'version' => '2.1.9999999.9999999-dev', 'type' => 'library', 'install_path' => __DIR__ . '/../laminas/laminas-cache-storage-adapter-apcu', 'aliases' => array(), 'reference' => '0e640a402f9555a1a482f7dd5415c579f79c7d97', 'dev_requirement' => \false), 'laminas/laminas-cache-storage-adapter-blackhole' => array('pretty_version' => '2.1.x-dev', 'version' => '2.1.9999999.9999999-dev', 'type' => 'library', 'install_path' => __DIR__ . '/../laminas/laminas-cache-storage-adapter-blackhole', 'aliases' => array(), 'reference' => '74fe2bade28dacc49c7f9265dd30a0886604fb8f', 'dev_requirement' => \false), 'laminas/laminas-cache-storage-adapter-filesystem' => array('pretty_version' => '2.1.x-dev', 'version' => '2.1.9999999.9999999-dev', 'type' => 'library', 'install_path' => __DIR__ . '/../laminas/laminas-cache-storage-adapter-filesystem', 'aliases' => array(), 'reference' => '74a36a029c31199fdbef905398881737ee0d3cd9', 'dev_requirement' => \false), 'laminas/laminas-cache-storage-adapter-memcached' => array('pretty_version' => '2.1.x-dev', 'version' => '2.1.9999999.9999999-dev', 'type' => 'library', 'install_path' => __DIR__ . '/../laminas/laminas-cache-storage-adapter-memcached', 'aliases' => array(), 'reference' => 'e67cfcb4e9ccca19890e6737262b91c1904f68da', 'dev_requirement' => \false), 'laminas/laminas-cache-storage-adapter-redis' => array('pretty_version' => '2.1.x-dev', 'version' => '2.1.9999999.9999999-dev', 'type' => 'library', 'install_path' => __DIR__ . '/../laminas/laminas-cache-storage-adapter-redis', 'aliases' => array(), 'reference' => '289717d10a89755d3f36f799565a3fb9c7e9ab24', 'dev_requirement' => \false), 'laminas/laminas-cache-storage-adapter-wincache' => array('pretty_version' => '1.1.x-dev', 'version' => '1.1.9999999.9999999-dev', 'type' => 'library', 'install_path' => __DIR__ . '/../laminas/laminas-cache-storage-adapter-wincache', 'aliases' => array(), 'reference' => '63835697f3c7cc3de551a54175ab77decff111aa', 'dev_requirement' => \false), 'laminas/laminas-cache-storage-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0')), 'laminas/laminas-diactoros' => array('pretty_version' => '2.12.x-dev', 'version' => '2.12.9999999.9999999-dev', 'type' => 'library', 'install_path' => __DIR__ . '/../laminas/laminas-diactoros', 'aliases' => array(), 'reference' => '2b8806080a2bcbe9c59e7aff120fcbb9e346a8a7', 'dev_requirement' => \false), 'laminas/laminas-eventmanager' => array('pretty_version' => '3.4.x-dev', 'version' => '3.4.9999999.9999999-dev', 'type' => 'library', 'install_path' => __DIR__ . '/../laminas/laminas-eventmanager', 'aliases' => array(), 'reference' => '63106a624bfdcc2a17c515188760ab1ffda37fc8', 'dev_requirement' => \false), 'laminas/laminas-json' => array('pretty_version' => '3.4.x-dev', 'version' => '3.4.9999999.9999999-dev', 'type' => 'library', 'install_path' => __DIR__ . '/../laminas/laminas-json', 'aliases' => array(), 'reference' => '9874aa22a5d060ff51aa04978fc0e788441ffeea', 'dev_requirement' => \false), 'laminas/laminas-log' => array('pretty_version' => '2.14.x-dev', 'version' => '2.14.9999999.9999999-dev', 'type' => 'library', 'install_path' => __DIR__ . '/../laminas/laminas-log', 'aliases' => array(), 'reference' => '39f3dcbd77fd0d84b190ff1332f5d3d28d56527e', 'dev_requirement' => \false), 'laminas/laminas-paginator' => array('pretty_version' => '2.11.x-dev', 'version' => '2.11.9999999.9999999-dev', 'type' => 'library', 'install_path' => __DIR__ . '/../laminas/laminas-paginator', 'aliases' => array(), 'reference' => '7f00d5fdecd1b4f67c8e84e6f6d57bbabda4b7d8', 'dev_requirement' => \false), 'laminas/laminas-serializer' => array('pretty_version' => '2.12.x-dev', 'version' => '2.12.9999999.9999999-dev', 'type' => 'library', 'install_path' => __DIR__ . '/../laminas/laminas-serializer', 'aliases' => array(), 'reference' => '2826fd71f202569c169456a4b84297da9ff630cd', 'dev_requirement' => \false), 'laminas/laminas-servicemanager' => array('pretty_version' => '3.7.x-dev', 'version' => '3.7.9999999.9999999-dev', 'type' => 'library', 'install_path' => __DIR__ . '/../laminas/laminas-servicemanager', 'aliases' => array(), 'reference' => '89152f8ebb149a42bedfaf321ae77c03262104b0', 'dev_requirement' => \false), 'laminas/laminas-stdlib' => array('pretty_version' => '3.11.x-dev', 'version' => '3.11.9999999.9999999-dev', 'type' => 'library', 'install_path' => __DIR__ . '/../laminas/laminas-stdlib', 'aliases' => array(), 'reference' => 'bba0920ee8ec88d90de77ba4c647f59102ccf3c1', 'dev_requirement' => \false), 'laminas/laminas-zendframework-bridge' => array('pretty_version' => '1.4.x-dev', 'version' => '1.4.9999999.9999999-dev', 'type' => 'library', 'install_path' => __DIR__ . '/../laminas/laminas-zendframework-bridge', 'aliases' => array(), 'reference' => '88bf037259869891afce6504cacc4f8a07b24d0f', 'dev_requirement' => \false), 'nesbot/carbon' => array('pretty_version' => 'dev-master', 'version' => 'dev-master', 'type' => 'library', 'install_path' => __DIR__ . '/../nesbot/carbon', 'aliases' => array(0 => '2.x-dev'), 'reference' => '88ac19cad69487d9345b65023f580920667d17de', 'dev_requirement' => \false), 'psr/cache' => array('pretty_version' => '1.0.1', 'version' => '1.0.1.0', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/cache', 'aliases' => array(), 'reference' => 'd11b50ad223250cf17b86e38383413f5a6764bf8', 'dev_requirement' => \false), 'psr/cache-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0')), 'psr/container' => array('pretty_version' => '1.1.x-dev', 'version' => '1.1.9999999.9999999-dev', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/container', 'aliases' => array(), 'reference' => '8622567409010282b7aeebe4bb841fe98b58dcaf', 'dev_requirement' => \false), 'psr/container-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0', 1 => '~1.0', 2 => '^1.0')), 'psr/http-client' => array('pretty_version' => 'dev-master', 'version' => 'dev-master', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/http-client', 'aliases' => array(0 => '1.0.x-dev'), 'reference' => '22b2ef5687f43679481615605d7a15c557ce85b1', 'dev_requirement' => \false), 'psr/http-factory' => array('pretty_version' => 'dev-master', 'version' => 'dev-master', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/http-factory', 'aliases' => array(0 => '1.0.x-dev'), 'reference' => '36fa03d50ff82abcae81860bdaf4ed9a1510c7cd', 'dev_requirement' => \false), 'psr/http-factory-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0')), 'psr/http-message' => array('pretty_version' => 'dev-master', 'version' => 'dev-master', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/http-message', 'aliases' => array(0 => '1.0.x-dev'), 'reference' => 'efd67d1dc14a7ef4fc4e518e7dee91c271d524e4', 'dev_requirement' => \false), 'psr/http-message-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0')), 'psr/log' => array('pretty_version' => '1.1.4', 'version' => '1.1.4.0', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/log', 'aliases' => array(), 'reference' => 'd49695b909c3b7628b6289db5479a1c204601f11', 'dev_requirement' => \false), 'psr/log-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0.0')), 'psr/simple-cache' => array('pretty_version' => '1.0.1', 'version' => '1.0.1.0', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/simple-cache', 'aliases' => array(), 'reference' => '408d5eafb83c57f6365a3ca330ff23aa4a5fa39b', 'dev_requirement' => \false), 'psr/simple-cache-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0')), 'symfony/deprecation-contracts' => array('pretty_version' => '2.5.x-dev', 'version' => '2.5.9999999.9999999-dev', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'reference' => 'e8b495ea28c1d97b5e0c121748d6f9b53d075c66', 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => '5.4.x-dev', 'version' => '5.4.9999999.9999999-dev', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'reference' => '9b630f3427f3ebe7cd346c277a1408b00249dad9', 'dev_requirement' => \false), 'symfony/polyfill-mbstring' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-mbstring', 'aliases' => array(0 => '1.26.x-dev'), 'reference' => '9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e', 'dev_requirement' => \false), 'symfony/polyfill-php80' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php80', 'aliases' => array(0 => '1.26.x-dev'), 'reference' => 'cfa0ae98841b9e461207c13ab093d76b0fa7bace', 'dev_requirement' => \false), 'symfony/translation' => array('pretty_version' => '5.4.x-dev', 'version' => '5.4.9999999.9999999-dev', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/translation', 'aliases' => array(), 'reference' => '1639abc1177d26bcd4320e535e664cef067ab0ca', 'dev_requirement' => \false), 'symfony/translation-contracts' => array('pretty_version' => '2.5.x-dev', 'version' => '2.5.9999999.9999999-dev', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/translation-contracts', 'aliases' => array(), 'reference' => '1211df0afa701e45a04253110e959d4af4ef0f07', 'dev_requirement' => \false), 'symfony/translation-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '2.3')), 'voku/portable-ascii' => array('pretty_version' => '1.6.1', 'version' => '1.6.1.0', 'type' => 'library', 'install_path' => __DIR__ . '/../voku/portable-ascii', 'aliases' => array(), 'reference' => '87337c91b9dfacee02452244ee14ab3c43bc485a', 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '1.11.0', 'version' => '1.11.0.0', 'type' => 'library', 'install_path' => __DIR__ . '/../webmozart/assert', 'aliases' => array(), 'reference' => '11cb2199493b2f8a3b53e7f19068fc6aac760991', 'dev_requirement' => \false), 'zendframework/zend-servicemanager' => array('dev_requirement' => \false, 'replaced' => array(0 => '^3.4.0'))));5 return array('root' => array('pretty_version' => 'dev-master', 'version' => 'dev-master', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'reference' => '7f2599fd71cea32f94a7692d35e748ea2d8ed801', 'name' => 'jchoptimize/wordpress-platform', 'dev' => \false), 'versions' => array('codealfa/minify' => array('pretty_version' => '1.0.2', 'version' => '1.0.2.0', 'type' => 'library', 'install_path' => __DIR__ . '/../codealfa/minify', 'aliases' => array(), 'reference' => '2ab712ecf94ac7af1aa11a41c83b7287defc5f8c', 'dev_requirement' => \false), 'codealfa/regextokenizer' => array('pretty_version' => 'dev-filesmanager', 'version' => 'dev-filesmanager', 'type' => 'library', 'install_path' => __DIR__ . '/../codealfa/regextokenizer', 'aliases' => array(), 'reference' => 'e7b6fb3d6d6fbd3f501d86aea6d10ca7f473684e', 'dev_requirement' => \false), 'composer/ca-bundle' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'type' => 'library', 'install_path' => __DIR__ . '/./ca-bundle', 'aliases' => array(0 => '1.x-dev'), 'reference' => '5f7f80cfc25e2e435f960e8ca178aeb9f786ae65', 'dev_requirement' => \false), 'container-interop/container-interop' => array('pretty_version' => '1.2.0', 'version' => '1.2.0.0', 'type' => 'library', 'install_path' => __DIR__ . '/../container-interop/container-interop', 'aliases' => array(), 'reference' => '79cbf1341c22ec75643d841642dd5d6acd83bdb8', 'dev_requirement' => \false), 'container-interop/container-interop-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '^1.2')), 'doctrine/inflector' => array('pretty_version' => '2.1.x-dev', 'version' => '2.1.9999999.9999999-dev', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'reference' => '3249de584daab089c823ddc3f8efb108cee85a10', 'dev_requirement' => \false), 'illuminate/container' => array('pretty_version' => '7.x-dev', 'version' => '7.9999999.9999999.9999999-dev', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/container', 'aliases' => array(), 'reference' => '06456a2ea5656c2f1ebda37039ce14c1bfc973b3', 'dev_requirement' => \false), 'illuminate/contracts' => array('pretty_version' => '7.x-dev', 'version' => '7.9999999.9999999.9999999-dev', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/contracts', 'aliases' => array(), 'reference' => '2449f2ea949ddf995a3dcffe5e21c768cf7d6478', 'dev_requirement' => \false), 'illuminate/events' => array('pretty_version' => '7.x-dev', 'version' => '7.9999999.9999999.9999999-dev', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/events', 'aliases' => array(), 'reference' => '6f64db49dbfd490c6e30c983964543a054882faf', 'dev_requirement' => \false), 'illuminate/filesystem' => array('pretty_version' => '7.x-dev', 'version' => '7.9999999.9999999.9999999-dev', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/filesystem', 'aliases' => array(), 'reference' => '2013f94a3a7dff008be54884774548e3c222c3e8', 'dev_requirement' => \false), 'illuminate/support' => array('pretty_version' => '7.x-dev', 'version' => '7.9999999.9999999.9999999-dev', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/support', 'aliases' => array(), 'reference' => 'c7b42acd009c94a3f8b749a65f6835db90174d58', 'dev_requirement' => \false), 'illuminate/view' => array('pretty_version' => '7.x-dev', 'version' => '7.9999999.9999999.9999999-dev', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/view', 'aliases' => array(), 'reference' => '098e583d43c8fd1d3505ed83b2d54a31ce20bcdb', 'dev_requirement' => \false), 'jchoptimize/wordpress-platform' => array('pretty_version' => 'dev-master', 'version' => 'dev-master', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'reference' => '7f2599fd71cea32f94a7692d35e748ea2d8ed801', 'dev_requirement' => \false), 'joomla/controller' => array('pretty_version' => 'dev-2.0-dev', 'version' => 'dev-2.0-dev', 'type' => 'joomla-package', 'install_path' => __DIR__ . '/../joomla/controller', 'aliases' => array(0 => '2.0.x-dev'), 'reference' => '7618deb7f8454f593970b33dcff9f14bf0afbceb', 'dev_requirement' => \false), 'joomla/di' => array('pretty_version' => 'dev-2.0-dev', 'version' => 'dev-2.0-dev', 'type' => 'joomla-package', 'install_path' => __DIR__ . '/../joomla/di', 'aliases' => array(0 => '2.0.x-dev'), 'reference' => '5298258e982033afb23da21d2149ee6dfc374e24', 'dev_requirement' => \false), 'joomla/filesystem' => array('pretty_version' => 'dev-1.x-dev', 'version' => 'dev-1.x-dev', 'type' => 'joomla-package', 'install_path' => __DIR__ . '/../joomla/filesystem', 'aliases' => array(), 'reference' => '9ad5d9b64960f0ea56fb71364a33622843b95c27', 'dev_requirement' => \false), 'joomla/filter' => array('pretty_version' => 'dev-2.0-dev', 'version' => 'dev-2.0-dev', 'type' => 'joomla-package', 'install_path' => __DIR__ . '/../joomla/filter', 'aliases' => array(0 => '2.0.x-dev'), 'reference' => '137ca3f8925c4529a113735404b873fad0a1305f', 'dev_requirement' => \false), 'joomla/http' => array('pretty_version' => 'dev-2.0-dev', 'version' => 'dev-2.0-dev', 'type' => 'joomla-package', 'install_path' => __DIR__ . '/../joomla/http', 'aliases' => array(0 => '2.0.x-dev'), 'reference' => 'e277a136f357896161ad41ac7bcada3f43fac04f', 'dev_requirement' => \false), 'joomla/input' => array('pretty_version' => 'dev-2.0-dev', 'version' => 'dev-2.0-dev', 'type' => 'joomla-package', 'install_path' => __DIR__ . '/../joomla/input', 'aliases' => array(0 => '2.0.x-dev'), 'reference' => '147229d2e0c5ac7db6f972d19c9faa922575e5c2', 'dev_requirement' => \false), 'joomla/model' => array('pretty_version' => 'dev-2.0-dev', 'version' => 'dev-2.0-dev', 'type' => 'joomla-package', 'install_path' => __DIR__ . '/../joomla/model', 'aliases' => array(0 => '2.0.x-dev'), 'reference' => '3b57f8a380fa5cd9f7a6d0a30e9e9c9446511998', 'dev_requirement' => \false), 'joomla/registry' => array('pretty_version' => 'dev-2.0-dev', 'version' => 'dev-2.0-dev', 'type' => 'joomla-package', 'install_path' => __DIR__ . '/../joomla/registry', 'aliases' => array(0 => '2.0.x-dev'), 'reference' => '610ebc46259c3c2ff0283545862a5525a1159b2a', 'dev_requirement' => \false), 'joomla/renderer' => array('pretty_version' => '2.0.0', 'version' => '2.0.0.0', 'type' => 'joomla-package', 'install_path' => __DIR__ . '/../joomla/renderer', 'aliases' => array(), 'reference' => '482896d9b10a3a17bf87cbb531d2ebfb463a3df7', 'dev_requirement' => \false), 'joomla/string' => array('pretty_version' => 'dev-2.0-dev', 'version' => 'dev-2.0-dev', 'type' => 'joomla-package', 'install_path' => __DIR__ . '/../joomla/string', 'aliases' => array(0 => '2.0.x-dev'), 'reference' => '9d60fbfbed56aff4b1afe0203237f2ba0e001894', 'dev_requirement' => \false), 'joomla/uri' => array('pretty_version' => 'dev-2.0-dev', 'version' => 'dev-2.0-dev', 'type' => 'joomla-package', 'install_path' => __DIR__ . '/../joomla/uri', 'aliases' => array(0 => '2.0.x-dev'), 'reference' => '755f1cf80e2463d9a162563e607154c64083184b', 'dev_requirement' => \false), 'joomla/utilities' => array('pretty_version' => 'dev-2.0-dev', 'version' => 'dev-2.0-dev', 'type' => 'joomla-package', 'install_path' => __DIR__ . '/../joomla/utilities', 'aliases' => array(0 => '2.0.x-dev'), 'reference' => '5b4b6e3cc9fcbb19feca987860a8d4217e060f84', 'dev_requirement' => \false), 'joomla/view' => array('pretty_version' => 'dev-2.0-dev', 'version' => 'dev-2.0-dev', 'type' => 'joomla-package', 'install_path' => __DIR__ . '/../joomla/view', 'aliases' => array(0 => '2.0.x-dev'), 'reference' => '1f650fe9a970703e569c79e41f97d123acfacc66', 'dev_requirement' => \false), 'laminas/laminas-cache' => array('pretty_version' => '3.0.x-dev', 'version' => '3.0.9999999.9999999-dev', 'type' => 'library', 'install_path' => __DIR__ . '/../laminas/laminas-cache', 'aliases' => array(), 'reference' => '86b47eb7b05bc4d24edafb3039494ba81405983b', 'dev_requirement' => \false), 'laminas/laminas-cache-storage-adapter-apcu' => array('pretty_version' => '2.1.x-dev', 'version' => '2.1.9999999.9999999-dev', 'type' => 'library', 'install_path' => __DIR__ . '/../laminas/laminas-cache-storage-adapter-apcu', 'aliases' => array(), 'reference' => '0e640a402f9555a1a482f7dd5415c579f79c7d97', 'dev_requirement' => \false), 'laminas/laminas-cache-storage-adapter-blackhole' => array('pretty_version' => '2.1.x-dev', 'version' => '2.1.9999999.9999999-dev', 'type' => 'library', 'install_path' => __DIR__ . '/../laminas/laminas-cache-storage-adapter-blackhole', 'aliases' => array(), 'reference' => '74fe2bade28dacc49c7f9265dd30a0886604fb8f', 'dev_requirement' => \false), 'laminas/laminas-cache-storage-adapter-filesystem' => array('pretty_version' => '2.1.x-dev', 'version' => '2.1.9999999.9999999-dev', 'type' => 'library', 'install_path' => __DIR__ . '/../laminas/laminas-cache-storage-adapter-filesystem', 'aliases' => array(), 'reference' => '74a36a029c31199fdbef905398881737ee0d3cd9', 'dev_requirement' => \false), 'laminas/laminas-cache-storage-adapter-memcached' => array('pretty_version' => '2.1.x-dev', 'version' => '2.1.9999999.9999999-dev', 'type' => 'library', 'install_path' => __DIR__ . '/../laminas/laminas-cache-storage-adapter-memcached', 'aliases' => array(), 'reference' => 'e67cfcb4e9ccca19890e6737262b91c1904f68da', 'dev_requirement' => \false), 'laminas/laminas-cache-storage-adapter-redis' => array('pretty_version' => '2.1.x-dev', 'version' => '2.1.9999999.9999999-dev', 'type' => 'library', 'install_path' => __DIR__ . '/../laminas/laminas-cache-storage-adapter-redis', 'aliases' => array(), 'reference' => '289717d10a89755d3f36f799565a3fb9c7e9ab24', 'dev_requirement' => \false), 'laminas/laminas-cache-storage-adapter-wincache' => array('pretty_version' => '1.1.x-dev', 'version' => '1.1.9999999.9999999-dev', 'type' => 'library', 'install_path' => __DIR__ . '/../laminas/laminas-cache-storage-adapter-wincache', 'aliases' => array(), 'reference' => '63835697f3c7cc3de551a54175ab77decff111aa', 'dev_requirement' => \false), 'laminas/laminas-cache-storage-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0')), 'laminas/laminas-diactoros' => array('pretty_version' => '2.12.x-dev', 'version' => '2.12.9999999.9999999-dev', 'type' => 'library', 'install_path' => __DIR__ . '/../laminas/laminas-diactoros', 'aliases' => array(), 'reference' => '2b8806080a2bcbe9c59e7aff120fcbb9e346a8a7', 'dev_requirement' => \false), 'laminas/laminas-eventmanager' => array('pretty_version' => '3.4.x-dev', 'version' => '3.4.9999999.9999999-dev', 'type' => 'library', 'install_path' => __DIR__ . '/../laminas/laminas-eventmanager', 'aliases' => array(), 'reference' => '63106a624bfdcc2a17c515188760ab1ffda37fc8', 'dev_requirement' => \false), 'laminas/laminas-json' => array('pretty_version' => '3.4.x-dev', 'version' => '3.4.9999999.9999999-dev', 'type' => 'library', 'install_path' => __DIR__ . '/../laminas/laminas-json', 'aliases' => array(), 'reference' => '9874aa22a5d060ff51aa04978fc0e788441ffeea', 'dev_requirement' => \false), 'laminas/laminas-log' => array('pretty_version' => '2.14.x-dev', 'version' => '2.14.9999999.9999999-dev', 'type' => 'library', 'install_path' => __DIR__ . '/../laminas/laminas-log', 'aliases' => array(), 'reference' => '39f3dcbd77fd0d84b190ff1332f5d3d28d56527e', 'dev_requirement' => \false), 'laminas/laminas-paginator' => array('pretty_version' => '2.11.x-dev', 'version' => '2.11.9999999.9999999-dev', 'type' => 'library', 'install_path' => __DIR__ . '/../laminas/laminas-paginator', 'aliases' => array(), 'reference' => '7f00d5fdecd1b4f67c8e84e6f6d57bbabda4b7d8', 'dev_requirement' => \false), 'laminas/laminas-serializer' => array('pretty_version' => '2.12.x-dev', 'version' => '2.12.9999999.9999999-dev', 'type' => 'library', 'install_path' => __DIR__ . '/../laminas/laminas-serializer', 'aliases' => array(), 'reference' => '2826fd71f202569c169456a4b84297da9ff630cd', 'dev_requirement' => \false), 'laminas/laminas-servicemanager' => array('pretty_version' => '3.7.x-dev', 'version' => '3.7.9999999.9999999-dev', 'type' => 'library', 'install_path' => __DIR__ . '/../laminas/laminas-servicemanager', 'aliases' => array(), 'reference' => '89152f8ebb149a42bedfaf321ae77c03262104b0', 'dev_requirement' => \false), 'laminas/laminas-stdlib' => array('pretty_version' => '3.11.x-dev', 'version' => '3.11.9999999.9999999-dev', 'type' => 'library', 'install_path' => __DIR__ . '/../laminas/laminas-stdlib', 'aliases' => array(), 'reference' => 'bba0920ee8ec88d90de77ba4c647f59102ccf3c1', 'dev_requirement' => \false), 'laminas/laminas-zendframework-bridge' => array('pretty_version' => '1.4.x-dev', 'version' => '1.4.9999999.9999999-dev', 'type' => 'library', 'install_path' => __DIR__ . '/../laminas/laminas-zendframework-bridge', 'aliases' => array(), 'reference' => '88bf037259869891afce6504cacc4f8a07b24d0f', 'dev_requirement' => \false), 'nesbot/carbon' => array('pretty_version' => 'dev-master', 'version' => 'dev-master', 'type' => 'library', 'install_path' => __DIR__ . '/../nesbot/carbon', 'aliases' => array(0 => '2.x-dev'), 'reference' => '88ac19cad69487d9345b65023f580920667d17de', 'dev_requirement' => \false), 'psr/cache' => array('pretty_version' => '1.0.1', 'version' => '1.0.1.0', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/cache', 'aliases' => array(), 'reference' => 'd11b50ad223250cf17b86e38383413f5a6764bf8', 'dev_requirement' => \false), 'psr/cache-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0')), 'psr/container' => array('pretty_version' => '1.1.x-dev', 'version' => '1.1.9999999.9999999-dev', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/container', 'aliases' => array(), 'reference' => '8622567409010282b7aeebe4bb841fe98b58dcaf', 'dev_requirement' => \false), 'psr/container-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0', 1 => '~1.0', 2 => '^1.0')), 'psr/http-client' => array('pretty_version' => 'dev-master', 'version' => 'dev-master', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/http-client', 'aliases' => array(0 => '1.0.x-dev'), 'reference' => '22b2ef5687f43679481615605d7a15c557ce85b1', 'dev_requirement' => \false), 'psr/http-factory' => array('pretty_version' => 'dev-master', 'version' => 'dev-master', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/http-factory', 'aliases' => array(0 => '1.0.x-dev'), 'reference' => '36fa03d50ff82abcae81860bdaf4ed9a1510c7cd', 'dev_requirement' => \false), 'psr/http-factory-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0')), 'psr/http-message' => array('pretty_version' => 'dev-master', 'version' => 'dev-master', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/http-message', 'aliases' => array(0 => '1.0.x-dev'), 'reference' => 'efd67d1dc14a7ef4fc4e518e7dee91c271d524e4', 'dev_requirement' => \false), 'psr/http-message-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0')), 'psr/log' => array('pretty_version' => '1.1.4', 'version' => '1.1.4.0', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/log', 'aliases' => array(), 'reference' => 'd49695b909c3b7628b6289db5479a1c204601f11', 'dev_requirement' => \false), 'psr/log-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0.0')), 'psr/simple-cache' => array('pretty_version' => '1.0.1', 'version' => '1.0.1.0', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/simple-cache', 'aliases' => array(), 'reference' => '408d5eafb83c57f6365a3ca330ff23aa4a5fa39b', 'dev_requirement' => \false), 'psr/simple-cache-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0')), 'symfony/deprecation-contracts' => array('pretty_version' => '2.5.x-dev', 'version' => '2.5.9999999.9999999-dev', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'aliases' => array(), 'reference' => 'e8b495ea28c1d97b5e0c121748d6f9b53d075c66', 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => '5.4.x-dev', 'version' => '5.4.9999999.9999999-dev', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'reference' => '9b630f3427f3ebe7cd346c277a1408b00249dad9', 'dev_requirement' => \false), 'symfony/polyfill-mbstring' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-mbstring', 'aliases' => array(0 => '1.26.x-dev'), 'reference' => '9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e', 'dev_requirement' => \false), 'symfony/polyfill-php80' => array('pretty_version' => 'dev-main', 'version' => 'dev-main', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php80', 'aliases' => array(0 => '1.26.x-dev'), 'reference' => 'cfa0ae98841b9e461207c13ab093d76b0fa7bace', 'dev_requirement' => \false), 'symfony/translation' => array('pretty_version' => '5.4.x-dev', 'version' => '5.4.9999999.9999999-dev', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/translation', 'aliases' => array(), 'reference' => '1639abc1177d26bcd4320e535e664cef067ab0ca', 'dev_requirement' => \false), 'symfony/translation-contracts' => array('pretty_version' => '2.5.x-dev', 'version' => '2.5.9999999.9999999-dev', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/translation-contracts', 'aliases' => array(), 'reference' => '1211df0afa701e45a04253110e959d4af4ef0f07', 'dev_requirement' => \false), 'symfony/translation-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '2.3')), 'voku/portable-ascii' => array('pretty_version' => '1.6.1', 'version' => '1.6.1.0', 'type' => 'library', 'install_path' => __DIR__ . '/../voku/portable-ascii', 'aliases' => array(), 'reference' => '87337c91b9dfacee02452244ee14ab3c43bc485a', 'dev_requirement' => \false), 'webmozart/assert' => array('pretty_version' => '1.11.0', 'version' => '1.11.0.0', 'type' => 'library', 'install_path' => __DIR__ . '/../webmozart/assert', 'aliases' => array(), 'reference' => '11cb2199493b2f8a3b53e7f19068fc6aac760991', 'dev_requirement' => \false), 'zendframework/zend-servicemanager' => array('dev_requirement' => \false, 'replaced' => array(0 => '^3.4.0')))); -
jch-optimize/trunk/media/assets/jscss.php
r2748708 r2824689 42 42 wp_register_plugin_realpath( $plugin ); 43 43 44 require_once( $plugin);44 define( '_WP_EXEC', '1' ); 45 45 46 define( 'JCH_PLUGIN_FILE', $plugin ); 47 48 define( 'JCH_PLUGIN_URL', plugin_dir_url( JCH_PLUGIN_FILE ) ); 49 define( 'JCH_PLUGIN_DIR', plugin_dir_path( JCH_PLUGIN_FILE ) ); 50 define( 'JCH_CACHE_DIR', WP_CONTENT_DIR . '/cache/jch-optimize/' ); 51 define( 'JCH_CACHE_URL', content_url() . '/cache/jch-optimize/' ); 52 53 $pluginDir = dirname( $plugin ); 54 55 require_once $pluginDir . '/autoload.php'; 46 56 47 57 try -
jch-optimize/trunk/readme.txt
r2807121 r2824689 3 3 Contributors: codealfa 4 4 Tags: performance, pagespeed, cache, optimize, seo 5 Tested up to: 6. 0.36 Stable tag: 3.2. 05 Tested up to: 6.1.1 6 Stable tag: 3.2.1 7 7 License: GPLv3 or later 8 8 Requires at least: 5.0 … … 81 81 82 82 == Changelog == 83 84 = 3.2.1 = 85 * Added setting to optionally disable deletion of expired cache. 86 * Added settings for excluding critical modules in Reduce Unused JavaScript. [Pro version only] 87 * Bug fix: Some external domains were not being preconnected when Optimize Fonts is enabled. [Pro version only] 88 * Bug fix: Imported Google fonts were not being handled properly. [Pro version only] 89 * Bug fix: Reduce Unused JavaScript wasn't working properly on some sites. [Pro version only] 90 83 91 = 3.2.0 = 84 92 * Improve method to generate cache key for Optimize CSS Delivery feature to prevent excess generating of cache. -
jch-optimize/trunk/version.php
r2807121 r2824689 15 15 defined( '_JCH_EXEC' ) or die; 16 16 17 const JCH_VERSION = '3.2. 0';18 const JCH_DATE = '2022-1 0-29';17 const JCH_VERSION = '3.2.1'; 18 const JCH_DATE = '2022-11-26'; 19 19 const JCH_PRO = '0'; 20 20 const JCH_DEVELOP = '0';
Note: See TracChangeset
for help on using the changeset viewer.