diff --git a/composer.lock b/composer.lock index 66f4b95..b692a0f 100644 --- a/composer.lock +++ b/composer.lock @@ -388,12 +388,12 @@ "source": { "type": "git", "url": "https://github.com/tbela99/css.git", - "reference": "66357d1655adee242c91093fdca40a8d2696df4a" + "reference": "8156a0f72deb264573b0262b9ffa39f7945e05f6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/tbela99/css/zipball/66357d1655adee242c91093fdca40a8d2696df4a", - "reference": "66357d1655adee242c91093fdca40a8d2696df4a", + "url": "https://api.github.com/repos/tbela99/css/zipball/8156a0f72deb264573b0262b9ffa39f7945e05f6", + "reference": "8156a0f72deb264573b0262b9ffa39f7945e05f6", "shasum": "" }, "require": { @@ -435,7 +435,7 @@ "issues": "https://github.com/tbela99/css/issues", "source": "https://github.com/tbela99/css/tree/php56-backport" }, - "time": "2022-07-01T19:53:21+00:00" + "time": "2022-07-14T01:12:39+00:00" } ], "packages-dev": [], @@ -454,5 +454,5 @@ "ext-simplexml": "*" }, "platform-dev": [], - "plugin-api-version": "2.3.0" + "plugin-api-version": "2.1.0" } diff --git a/gzip.xml b/gzip.xml index fd8a545..5cc1513 100644 --- a/gzip.xml +++ b/gzip.xml @@ -7,10 +7,9 @@ Released under dual license LGPL v3 | MIT contact@tbela.net https://tbela.net - 3.1.1 + 3.1.2 PLG_SYSTEM_GZIP_XML_DESCRIPTION - docs css fields helpers @@ -19,7 +18,6 @@ language worker/dist worker/css - docs/ push vendor autoload.php diff --git a/package.json b/package.json index acdacaa..1a9ac84 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "gzip", - "version": "3.1.1", + "version": "3.1.2", "scripts": { "build": "./build.sh", "rollup-config": "./node_modules/rollup/dist/bin/rollup ./config/rollup/rollup.js -f iife --name=rollupConfig > ./rollup.config.js", diff --git a/vendor/composer/ClassLoader.php b/vendor/composer/ClassLoader.php index afef3fa..0cd6055 100644 --- a/vendor/composer/ClassLoader.php +++ b/vendor/composer/ClassLoader.php @@ -149,7 +149,7 @@ public function getFallbackDirsPsr4() /** * @return string[] Array of classname => path - * @psalm-return array + * @psalm-var array */ public function getClassMap() { diff --git a/vendor/composer/InstalledVersions.php b/vendor/composer/InstalledVersions.php index 41bc143..d50e0c9 100644 --- a/vendor/composer/InstalledVersions.php +++ b/vendor/composer/InstalledVersions.php @@ -21,8 +21,6 @@ * See also https://getcomposer.org/doc/07-runtime.md#installed-versions * * To require its presence, you can require `composer-runtime-api ^2.0` - * - * @final */ class InstalledVersions { diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index 0fb0a2c..b26f1b1 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -2,7 +2,7 @@ // autoload_classmap.php @generated by Composer -$vendorDir = dirname(__DIR__); +$vendorDir = dirname(dirname(__FILE__)); $baseDir = dirname($vendorDir); return array( diff --git a/vendor/composer/autoload_files.php b/vendor/composer/autoload_files.php index ee3a2d6..315ab83 100644 --- a/vendor/composer/autoload_files.php +++ b/vendor/composer/autoload_files.php @@ -2,7 +2,7 @@ // autoload_files.php @generated by Composer -$vendorDir = dirname(__DIR__); +$vendorDir = dirname(dirname(__FILE__)); $baseDir = dirname($vendorDir); return array( diff --git a/vendor/composer/autoload_namespaces.php b/vendor/composer/autoload_namespaces.php index 15a2ff3..b7fc012 100644 --- a/vendor/composer/autoload_namespaces.php +++ b/vendor/composer/autoload_namespaces.php @@ -2,7 +2,7 @@ // autoload_namespaces.php @generated by Composer -$vendorDir = dirname(__DIR__); +$vendorDir = dirname(dirname(__FILE__)); $baseDir = dirname($vendorDir); return array( diff --git a/vendor/composer/autoload_psr4.php b/vendor/composer/autoload_psr4.php index da7d2e3..4dcf4e8 100644 --- a/vendor/composer/autoload_psr4.php +++ b/vendor/composer/autoload_psr4.php @@ -2,7 +2,7 @@ // autoload_psr4.php @generated by Composer -$vendorDir = dirname(__DIR__); +$vendorDir = dirname(dirname(__FILE__)); $baseDir = dirname($vendorDir); return array( diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php index 9a18e82..58a29dd 100644 --- a/vendor/composer/autoload_real.php +++ b/vendor/composer/autoload_real.php @@ -25,15 +25,38 @@ public static function getLoader() require __DIR__ . '/platform_check.php'; spl_autoload_register(array('ComposerAutoloaderInit25e05d6f03a126040f1a3cf5082f1706', 'loadClassLoader'), true, true); - self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); + self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__))); spl_autoload_unregister(array('ComposerAutoloaderInit25e05d6f03a126040f1a3cf5082f1706', 'loadClassLoader')); - require __DIR__ . '/autoload_static.php'; - \Composer\Autoload\ComposerStaticInit25e05d6f03a126040f1a3cf5082f1706::getInitializer($loader)(); + $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); + if ($useStaticLoader) { + require __DIR__ . '/autoload_static.php'; + + call_user_func(\Composer\Autoload\ComposerStaticInit25e05d6f03a126040f1a3cf5082f1706::getInitializer($loader)); + } else { + $map = require __DIR__ . '/autoload_namespaces.php'; + foreach ($map as $namespace => $path) { + $loader->set($namespace, $path); + } + + $map = require __DIR__ . '/autoload_psr4.php'; + foreach ($map as $namespace => $path) { + $loader->setPsr4($namespace, $path); + } + + $classMap = require __DIR__ . '/autoload_classmap.php'; + if ($classMap) { + $loader->addClassMap($classMap); + } + } $loader->register(true); - $includeFiles = \Composer\Autoload\ComposerStaticInit25e05d6f03a126040f1a3cf5082f1706::$files; + if ($useStaticLoader) { + $includeFiles = Composer\Autoload\ComposerStaticInit25e05d6f03a126040f1a3cf5082f1706::$files; + } else { + $includeFiles = require __DIR__ . '/autoload_files.php'; + } foreach ($includeFiles as $fileIdentifier => $file) { composerRequire25e05d6f03a126040f1a3cf5082f1706($fileIdentifier, $file); } @@ -42,16 +65,11 @@ public static function getLoader() } } -/** - * @param string $fileIdentifier - * @param string $file - * @return void - */ function composerRequire25e05d6f03a126040f1a3cf5082f1706($fileIdentifier, $file) { if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { - $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true; - require $file; + + $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true; } } diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 5e4454c..2ea912d 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -404,12 +404,12 @@ "source": { "type": "git", "url": "https://github.com/tbela99/css.git", - "reference": "66357d1655adee242c91093fdca40a8d2696df4a" + "reference": "8156a0f72deb264573b0262b9ffa39f7945e05f6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/tbela99/css/zipball/66357d1655adee242c91093fdca40a8d2696df4a", - "reference": "66357d1655adee242c91093fdca40a8d2696df4a", + "url": "https://api.github.com/repos/tbela99/css/zipball/8156a0f72deb264573b0262b9ffa39f7945e05f6", + "reference": "8156a0f72deb264573b0262b9ffa39f7945e05f6", "shasum": "" }, "require": { @@ -420,7 +420,7 @@ "php": ">=5.6.40", "symfony/polyfill-mbstring": "v1.19.0" }, - "time": "2022-07-01T19:53:21+00:00", + "time": "2022-07-14T01:12:39+00:00", "type": "library", "installation-source": "dist", "autoload": { diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 31b0461..a1b5c0e 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -5,7 +5,7 @@ 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), - 'reference' => '79e7040ecf7a4e5cf7f105c0b5974c83d9753d64', + 'reference' => '17661ad5b68cea101fa6d28937270e9389ae4f89', 'name' => '__root__', 'dev' => true, ), @@ -16,7 +16,7 @@ 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), - 'reference' => '79e7040ecf7a4e5cf7f105c0b5974c83d9753d64', + 'reference' => '17661ad5b68cea101fa6d28937270e9389ae4f89', 'dev_requirement' => false, ), 'axy/backtrace' => array( @@ -88,7 +88,7 @@ 'type' => 'library', 'install_path' => __DIR__ . '/../tbela99/css', 'aliases' => array(), - 'reference' => '66357d1655adee242c91093fdca40a8d2696df4a', + 'reference' => '8156a0f72deb264573b0262b9ffa39f7945e05f6', 'dev_requirement' => false, ), ), diff --git a/vendor/tbela99/css/src/TBela/CSS/ArrayTrait.php b/vendor/tbela99/css/src/TBela/CSS/ArrayTrait.php index 23b3db2..eccd01a 100644 --- a/vendor/tbela99/css/src/TBela/CSS/ArrayTrait.php +++ b/vendor/tbela99/css/src/TBela/CSS/ArrayTrait.php @@ -7,7 +7,7 @@ * * - Getter syntax: $value = $element['value']; // $value = $element->getValue() * - Setter syntax: $element['value'] = $value; // $element->setValue($value); - * - Properties: $element['childNodes'], $element['firstChild'], $element['lastChild'] + * - Properties: $element['childNodes'], $element['firstChild'], $element['lastChild'], $element['parentNode'] * @package TBela\CSS */ trait ArrayTrait @@ -62,7 +62,7 @@ public function offsetExists($offset) { return is_callable([$this, 'get' . $offset]) || is_callable([$this, 'set' . $offset]) || - (isset($this->ast->children) && in_array($offset, ['childNodes', 'firstChild', 'lastChild'])); + (isset($this->ast->children) && in_array($offset, ['childNodes', 'firstChild', 'lastChild', 'parentNode'])); } /** @@ -91,6 +91,11 @@ public function offsetGet($offset) return call_user_func([$this, 'get' . $offset]); } + if ($offset == 'parentNode') { + + return $this->parent; + } + if (isset($this->ast->children)) { switch ($offset) { @@ -105,8 +110,7 @@ public function offsetGet($offset) case 'lastChild': - $count = count($this->ast->children); - return $count > 0 ? $this->ast->children[$count - 1] : null; + return end($this->ast->children); } } diff --git a/vendor/tbela99/css/src/TBela/CSS/Element.php b/vendor/tbela99/css/src/TBela/CSS/Element.php index d24e62b..56b34b1 100644 --- a/vendor/tbela99/css/src/TBela/CSS/Element.php +++ b/vendor/tbela99/css/src/TBela/CSS/Element.php @@ -631,7 +631,7 @@ public function __toString() catch (Exception $ex) { - error_log($ex->getTraceAsString()); + error_log($ex); } return ''; diff --git a/vendor/tbela99/css/src/TBela/CSS/Element/Rule.php b/vendor/tbela99/css/src/TBela/CSS/Element/Rule.php index f0cb99c..64fd3d5 100644 --- a/vendor/tbela99/css/src/TBela/CSS/Element/Rule.php +++ b/vendor/tbela99/css/src/TBela/CSS/Element/Rule.php @@ -102,6 +102,7 @@ public function addSelector($selector) * Remove a css selector * @param array|string $selector * @return Rule + * @throws Exception */ public function removeSelector($selector) { @@ -111,7 +112,15 @@ public function removeSelector($selector) $selector = array_map('trim', explode(',', $selector)); } - $this->ast->selector = array_diff($this->ast->selector, $selector); + $selector = array_values(array_diff($this->ast->selector, $selector)); + + if (empty($selector)) { + + throw new \Exception(sprintf('the selector is empty: %s:%s:%s', isset($this->ast->src) ? $this->ast->src : '', isset($this->ast->position->line) ? $this->ast->position->line : '', isset($this->ast->position->column) ? $this->ast->position->column : ''), 400); + } + + $this->ast->selector = $selector; + return $this; } diff --git a/vendor/tbela99/css/src/TBela/CSS/Renderer.php b/vendor/tbela99/css/src/TBela/CSS/Renderer.php index 742339d..44e724e 100644 --- a/vendor/tbela99/css/src/TBela/CSS/Renderer.php +++ b/vendor/tbela99/css/src/TBela/CSS/Renderer.php @@ -618,9 +618,18 @@ protected function renderSelector($ast, $level) $indent = $this->indents[$level]; - if (is_array($selector) && is_string($selector[0])) { + if (is_array($selector)) { - $selector = implode(','.$this->options['indent'], $selector); + if (empty($selector)) { +; + // the selector is empty! + throw new \Exception(sprintf('the selector is empty: %s:%s:%s', isset($ast->src) ? $ast->src : '', isset($ast->position->line) ? $ast->position->line :'', isset($ast->position->column) ? $ast->position->column : ''), 400); + } + + if (is_string($selector[0])) { + + $selector = implode(','.$this->options['indent'], $selector); + } } if (is_string($selector)) { diff --git a/vendor/tbela99/css/src/TBela/CSS/Value.php b/vendor/tbela99/css/src/TBela/CSS/Value.php index 108bbbf..b31627b 100644 --- a/vendor/tbela99/css/src/TBela/CSS/Value.php +++ b/vendor/tbela99/css/src/TBela/CSS/Value.php @@ -1196,10 +1196,10 @@ public static function getTokens($string, $capture_whitespace = true, $context = $tokens[] = (object)['type' => $context === 'attribute' ? 'operator' : 'css-string', 'value' => '=']; } else if ($context === 'attribute') { - $tokens[] = (object)['type' => 'operator', 'value' => $string[$i++] . '=']; + $tokens[] = (object)['type' => 'operator', 'value' => $string[$i++] .$string[$i]]; } else { - $tokens[] = (object)['type' => 'css-string', 'value' => $string[$i++]]; + $tokens[] = (object)['type' => 'css-string', 'value' => $string[$i]]; } break; diff --git a/vendor/tbela99/css/src/TBela/CSS/Value/Unit.php b/vendor/tbela99/css/src/TBela/CSS/Value/Unit.php index 6223717..ce1c458 100644 --- a/vendor/tbela99/css/src/TBela/CSS/Value/Unit.php +++ b/vendor/tbela99/css/src/TBela/CSS/Value/Unit.php @@ -37,13 +37,36 @@ public function render(array $options = []) public static function doRender($data, array $options = []) { - if ($data->value == 0) { + /** + * @see https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Types#quantities + */ + if ($data->value == 0 && !in_array(strtolower($data->unit), ['s', 'ms', 'hz', 'khz', 'dpi', 'dpcm', 'dppx', 'x'])) { return '0'.(isset($options['omit_unit']) && isset($data->unit) && $options['omit_unit'] == false ? $data->unit : ''); } $unit = !empty($options['omit_unit']) && $options['omit_unit'] == $data->unit ? '' : $data->unit; + if ($data->value == 0) { + + $unit = strtolower($data->unit); + + if ($unit == 'ms') { + + $unit = 's'; + } + + else if ($unit == 'khz') { + + $unit = 'hz'; + } + } + + if ($unit == 'dppx') { + + $unit = 'x'; + } + if (!empty($options['compress'])) { $value = $data->value;