Fixes for SCSS compiler

This commit is contained in:
Andy Miller
2023-05-08 18:21:03 -06:00
parent 8fd500d381
commit beef4420ca
5 changed files with 45 additions and 36 deletions

View File

@@ -10,6 +10,7 @@
namespace Grav\Plugin\Admin; namespace Grav\Plugin\Admin;
use ScssPhp\ScssPhp\Compiler; use ScssPhp\ScssPhp\Compiler;
use ScssPhp\ScssPhp\ValueConverter;
class ScssCompiler class ScssCompiler
{ {
@@ -31,7 +32,13 @@ class ScssCompiler
public function setVariables(array $variables) public function setVariables(array $variables)
{ {
$this->compiler()->setVariables($variables); // $parsed = ValueConverter::fromPhp($variables);
$parsed = [];
foreach ($variables as $key => $value) {
$parsed[$key] = ValueConverter::parseValue($value);
}
$this->compiler()->addVariables($parsed);
return $this; return $this;
} }
@@ -55,7 +62,7 @@ class ScssCompiler
foreach ($input_paths as $input_file) { foreach ($input_paths as $input_file) {
$input .= trim(file_get_contents($input_file)) . "\n\n"; $input .= trim(file_get_contents($input_file)) . "\n\n";
} }
$output = $this->compiler()->compile($input); $output = $this->compiler()->compileString($input)->getCss();
file_put_contents($output_file, $output); file_put_contents($output_file, $output);
return $this; return $this;
} }

View File

@@ -22,7 +22,7 @@
"require": { "require": {
"php": "^7.3.6 || ^8.0", "php": "^7.3.6 || ^8.0",
"ext-json": "*", "ext-json": "*",
"scssphp/scssphp": "^1.7", "scssphp/scssphp": "^1.11",
"laminas/laminas-zendframework-bridge": "^1.4", "laminas/laminas-zendframework-bridge": "^1.4",
"p3k/picofeed": "@stable" "p3k/picofeed": "@stable"
}, },

47
composer.lock generated
View File

@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"content-hash": "1f6a6bec99c3a85ac753a1548c22f5d7", "content-hash": "bc8a9ba032ce28a2c93282b6f1a6e7b9",
"packages": [ "packages": [
{ {
"name": "laminas/laminas-xml", "name": "laminas/laminas-xml",
@@ -900,16 +900,16 @@
}, },
{ {
"name": "guzzlehttp/psr7", "name": "guzzlehttp/psr7",
"version": "1.9.0", "version": "1.9.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/guzzle/psr7.git", "url": "https://github.com/guzzle/psr7.git",
"reference": "e98e3e6d4f86621a9b75f623996e6bbdeb4b9318" "reference": "e4490cabc77465aaee90b20cfc9a770f8c04be6b"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/guzzle/psr7/zipball/e98e3e6d4f86621a9b75f623996e6bbdeb4b9318", "url": "https://api.github.com/repos/guzzle/psr7/zipball/e4490cabc77465aaee90b20cfc9a770f8c04be6b",
"reference": "e98e3e6d4f86621a9b75f623996e6bbdeb4b9318", "reference": "e4490cabc77465aaee90b20cfc9a770f8c04be6b",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -928,11 +928,6 @@
"laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses"
}, },
"type": "library", "type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.9-dev"
}
},
"autoload": { "autoload": {
"files": [ "files": [
"src/functions_include.php" "src/functions_include.php"
@@ -990,7 +985,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/guzzle/psr7/issues", "issues": "https://github.com/guzzle/psr7/issues",
"source": "https://github.com/guzzle/psr7/tree/1.9.0" "source": "https://github.com/guzzle/psr7/tree/1.9.1"
}, },
"funding": [ "funding": [
{ {
@@ -1006,7 +1001,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2022-06-20T21:43:03+00:00" "time": "2023-04-17T16:00:37+00:00"
}, },
{ {
"name": "myclabs/deep-copy", "name": "myclabs/deep-copy",
@@ -1834,25 +1829,25 @@
}, },
{ {
"name": "psr/http-message", "name": "psr/http-message",
"version": "1.0.1", "version": "1.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/php-fig/http-message.git", "url": "https://github.com/php-fig/http-message.git",
"reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", "url": "https://api.github.com/repos/php-fig/http-message/zipball/cb6ce4845ce34a8ad9e68117c10ee90a29919eba",
"reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=5.3.0" "php": "^7.2 || ^8.0"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.0.x-dev" "dev-master": "1.1.x-dev"
} }
}, },
"autoload": { "autoload": {
@@ -1881,9 +1876,9 @@
"response" "response"
], ],
"support": { "support": {
"source": "https://github.com/php-fig/http-message/tree/master" "source": "https://github.com/php-fig/http-message/tree/1.1"
}, },
"time": "2016-08-06T14:39:51+00:00" "time": "2023-04-04T09:50:52+00:00"
}, },
{ {
"name": "ralouphie/getallheaders", "name": "ralouphie/getallheaders",
@@ -2060,16 +2055,16 @@
}, },
{ {
"name": "sebastian/diff", "name": "sebastian/diff",
"version": "3.0.3", "version": "3.0.4",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/diff.git", "url": "https://github.com/sebastianbergmann/diff.git",
"reference": "14f72dd46eaf2f2293cbe79c93cc0bc43161a211" "reference": "6296a0c086dd0117c1b78b059374d7fcbe7545ae"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/14f72dd46eaf2f2293cbe79c93cc0bc43161a211", "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/6296a0c086dd0117c1b78b059374d7fcbe7545ae",
"reference": "14f72dd46eaf2f2293cbe79c93cc0bc43161a211", "reference": "6296a0c086dd0117c1b78b059374d7fcbe7545ae",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -2114,7 +2109,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/sebastianbergmann/diff/issues", "issues": "https://github.com/sebastianbergmann/diff/issues",
"source": "https://github.com/sebastianbergmann/diff/tree/3.0.3" "source": "https://github.com/sebastianbergmann/diff/tree/3.0.4"
}, },
"funding": [ "funding": [
{ {
@@ -2122,7 +2117,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2020-11-30T07:59:04+00:00" "time": "2023-05-07T05:30:20+00:00"
}, },
{ {
"name": "sebastian/environment", "name": "sebastian/environment",

View File

@@ -98,7 +98,7 @@ class InstalledVersions
{ {
foreach (self::getInstalled() as $installed) { foreach (self::getInstalled() as $installed) {
if (isset($installed['versions'][$packageName])) { if (isset($installed['versions'][$packageName])) {
return $includeDevRequirements || empty($installed['versions'][$packageName]['dev_requirement']); return $includeDevRequirements || !isset($installed['versions'][$packageName]['dev_requirement']) || $installed['versions'][$packageName]['dev_requirement'] === false;
} }
} }
@@ -119,7 +119,7 @@ class InstalledVersions
*/ */
public static function satisfies(VersionParser $parser, $packageName, $constraint) public static function satisfies(VersionParser $parser, $packageName, $constraint)
{ {
$constraint = $parser->parseConstraints($constraint); $constraint = $parser->parseConstraints((string) $constraint);
$provided = $parser->parseConstraints(self::getVersionRanges($packageName)); $provided = $parser->parseConstraints(self::getVersionRanges($packageName));
return $provided->matches($constraint); return $provided->matches($constraint);
@@ -328,7 +328,9 @@ class InstalledVersions
if (isset(self::$installedByVendor[$vendorDir])) { if (isset(self::$installedByVendor[$vendorDir])) {
$installed[] = self::$installedByVendor[$vendorDir]; $installed[] = self::$installedByVendor[$vendorDir];
} elseif (is_file($vendorDir.'/composer/installed.php')) { } elseif (is_file($vendorDir.'/composer/installed.php')) {
$installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php'; /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */
$required = require $vendorDir.'/composer/installed.php';
$installed[] = self::$installedByVendor[$vendorDir] = $required;
if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) { if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
self::$installed = $installed[count($installed) - 1]; self::$installed = $installed[count($installed) - 1];
} }
@@ -340,12 +342,17 @@ class InstalledVersions
// only require the installed.php file if this file is loaded from its dumped location, // only require the installed.php file if this file is loaded from its dumped location,
// and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937 // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
if (substr(__DIR__, -8, 1) !== 'C') { if (substr(__DIR__, -8, 1) !== 'C') {
self::$installed = require __DIR__ . '/installed.php'; /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */
$required = require __DIR__ . '/installed.php';
self::$installed = $required;
} else { } else {
self::$installed = array(); self::$installed = array();
} }
} }
$installed[] = self::$installed;
if (self::$installed !== array()) {
$installed[] = self::$installed;
}
return $installed; return $installed;
} }

View File

@@ -3,7 +3,7 @@
'name' => 'getgrav/grav-plugin-admin', 'name' => 'getgrav/grav-plugin-admin',
'pretty_version' => 'dev-develop', 'pretty_version' => 'dev-develop',
'version' => 'dev-develop', 'version' => 'dev-develop',
'reference' => '5f1b3e1e4a413bf5e45e99b8d5aa174b6806c12c', 'reference' => '8fd500d38179d1b6d05c21b3a5e7b76b7b2a61cf',
'type' => 'grav-plugin', 'type' => 'grav-plugin',
'install_path' => __DIR__ . '/../../', 'install_path' => __DIR__ . '/../../',
'aliases' => array(), 'aliases' => array(),
@@ -13,7 +13,7 @@
'getgrav/grav-plugin-admin' => array( 'getgrav/grav-plugin-admin' => array(
'pretty_version' => 'dev-develop', 'pretty_version' => 'dev-develop',
'version' => 'dev-develop', 'version' => 'dev-develop',
'reference' => '5f1b3e1e4a413bf5e45e99b8d5aa174b6806c12c', 'reference' => '8fd500d38179d1b6d05c21b3a5e7b76b7b2a61cf',
'type' => 'grav-plugin', 'type' => 'grav-plugin',
'install_path' => __DIR__ . '/../../', 'install_path' => __DIR__ . '/../../',
'aliases' => array(), 'aliases' => array(),