mirror of
				https://github.com/getgrav/grav-plugin-admin.git
				synced 2025-10-31 18:35:57 +01:00 
			
		
		
		
	| @@ -22,20 +22,18 @@ | ||||
|     "require": { | ||||
|         "php": "^7.3.6 || ^8.0", | ||||
|         "ext-json": "*", | ||||
|         "scssphp/scssphp": "^1.11", | ||||
|         "laminas/laminas-zendframework-bridge": "^1.4", | ||||
|         "p3k/picofeed": "@stable" | ||||
|         "scssphp/scssphp": "^1.13", | ||||
|         "p3k/picofeed": "^1.0" | ||||
|     }, | ||||
|     "require-dev": { | ||||
|         "codeception/codeception": "^2.4", | ||||
|         "fzaninotto/faker": "^1.8", | ||||
|         "codeception/codeception": "^2.5", | ||||
|         "fzaninotto/faker": "^1.9", | ||||
|         "symfony/yaml": "~4.4", | ||||
|         "symfony/console": "~4.4", | ||||
|         "symfony/finder": "~4.4", | ||||
|         "symfony/event-dispatcher": "~4.4" | ||||
|     }, | ||||
|     "replace": { | ||||
|         "symfony/polyfill-php72": "*", | ||||
|         "symfony/polyfill-php73": "*" | ||||
|     }, | ||||
|     "autoload": { | ||||
|   | ||||
							
								
								
									
										532
									
								
								composer.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										532
									
								
								composer.lock
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										5
									
								
								vendor/bin/pscss
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								vendor/bin/pscss
									
									
									
									
										vendored
									
									
								
							| @@ -112,9 +112,8 @@ if (PHP_VERSION_ID < 80000) { | ||||
|         (function_exists('stream_get_wrappers') && in_array('phpvfscomposer', stream_get_wrappers(), true)) | ||||
|         || (function_exists('stream_wrapper_register') && stream_wrapper_register('phpvfscomposer', 'Composer\BinProxyWrapper')) | ||||
|     ) { | ||||
|         include("phpvfscomposer://" . __DIR__ . '/..'.'/scssphp/scssphp/bin/pscss'); | ||||
|         exit(0); | ||||
|         return include("phpvfscomposer://" . __DIR__ . '/..'.'/scssphp/scssphp/bin/pscss'); | ||||
|     } | ||||
| } | ||||
|  | ||||
| include __DIR__ . '/..'.'/scssphp/scssphp/bin/pscss'; | ||||
| return include __DIR__ . '/..'.'/scssphp/scssphp/bin/pscss'; | ||||
|   | ||||
							
								
								
									
										10
									
								
								vendor/composer/autoload_files.php
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								vendor/composer/autoload_files.php
									
									
									
									
										vendored
									
									
								
							| @@ -1,10 +0,0 @@ | ||||
| <?php | ||||
|  | ||||
| // autoload_files.php @generated by Composer | ||||
|  | ||||
| $vendorDir = dirname(__DIR__); | ||||
| $baseDir = dirname($vendorDir); | ||||
|  | ||||
| return array( | ||||
|     '7e9bd612cc444b3eed788ebbe46263a0' => $vendorDir . '/laminas/laminas-zendframework-bridge/src/autoload.php', | ||||
| ); | ||||
							
								
								
									
										1
									
								
								vendor/composer/autoload_psr4.php
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								vendor/composer/autoload_psr4.php
									
									
									
									
										vendored
									
									
								
							| @@ -7,7 +7,6 @@ $baseDir = dirname($vendorDir); | ||||
|  | ||||
| return array( | ||||
|     'ScssPhp\\ScssPhp\\' => array($vendorDir . '/scssphp/scssphp/src'), | ||||
|     'Laminas\\ZendFrameworkBridge\\' => array($vendorDir . '/laminas/laminas-zendframework-bridge/src'), | ||||
|     'Laminas\\Xml\\' => array($vendorDir . '/laminas/laminas-xml/src'), | ||||
|     'Grav\\Plugin\\Admin\\' => array($baseDir . '/classes/plugin'), | ||||
| ); | ||||
|   | ||||
							
								
								
									
										12
									
								
								vendor/composer/autoload_real.php
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								vendor/composer/autoload_real.php
									
									
									
									
										vendored
									
									
								
							| @@ -33,18 +33,6 @@ class ComposerAutoloaderInit98c98c1c3d67f21a128f935fe4a74897 | ||||
|  | ||||
|         $loader->register(true); | ||||
|  | ||||
|         $filesToLoad = \Composer\Autoload\ComposerStaticInit98c98c1c3d67f21a128f935fe4a74897::$files; | ||||
|         $requireFile = \Closure::bind(static function ($fileIdentifier, $file) { | ||||
|             if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { | ||||
|                 $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true; | ||||
|  | ||||
|                 require $file; | ||||
|             } | ||||
|         }, null, null); | ||||
|         foreach ($filesToLoad as $fileIdentifier => $file) { | ||||
|             $requireFile($fileIdentifier, $file); | ||||
|         } | ||||
|  | ||||
|         return $loader; | ||||
|     } | ||||
| } | ||||
|   | ||||
							
								
								
									
										9
									
								
								vendor/composer/autoload_static.php
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								vendor/composer/autoload_static.php
									
									
									
									
										vendored
									
									
								
							| @@ -6,10 +6,6 @@ namespace Composer\Autoload; | ||||
|  | ||||
| class ComposerStaticInit98c98c1c3d67f21a128f935fe4a74897 | ||||
| { | ||||
|     public static $files = array ( | ||||
|         '7e9bd612cc444b3eed788ebbe46263a0' => __DIR__ . '/..' . '/laminas/laminas-zendframework-bridge/src/autoload.php', | ||||
|     ); | ||||
|  | ||||
|     public static $prefixLengthsPsr4 = array ( | ||||
|         'S' =>  | ||||
|         array ( | ||||
| @@ -17,7 +13,6 @@ class ComposerStaticInit98c98c1c3d67f21a128f935fe4a74897 | ||||
|         ), | ||||
|         'L' =>  | ||||
|         array ( | ||||
|             'Laminas\\ZendFrameworkBridge\\' => 28, | ||||
|             'Laminas\\Xml\\' => 12, | ||||
|         ), | ||||
|         'G' =>  | ||||
| @@ -31,10 +26,6 @@ class ComposerStaticInit98c98c1c3d67f21a128f935fe4a74897 | ||||
|         array ( | ||||
|             0 => __DIR__ . '/..' . '/scssphp/scssphp/src', | ||||
|         ), | ||||
|         'Laminas\\ZendFrameworkBridge\\' =>  | ||||
|         array ( | ||||
|             0 => __DIR__ . '/..' . '/laminas/laminas-zendframework-bridge/src', | ||||
|         ), | ||||
|         'Laminas\\Xml\\' =>  | ||||
|         array ( | ||||
|             0 => __DIR__ . '/..' . '/laminas/laminas-xml/src', | ||||
|   | ||||
							
								
								
									
										85
									
								
								vendor/composer/installed.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										85
									
								
								vendor/composer/installed.json
									
									
									
									
										vendored
									
									
								
							| @@ -63,71 +63,6 @@ | ||||
|             ], | ||||
|             "install-path": "../laminas/laminas-xml" | ||||
|         }, | ||||
|         { | ||||
|             "name": "laminas/laminas-zendframework-bridge", | ||||
|             "version": "1.4.1", | ||||
|             "version_normalized": "1.4.1.0", | ||||
|             "source": { | ||||
|                 "type": "git", | ||||
|                 "url": "https://github.com/laminas/laminas-zendframework-bridge.git", | ||||
|                 "reference": "88bf037259869891afce6504cacc4f8a07b24d0f" | ||||
|             }, | ||||
|             "dist": { | ||||
|                 "type": "zip", | ||||
|                 "url": "https://api.github.com/repos/laminas/laminas-zendframework-bridge/zipball/88bf037259869891afce6504cacc4f8a07b24d0f", | ||||
|                 "reference": "88bf037259869891afce6504cacc4f8a07b24d0f", | ||||
|                 "shasum": "" | ||||
|             }, | ||||
|             "require": { | ||||
|                 "php": "^7.3 || ~8.0.0 || ~8.1.0" | ||||
|             }, | ||||
|             "require-dev": { | ||||
|                 "phpunit/phpunit": "^9.3", | ||||
|                 "psalm/plugin-phpunit": "^0.15.1", | ||||
|                 "squizlabs/php_codesniffer": "^3.5", | ||||
|                 "vimeo/psalm": "^4.6" | ||||
|             }, | ||||
|             "time": "2021-12-21T14:34:37+00:00", | ||||
|             "type": "library", | ||||
|             "extra": { | ||||
|                 "laminas": { | ||||
|                     "module": "Laminas\\ZendFrameworkBridge" | ||||
|                 } | ||||
|             }, | ||||
|             "installation-source": "dist", | ||||
|             "autoload": { | ||||
|                 "files": [ | ||||
|                     "src/autoload.php" | ||||
|                 ], | ||||
|                 "psr-4": { | ||||
|                     "Laminas\\ZendFrameworkBridge\\": "src//" | ||||
|                 } | ||||
|             }, | ||||
|             "notification-url": "https://packagist.org/downloads/", | ||||
|             "license": [ | ||||
|                 "BSD-3-Clause" | ||||
|             ], | ||||
|             "description": "Alias legacy ZF class names to Laminas Project equivalents.", | ||||
|             "keywords": [ | ||||
|                 "ZendFramework", | ||||
|                 "autoloading", | ||||
|                 "laminas", | ||||
|                 "zf" | ||||
|             ], | ||||
|             "support": { | ||||
|                 "forum": "https://discourse.laminas.dev/", | ||||
|                 "issues": "https://github.com/laminas/laminas-zendframework-bridge/issues", | ||||
|                 "rss": "https://github.com/laminas/laminas-zendframework-bridge/releases.atom", | ||||
|                 "source": "https://github.com/laminas/laminas-zendframework-bridge" | ||||
|             }, | ||||
|             "funding": [ | ||||
|                 { | ||||
|                     "url": "https://funding.communitybridge.org/projects/laminas-project", | ||||
|                     "type": "community_bridge" | ||||
|                 } | ||||
|             ], | ||||
|             "install-path": "../laminas/laminas-zendframework-bridge" | ||||
|         }, | ||||
|         { | ||||
|             "name": "p3k/picofeed", | ||||
|             "version": "1.0.0", | ||||
| @@ -191,17 +126,17 @@ | ||||
|         }, | ||||
|         { | ||||
|             "name": "scssphp/scssphp", | ||||
|             "version": "v1.11.0", | ||||
|             "version_normalized": "1.11.0.0", | ||||
|             "version": "v1.13.0", | ||||
|             "version_normalized": "1.13.0.0", | ||||
|             "source": { | ||||
|                 "type": "git", | ||||
|                 "url": "https://github.com/scssphp/scssphp.git", | ||||
|                 "reference": "33749d12c2569bb24071f94e9af828662dabb068" | ||||
|                 "reference": "63d1157457e5554edf00b0c1fabab4c1511d2520" | ||||
|             }, | ||||
|             "dist": { | ||||
|                 "type": "zip", | ||||
|                 "url": "https://api.github.com/repos/scssphp/scssphp/zipball/33749d12c2569bb24071f94e9af828662dabb068", | ||||
|                 "reference": "33749d12c2569bb24071f94e9af828662dabb068", | ||||
|                 "url": "https://api.github.com/repos/scssphp/scssphp/zipball/63d1157457e5554edf00b0c1fabab4c1511d2520", | ||||
|                 "reference": "63d1157457e5554edf00b0c1fabab4c1511d2520", | ||||
|                 "shasum": "" | ||||
|             }, | ||||
|             "require": { | ||||
| @@ -218,21 +153,21 @@ | ||||
|                 "thoughtbot/bourbon": "^7.0", | ||||
|                 "twbs/bootstrap": "~5.0", | ||||
|                 "twbs/bootstrap4": "4.6.1", | ||||
|                 "zurb/foundation": "~6.5" | ||||
|                 "zurb/foundation": "~6.7.0" | ||||
|             }, | ||||
|             "suggest": { | ||||
|                 "ext-iconv": "Can be used as fallback when ext-mbstring is not available", | ||||
|                 "ext-mbstring": "For best performance, mbstring should be installed as it is faster than ext-iconv" | ||||
|             }, | ||||
|             "time": "2022-09-02T21:24:55+00:00", | ||||
|             "time": "2024-08-17T21:02:11+00:00", | ||||
|             "bin": [ | ||||
|                 "bin/pscss" | ||||
|             ], | ||||
|             "type": "library", | ||||
|             "extra": { | ||||
|                 "bamarni-bin": { | ||||
|                     "forward-command": false, | ||||
|                     "bin-links": false | ||||
|                     "bin-links": false, | ||||
|                     "forward-command": false | ||||
|                 } | ||||
|             }, | ||||
|             "installation-source": "dist", | ||||
| @@ -268,7 +203,7 @@ | ||||
|             ], | ||||
|             "support": { | ||||
|                 "issues": "https://github.com/scssphp/scssphp/issues", | ||||
|                 "source": "https://github.com/scssphp/scssphp/tree/v1.11.0" | ||||
|                 "source": "https://github.com/scssphp/scssphp/tree/v1.13.0" | ||||
|             }, | ||||
|             "install-path": "../scssphp/scssphp" | ||||
|         } | ||||
|   | ||||
							
								
								
									
										25
									
								
								vendor/composer/installed.php
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										25
									
								
								vendor/composer/installed.php
									
									
									
									
										vendored
									
									
								
							| @@ -3,7 +3,7 @@ | ||||
|         'name' => 'getgrav/grav-plugin-admin', | ||||
|         'pretty_version' => 'dev-develop', | ||||
|         'version' => 'dev-develop', | ||||
|         'reference' => '8c17ca7d75e271ee2cf4e38ae54e75d2ce8b9224', | ||||
|         'reference' => '12bdb5af4bd10e30e24d191b7ea1a78602a583fb', | ||||
|         'type' => 'grav-plugin', | ||||
|         'install_path' => __DIR__ . '/../../', | ||||
|         'aliases' => array(), | ||||
| @@ -13,7 +13,7 @@ | ||||
|         'getgrav/grav-plugin-admin' => array( | ||||
|             'pretty_version' => 'dev-develop', | ||||
|             'version' => 'dev-develop', | ||||
|             'reference' => '8c17ca7d75e271ee2cf4e38ae54e75d2ce8b9224', | ||||
|             'reference' => '12bdb5af4bd10e30e24d191b7ea1a78602a583fb', | ||||
|             'type' => 'grav-plugin', | ||||
|             'install_path' => __DIR__ . '/../../', | ||||
|             'aliases' => array(), | ||||
| @@ -28,15 +28,6 @@ | ||||
|             'aliases' => array(), | ||||
|             'dev_requirement' => false, | ||||
|         ), | ||||
|         'laminas/laminas-zendframework-bridge' => array( | ||||
|             'pretty_version' => '1.4.1', | ||||
|             'version' => '1.4.1.0', | ||||
|             'reference' => '88bf037259869891afce6504cacc4f8a07b24d0f', | ||||
|             'type' => 'library', | ||||
|             'install_path' => __DIR__ . '/../laminas/laminas-zendframework-bridge', | ||||
|             'aliases' => array(), | ||||
|             'dev_requirement' => false, | ||||
|         ), | ||||
|         'miniflux/picofeed' => array( | ||||
|             'dev_requirement' => false, | ||||
|             'replaced' => array( | ||||
| @@ -53,20 +44,14 @@ | ||||
|             'dev_requirement' => false, | ||||
|         ), | ||||
|         'scssphp/scssphp' => array( | ||||
|             'pretty_version' => 'v1.11.0', | ||||
|             'version' => '1.11.0.0', | ||||
|             'reference' => '33749d12c2569bb24071f94e9af828662dabb068', | ||||
|             'pretty_version' => 'v1.13.0', | ||||
|             'version' => '1.13.0.0', | ||||
|             'reference' => '63d1157457e5554edf00b0c1fabab4c1511d2520', | ||||
|             'type' => 'library', | ||||
|             'install_path' => __DIR__ . '/../scssphp/scssphp', | ||||
|             'aliases' => array(), | ||||
|             'dev_requirement' => false, | ||||
|         ), | ||||
|         'symfony/polyfill-php72' => array( | ||||
|             'dev_requirement' => false, | ||||
|             'replaced' => array( | ||||
|                 0 => '*', | ||||
|             ), | ||||
|         ), | ||||
|         'symfony/polyfill-php73' => array( | ||||
|             'dev_requirement' => false, | ||||
|             'replaced' => array( | ||||
|   | ||||
| @@ -1 +0,0 @@ | ||||
| community_bridge: laminas-project | ||||
| @@ -1,32 +0,0 @@ | ||||
| name: "Continuous Integration" | ||||
|  | ||||
| on: | ||||
|   pull_request: | ||||
|   push: | ||||
|     branches: | ||||
|       - '[0-9]+.[0-9]+.x' | ||||
|       - 'refs/pull/*' | ||||
|  | ||||
| jobs: | ||||
|   matrix: | ||||
|     name: Generate job matrix | ||||
|     runs-on: ubuntu-latest | ||||
|     outputs: | ||||
|       matrix: ${{ steps.matrix.outputs.matrix }} | ||||
|     steps: | ||||
|       - name: Gather CI configuration | ||||
|         id: matrix | ||||
|         uses: laminas/laminas-ci-matrix-action@v1 | ||||
|  | ||||
|   qa: | ||||
|     name: QA Checks | ||||
|     needs: [matrix] | ||||
|     runs-on: ${{ matrix.operatingSystem }} | ||||
|     strategy: | ||||
|       fail-fast: false | ||||
|       matrix: ${{ fromJSON(needs.matrix.outputs.matrix) }} | ||||
|     steps: | ||||
|       - name: ${{ matrix.name }} | ||||
|         uses: laminas/laminas-continuous-integration-action@v1 | ||||
|         with: | ||||
|           job: ${{ matrix.job }} | ||||
| @@ -1,61 +0,0 @@ | ||||
| # Alternate workflow example. | ||||
| # This one is identical to the one in release-on-milestone.yml, with one change: | ||||
| # the Release step uses the ORGANIZATION_ADMIN_TOKEN instead, to allow it to | ||||
| # trigger a release workflow event. This is useful if you have other actions | ||||
| # that intercept that event. | ||||
|  | ||||
| name: "Automatic Releases" | ||||
|  | ||||
| on: | ||||
|   milestone: | ||||
|     types: | ||||
|       - "closed" | ||||
|  | ||||
| jobs: | ||||
|   release: | ||||
|     name: "GIT tag, release & create merge-up PR" | ||||
|     runs-on: ubuntu-latest | ||||
|  | ||||
|     steps: | ||||
|       - name: "Checkout" | ||||
|         uses: "actions/checkout@v2" | ||||
|  | ||||
|       - name: "Release" | ||||
|         uses: "laminas/automatic-releases@v1" | ||||
|         with: | ||||
|           command-name: "laminas:automatic-releases:release" | ||||
|         env: | ||||
|           "GITHUB_TOKEN": ${{ secrets.ORGANIZATION_ADMIN_TOKEN }} | ||||
|           "SIGNING_SECRET_KEY": ${{ secrets.SIGNING_SECRET_KEY }} | ||||
|           "GIT_AUTHOR_NAME": ${{ secrets.GIT_AUTHOR_NAME }} | ||||
|           "GIT_AUTHOR_EMAIL": ${{ secrets.GIT_AUTHOR_EMAIL }} | ||||
|  | ||||
|       - name: "Create Merge-Up Pull Request" | ||||
|         uses: "laminas/automatic-releases@v1" | ||||
|         with: | ||||
|           command-name: "laminas:automatic-releases:create-merge-up-pull-request" | ||||
|         env: | ||||
|           "GITHUB_TOKEN": ${{ secrets.GITHUB_TOKEN }} | ||||
|           "SIGNING_SECRET_KEY": ${{ secrets.SIGNING_SECRET_KEY }} | ||||
|           "GIT_AUTHOR_NAME": ${{ secrets.GIT_AUTHOR_NAME }} | ||||
|           "GIT_AUTHOR_EMAIL": ${{ secrets.GIT_AUTHOR_EMAIL }} | ||||
|  | ||||
|       - name: "Create and/or Switch to new Release Branch" | ||||
|         uses: "laminas/automatic-releases@v1" | ||||
|         with: | ||||
|           command-name: "laminas:automatic-releases:switch-default-branch-to-next-minor" | ||||
|         env: | ||||
|           "GITHUB_TOKEN": ${{ secrets.ORGANIZATION_ADMIN_TOKEN }} | ||||
|           "SIGNING_SECRET_KEY": ${{ secrets.SIGNING_SECRET_KEY }} | ||||
|           "GIT_AUTHOR_NAME": ${{ secrets.GIT_AUTHOR_NAME }} | ||||
|           "GIT_AUTHOR_EMAIL": ${{ secrets.GIT_AUTHOR_EMAIL }} | ||||
|  | ||||
|       - name: "Create new milestones" | ||||
|         uses: "laminas/automatic-releases@v1" | ||||
|         with: | ||||
|           command-name: "laminas:automatic-releases:create-milestones" | ||||
|         env: | ||||
|           "GITHUB_TOKEN": ${{ secrets.GITHUB_TOKEN }} | ||||
|           "SIGNING_SECRET_KEY": ${{ secrets.SIGNING_SECRET_KEY }} | ||||
|           "GIT_AUTHOR_NAME": ${{ secrets.GIT_AUTHOR_NAME }} | ||||
|           "GIT_AUTHOR_EMAIL": ${{ secrets.GIT_AUTHOR_EMAIL }} | ||||
| @@ -1,5 +0,0 @@ | ||||
| { | ||||
|     "ignore_php_platform_requirements": { | ||||
|         "8.1": true | ||||
|     } | ||||
| } | ||||
| @@ -1 +0,0 @@ | ||||
| Copyright (c) 2020 Laminas Project a Series of LF Projects, LLC. (https://getlaminas.org/) | ||||
| @@ -1,26 +0,0 @@ | ||||
| Copyright (c) 2020 Laminas Project a Series of LF Projects, LLC. | ||||
|  | ||||
| Redistribution and use in source and binary forms, with or without | ||||
| modification, are permitted provided that the following conditions are met: | ||||
|  | ||||
| - Redistributions of source code must retain the above copyright notice, this | ||||
|   list of conditions and the following disclaimer. | ||||
|  | ||||
| - Redistributions in binary form must reproduce the above copyright notice, | ||||
|   this list of conditions and the following disclaimer in the documentation | ||||
|   and/or other materials provided with the distribution. | ||||
|  | ||||
| - Neither the name of Laminas Foundation nor the names of its contributors may | ||||
|   be used to endorse or promote products derived from this software without | ||||
|   specific prior written permission. | ||||
|  | ||||
| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND | ||||
| ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||||
| WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||||
| DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR | ||||
| ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||||
| (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||||
| LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON | ||||
| ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||||
| (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||||
| SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||
| @@ -1,30 +0,0 @@ | ||||
| # laminas-zendframework-bridge | ||||
|  | ||||
| [](https://github.com/laminas/laminas-zendframework-bridge/actions?query=workflow%3A"Continuous+Integration") | ||||
|  | ||||
|  | ||||
| This library provides a custom autoloader that aliases legacy Zend Framework, | ||||
| Apigility, and Expressive classes to their replacements under the Laminas | ||||
| Project. | ||||
|  | ||||
| This package should be installed only if you are also using the composer plugin | ||||
| that installs Laminas packages to replace ZF/Apigility/Expressive packages. | ||||
|  | ||||
| This tool supports: | ||||
|  | ||||
| * Zend Framework MVC projects, all v2 and v3 releases | ||||
| * Apigility projects, all stable versions | ||||
| * Expressive versions, all stable versions | ||||
|  | ||||
| ## Installation | ||||
|  | ||||
| Run the following to install this library: | ||||
|  | ||||
| ```bash | ||||
| $ composer require laminas/laminas-zendframework-bridge | ||||
| ``` | ||||
|  | ||||
| ## Support | ||||
|  | ||||
| * [Issues](https://github.com/laminas/laminas-zendframework-bridge/issues/) | ||||
| * [Forum](https://discourse.laminas.dev/) | ||||
| @@ -1,61 +0,0 @@ | ||||
| { | ||||
|     "name": "laminas/laminas-zendframework-bridge", | ||||
|     "description": "Alias legacy ZF class names to Laminas Project equivalents.", | ||||
|     "license": "BSD-3-Clause", | ||||
|     "keywords": [ | ||||
|         "autoloading", | ||||
|         "laminas", | ||||
|         "zf", | ||||
|         "zendframework" | ||||
|     ], | ||||
|     "support": { | ||||
|         "issues": "https://github.com/laminas/laminas-zendframework-bridge/issues", | ||||
|         "source": "https://github.com/laminas/laminas-zendframework-bridge", | ||||
|         "rss": "https://github.com/laminas/laminas-zendframework-bridge/releases.atom", | ||||
|         "forum": "https://discourse.laminas.dev/" | ||||
|     }, | ||||
|     "require": { | ||||
|         "php": "^7.3 || ~8.0.0 || ~8.1.0" | ||||
|     }, | ||||
|     "require-dev": { | ||||
|         "phpunit/phpunit": "^9.3", | ||||
|         "psalm/plugin-phpunit": "^0.15.1", | ||||
|         "squizlabs/php_codesniffer": "^3.5", | ||||
|         "vimeo/psalm": "^4.6" | ||||
|     }, | ||||
|     "autoload": { | ||||
|         "files": [ | ||||
|             "src/autoload.php" | ||||
|         ], | ||||
|         "psr-4": { | ||||
|             "Laminas\\ZendFrameworkBridge\\": "src//" | ||||
|         } | ||||
|     }, | ||||
|     "autoload-dev": { | ||||
|         "files": [ | ||||
|             "test/classes.php" | ||||
|         ], | ||||
|         "psr-4": { | ||||
|             "LaminasTest\\ZendFrameworkBridge\\": "test/", | ||||
|             "LaminasTest\\ZendFrameworkBridge\\TestAsset\\": "test/TestAsset/classes/", | ||||
|             "Laminas\\ApiTools\\": "test/TestAsset/LaminasApiTools/", | ||||
|             "Mezzio\\": "test/TestAsset/Mezzio/", | ||||
|             "Laminas\\": "test/TestAsset/Laminas/" | ||||
|         } | ||||
|     }, | ||||
|     "extra": { | ||||
|         "laminas": { | ||||
|             "module": "Laminas\\ZendFrameworkBridge" | ||||
|         } | ||||
|     }, | ||||
|     "config": { | ||||
|         "sort-packages": true | ||||
|     }, | ||||
|     "scripts": { | ||||
|         "cs-check": "phpcs", | ||||
|         "cs-fix": "phpcbf", | ||||
|         "static-analysis": "psalm --shepherd --stats", | ||||
|         "test": "phpunit --colors=always", | ||||
|         "test-coverage": "phpunit --colors=always --coverage-clover clover.xml" | ||||
|     } | ||||
| } | ||||
							
								
								
									
										3841
									
								
								vendor/laminas/laminas-zendframework-bridge/composer.lock
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3841
									
								
								vendor/laminas/laminas-zendframework-bridge/composer.lock
									
									
									
										generated
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -1,372 +0,0 @@ | ||||
| <?php | ||||
|  | ||||
| return [ | ||||
|     // NEVER REWRITE | ||||
|     'zendframework/zendframework' => 'zendframework/zendframework', | ||||
|     'zend-developer-tools/toolbar/bjy' => 'zend-developer-tools/toolbar/bjy', | ||||
|     'zend-developer-tools/toolbar/doctrine' => 'zend-developer-tools/toolbar/doctrine', | ||||
|  | ||||
|     // NAMESPACES | ||||
|     // Zend Framework components | ||||
|     'Zend\\AuraDi\\Config' => 'Laminas\\AuraDi\\Config', | ||||
|     'Zend\\Authentication' => 'Laminas\\Authentication', | ||||
|     'Zend\\Barcode' => 'Laminas\\Barcode', | ||||
|     'Zend\\Cache' => 'Laminas\\Cache', | ||||
|     'Zend\\Captcha' => 'Laminas\\Captcha', | ||||
|     'Zend\\Code' => 'Laminas\\Code', | ||||
|     'ZendCodingStandard\\Sniffs' => 'LaminasCodingStandard\\Sniffs', | ||||
|     'ZendCodingStandard\\Utils' => 'LaminasCodingStandard\\Utils', | ||||
|     'Zend\\ComponentInstaller' => 'Laminas\\ComponentInstaller', | ||||
|     'Zend\\Config' => 'Laminas\\Config', | ||||
|     'Zend\\ConfigAggregator' => 'Laminas\\ConfigAggregator', | ||||
|     'Zend\\ConfigAggregatorModuleManager' => 'Laminas\\ConfigAggregatorModuleManager', | ||||
|     'Zend\\ConfigAggregatorParameters' => 'Laminas\\ConfigAggregatorParameters', | ||||
|     'Zend\\Console' => 'Laminas\\Console', | ||||
|     'Zend\\ContainerConfigTest' => 'Laminas\\ContainerConfigTest', | ||||
|     'Zend\\Crypt' => 'Laminas\\Crypt', | ||||
|     'Zend\\Db' => 'Laminas\\Db', | ||||
|     'ZendDeveloperTools' => 'Laminas\\DeveloperTools', | ||||
|     'Zend\\Di' => 'Laminas\\Di', | ||||
|     'Zend\\Diactoros' => 'Laminas\\Diactoros', | ||||
|     'ZendDiagnostics\\Check' => 'Laminas\\Diagnostics\\Check', | ||||
|     'ZendDiagnostics\\Result' => 'Laminas\\Diagnostics\\Result', | ||||
|     'ZendDiagnostics\\Runner' => 'Laminas\\Diagnostics\\Runner', | ||||
|     'Zend\\Dom' => 'Laminas\\Dom', | ||||
|     'Zend\\Escaper' => 'Laminas\\Escaper', | ||||
|     'Zend\\EventManager' => 'Laminas\\EventManager', | ||||
|     'Zend\\Feed' => 'Laminas\\Feed', | ||||
|     'Zend\\File' => 'Laminas\\File', | ||||
|     'Zend\\Filter' => 'Laminas\\Filter', | ||||
|     'Zend\\Form' => 'Laminas\\Form', | ||||
|     'Zend\\Http' => 'Laminas\\Http', | ||||
|     'Zend\\HttpHandlerRunner' => 'Laminas\\HttpHandlerRunner', | ||||
|     'Zend\\Hydrator' => 'Laminas\\Hydrator', | ||||
|     'Zend\\I18n' => 'Laminas\\I18n', | ||||
|     'Zend\\InputFilter' => 'Laminas\\InputFilter', | ||||
|     'Zend\\Json' => 'Laminas\\Json', | ||||
|     'Zend\\Ldap' => 'Laminas\\Ldap', | ||||
|     'Zend\\Loader' => 'Laminas\\Loader', | ||||
|     'Zend\\Log' => 'Laminas\\Log', | ||||
|     'Zend\\Mail' => 'Laminas\\Mail', | ||||
|     'Zend\\Math' => 'Laminas\\Math', | ||||
|     'Zend\\Memory' => 'Laminas\\Memory', | ||||
|     'Zend\\Mime' => 'Laminas\\Mime', | ||||
|     'Zend\\ModuleManager' => 'Laminas\\ModuleManager', | ||||
|     'Zend\\Mvc' => 'Laminas\\Mvc', | ||||
|     'Zend\\Navigation' => 'Laminas\\Navigation', | ||||
|     'Zend\\Paginator' => 'Laminas\\Paginator', | ||||
|     'Zend\\Permissions' => 'Laminas\\Permissions', | ||||
|     'Zend\\Pimple\\Config' => 'Laminas\\Pimple\\Config', | ||||
|     'Zend\\ProblemDetails' => 'Mezzio\\ProblemDetails', | ||||
|     'Zend\\ProgressBar' => 'Laminas\\ProgressBar', | ||||
|     'Zend\\Psr7Bridge' => 'Laminas\\Psr7Bridge', | ||||
|     'Zend\\Router' => 'Laminas\\Router', | ||||
|     'Zend\\Serializer' => 'Laminas\\Serializer', | ||||
|     'Zend\\Server' => 'Laminas\\Server', | ||||
|     'Zend\\ServiceManager' => 'Laminas\\ServiceManager', | ||||
|     'ZendService\\ReCaptcha' => 'Laminas\\ReCaptcha', | ||||
|     'ZendService\\Twitter' => 'Laminas\\Twitter', | ||||
|     'Zend\\Session' => 'Laminas\\Session', | ||||
|     'Zend\\SkeletonInstaller' => 'Laminas\\SkeletonInstaller', | ||||
|     'Zend\\Soap' => 'Laminas\\Soap', | ||||
|     'Zend\\Stdlib' => 'Laminas\\Stdlib', | ||||
|     'Zend\\Stratigility' => 'Laminas\\Stratigility', | ||||
|     'Zend\\Tag' => 'Laminas\\Tag', | ||||
|     'Zend\\Test' => 'Laminas\\Test', | ||||
|     'Zend\\Text' => 'Laminas\\Text', | ||||
|     'Zend\\Uri' => 'Laminas\\Uri', | ||||
|     'Zend\\Validator' => 'Laminas\\Validator', | ||||
|     'Zend\\View' => 'Laminas\\View', | ||||
|     'ZendXml' => 'Laminas\\Xml', | ||||
|     'Zend\\Xml2Json' => 'Laminas\\Xml2Json', | ||||
|     'Zend\\XmlRpc' => 'Laminas\\XmlRpc', | ||||
|     'ZendOAuth' => 'Laminas\\OAuth', | ||||
|  | ||||
|     // class ZendAcl in zend-expressive-authorization-acl | ||||
|     'ZendAcl' => 'LaminasAcl', | ||||
|     'Zend\\Expressive\\Authorization\\Acl\\ZendAcl' => 'Mezzio\\Authorization\\Acl\\LaminasAcl', | ||||
|     // class ZendHttpClientDecorator in zend-feed | ||||
|     'ZendHttp' => 'LaminasHttp', | ||||
|     // class ZendModuleProvider in zend-config-aggregator-modulemanager | ||||
|     'ZendModule' => 'LaminasModule', | ||||
|     // class ZendRbac in zend-expressive-authorization-rbac | ||||
|     'ZendRbac' => 'LaminasRbac', | ||||
|     'Zend\\Expressive\\Authorization\\Rbac\\ZendRbac' => 'Mezzio\\Authorization\\Rbac\\LaminasRbac', | ||||
|     // class ZendRouter in zend-expressive-router-zendrouter | ||||
|     'ZendRouter' => 'LaminasRouter', | ||||
|     'Zend\\Expressive\\Router\\ZendRouter' => 'Mezzio\\Router\\LaminasRouter', | ||||
|     // class ZendViewRenderer in zend-expressive-zendviewrenderer | ||||
|     'ZendViewRenderer' => 'LaminasViewRenderer', | ||||
|     'Zend\\Expressive\\ZendView\\ZendViewRenderer' => 'Mezzio\\LaminasView\\LaminasViewRenderer', | ||||
|     'a\\Zend' => 'a\\Zend', | ||||
|     'b\\Zend' => 'b\\Zend', | ||||
|     'c\\Zend' => 'c\\Zend', | ||||
|     'd\\Zend' => 'd\\Zend', | ||||
|     'e\\Zend' => 'e\\Zend', | ||||
|     'f\\Zend' => 'f\\Zend', | ||||
|     'g\\Zend' => 'g\\Zend', | ||||
|     'h\\Zend' => 'h\\Zend', | ||||
|     'i\\Zend' => 'i\\Zend', | ||||
|     'j\\Zend' => 'j\\Zend', | ||||
|     'k\\Zend' => 'k\\Zend', | ||||
|     'l\\Zend' => 'l\\Zend', | ||||
|     'm\\Zend' => 'm\\Zend', | ||||
|     'n\\Zend' => 'n\\Zend', | ||||
|     'o\\Zend' => 'o\\Zend', | ||||
|     'p\\Zend' => 'p\\Zend', | ||||
|     'q\\Zend' => 'q\\Zend', | ||||
|     'r\\Zend' => 'r\\Zend', | ||||
|     's\\Zend' => 's\\Zend', | ||||
|     't\\Zend' => 't\\Zend', | ||||
|     'u\\Zend' => 'u\\Zend', | ||||
|     'v\\Zend' => 'v\\Zend', | ||||
|     'w\\Zend' => 'w\\Zend', | ||||
|     'x\\Zend' => 'x\\Zend', | ||||
|     'y\\Zend' => 'y\\Zend', | ||||
|     'z\\Zend' => 'z\\Zend', | ||||
|  | ||||
|     // Expressive | ||||
|     'Zend\\Expressive' => 'Mezzio', | ||||
|     'ZendAuthentication' => 'LaminasAuthentication', | ||||
|     'ZendAcl' => 'LaminasAcl', | ||||
|     'ZendRbac' => 'LaminasRbac', | ||||
|     'ZendRouter' => 'LaminasRouter', | ||||
|     'ExpressiveUrlGenerator' => 'MezzioUrlGenerator', | ||||
|     'ExpressiveInstaller' => 'MezzioInstaller', | ||||
|  | ||||
|     // Apigility | ||||
|     'ZF\\Apigility' => 'Laminas\\ApiTools', | ||||
|     'ZF\\ApiProblem' => 'Laminas\\ApiTools\\ApiProblem', | ||||
|     'ZF\\AssetManager' => 'Laminas\\ApiTools\\AssetManager', | ||||
|     'ZF\\ComposerAutoloading' => 'Laminas\\ComposerAutoloading', | ||||
|     'ZF\\Configuration' => 'Laminas\\ApiTools\\Configuration', | ||||
|     'ZF\\ContentNegotiation' => 'Laminas\\ApiTools\\ContentNegotiation', | ||||
|     'ZF\\ContentValidation' => 'Laminas\\ApiTools\\ContentValidation', | ||||
|     'ZF\\DevelopmentMode' => 'Laminas\\DevelopmentMode', | ||||
|     'ZF\\Doctrine\\QueryBuilder' => 'Laminas\\ApiTools\\Doctrine\\QueryBuilder', | ||||
|     'ZF\\Hal' => 'Laminas\\ApiTools\\Hal', | ||||
|     'ZF\\HttpCache' => 'Laminas\\ApiTools\\HttpCache', | ||||
|     'ZF\\MvcAuth' => 'Laminas\\ApiTools\\MvcAuth', | ||||
|     'ZF\\OAuth2' => 'Laminas\\ApiTools\\OAuth2', | ||||
|     'ZF\\Rest' => 'Laminas\\ApiTools\\Rest', | ||||
|     'ZF\\Rpc' => 'Laminas\\ApiTools\\Rpc', | ||||
|     'ZF\\Versioning' => 'Laminas\\ApiTools\\Versioning', | ||||
|     'a\\ZF' => 'a\\ZF', | ||||
|     'b\\ZF' => 'b\\ZF', | ||||
|     'c\\ZF' => 'c\\ZF', | ||||
|     'd\\ZF' => 'd\\ZF', | ||||
|     'e\\ZF' => 'e\\ZF', | ||||
|     'f\\ZF' => 'f\\ZF', | ||||
|     'g\\ZF' => 'g\\ZF', | ||||
|     'h\\ZF' => 'h\\ZF', | ||||
|     'i\\ZF' => 'i\\ZF', | ||||
|     'j\\ZF' => 'j\\ZF', | ||||
|     'k\\ZF' => 'k\\ZF', | ||||
|     'l\\ZF' => 'l\\ZF', | ||||
|     'm\\ZF' => 'm\\ZF', | ||||
|     'n\\ZF' => 'n\\ZF', | ||||
|     'o\\ZF' => 'o\\ZF', | ||||
|     'p\\ZF' => 'p\\ZF', | ||||
|     'q\\ZF' => 'q\\ZF', | ||||
|     'r\\ZF' => 'r\\ZF', | ||||
|     's\\ZF' => 's\\ZF', | ||||
|     't\\ZF' => 't\\ZF', | ||||
|     'u\\ZF' => 'u\\ZF', | ||||
|     'v\\ZF' => 'v\\ZF', | ||||
|     'w\\ZF' => 'w\\ZF', | ||||
|     'x\\ZF' => 'x\\ZF', | ||||
|     'y\\ZF' => 'y\\ZF', | ||||
|     'z\\ZF' => 'z\\ZF', | ||||
|  | ||||
|     'ApigilityModuleInterface' => 'ApiToolsModuleInterface', | ||||
|     'ApigilityProviderInterface' => 'ApiToolsProviderInterface', | ||||
|     'ApigilityVersionController' => 'ApiToolsVersionController', | ||||
|  | ||||
|     // PACKAGES | ||||
|     // ZF components, MVC | ||||
|     'zendframework/skeleton-application' => 'laminas/skeleton-application', | ||||
|     'zendframework/zend-auradi-config' => 'laminas/laminas-auradi-config', | ||||
|     'zendframework/zend-authentication' => 'laminas/laminas-authentication', | ||||
|     'zendframework/zend-barcode' => 'laminas/laminas-barcode', | ||||
|     'zendframework/zend-cache' => 'laminas/laminas-cache', | ||||
|     'zendframework/zend-captcha' => 'laminas/laminas-captcha', | ||||
|     'zendframework/zend-code' => 'laminas/laminas-code', | ||||
|     'zendframework/zend-coding-standard' => 'laminas/laminas-coding-standard', | ||||
|     'zendframework/zend-component-installer' => 'laminas/laminas-component-installer', | ||||
|     'zendframework/zend-composer-autoloading' => 'laminas/laminas-composer-autoloading', | ||||
|     'zendframework/zend-config-aggregator' => 'laminas/laminas-config-aggregator', | ||||
|     'zendframework/zend-config' => 'laminas/laminas-config', | ||||
|     'zendframework/zend-console' => 'laminas/laminas-console', | ||||
|     'zendframework/zend-container-config-test' => 'laminas/laminas-container-config-test', | ||||
|     'zendframework/zend-crypt' => 'laminas/laminas-crypt', | ||||
|     'zendframework/zend-db' => 'laminas/laminas-db', | ||||
|     'zendframework/zend-developer-tools' => 'laminas/laminas-developer-tools', | ||||
|     'zendframework/zend-diactoros' => 'laminas/laminas-diactoros', | ||||
|     'zendframework/zenddiagnostics' => 'laminas/laminas-diagnostics', | ||||
|     'zendframework/zend-di' => 'laminas/laminas-di', | ||||
|     'zendframework/zend-dom' => 'laminas/laminas-dom', | ||||
|     'zendframework/zend-escaper' => 'laminas/laminas-escaper', | ||||
|     'zendframework/zend-eventmanager' => 'laminas/laminas-eventmanager', | ||||
|     'zendframework/zend-feed' => 'laminas/laminas-feed', | ||||
|     'zendframework/zend-file' => 'laminas/laminas-file', | ||||
|     'zendframework/zend-filter' => 'laminas/laminas-filter', | ||||
|     'zendframework/zend-form' => 'laminas/laminas-form', | ||||
|     'zendframework/zend-httphandlerrunner' => 'laminas/laminas-httphandlerrunner', | ||||
|     'zendframework/zend-http' => 'laminas/laminas-http', | ||||
|     'zendframework/zend-hydrator' => 'laminas/laminas-hydrator', | ||||
|     'zendframework/zend-i18n' => 'laminas/laminas-i18n', | ||||
|     'zendframework/zend-i18n-resources' => 'laminas/laminas-i18n-resources', | ||||
|     'zendframework/zend-inputfilter' => 'laminas/laminas-inputfilter', | ||||
|     'zendframework/zend-json' => 'laminas/laminas-json', | ||||
|     'zendframework/zend-json-server' => 'laminas/laminas-json-server', | ||||
|     'zendframework/zend-ldap' => 'laminas/laminas-ldap', | ||||
|     'zendframework/zend-loader' => 'laminas/laminas-loader', | ||||
|     'zendframework/zend-log' => 'laminas/laminas-log', | ||||
|     'zendframework/zend-mail' => 'laminas/laminas-mail', | ||||
|     'zendframework/zend-math' => 'laminas/laminas-math', | ||||
|     'zendframework/zend-memory' => 'laminas/laminas-memory', | ||||
|     'zendframework/zend-mime' => 'laminas/laminas-mime', | ||||
|     'zendframework/zend-modulemanager' => 'laminas/laminas-modulemanager', | ||||
|     'zendframework/zend-mvc' => 'laminas/laminas-mvc', | ||||
|     'zendframework/zend-navigation' => 'laminas/laminas-navigation', | ||||
|     'zendframework/zend-oauth' => 'laminas/laminas-oauth', | ||||
|     'zendframework/zend-paginator' => 'laminas/laminas-paginator', | ||||
|     'zendframework/zend-permissions-acl' => 'laminas/laminas-permissions-acl', | ||||
|     'zendframework/zend-permissions-rbac' => 'laminas/laminas-permissions-rbac', | ||||
|     'zendframework/zend-pimple-config' => 'laminas/laminas-pimple-config', | ||||
|     'zendframework/zend-progressbar' => 'laminas/laminas-progressbar', | ||||
|     'zendframework/zend-psr7bridge' => 'laminas/laminas-psr7bridge', | ||||
|     'zendframework/zend-recaptcha' => 'laminas/laminas-recaptcha', | ||||
|     'zendframework/zend-router' => 'laminas/laminas-router', | ||||
|     'zendframework/zend-serializer' => 'laminas/laminas-serializer', | ||||
|     'zendframework/zend-server' => 'laminas/laminas-server', | ||||
|     'zendframework/zend-servicemanager' => 'laminas/laminas-servicemanager', | ||||
|     'zendframework/zendservice-recaptcha' => 'laminas/laminas-recaptcha', | ||||
|     'zendframework/zendservice-twitter' => 'laminas/laminas-twitter', | ||||
|     'zendframework/zend-session' => 'laminas/laminas-session', | ||||
|     'zendframework/zend-skeleton-installer' => 'laminas/laminas-skeleton-installer', | ||||
|     'zendframework/zend-soap' => 'laminas/laminas-soap', | ||||
|     'zendframework/zend-stdlib' => 'laminas/laminas-stdlib', | ||||
|     'zendframework/zend-stratigility' => 'laminas/laminas-stratigility', | ||||
|     'zendframework/zend-tag' => 'laminas/laminas-tag', | ||||
|     'zendframework/zend-test' => 'laminas/laminas-test', | ||||
|     'zendframework/zend-text' => 'laminas/laminas-text', | ||||
|     'zendframework/zend-uri' => 'laminas/laminas-uri', | ||||
|     'zendframework/zend-validator' => 'laminas/laminas-validator', | ||||
|     'zendframework/zend-view' => 'laminas/laminas-view', | ||||
|     'zendframework/zend-xml2json' => 'laminas/laminas-xml2json', | ||||
|     'zendframework/zend-xml' => 'laminas/laminas-xml', | ||||
|     'zendframework/zend-xmlrpc' => 'laminas/laminas-xmlrpc', | ||||
|  | ||||
|     // Expressive packages | ||||
|     'zendframework/zend-expressive' => 'mezzio/mezzio', | ||||
|     'zendframework/zend-expressive-zendrouter' => 'mezzio/mezzio-laminasrouter', | ||||
|     'zendframework/zend-problem-details' => 'mezzio/mezzio-problem-details', | ||||
|     'zendframework/zend-expressive-zendviewrenderer' => 'mezzio/mezzio-laminasviewrenderer', | ||||
|  | ||||
|     // Apigility packages | ||||
|     'zfcampus/apigility-documentation' => 'laminas-api-tools/documentation', | ||||
|     'zfcampus/statuslib-example' => 'laminas-api-tools/statuslib-example', | ||||
|     'zfcampus/zf-apigility' => 'laminas-api-tools/api-tools', | ||||
|     'zfcampus/zf-api-problem' => 'laminas-api-tools/api-tools-api-problem', | ||||
|     'zfcampus/zf-asset-manager' => 'laminas-api-tools/api-tools-asset-manager', | ||||
|     'zfcampus/zf-configuration' => 'laminas-api-tools/api-tools-configuration', | ||||
|     'zfcampus/zf-content-negotiation' => 'laminas-api-tools/api-tools-content-negotiation', | ||||
|     'zfcampus/zf-content-validation' => 'laminas-api-tools/api-tools-content-validation', | ||||
|     'zfcampus/zf-development-mode' => 'laminas/laminas-development-mode', | ||||
|     'zfcampus/zf-doctrine-querybuilder' => 'laminas-api-tools/api-tools-doctrine-querybuilder', | ||||
|     'zfcampus/zf-hal' => 'laminas-api-tools/api-tools-hal', | ||||
|     'zfcampus/zf-http-cache' => 'laminas-api-tools/api-tools-http-cache', | ||||
|     'zfcampus/zf-mvc-auth' => 'laminas-api-tools/api-tools-mvc-auth', | ||||
|     'zfcampus/zf-oauth2' => 'laminas-api-tools/api-tools-oauth2', | ||||
|     'zfcampus/zf-rest' => 'laminas-api-tools/api-tools-rest', | ||||
|     'zfcampus/zf-rpc' => 'laminas-api-tools/api-tools-rpc', | ||||
|     'zfcampus/zf-versioning' => 'laminas-api-tools/api-tools-versioning', | ||||
|  | ||||
|     // CONFIG KEYS, SCRIPT NAMES, ETC | ||||
|     // ZF components | ||||
|     '::fromZend' => '::fromLaminas', // psr7bridge | ||||
|     '::toZend' => '::toLaminas', // psr7bridge | ||||
|     'use_zend_loader' => 'use_laminas_loader', // zend-modulemanager | ||||
|     'zend-config' => 'laminas-config', | ||||
|     'zend-developer-tools/' => 'laminas-developer-tools/', | ||||
|     'zend-tag-cloud' => 'laminas-tag-cloud', | ||||
|     'zenddevelopertools' => 'laminas-developer-tools', | ||||
|     'zendbarcode' => 'laminasbarcode', | ||||
|     'ZendBarcode' => 'LaminasBarcode', | ||||
|     'zendcache' => 'laminascache', | ||||
|     'ZendCache' => 'LaminasCache', | ||||
|     'zendconfig' => 'laminasconfig', | ||||
|     'ZendConfig' => 'LaminasConfig', | ||||
|     'zendfeed' => 'laminasfeed', | ||||
|     'ZendFeed' => 'LaminasFeed', | ||||
|     'zendfilter' => 'laminasfilter', | ||||
|     'ZendFilter' => 'LaminasFilter', | ||||
|     'zendform' => 'laminasform', | ||||
|     'ZendForm' => 'LaminasForm', | ||||
|     'zendi18n' => 'laminasi18n', | ||||
|     'ZendI18n' => 'LaminasI18n', | ||||
|     'zendinputfilter' => 'laminasinputfilter', | ||||
|     'ZendInputFilter' => 'LaminasInputFilter', | ||||
|     'zendlog' => 'laminaslog', | ||||
|     'ZendLog' => 'LaminasLog', | ||||
|     'zendmail' => 'laminasmail', | ||||
|     'ZendMail' => 'LaminasMail', | ||||
|     'zendmvc' => 'laminasmvc', | ||||
|     'ZendMvc' => 'LaminasMvc', | ||||
|     'zendpaginator' => 'laminaspaginator', | ||||
|     'ZendPaginator' => 'LaminasPaginator', | ||||
|     'zendserializer' => 'laminasserializer', | ||||
|     'ZendSerializer' => 'LaminasSerializer', | ||||
|     'zendtag' => 'laminastag', | ||||
|     'ZendTag' => 'LaminasTag', | ||||
|     'zendtext' => 'laminastext', | ||||
|     'ZendText' => 'LaminasText', | ||||
|     'zendvalidator' => 'laminasvalidator', | ||||
|     'ZendValidator' => 'LaminasValidator', | ||||
|     'zendview' => 'laminasview', | ||||
|     'ZendView' => 'LaminasView', | ||||
|     'zend-framework.flf' => 'laminas-project.flf', | ||||
|  | ||||
|     // Expressive-related | ||||
|     "'zend-expressive'" => "'mezzio'", | ||||
|     '"zend-expressive"' => '"mezzio"', | ||||
|     'zend-expressive.' => 'mezzio.', | ||||
|     'zend-expressive-authorization' => 'mezzio-authorization', | ||||
|     'zend-expressive-hal' => 'mezzio-hal', | ||||
|     'zend-expressive-session' => 'mezzio-session', | ||||
|     'zend-expressive-swoole' => 'mezzio-swoole', | ||||
|     'zend-expressive-tooling' => 'mezzio-tooling', | ||||
|  | ||||
|     // Apigility-related | ||||
|     "'zf-apigility'" => "'api-tools'", | ||||
|     '"zf-apigility"' => '"api-tools"', | ||||
|     'zf-apigility/' => 'api-tools/', | ||||
|     'zf-apigility-admin' => 'api-tools-admin', | ||||
|     'zf-content-negotiation' => 'api-tools-content-negotiation', | ||||
|     'zf-hal' => 'api-tools-hal', | ||||
|     'zf-rest' => 'api-tools-rest', | ||||
|     'zf-rpc' => 'api-tools-rpc', | ||||
|     'zf-content-validation' => 'api-tools-content-validation', | ||||
|     'zf-apigility-ui' => 'api-tools-ui', | ||||
|     'zf-apigility-documentation-blueprint' => 'api-tools-documentation-blueprint', | ||||
|     'zf-apigility-documentation-swagger' => 'api-tools-documentation-swagger', | ||||
|     'zf-apigility-welcome' => 'api-tools-welcome', | ||||
|     'zf-api-problem' => 'api-tools-api-problem', | ||||
|     'zf-configuration' => 'api-tools-configuration', | ||||
|     'zf-http-cache' => 'api-tools-http-cache', | ||||
|     'zf-mvc-auth' => 'api-tools-mvc-auth', | ||||
|     'zf-oauth2' => 'api-tools-oauth2', | ||||
|     'zf-versioning' => 'api-tools-versioning', | ||||
|     'ZfApigilityDoctrineQueryProviderManager' => 'LaminasApiToolsDoctrineQueryProviderManager', | ||||
|     'ZfApigilityDoctrineQueryCreateFilterManager' => 'LaminasApiToolsDoctrineQueryCreateFilterManager', | ||||
|     'zf-apigility-doctrine' => 'api-tools-doctrine', | ||||
|     'zf-development-mode' => 'laminas-development-mode', | ||||
|     'zf-doctrine-querybuilder' => 'api-tools-doctrine-querybuilder', | ||||
|  | ||||
|     // 3rd party Apigility packages | ||||
|     'api-skeletons/zf-' => 'api-skeletons/zf-', // api-skeletons packages | ||||
|     'zf-oauth2-' => 'zf-oauth2-', // api-skeletons OAuth2-related packages | ||||
|     'ZF\\OAuth2\\Client' => 'ZF\\OAuth2\\Client', // api-skeletons/zf-oauth2-client | ||||
|     'ZF\\OAuth2\\Doctrine' => 'ZF\\OAuth2\\Doctrine', // api-skeletons/zf-oauth2-doctrine | ||||
| ]; | ||||
| @@ -1,345 +0,0 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <files psalm-version="4.9.3@4c262932602b9bbab5020863d1eb22d49de0dbf4"> | ||||
|   <file src="config/replacements.php"> | ||||
|     <DuplicateArrayKey occurrences="3"> | ||||
|       <code>'ZendAcl' => 'LaminasAcl'</code> | ||||
|       <code>'ZendRbac' => 'LaminasRbac'</code> | ||||
|       <code>'ZendRouter' => 'LaminasRouter'</code> | ||||
|     </DuplicateArrayKey> | ||||
|   </file> | ||||
|   <file src="src/Autoloader.php"> | ||||
|     <MissingClosureParamType occurrences="2"> | ||||
|       <code>$class</code> | ||||
|       <code>$class</code> | ||||
|     </MissingClosureParamType> | ||||
|     <MissingReturnType occurrences="1"> | ||||
|       <code>load</code> | ||||
|     </MissingReturnType> | ||||
|     <MixedArgument occurrences="7"> | ||||
|       <code>$class</code> | ||||
|       <code>$class</code> | ||||
|       <code>$class</code> | ||||
|       <code>$class</code> | ||||
|       <code>$class</code> | ||||
|       <code>$class</code> | ||||
|       <code>$class</code> | ||||
|     </MixedArgument> | ||||
|     <MixedArgumentTypeCoercion occurrences="2"/> | ||||
|     <MixedArrayOffset occurrences="1"> | ||||
|       <code>$loaded[$class]</code> | ||||
|     </MixedArrayOffset> | ||||
|     <MixedOperand occurrences="2"> | ||||
|       <code>$namespaces[$check]</code> | ||||
|       <code>$namespaces[$check]</code> | ||||
|     </MixedOperand> | ||||
|   </file> | ||||
|   <file src="src/ConfigPostProcessor.php"> | ||||
|     <InvalidArgument occurrences="1"> | ||||
|       <code>$keys</code> | ||||
|     </InvalidArgument> | ||||
|     <MissingClosureParamType occurrences="4"> | ||||
|       <code>$value</code> | ||||
|       <code>$value</code> | ||||
|       <code>$value</code> | ||||
|       <code>$value</code> | ||||
|     </MissingClosureParamType> | ||||
|     <MissingClosureReturnType occurrences="4"> | ||||
|       <code>function ($value) {</code> | ||||
|       <code>function ($value) {</code> | ||||
|       <code>function ($value, array $keys) {</code> | ||||
|       <code>function ($value, array $keys) {</code> | ||||
|     </MissingClosureReturnType> | ||||
|     <MissingReturnType occurrences="3"> | ||||
|       <code>replaceDependencyConfiguration</code> | ||||
|       <code>replaceDependencyFactories</code> | ||||
|       <code>replaceDependencyServices</code> | ||||
|     </MissingReturnType> | ||||
|     <MixedArgument occurrences="5"> | ||||
|       <code>$config</code> | ||||
|       <code>$newKey</code> | ||||
|       <code>$newKey</code> | ||||
|       <code>$newKey</code> | ||||
|       <code>$target</code> | ||||
|     </MixedArgument> | ||||
|     <MixedArgumentTypeCoercion occurrences="1"> | ||||
|       <code>[$key]</code> | ||||
|     </MixedArgumentTypeCoercion> | ||||
|     <MixedArrayAssignment occurrences="4"> | ||||
|       <code>$config[$key]</code> | ||||
|       <code>$config['aliases'][$alias]</code> | ||||
|       <code>$config['aliases'][$service]</code> | ||||
|       <code>$config['aliases'][$service]</code> | ||||
|     </MixedArrayAssignment> | ||||
|     <MixedArrayOffset occurrences="7"> | ||||
|       <code>$aliases[$name]</code> | ||||
|       <code>$config[$key]</code> | ||||
|       <code>$keys[$key]</code> | ||||
|       <code>$rewritten[$newKey]</code> | ||||
|       <code>$rewritten[$newKey]</code> | ||||
|       <code>$rewritten[$newKey]</code> | ||||
|       <code>$this->exactReplacements[$value]</code> | ||||
|     </MixedArrayOffset> | ||||
|     <MixedArrayTypeCoercion occurrences="1"> | ||||
|       <code>$aliases[$name]</code> | ||||
|     </MixedArrayTypeCoercion> | ||||
|     <MixedAssignment occurrences="26"> | ||||
|       <code>$a[$key]</code> | ||||
|       <code>$a[$key]</code> | ||||
|       <code>$a[]</code> | ||||
|       <code>$config</code> | ||||
|       <code>$config</code> | ||||
|       <code>$config[$key]</code> | ||||
|       <code>$config['factories'][$replacedService]</code> | ||||
|       <code>$config['services'][$replacedService]</code> | ||||
|       <code>$data</code> | ||||
|       <code>$factory</code> | ||||
|       <code>$factory</code> | ||||
|       <code>$key</code> | ||||
|       <code>$key</code> | ||||
|       <code>$name</code> | ||||
|       <code>$newKey</code> | ||||
|       <code>$newValue</code> | ||||
|       <code>$notIn[]</code> | ||||
|       <code>$result</code> | ||||
|       <code>$rewritten[$key]</code> | ||||
|       <code>$rewritten[$newKey]</code> | ||||
|       <code>$rewritten[$newKey][]</code> | ||||
|       <code>$serviceInstance</code> | ||||
|       <code>$serviceInstance</code> | ||||
|       <code>$target</code> | ||||
|       <code>$value</code> | ||||
|       <code>$value</code> | ||||
|     </MixedAssignment> | ||||
|   </file> | ||||
|   <file src="src/Module.php"> | ||||
|     <MissingReturnType occurrences="2"> | ||||
|       <code>init</code> | ||||
|       <code>onMergeConfig</code> | ||||
|     </MissingReturnType> | ||||
|     <UndefinedDocblockClass occurrences="2"> | ||||
|       <code>ModuleEvent</code> | ||||
|       <code>ModuleManager</code> | ||||
|     </UndefinedDocblockClass> | ||||
|   </file> | ||||
|   <file src="src/Replacements.php"> | ||||
|     <MixedArgument occurrences="2"> | ||||
|       <code>$replacement</code> | ||||
|       <code>$replacement</code> | ||||
|     </MixedArgument> | ||||
|     <MixedArgumentTypeCoercion occurrences="3"> | ||||
|       <code>$original</code> | ||||
|       <code>$original</code> | ||||
|       <code>$original</code> | ||||
|     </MixedArgumentTypeCoercion> | ||||
|     <MixedAssignment occurrences="1"> | ||||
|       <code>$replacement</code> | ||||
|     </MixedAssignment> | ||||
|     <MixedPropertyTypeCoercion occurrences="3"> | ||||
|       <code>$this->replacements</code> | ||||
|       <code>$this->replacements</code> | ||||
|     </MixedPropertyTypeCoercion> | ||||
|   </file> | ||||
|   <file src="test/AutoloaderTest.php"> | ||||
|     <InvalidStringClass occurrences="1"> | ||||
|       <code>new $legacy()</code> | ||||
|     </InvalidStringClass> | ||||
|     <MissingReturnType occurrences="3"> | ||||
|       <code>testLegacyClassIsAliasToLaminas</code> | ||||
|       <code>testReverseAliasCreated</code> | ||||
|       <code>testTypeHint</code> | ||||
|     </MissingReturnType> | ||||
|     <PossiblyInvalidArgument occurrences="1"> | ||||
|       <code>testLegacyClassIsAliasToLaminas</code> | ||||
|     </PossiblyInvalidArgument> | ||||
|   </file> | ||||
|   <file src="test/ConfigPostProcessorTest.php"> | ||||
|     <MissingReturnType occurrences="4"> | ||||
|       <code>invalidServiceManagerConfiguration</code> | ||||
|       <code>testRewritesNestedKeys</code> | ||||
|       <code>testServiceManagerServiceInstancesCanBeHandled</code> | ||||
|       <code>testWillSkipInvalidConfigurations</code> | ||||
|     </MissingReturnType> | ||||
|     <MixedArgument occurrences="1"> | ||||
|       <code>$config</code> | ||||
|     </MixedArgument> | ||||
|     <MixedAssignment occurrences="2"> | ||||
|       <code>$config</code> | ||||
|       <code>$expected</code> | ||||
|     </MixedAssignment> | ||||
|     <MixedInferredReturnType occurrences="1"> | ||||
|       <code>iterable</code> | ||||
|     </MixedInferredReturnType> | ||||
|     <UnresolvableInclude occurrences="2"> | ||||
|       <code>require $configLocation</code> | ||||
|       <code>require $expectedResultLocation</code> | ||||
|     </UnresolvableInclude> | ||||
|   </file> | ||||
|   <file src="test/ModuleTest.php"> | ||||
|     <InvalidArgument occurrences="2"> | ||||
|       <code>$event</code> | ||||
|       <code>$moduleManager</code> | ||||
|     </InvalidArgument> | ||||
|     <MissingReturnType occurrences="2"> | ||||
|       <code>testInitRegistersListenerWithEventManager</code> | ||||
|       <code>testOnMergeConfigProcessesAndReplacesConfigurationPulledFromListener</code> | ||||
|     </MissingReturnType> | ||||
|     <MixedArgument occurrences="1"> | ||||
|       <code>$config</code> | ||||
|     </MixedArgument> | ||||
|     <MixedAssignment occurrences="2"> | ||||
|       <code>$config</code> | ||||
|       <code>$expected</code> | ||||
|     </MixedAssignment> | ||||
|     <MixedInferredReturnType occurrences="1"> | ||||
|       <code>iterable</code> | ||||
|     </MixedInferredReturnType> | ||||
|     <UnresolvableInclude occurrences="2"> | ||||
|       <code>require $configFile</code> | ||||
|       <code>require $expectationsFile</code> | ||||
|     </UnresolvableInclude> | ||||
|   </file> | ||||
|   <file src="test/ReplacementsTest.php"> | ||||
|     <MissingReturnType occurrences="1"> | ||||
|       <code>testEdgeCases</code> | ||||
|     </MissingReturnType> | ||||
|     <MixedInferredReturnType occurrences="1"> | ||||
|       <code>iterable</code> | ||||
|     </MixedInferredReturnType> | ||||
|   </file> | ||||
|   <file src="test/TestAsset/ConfigPostProcessor/AbstractFactories.php"> | ||||
|     <UndefinedClass occurrences="4"> | ||||
|       <code>ConfigAbstractFactory</code> | ||||
|       <code>ConfigAbstractFactory</code> | ||||
|       <code>InvokableFactory</code> | ||||
|       <code>InvokableFactory</code> | ||||
|     </UndefinedClass> | ||||
|   </file> | ||||
|   <file src="test/TestAsset/ConfigPostProcessor/CyclicalAliasing.php"> | ||||
|     <DuplicateArrayKey occurrences="1"> | ||||
|       <code>'Zend\Db\Adapter\Adapter' => 'ZF\Apigility\DbConnectedAdapter'</code> | ||||
|     </DuplicateArrayKey> | ||||
|   </file> | ||||
|   <file src="test/TestAsset/ConfigPostProcessor/ExpressiveSlimRouterConfig.php"> | ||||
|     <UndefinedClass occurrences="2"> | ||||
|       <code>Factory\SlimRouterFactory</code> | ||||
|       <code>RouterInterface</code> | ||||
|     </UndefinedClass> | ||||
|   </file> | ||||
|   <file src="test/TestAsset/ConfigPostProcessor/LazyServices.php"> | ||||
|     <UndefinedClass occurrences="1"> | ||||
|       <code>LazyServiceFactory</code> | ||||
|     </UndefinedClass> | ||||
|   </file> | ||||
|   <file src="test/TestAsset/ConfigPostProcessor/MwopNetAppConfig.php"> | ||||
|     <UndefinedClass occurrences="42"> | ||||
|       <code>CacheItemPoolInterface</code> | ||||
|       <code>ConfigFactory</code> | ||||
|       <code>ConfigFactory</code> | ||||
|       <code>ConfigFactory</code> | ||||
|       <code>ConfigFactory</code> | ||||
|       <code>ConfigFactory</code> | ||||
|       <code>ConfigFactory</code> | ||||
|       <code>Csp</code> | ||||
|       <code>DisplayPostHandler</code> | ||||
|       <code>Engine</code> | ||||
|       <code>EventDispatcherInterface</code> | ||||
|       <code>Factory\CachePoolFactory</code> | ||||
|       <code>Factory\EventDispatcherFactory</code> | ||||
|       <code>Factory\MailTransport</code> | ||||
|       <code>Factory\PlatesFunctionsDelegator</code> | ||||
|       <code>FeedReaderHttpClientInterface</code> | ||||
|       <code>Feed\HttpPlugClientFactory</code> | ||||
|       <code>Handler\ComicsPageHandler</code> | ||||
|       <code>Handler\ComicsPageHandlerFactory</code> | ||||
|       <code>Handler\HomePageHandler</code> | ||||
|       <code>Handler\HomePageHandlerFactory</code> | ||||
|       <code>Handler\PageHandlerFactory</code> | ||||
|       <code>Handler\PageHandlerFactory</code> | ||||
|       <code>Handler\ResumePageHandler</code> | ||||
|       <code>Handler\ResumePageHandler</code> | ||||
|       <code>Middleware\ContentSecurityPolicyMiddlewareFactory</code> | ||||
|       <code>Middleware\DisplayBlogPostHandlerDelegator</code> | ||||
|       <code>Middleware\RedirectAmpPagesMiddleware</code> | ||||
|       <code>Middleware\RedirectAmpPagesMiddlewareFactory</code> | ||||
|       <code>Middleware\RedirectsMiddleware</code> | ||||
|       <code>Middleware\RedirectsMiddleware</code> | ||||
|       <code>Middleware\XClacksOverheadMiddleware</code> | ||||
|       <code>Middleware\XClacksOverheadMiddleware</code> | ||||
|       <code>Middleware\XPoweredByMiddleware</code> | ||||
|       <code>Middleware\XPoweredByMiddleware</code> | ||||
|       <code>RequestFactory</code> | ||||
|       <code>RequestFactoryInterface</code> | ||||
|       <code>ResponseFactory</code> | ||||
|       <code>ResponseFactoryInterface</code> | ||||
|       <code>SessionCachePool</code> | ||||
|       <code>SessionCachePool</code> | ||||
|       <code>SessionCachePoolFactory</code> | ||||
|     </UndefinedClass> | ||||
|   </file> | ||||
|   <file src="test/TestAsset/Replacements/TestClass.php"> | ||||
|     <UndefinedClass occurrences="1"> | ||||
|       <code>\Zend\Expressive\Router</code> | ||||
|     </UndefinedClass> | ||||
|   </file> | ||||
|   <file src="test/TestAsset/Replacements/ZFOAuth2Client.php"> | ||||
|     <UndefinedClass occurrences="1"> | ||||
|       <code>OAuth2Client</code> | ||||
|     </UndefinedClass> | ||||
|   </file> | ||||
|   <file src="test/TestAsset/classes/ConfigListener.php"> | ||||
|     <MissingReturnType occurrences="1"> | ||||
|       <code>setMergedConfig</code> | ||||
|     </MissingReturnType> | ||||
|   </file> | ||||
|   <file src="test/TestAsset/classes/EventManager.php"> | ||||
|     <InvalidArgument occurrences="1"> | ||||
|       <code>$listener</code> | ||||
|     </InvalidArgument> | ||||
|     <MissingPropertyType occurrences="1"> | ||||
|       <code>$listeners</code> | ||||
|     </MissingPropertyType> | ||||
|     <MissingReturnType occurrences="1"> | ||||
|       <code>attach</code> | ||||
|     </MissingReturnType> | ||||
|     <MixedArgument occurrences="1"> | ||||
|       <code>$this->listeners[$eventName]</code> | ||||
|     </MixedArgument> | ||||
|     <MixedArrayAccess occurrences="1"> | ||||
|       <code>$this->listeners[$eventName]</code> | ||||
|     </MixedArrayAccess> | ||||
|     <MixedArrayAssignment occurrences="1"> | ||||
|       <code>$this->listeners[$eventName]</code> | ||||
|     </MixedArrayAssignment> | ||||
|     <MixedInferredReturnType occurrences="1"> | ||||
|       <code>array</code> | ||||
|     </MixedInferredReturnType> | ||||
|     <MixedReturnStatement occurrences="1"> | ||||
|       <code>$this->listeners</code> | ||||
|     </MixedReturnStatement> | ||||
|   </file> | ||||
|   <file src="test/TestAsset/classes/ModuleEvent.php"> | ||||
|     <MissingPropertyType occurrences="1"> | ||||
|       <code>$listener</code> | ||||
|     </MissingPropertyType> | ||||
|     <MixedInferredReturnType occurrences="1"> | ||||
|       <code>ConfigListener</code> | ||||
|     </MixedInferredReturnType> | ||||
|     <MixedReturnStatement occurrences="1"> | ||||
|       <code>$this->listener</code> | ||||
|     </MixedReturnStatement> | ||||
|   </file> | ||||
|   <file src="test/TestAsset/classes/ModuleManager.php"> | ||||
|     <MixedInferredReturnType occurrences="1"> | ||||
|       <code>EventManager</code> | ||||
|     </MixedInferredReturnType> | ||||
|     <MixedReturnStatement occurrences="1"> | ||||
|       <code>$this->eventManager</code> | ||||
|     </MixedReturnStatement> | ||||
|     <UndefinedThisPropertyAssignment occurrences="1"> | ||||
|       <code>$this->eventManager</code> | ||||
|     </UndefinedThisPropertyAssignment> | ||||
|     <UndefinedThisPropertyFetch occurrences="1"> | ||||
|       <code>$this->eventManager</code> | ||||
|     </UndefinedThisPropertyFetch> | ||||
|   </file> | ||||
| </files> | ||||
| @@ -1,33 +0,0 @@ | ||||
| <?xml version="1.0"?> | ||||
| <psalm | ||||
|         totallyTyped="true" | ||||
|         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||||
|         xmlns="https://getpsalm.org/schema/config" | ||||
|         xsi:schemaLocation="https://getpsalm.org/schema/config vendor/vimeo/psalm/config.xsd" | ||||
|     errorBaseline="psalm-baseline.xml" | ||||
| > | ||||
|     <projectFiles> | ||||
|         <directory name="src"/> | ||||
|         <directory name="test"/> | ||||
|         <ignoreFiles> | ||||
|             <directory name="vendor"/> | ||||
|         </ignoreFiles> | ||||
|     </projectFiles> | ||||
|  | ||||
|     <issueHandlers> | ||||
|         <InternalMethod> | ||||
|             <errorLevel type="suppress"> | ||||
|                 <referencedMethod name="PHPUnit\Framework\MockObject\Builder\InvocationMocker::method"/> | ||||
|             </errorLevel> | ||||
|             <errorLevel type="suppress"> | ||||
|                 <referencedMethod name="PHPUnit\Framework\MockObject\Builder\InvocationMocker::willReturn"/> | ||||
|             </errorLevel> | ||||
|             <errorLevel type="suppress"> | ||||
|                 <referencedMethod name="PHPUnit\Framework\MockObject\Builder\InvocationMocker::with"/> | ||||
|             </errorLevel> | ||||
|         </InternalMethod> | ||||
|     </issueHandlers> | ||||
|     <plugins> | ||||
|         <pluginClass class="Psalm\PhpUnitPlugin\Plugin"/> | ||||
|     </plugins> | ||||
| </psalm> | ||||
| @@ -1,181 +0,0 @@ | ||||
| <?php | ||||
|  | ||||
| namespace Laminas\ZendFrameworkBridge; | ||||
|  | ||||
| use ArrayObject; | ||||
| use Composer\Autoload\ClassLoader; | ||||
| use RuntimeException; | ||||
|  | ||||
| use function array_values; | ||||
| use function class_alias; | ||||
| use function class_exists; | ||||
| use function explode; | ||||
| use function file_exists; | ||||
| use function getenv; | ||||
| use function interface_exists; | ||||
| use function spl_autoload_register; | ||||
| use function strlen; | ||||
| use function strtr; | ||||
| use function substr; | ||||
| use function trait_exists; | ||||
|  | ||||
| /** | ||||
|  * Alias legacy Zend Framework project classes/interfaces/traits to Laminas equivalents. | ||||
|  */ | ||||
| class Autoloader | ||||
| { | ||||
|     private const UPSTREAM_COMPOSER_VENDOR_DIRECTORY = __DIR__ . '/../../..'; | ||||
|     private const LOCAL_COMPOSER_VENDOR_DIRECTORY = __DIR__ . '/../vendor'; | ||||
|  | ||||
|     /** | ||||
|      * Attach autoloaders for managing legacy ZF artifacts. | ||||
|      * | ||||
|      * We attach two autoloaders: | ||||
|      * | ||||
|      * - The first is _prepended_ to handle new classes and add aliases for | ||||
|      *   legacy classes. PHP expects any interfaces implemented, classes | ||||
|      *   extended, or traits used when declaring class_alias() to exist and/or | ||||
|      *   be autoloadable already at the time of declaration. If not, it will | ||||
|      *   raise a fatal error. This autoloader helps mitigate errors in such | ||||
|      *   situations. | ||||
|      * | ||||
|      * - The second is _appended_ in order to create aliases for legacy | ||||
|      *   classes. | ||||
|      */ | ||||
|     public static function load() | ||||
|     { | ||||
|         $loaded = new ArrayObject([]); | ||||
|         $classLoader = self::getClassLoader(); | ||||
|  | ||||
|         if ($classLoader === null) { | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         spl_autoload_register(self::createPrependAutoloader( | ||||
|             RewriteRules::namespaceReverse(), | ||||
|             $classLoader, | ||||
|             $loaded | ||||
|         ), true, true); | ||||
|  | ||||
|         spl_autoload_register(self::createAppendAutoloader( | ||||
|             RewriteRules::namespaceRewrite(), | ||||
|             $loaded | ||||
|         )); | ||||
|     } | ||||
|  | ||||
|     private static function getClassLoader(): ?ClassLoader | ||||
|     { | ||||
|         $composerVendorDirectory = getenv('COMPOSER_VENDOR_DIR'); | ||||
|         if (is_string($composerVendorDirectory)) { | ||||
|             return self::getClassLoaderFromVendorDirectory($composerVendorDirectory); | ||||
|         } | ||||
|  | ||||
|         return self::getClassLoaderFromVendorDirectory(self::UPSTREAM_COMPOSER_VENDOR_DIRECTORY) | ||||
|             ?? self::getClassLoaderFromVendorDirectory(self::LOCAL_COMPOSER_VENDOR_DIRECTORY); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return callable | ||||
|      */ | ||||
|     private static function createPrependAutoloader(array $namespaces, ClassLoader $classLoader, ArrayObject $loaded) | ||||
|     { | ||||
|         /** | ||||
|          * @param  string $class Class name to autoload | ||||
|          * @return void | ||||
|          */ | ||||
|         return static function ($class) use ($namespaces, $classLoader, $loaded) { | ||||
|             if (isset($loaded[$class])) { | ||||
|                 return; | ||||
|             } | ||||
|  | ||||
|             $segments = explode('\\', $class); | ||||
|  | ||||
|             $i = 0; | ||||
|             $check = ''; | ||||
|  | ||||
|             while (isset($segments[$i + 1], $namespaces[$check . $segments[$i] . '\\'])) { | ||||
|                 $check .= $segments[$i] . '\\'; | ||||
|                 ++$i; | ||||
|             } | ||||
|  | ||||
|             if ($check === '') { | ||||
|                 return; | ||||
|             } | ||||
|  | ||||
|             if ($classLoader->loadClass($class)) { | ||||
|                 $legacy = $namespaces[$check] | ||||
|                     . strtr(substr($class, strlen($check)), [ | ||||
|                         'ApiTools' => 'Apigility', | ||||
|                         'Mezzio' => 'Expressive', | ||||
|                         'Laminas' => 'Zend', | ||||
|                     ]); | ||||
|                 class_alias($class, $legacy); | ||||
|             } | ||||
|         }; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return callable | ||||
|      */ | ||||
|     private static function createAppendAutoloader(array $namespaces, ArrayObject $loaded) | ||||
|     { | ||||
|         /** | ||||
|          * @param  string $class Class name to autoload | ||||
|          * @return void | ||||
|          */ | ||||
|         return static function ($class) use ($namespaces, $loaded) { | ||||
|             $segments = explode('\\', $class); | ||||
|  | ||||
|             if ($segments[0] === 'ZendService' && isset($segments[1])) { | ||||
|                 $segments[0] .= '\\' . $segments[1]; | ||||
|                 unset($segments[1]); | ||||
|                 $segments = array_values($segments); | ||||
|             } | ||||
|  | ||||
|             $i = 0; | ||||
|             $check = ''; | ||||
|  | ||||
|             // We are checking segments of the namespace to match quicker | ||||
|             while (isset($segments[$i + 1], $namespaces[$check . $segments[$i] . '\\'])) { | ||||
|                 $check .= $segments[$i] . '\\'; | ||||
|                 ++$i; | ||||
|             } | ||||
|  | ||||
|             if ($check === '') { | ||||
|                 return; | ||||
|             } | ||||
|  | ||||
|             $alias = $namespaces[$check] | ||||
|                 . strtr(substr($class, strlen($check)), [ | ||||
|                     'Apigility' => 'ApiTools', | ||||
|                     'Expressive' => 'Mezzio', | ||||
|                     'Zend' => 'Laminas', | ||||
|                     'AbstractZendServer' => 'AbstractZendServer', | ||||
|                     'ZendServerDisk' => 'ZendServerDisk', | ||||
|                     'ZendServerShm' => 'ZendServerShm', | ||||
|                     'ZendMonitor' => 'ZendMonitor', | ||||
|                 ]); | ||||
|  | ||||
|             $loaded[$alias] = true; | ||||
|             if (class_exists($alias) || interface_exists($alias) || trait_exists($alias)) { | ||||
|                 class_alias($alias, $class); | ||||
|             } | ||||
|         }; | ||||
|     } | ||||
|  | ||||
|     private static function getClassLoaderFromVendorDirectory(string $composerVendorDirectory): ?ClassLoader | ||||
|     { | ||||
|         $filename = rtrim($composerVendorDirectory, '/') . '/autoload.php'; | ||||
|         if (!file_exists($filename)) { | ||||
|             return null; | ||||
|         } | ||||
|  | ||||
|         /** @psalm-suppress MixedAssignment */ | ||||
|         $loader = include $filename; | ||||
|         if (!$loader instanceof ClassLoader) { | ||||
|             return null; | ||||
|         } | ||||
|  | ||||
|         return $loader; | ||||
|     } | ||||
| } | ||||
| @@ -1,426 +0,0 @@ | ||||
| <?php | ||||
|  | ||||
| namespace Laminas\ZendFrameworkBridge; | ||||
|  | ||||
| use function array_intersect_key; | ||||
| use function array_key_exists; | ||||
| use function array_pop; | ||||
| use function in_array; | ||||
| use function is_array; | ||||
| use function is_callable; | ||||
| use function is_int; | ||||
| use function is_string; | ||||
|  | ||||
| class ConfigPostProcessor | ||||
| { | ||||
|     /** @internal */ | ||||
|     const SERVICE_MANAGER_KEYS_OF_INTEREST = [ | ||||
|         'aliases'    => true, | ||||
|         'factories'  => true, | ||||
|         'invokables' => true, | ||||
|         'services'   => true, | ||||
|     ]; | ||||
|  | ||||
|     /** @var array String keys => string values */ | ||||
|     private $exactReplacements = [ | ||||
|         'zend-expressive' => 'mezzio', | ||||
|         'zf-apigility'    => 'api-tools', | ||||
|     ]; | ||||
|  | ||||
|     /** @var Replacements */ | ||||
|     private $replacements; | ||||
|  | ||||
|     /** @var callable[] */ | ||||
|     private $rulesets; | ||||
|  | ||||
|     public function __construct() | ||||
|     { | ||||
|         $this->replacements = new Replacements(); | ||||
|  | ||||
|         /* Define the rulesets for replacements. | ||||
|          * | ||||
|          * Each ruleset has the following signature: | ||||
|          * | ||||
|          * @param mixed $value | ||||
|          * @param string[] $keys Full nested key hierarchy leading to the value | ||||
|          * @return null|callable | ||||
|          * | ||||
|          * If no match is made, a null is returned, allowing it to fallback to | ||||
|          * the next ruleset in the list. If a match is made, a callback is returned, | ||||
|          * and that will be used to perform the replacement on the value. | ||||
|          * | ||||
|          * The callback should have the following signature: | ||||
|          * | ||||
|          * @param mixed $value | ||||
|          * @param string[] $keys | ||||
|          * @return mixed The transformed value | ||||
|          */ | ||||
|         $this->rulesets = [ | ||||
|             // Exact values | ||||
|             function ($value) { | ||||
|                 return is_string($value) && isset($this->exactReplacements[$value]) | ||||
|                     ? [$this, 'replaceExactValue'] | ||||
|                     : null; | ||||
|             }, | ||||
|  | ||||
|             // Router (MVC applications) | ||||
|             // We do not want to rewrite these. | ||||
|             function ($value, array $keys) { | ||||
|                 $key = array_pop($keys); | ||||
|                 // Only worried about a top-level "router" key. | ||||
|                 return $key === 'router' && $keys === [] && is_array($value) | ||||
|                     ? [$this, 'noopReplacement'] | ||||
|                     : null; | ||||
|             }, | ||||
|  | ||||
|             // service- and pluginmanager handling | ||||
|             function ($value) { | ||||
|                 return is_array($value) && array_intersect_key(self::SERVICE_MANAGER_KEYS_OF_INTEREST, $value) !== [] | ||||
|                     ? [$this, 'replaceDependencyConfiguration'] | ||||
|                     : null; | ||||
|             }, | ||||
|  | ||||
|             // Array values | ||||
|             function ($value, array $keys) { | ||||
|                 return $keys !== [] && is_array($value) | ||||
|                     ? [$this, '__invoke'] | ||||
|                     : null; | ||||
|             }, | ||||
|         ]; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param string[] $keys Hierarchy of keys, for determining location in | ||||
|      *     nested configuration. | ||||
|      * @return array | ||||
|      */ | ||||
|     public function __invoke(array $config, array $keys = []) | ||||
|     { | ||||
|         $rewritten = []; | ||||
|  | ||||
|         foreach ($config as $key => $value) { | ||||
|             // Determine new key from replacements | ||||
|             $newKey = is_string($key) ? $this->replace($key, $keys) : $key; | ||||
|  | ||||
|             // Keep original values with original key, if the key has changed, but only at the top-level. | ||||
|             if (empty($keys) && $newKey !== $key) { | ||||
|                 $rewritten[$key] = $value; | ||||
|             } | ||||
|  | ||||
|             // Perform value replacements, if any | ||||
|             $newValue = $this->replace($value, $keys, $newKey); | ||||
|  | ||||
|             // Key does not already exist and/or is not an array value | ||||
|             if (! array_key_exists($newKey, $rewritten) || ! is_array($rewritten[$newKey])) { | ||||
|                 // Do not overwrite existing values with null values | ||||
|                 $rewritten[$newKey] = array_key_exists($newKey, $rewritten) && null === $newValue | ||||
|                     ? $rewritten[$newKey] | ||||
|                     : $newValue; | ||||
|                 continue; | ||||
|             } | ||||
|  | ||||
|             // New value is null; nothing to do. | ||||
|             if (null === $newValue) { | ||||
|                 continue; | ||||
|             } | ||||
|  | ||||
|             // Key already exists as an array value, but $value is not an array | ||||
|             if (! is_array($newValue)) { | ||||
|                 $rewritten[$newKey][] = $newValue; | ||||
|                 continue; | ||||
|             } | ||||
|  | ||||
|             // Key already exists as an array value, and $value is also an array | ||||
|             $rewritten[$newKey] = static::merge($rewritten[$newKey], $newValue); | ||||
|         } | ||||
|  | ||||
|         return $rewritten; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Perform substitutions as needed on an individual value. | ||||
|      * | ||||
|      * The $key is provided to allow fine-grained selection of rewrite rules. | ||||
|      * | ||||
|      * @param mixed $value | ||||
|      * @param string[] $keys Key hierarchy | ||||
|      * @param null|int|string $key | ||||
|      * @return mixed | ||||
|      */ | ||||
|     private function replace($value, array $keys, $key = null) | ||||
|     { | ||||
|         // Add new key to the list of keys. | ||||
|         // We do not need to remove it later, as we are working on a copy of the array. | ||||
|         $keys[] = $key; | ||||
|  | ||||
|         // Identify rewrite strategy and perform replacements | ||||
|         $rewriteRule = $this->replacementRuleMatch($value, $keys); | ||||
|         return $rewriteRule($value, $keys); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Merge two arrays together. | ||||
|      * | ||||
|      * If an integer key exists in both arrays, the value from the second array | ||||
|      * will be appended to the first array. If both values are arrays, they are | ||||
|      * merged together, else the value of the second array overwrites the one | ||||
|      * of the first array. | ||||
|      * | ||||
|      * Based on zend-stdlib Zend\Stdlib\ArrayUtils::merge | ||||
|      * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com) | ||||
|      * | ||||
|      * @return array | ||||
|      */ | ||||
|     public static function merge(array $a, array $b) | ||||
|     { | ||||
|         foreach ($b as $key => $value) { | ||||
|             if (! isset($a[$key]) && ! array_key_exists($key, $a)) { | ||||
|                 $a[$key] = $value; | ||||
|                 continue; | ||||
|             } | ||||
|  | ||||
|             if (null === $value && array_key_exists($key, $a)) { | ||||
|                 // Leave as-is if value from $b is null | ||||
|                 continue; | ||||
|             } | ||||
|  | ||||
|             if (is_int($key)) { | ||||
|                 $a[] = $value; | ||||
|                 continue; | ||||
|             } | ||||
|  | ||||
|             if (is_array($value) && is_array($a[$key])) { | ||||
|                 $a[$key] = static::merge($a[$key], $value); | ||||
|                 continue; | ||||
|             } | ||||
|  | ||||
|             $a[$key] = $value; | ||||
|         } | ||||
|  | ||||
|         return $a; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param mixed $value | ||||
|      * @param null|int|string $key | ||||
|      * @return callable Callable to invoke with value | ||||
|      */ | ||||
|     private function replacementRuleMatch($value, $key = null) | ||||
|     { | ||||
|         foreach ($this->rulesets as $ruleset) { | ||||
|             $result = $ruleset($value, $key); | ||||
|             if (is_callable($result)) { | ||||
|                 return $result; | ||||
|             } | ||||
|         } | ||||
|         return [$this, 'fallbackReplacement']; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Replace a value using the translation table, if the value is a string. | ||||
|      * | ||||
|      * @param mixed $value | ||||
|      * @return mixed | ||||
|      */ | ||||
|     private function fallbackReplacement($value) | ||||
|     { | ||||
|         return is_string($value) | ||||
|             ? $this->replacements->replace($value) | ||||
|             : $value; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Replace a value matched exactly. | ||||
|      * | ||||
|      * @param mixed $value | ||||
|      * @return mixed | ||||
|      */ | ||||
|     private function replaceExactValue($value) | ||||
|     { | ||||
|         return $this->exactReplacements[$value]; | ||||
|     } | ||||
|  | ||||
|     private function replaceDependencyConfiguration(array $config) | ||||
|     { | ||||
|         $aliases = isset($config['aliases']) && is_array($config['aliases']) | ||||
|             ? $this->replaceDependencyAliases($config['aliases']) | ||||
|             : []; | ||||
|  | ||||
|         if ($aliases) { | ||||
|             $config['aliases'] = $aliases; | ||||
|         } | ||||
|  | ||||
|         $config = $this->replaceDependencyInvokables($config); | ||||
|         $config = $this->replaceDependencyFactories($config); | ||||
|         $config = $this->replaceDependencyServices($config); | ||||
|  | ||||
|         $keys = self::SERVICE_MANAGER_KEYS_OF_INTEREST; | ||||
|         foreach ($config as $key => $data) { | ||||
|             if (isset($keys[$key])) { | ||||
|                 continue; | ||||
|             } | ||||
|  | ||||
|             $config[$key] = is_array($data) ? $this->__invoke($data, [$key]) :  $data; | ||||
|         } | ||||
|  | ||||
|         return $config; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Rewrite dependency aliases array | ||||
|      * | ||||
|      * In this case, we want to keep the alias as-is, but rewrite the target. | ||||
|      * | ||||
|      * We need also provide an additional alias if the alias key is a legacy class. | ||||
|      * | ||||
|      * @return array | ||||
|      */ | ||||
|     private function replaceDependencyAliases(array $aliases) | ||||
|     { | ||||
|         foreach ($aliases as $alias => $target) { | ||||
|             if (! is_string($alias) || ! is_string($target)) { | ||||
|                 continue; | ||||
|             } | ||||
|  | ||||
|             $newTarget = $this->replacements->replace($target); | ||||
|             $newAlias  = $this->replacements->replace($alias); | ||||
|  | ||||
|             $notIn = [$newTarget]; | ||||
|             $name  = $newTarget; | ||||
|             while (isset($aliases[$name])) { | ||||
|                 $notIn[] = $aliases[$name]; | ||||
|                 $name    = $aliases[$name]; | ||||
|             } | ||||
|  | ||||
|             if ($newAlias === $alias && ! in_array($alias, $notIn, true)) { | ||||
|                 $aliases[$alias] = $newTarget; | ||||
|                 continue; | ||||
|             } | ||||
|  | ||||
|             if (isset($aliases[$newAlias])) { | ||||
|                 continue; | ||||
|             } | ||||
|  | ||||
|             if (! in_array($newAlias, $notIn, true)) { | ||||
|                 $aliases[$alias]    = $newAlias; | ||||
|                 $aliases[$newAlias] = $newTarget; | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         return $aliases; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Rewrite dependency invokables array | ||||
|      * | ||||
|      * In this case, we want to keep the alias as-is, but rewrite the target. | ||||
|      * | ||||
|      * We need also provide an additional alias if invokable is defined with | ||||
|      * an alias which is a legacy class. | ||||
|      * | ||||
|      * @return array | ||||
|      */ | ||||
|     private function replaceDependencyInvokables(array $config) | ||||
|     { | ||||
|         if (empty($config['invokables']) || ! is_array($config['invokables'])) { | ||||
|             return $config; | ||||
|         } | ||||
|  | ||||
|         foreach ($config['invokables'] as $alias => $target) { | ||||
|             if (! is_string($alias)) { | ||||
|                 continue; | ||||
|             } | ||||
|  | ||||
|             $newTarget = $this->replacements->replace($target); | ||||
|             $newAlias  = $this->replacements->replace($alias); | ||||
|  | ||||
|             if ($alias === $target || isset($config['aliases'][$newAlias])) { | ||||
|                 $config['invokables'][$alias] = $newTarget; | ||||
|                 continue; | ||||
|             } | ||||
|  | ||||
|             $config['invokables'][$newAlias] = $newTarget; | ||||
|  | ||||
|             if ($newAlias === $alias) { | ||||
|                 continue; | ||||
|             } | ||||
|  | ||||
|             $config['aliases'][$alias] = $newAlias; | ||||
|  | ||||
|             unset($config['invokables'][$alias]); | ||||
|         } | ||||
|  | ||||
|         return $config; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param mixed $value | ||||
|      * @return mixed Returns $value verbatim. | ||||
|      */ | ||||
|     private function noopReplacement($value) | ||||
|     { | ||||
|         return $value; | ||||
|     } | ||||
|  | ||||
|     private function replaceDependencyFactories(array $config) | ||||
|     { | ||||
|         if (empty($config['factories']) || ! is_array($config['factories'])) { | ||||
|             return $config; | ||||
|         } | ||||
|  | ||||
|         foreach ($config['factories'] as $service => $factory) { | ||||
|             if (! is_string($service)) { | ||||
|                 continue; | ||||
|             } | ||||
|  | ||||
|             $replacedService = $this->replacements->replace($service); | ||||
|             $factory         = is_string($factory) ? $this->replacements->replace($factory) : $factory; | ||||
|             $config['factories'][$replacedService] = $factory; | ||||
|  | ||||
|             if ($replacedService === $service) { | ||||
|                 continue; | ||||
|             } | ||||
|  | ||||
|             unset($config['factories'][$service]); | ||||
|             if (isset($config['aliases'][$service])) { | ||||
|                 continue; | ||||
|             } | ||||
|  | ||||
|             $config['aliases'][$service] = $replacedService; | ||||
|         } | ||||
|  | ||||
|         return $config; | ||||
|     } | ||||
|  | ||||
|     private function replaceDependencyServices(array $config) | ||||
|     { | ||||
|         if (empty($config['services']) || ! is_array($config['services'])) { | ||||
|             return $config; | ||||
|         } | ||||
|  | ||||
|         foreach ($config['services'] as $service => $serviceInstance) { | ||||
|             if (! is_string($service)) { | ||||
|                 continue; | ||||
|             } | ||||
|  | ||||
|             $replacedService = $this->replacements->replace($service); | ||||
|             $serviceInstance = is_array($serviceInstance) ? $this->__invoke($serviceInstance) : $serviceInstance; | ||||
|  | ||||
|             $config['services'][$replacedService] = $serviceInstance; | ||||
|  | ||||
|             if ($service === $replacedService) { | ||||
|                 continue; | ||||
|             } | ||||
|  | ||||
|             unset($config['services'][$service]); | ||||
|  | ||||
|             if (isset($config['aliases'][$service])) { | ||||
|                 continue; | ||||
|             } | ||||
|  | ||||
|             $config['aliases'][$service] = $replacedService; | ||||
|         } | ||||
|  | ||||
|         return $config; | ||||
|     } | ||||
| } | ||||
| @@ -1,48 +0,0 @@ | ||||
| <?php | ||||
|  | ||||
| namespace Laminas\ZendFrameworkBridge; | ||||
|  | ||||
| use Laminas\ModuleManager\Listener\ConfigMergerInterface; | ||||
| use Laminas\ModuleManager\ModuleEvent; | ||||
| use Laminas\ModuleManager\ModuleManager; | ||||
|  | ||||
| class Module | ||||
| { | ||||
|     /** | ||||
|      * Initialize the module. | ||||
|      * | ||||
|      * Type-hinting deliberately omitted to allow unit testing | ||||
|      * without dependencies on packages that do not exist yet. | ||||
|      * | ||||
|      * @param ModuleManager $moduleManager | ||||
|      */ | ||||
|     public function init($moduleManager) | ||||
|     { | ||||
|         $moduleManager | ||||
|             ->getEventManager() | ||||
|             ->attach('mergeConfig', [$this, 'onMergeConfig']); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Perform substitutions in the merged configuration. | ||||
|      * | ||||
|      * Rewrites keys and values matching known ZF classes, namespaces, and | ||||
|      * configuration keys to their Laminas equivalents. | ||||
|      * | ||||
|      * Type-hinting deliberately omitted to allow unit testing | ||||
|      * without dependencies on packages that do not exist yet. | ||||
|      * | ||||
|      * @param ModuleEvent $event | ||||
|      */ | ||||
|     public function onMergeConfig($event) | ||||
|     { | ||||
|         /** @var ConfigMergerInterface */ | ||||
|         $configMerger = $event->getConfigListener(); | ||||
|         $processor    = new ConfigPostProcessor(); | ||||
|         $configMerger->setMergedConfig( | ||||
|             $processor( | ||||
|                 $configMerger->getMergedConfig($returnAsObject = false) | ||||
|             ) | ||||
|         ); | ||||
|     } | ||||
| } | ||||
| @@ -1,40 +0,0 @@ | ||||
| <?php | ||||
|  | ||||
| namespace Laminas\ZendFrameworkBridge; | ||||
|  | ||||
| use function array_merge; | ||||
| use function str_replace; | ||||
| use function strpos; | ||||
| use function strtr; | ||||
|  | ||||
| class Replacements | ||||
| { | ||||
|     /** @var string[] */ | ||||
|     private $replacements; | ||||
|  | ||||
|     public function __construct(array $additionalReplacements = []) | ||||
|     { | ||||
|         $this->replacements = array_merge( | ||||
|             require __DIR__ . '/../config/replacements.php', | ||||
|             $additionalReplacements | ||||
|         ); | ||||
|  | ||||
|         // Provide multiple variants of strings containing namespace separators | ||||
|         foreach ($this->replacements as $original => $replacement) { | ||||
|             if (false === strpos($original, '\\')) { | ||||
|                 continue; | ||||
|             } | ||||
|             $this->replacements[str_replace('\\', '\\\\', $original)] = str_replace('\\', '\\\\', $replacement); | ||||
|             $this->replacements[str_replace('\\', '\\\\\\\\', $original)] = str_replace('\\', '\\\\\\\\', $replacement); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param string $value | ||||
|      * @return string | ||||
|      */ | ||||
|     public function replace($value) | ||||
|     { | ||||
|         return strtr($value, $this->replacements); | ||||
|     } | ||||
| } | ||||
| @@ -1,73 +0,0 @@ | ||||
| <?php | ||||
|  | ||||
| namespace Laminas\ZendFrameworkBridge; | ||||
|  | ||||
| class RewriteRules | ||||
| { | ||||
|     /** | ||||
|      * @return array | ||||
|      */ | ||||
|     public static function namespaceRewrite() | ||||
|     { | ||||
|         return [ | ||||
|             // Expressive | ||||
|             'Zend\\ProblemDetails\\' => 'Mezzio\\ProblemDetails\\', | ||||
|             'Zend\\Expressive\\'     => 'Mezzio\\', | ||||
|  | ||||
|             // Laminas | ||||
|             'Zend\\'                    => 'Laminas\\', | ||||
|             'ZF\\ComposerAutoloading\\' => 'Laminas\\ComposerAutoloading\\', | ||||
|             'ZF\\DevelopmentMode\\'     => 'Laminas\\DevelopmentMode\\', | ||||
|  | ||||
|             // Apigility | ||||
|             'ZF\\Apigility\\' => 'Laminas\\ApiTools\\', | ||||
|             'ZF\\'            => 'Laminas\\ApiTools\\', | ||||
|  | ||||
|             // ZendXml, API wrappers, zend-http OAuth support, zend-diagnostics, ZendDeveloperTools | ||||
|             'ZendXml\\'                => 'Laminas\\Xml\\', | ||||
|             'ZendOAuth\\'              => 'Laminas\\OAuth\\', | ||||
|             'ZendDiagnostics\\'        => 'Laminas\\Diagnostics\\', | ||||
|             'ZendService\\ReCaptcha\\' => 'Laminas\\ReCaptcha\\', | ||||
|             'ZendService\\Twitter\\'   => 'Laminas\\Twitter\\', | ||||
|             'ZendDeveloperTools\\'     => 'Laminas\\DeveloperTools\\', | ||||
|         ]; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return array | ||||
|      */ | ||||
|     public static function namespaceReverse() | ||||
|     { | ||||
|         return [ | ||||
|             // ZendXml, ZendOAuth, ZendDiagnostics, ZendDeveloperTools | ||||
|             'Laminas\\Xml\\'            => 'ZendXml\\', | ||||
|             'Laminas\\OAuth\\'          => 'ZendOAuth\\', | ||||
|             'Laminas\\Diagnostics\\'    => 'ZendDiagnostics\\', | ||||
|             'Laminas\\DeveloperTools\\' => 'ZendDeveloperTools\\', | ||||
|  | ||||
|             // Zend Service | ||||
|             'Laminas\\ReCaptcha\\' => 'ZendService\\ReCaptcha\\', | ||||
|             'Laminas\\Twitter\\'   => 'ZendService\\Twitter\\', | ||||
|  | ||||
|             // Zend | ||||
|             'Laminas\\' => 'Zend\\', | ||||
|  | ||||
|             // Expressive | ||||
|             'Mezzio\\ProblemDetails\\' => 'Zend\\ProblemDetails\\', | ||||
|             'Mezzio\\'                 => 'Zend\\Expressive\\', | ||||
|  | ||||
|             // Laminas to ZfCampus | ||||
|             'Laminas\\ComposerAutoloading\\' => 'ZF\\ComposerAutoloading\\', | ||||
|             'Laminas\\DevelopmentMode\\'     => 'ZF\\DevelopmentMode\\', | ||||
|  | ||||
|             // Apigility | ||||
|             'Laminas\\ApiTools\\Admin\\'         => 'ZF\\Apigility\\Admin\\', | ||||
|             'Laminas\\ApiTools\\Doctrine\\'      => 'ZF\\Apigility\\Doctrine\\', | ||||
|             'Laminas\\ApiTools\\Documentation\\' => 'ZF\\Apigility\\Documentation\\', | ||||
|             'Laminas\\ApiTools\\Example\\'       => 'ZF\\Apigility\\Example\\', | ||||
|             'Laminas\\ApiTools\\Provider\\'      => 'ZF\\Apigility\\Provider\\', | ||||
|             'Laminas\\ApiTools\\Welcome\\'       => 'ZF\\Apiglity\\Welcome\\', | ||||
|             'Laminas\\ApiTools\\'                => 'ZF\\', | ||||
|         ]; | ||||
|     } | ||||
| } | ||||
| @@ -1,3 +0,0 @@ | ||||
| <?php | ||||
|  | ||||
| Laminas\ZendFrameworkBridge\Autoloader::load(); | ||||
							
								
								
									
										2
									
								
								vendor/scssphp/scssphp/composer.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/scssphp/scssphp/composer.json
									
									
									
									
										vendored
									
									
								
							| @@ -43,7 +43,7 @@ | ||||
|         "thoughtbot/bourbon": "^7.0", | ||||
|         "twbs/bootstrap": "~5.0", | ||||
|         "twbs/bootstrap4": "4.6.1", | ||||
|         "zurb/foundation": "~6.5" | ||||
|         "zurb/foundation": "~6.7.0" | ||||
|     }, | ||||
|     "repositories": [ | ||||
|         { | ||||
|   | ||||
| @@ -14,6 +14,7 @@ namespace ScssPhp\ScssPhp\Block; | ||||
|  | ||||
| use ScssPhp\ScssPhp\Block; | ||||
| use ScssPhp\ScssPhp\Compiler\Environment; | ||||
| use ScssPhp\ScssPhp\Node\Number; | ||||
|  | ||||
| /** | ||||
|  * @internal | ||||
| @@ -26,7 +27,7 @@ class CallableBlock extends Block | ||||
|     public $name; | ||||
|  | ||||
|     /** | ||||
|      * @var array|null | ||||
|      * @var list<array{string, array|Number|null, bool}>|null | ||||
|      */ | ||||
|     public $args; | ||||
|  | ||||
|   | ||||
| @@ -13,6 +13,7 @@ | ||||
| namespace ScssPhp\ScssPhp\Block; | ||||
|  | ||||
| use ScssPhp\ScssPhp\Block; | ||||
| use ScssPhp\ScssPhp\Node\Number; | ||||
| use ScssPhp\ScssPhp\Type; | ||||
|  | ||||
| /** | ||||
| @@ -26,7 +27,7 @@ class DirectiveBlock extends Block | ||||
|     public $name; | ||||
|  | ||||
|     /** | ||||
|      * @var string|array|null | ||||
|      * @var array|Number|null | ||||
|      */ | ||||
|     public $value; | ||||
|  | ||||
|   | ||||
| @@ -13,6 +13,7 @@ | ||||
| namespace ScssPhp\ScssPhp\Block; | ||||
|  | ||||
| use ScssPhp\ScssPhp\Block; | ||||
| use ScssPhp\ScssPhp\Node\Number; | ||||
| use ScssPhp\ScssPhp\Type; | ||||
|  | ||||
| /** | ||||
| @@ -26,7 +27,7 @@ class EachBlock extends Block | ||||
|     public $vars = []; | ||||
|  | ||||
|     /** | ||||
|      * @var array | ||||
|      * @var array|Number | ||||
|      */ | ||||
|     public $list; | ||||
|  | ||||
|   | ||||
| @@ -13,6 +13,7 @@ | ||||
| namespace ScssPhp\ScssPhp\Block; | ||||
|  | ||||
| use ScssPhp\ScssPhp\Block; | ||||
| use ScssPhp\ScssPhp\Node\Number; | ||||
| use ScssPhp\ScssPhp\Type; | ||||
|  | ||||
| /** | ||||
| @@ -21,7 +22,7 @@ use ScssPhp\ScssPhp\Type; | ||||
| class ElseifBlock extends Block | ||||
| { | ||||
|     /** | ||||
|      * @var array | ||||
|      * @var array|Number | ||||
|      */ | ||||
|     public $cond; | ||||
|  | ||||
|   | ||||
| @@ -13,6 +13,7 @@ | ||||
| namespace ScssPhp\ScssPhp\Block; | ||||
|  | ||||
| use ScssPhp\ScssPhp\Block; | ||||
| use ScssPhp\ScssPhp\Node\Number; | ||||
| use ScssPhp\ScssPhp\Type; | ||||
|  | ||||
| /** | ||||
| @@ -26,12 +27,12 @@ class ForBlock extends Block | ||||
|     public $var; | ||||
|  | ||||
|     /** | ||||
|      * @var array | ||||
|      * @var array|Number | ||||
|      */ | ||||
|     public $start; | ||||
|  | ||||
|     /** | ||||
|      * @var array | ||||
|      * @var array|Number | ||||
|      */ | ||||
|     public $end; | ||||
|  | ||||
|   | ||||
							
								
								
									
										3
									
								
								vendor/scssphp/scssphp/src/Block/IfBlock.php
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/scssphp/scssphp/src/Block/IfBlock.php
									
									
									
									
										vendored
									
									
								
							| @@ -13,6 +13,7 @@ | ||||
| namespace ScssPhp\ScssPhp\Block; | ||||
|  | ||||
| use ScssPhp\ScssPhp\Block; | ||||
| use ScssPhp\ScssPhp\Node\Number; | ||||
| use ScssPhp\ScssPhp\Type; | ||||
|  | ||||
| /** | ||||
| @@ -21,7 +22,7 @@ use ScssPhp\ScssPhp\Type; | ||||
| class IfBlock extends Block | ||||
| { | ||||
|     /** | ||||
|      * @var array | ||||
|      * @var array|Number | ||||
|      */ | ||||
|     public $cond; | ||||
|  | ||||
|   | ||||
| @@ -13,6 +13,7 @@ | ||||
| namespace ScssPhp\ScssPhp\Block; | ||||
|  | ||||
| use ScssPhp\ScssPhp\Block; | ||||
| use ScssPhp\ScssPhp\Node\Number; | ||||
| use ScssPhp\ScssPhp\Type; | ||||
|  | ||||
| /** | ||||
| @@ -21,7 +22,7 @@ use ScssPhp\ScssPhp\Type; | ||||
| class MediaBlock extends Block | ||||
| { | ||||
|     /** | ||||
|      * @var string|array|null | ||||
|      * @var string|array|Number|null | ||||
|      */ | ||||
|     public $value; | ||||
|  | ||||
|   | ||||
							
								
								
									
										144
									
								
								vendor/scssphp/scssphp/src/Compiler.php
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										144
									
								
								vendor/scssphp/scssphp/src/Compiler.php
									
									
									
									
										vendored
									
									
								
							| @@ -140,13 +140,28 @@ class Compiler | ||||
|     /** @deprecated */ | ||||
|     public static $Infinity     = [Type::T_KEYWORD, 'Infinity']; | ||||
|     public static $null         = [Type::T_NULL]; | ||||
|     /** | ||||
|      * @internal | ||||
|      */ | ||||
|     public static $nullString   = [Type::T_STRING, '', []]; | ||||
|     /** | ||||
|      * @internal | ||||
|      */ | ||||
|     public static $defaultValue = [Type::T_KEYWORD, '']; | ||||
|     /** | ||||
|      * @internal | ||||
|      */ | ||||
|     public static $selfSelector = [Type::T_SELF]; | ||||
|     public static $emptyList    = [Type::T_LIST, '', []]; | ||||
|     public static $emptyMap     = [Type::T_MAP, [], []]; | ||||
|     public static $emptyString  = [Type::T_STRING, '"', []]; | ||||
|     /** | ||||
|      * @internal | ||||
|      */ | ||||
|     public static $with         = [Type::T_KEYWORD, 'with']; | ||||
|     /** | ||||
|      * @internal | ||||
|      */ | ||||
|     public static $without      = [Type::T_KEYWORD, 'without']; | ||||
|     private static $emptyArgumentList = [Type::T_LIST, '', [], []]; | ||||
|  | ||||
| @@ -458,10 +473,33 @@ class Compiler | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Compile scss | ||||
|      * Compiles the provided scss file into CSS. | ||||
|      * | ||||
|      * @param string $path | ||||
|      * | ||||
|      * @return CompilationResult | ||||
|      * | ||||
|      * @throws SassException when the source fails to compile | ||||
|      */ | ||||
|     public function compileFile($path) | ||||
|     { | ||||
|         $source = file_get_contents($path); | ||||
|  | ||||
|         if ($source === false) { | ||||
|             throw new \RuntimeException('Could not read the file content'); | ||||
|         } | ||||
|  | ||||
|         return $this->compileString($source, $path); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Compiles the provided scss source code into CSS. | ||||
|      * | ||||
|      * If provided, the path is considered to be the path from which the source code comes | ||||
|      * from, which will be used to resolve relative imports. | ||||
|      * | ||||
|      * @param string      $source | ||||
|      * @param string|null $path | ||||
|      * @param string|null $path   The path for the source, used to resolve relative imports | ||||
|      * | ||||
|      * @return CompilationResult | ||||
|      * | ||||
| @@ -548,7 +586,7 @@ class Compiler | ||||
|  | ||||
|             $sourceMap = null; | ||||
|  | ||||
|             if (! empty($out) && $this->sourceMap && $this->sourceMap !== self::SOURCE_MAP_NONE) { | ||||
|             if (! empty($out) && $this->sourceMap !== self::SOURCE_MAP_NONE && $this->sourceMap) { | ||||
|                 assert($sourceMapGenerator !== null); | ||||
|                 $sourceMap = $sourceMapGenerator->generateJson($prefix); | ||||
|                 $sourceMapUrl = null; | ||||
| @@ -1508,6 +1546,7 @@ class Compiler | ||||
|         // start from the root | ||||
|         while ($scope->parent && $scope->parent->type !== Type::T_ROOT) { | ||||
|             array_unshift($childStash, $scope); | ||||
|             \assert($scope->parent !== null); | ||||
|             $scope = $scope->parent; | ||||
|         } | ||||
|  | ||||
| @@ -1632,6 +1671,7 @@ class Compiler | ||||
|                 $parser = $this->parserFactory(__METHOD__); | ||||
|  | ||||
|                 if ($parser->parseValue($buffer, $reParsedWith)) { | ||||
|                     \assert(\is_array($reParsedWith)); | ||||
|                     $withCondition = $reParsedWith; | ||||
|                 } | ||||
|             } | ||||
| @@ -2090,6 +2130,11 @@ class Compiler | ||||
|             foreach ($selector as $node) { | ||||
|                 $compound = ''; | ||||
|  | ||||
|                 if (!is_array($node)) { | ||||
|                     $output[] = $node; | ||||
|                     continue; | ||||
|                 } | ||||
|  | ||||
|                 array_walk_recursive( | ||||
|                     $node, | ||||
|                     function ($value, $key) use (&$compound) { | ||||
| @@ -2124,12 +2169,16 @@ class Compiler | ||||
|             foreach ($selector as $node) { | ||||
|                 $compound = ''; | ||||
|  | ||||
|                 array_walk_recursive( | ||||
|                     $node, | ||||
|                     function ($value, $key) use (&$compound) { | ||||
|                         $compound .= $value; | ||||
|                     } | ||||
|                 ); | ||||
|                 if (!is_array($node)) { | ||||
|                     $compound .= $node; | ||||
|                 } else { | ||||
|                     array_walk_recursive( | ||||
|                         $node, | ||||
|                         function ($value, $key) use (&$compound) { | ||||
|                             $compound .= $value; | ||||
|                         } | ||||
|                     ); | ||||
|                 } | ||||
|  | ||||
|                 if ($this->isImmediateRelationshipCombinator($compound)) { | ||||
|                     if (\count($output)) { | ||||
| @@ -2885,7 +2934,7 @@ class Compiler | ||||
|     { | ||||
|         if (isset($child[Parser::SOURCE_LINE])) { | ||||
|             $this->sourceIndex  = isset($child[Parser::SOURCE_INDEX]) ? $child[Parser::SOURCE_INDEX] : null; | ||||
|             $this->sourceLine   = isset($child[Parser::SOURCE_LINE]) ? $child[Parser::SOURCE_LINE] : -1; | ||||
|             $this->sourceLine   = $child[Parser::SOURCE_LINE]; | ||||
|             $this->sourceColumn = isset($child[Parser::SOURCE_COLUMN]) ? $child[Parser::SOURCE_COLUMN] : -1; | ||||
|         } elseif (\is_array($child) && isset($child[1]->sourceLine) && $child[1] instanceof Block) { | ||||
|             $this->sourceIndex  = $child[1]->sourceIndex; | ||||
| @@ -4529,8 +4578,10 @@ EOL; | ||||
|                             return $colorName; | ||||
|                         } | ||||
|  | ||||
|                         if (is_numeric($alpha)) { | ||||
|                         if (\is_int($alpha) || \is_float($alpha)) { | ||||
|                             $a = new Number($alpha, ''); | ||||
|                         } elseif (is_numeric($alpha)) { | ||||
|                             $a = new Number((float) $alpha, ''); | ||||
|                         } else { | ||||
|                             $a = $alpha; | ||||
|                         } | ||||
| @@ -5667,9 +5718,35 @@ EOL; | ||||
|             @trigger_error('Omitting the argument declaration when registering custom function is deprecated and won\'t be supported in ScssPhp 2.0 anymore.', E_USER_DEPRECATED); | ||||
|         } | ||||
|  | ||||
|         if ($this->reflectCallable($callback)->getNumberOfRequiredParameters() > 1) { | ||||
|             @trigger_error('The second argument passed to the callback of custom functions is deprecated and won\'t be supported in ScssPhp 2.0 anymore. Register a callback accepting only 1 parameter instead.', E_USER_DEPRECATED); | ||||
|         } | ||||
|  | ||||
|         $this->userFunctions[$this->normalizeName($name)] = [$callback, $argumentDeclaration]; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return \ReflectionFunctionAbstract | ||||
|      */ | ||||
|     private function reflectCallable(callable $c) | ||||
|     { | ||||
|         if (\is_object($c) && !$c instanceof \Closure) { | ||||
|             $c = [$c, '__invoke']; | ||||
|         } | ||||
|  | ||||
|         if (\is_string($c) && false !== strpos($c, '::')) { | ||||
|             $c = explode('::', $c, 2); | ||||
|         } | ||||
|  | ||||
|         if (\is_array($c)) { | ||||
|             return new \ReflectionMethod($c[0], $c[1]); | ||||
|         } | ||||
|  | ||||
|         \assert(\is_string($c) || $c instanceof \Closure); | ||||
|  | ||||
|         return new \ReflectionFunction($c); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Unregister function | ||||
|      * | ||||
| @@ -5806,13 +5883,13 @@ EOL; | ||||
|  | ||||
|                     if (! \is_null($file)) { | ||||
|                         if (\is_array($dir)) { | ||||
|                             $callableDescription = (\is_object($dir[0]) ? \get_class($dir[0]) : $dir[0]).'::'.$dir[1]; | ||||
|                             $callableDescription = (\is_object($dir[0]) ? \get_class($dir[0]) : $dir[0]) . '::' . $dir[1]; | ||||
|                         } elseif ($dir instanceof \Closure) { | ||||
|                             $r = new \ReflectionFunction($dir); | ||||
|                             if (false !== strpos($r->name, '{closure}')) { | ||||
|                                 $callableDescription = sprintf('closure{%s:%s}', $r->getFileName(), $r->getStartLine()); | ||||
|                             } elseif ($class = $r->getClosureScopeClass()) { | ||||
|                                 $callableDescription = $class->name.'::'.$r->name; | ||||
|                                 $callableDescription = $class->name . '::' . $r->name; | ||||
|                             } else { | ||||
|                                 $callableDescription = $r->name; | ||||
|                             } | ||||
| @@ -5925,15 +6002,15 @@ EOL; | ||||
|     private function tryImportPathWithExtensions($path) | ||||
|     { | ||||
|         $result = array_merge( | ||||
|             $this->tryImportPath($path.'.sass'), | ||||
|             $this->tryImportPath($path.'.scss') | ||||
|             $this->tryImportPath($path . '.sass'), | ||||
|             $this->tryImportPath($path . '.scss') | ||||
|         ); | ||||
|  | ||||
|         if ($result) { | ||||
|             return $result; | ||||
|         } | ||||
|  | ||||
|         return $this->tryImportPath($path.'.css'); | ||||
|         return $this->tryImportPath($path . '.css'); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
| @@ -5943,7 +6020,7 @@ EOL; | ||||
|      */ | ||||
|     private function tryImportPath($path) | ||||
|     { | ||||
|         $partial = dirname($path).'/_'.basename($path); | ||||
|         $partial = dirname($path) . '/_' . basename($path); | ||||
|  | ||||
|         $candidates = []; | ||||
|  | ||||
| @@ -5969,7 +6046,7 @@ EOL; | ||||
|             return null; | ||||
|         } | ||||
|  | ||||
|         return $this->checkImportPathConflicts($this->tryImportPathWithExtensions($path.'/index')); | ||||
|         return $this->checkImportPathConflicts($this->tryImportPathWithExtensions($path . '/index')); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
| @@ -5984,7 +6061,7 @@ EOL; | ||||
|         } | ||||
|  | ||||
|         $normalizedPath = $path; | ||||
|         $normalizedRootDirectory = $this->rootDirectory.'/'; | ||||
|         $normalizedRootDirectory = $this->rootDirectory . '/'; | ||||
|  | ||||
|         if (\DIRECTORY_SEPARATOR === '\\') { | ||||
|             $normalizedRootDirectory = str_replace('\\', '/', $normalizedRootDirectory); | ||||
| @@ -6371,8 +6448,6 @@ EOL; | ||||
|      */ | ||||
|     protected function sortNativeFunctionArgs($functionName, $prototypes, $args) | ||||
|     { | ||||
|         static $parser = null; | ||||
|  | ||||
|         if (! isset($prototypes)) { | ||||
|             $keyArgs = []; | ||||
|             $posArgs = []; | ||||
| @@ -6526,7 +6601,7 @@ EOL; | ||||
|      * | ||||
|      * @return array | ||||
|      * | ||||
|      * @phpstan-param non-empty-list<array{arguments: list<array{0: string, 1: string, 2: array|Number|null}>, rest_argument: string|null}> $prototypes | ||||
|      * @phpstan-param non-empty-array<array{arguments: list<array{0: string, 1: string, 2: array|Number|null}>, rest_argument: string|null}> $prototypes | ||||
|      * @phpstan-return array{arguments: list<array{0: string, 1: string, 2: array|Number|null}>, rest_argument: string|null} | ||||
|      */ | ||||
|     private function selectFunctionPrototype(array $prototypes, $positional, array $names) | ||||
| @@ -6984,10 +7059,14 @@ EOL; | ||||
|             return static::$null; | ||||
|         } | ||||
|  | ||||
|         if (is_numeric($value)) { | ||||
|         if (\is_int($value) || \is_float($value)) { | ||||
|             return new Number($value, ''); | ||||
|         } | ||||
|  | ||||
|         if (is_numeric($value)) { | ||||
|             return new Number((float) $value, ''); | ||||
|         } | ||||
|  | ||||
|         if ($value === '') { | ||||
|             return static::$emptyString; | ||||
|         } | ||||
| @@ -7675,9 +7754,9 @@ EOL; | ||||
|         $b = min(1.0 - $w, $b); | ||||
|  | ||||
|         $rgb = $this->toRGB($hue, 100, 50); | ||||
|         for($i = 1; $i < 4; $i++) { | ||||
|           $rgb[$i] *= (1.0 - $w - $b); | ||||
|           $rgb[$i] = round($rgb[$i] + 255 * $w + 0.0001); | ||||
|         for ($i = 1; $i < 4; $i++) { | ||||
|             $rgb[$i] *= (1.0 - $w - $b); | ||||
|             $rgb[$i] = round($rgb[$i] + 255 * $w + 0.0001); | ||||
|         } | ||||
|  | ||||
|         return $rgb; | ||||
| @@ -7704,7 +7783,6 @@ EOL; | ||||
|         if ((int) $d === 0) { | ||||
|             $h = 0; | ||||
|         } else { | ||||
|  | ||||
|             if ($red == $max) { | ||||
|                 $h = 60 * ($green - $blue) / $d; | ||||
|             } elseif ($green == $max) { | ||||
| @@ -7714,7 +7792,7 @@ EOL; | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         return [Type::T_HWB, fmod($h, 360), $min / 255 * 100, 100 - $max / 255 *100]; | ||||
|         return [Type::T_HWB, fmod($h, 360), $min / 255 * 100, 100 - $max / 255 * 100]; | ||||
|     } | ||||
|  | ||||
|  | ||||
| @@ -7923,7 +8001,13 @@ EOL; | ||||
|         $scale = $operation === 'scale'; | ||||
|         $change = $operation === 'change'; | ||||
|  | ||||
|         /** @phpstan-var callable(string, float|int, bool=, bool=): (float|int|null) $getParam */ | ||||
|         /** | ||||
|          * @param string $name | ||||
|          * @param float|int $max | ||||
|          * @param bool $checkPercent | ||||
|          * @param bool $assertPercent | ||||
|          * @return float|int|null | ||||
|          */ | ||||
|         $getParam = function ($name, $max, $checkPercent = false, $assertPercent = false) use (&$kwargs, $scale, $change) { | ||||
|             if (!isset($kwargs[$name])) { | ||||
|                 return null; | ||||
| @@ -8065,7 +8149,7 @@ EOL; | ||||
|     protected static $libChangeColor = ['color', 'kwargs...']; | ||||
|     protected function libChangeColor($args) | ||||
|     { | ||||
|         return $this->alterColor($args,'change', function ($base, $alter, $max) { | ||||
|         return $this->alterColor($args, 'change', function ($base, $alter, $max) { | ||||
|             if ($alter === null) { | ||||
|                 return $base; | ||||
|             } | ||||
|   | ||||
							
								
								
									
										18
									
								
								vendor/scssphp/scssphp/src/Node/Number.php
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										18
									
								
								vendor/scssphp/scssphp/src/Node/Number.php
									
									
									
									
										vendored
									
									
								
							| @@ -33,7 +33,7 @@ use ScssPhp\ScssPhp\Util; | ||||
|  * | ||||
|  * @template-implements \ArrayAccess<int, mixed> | ||||
|  */ | ||||
| class Number extends Node implements \ArrayAccess | ||||
| class Number extends Node implements \ArrayAccess, \JsonSerializable | ||||
| { | ||||
|     const PRECISION = 10; | ||||
|  | ||||
| @@ -131,7 +131,7 @@ class Number extends Node implements \ArrayAccess | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return string[] | ||||
|      * @return list<string> | ||||
|      */ | ||||
|     public function getNumeratorUnits() | ||||
|     { | ||||
| @@ -139,13 +139,23 @@ class Number extends Node implements \ArrayAccess | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return string[] | ||||
|      * @return list<string> | ||||
|      */ | ||||
|     public function getDenominatorUnits() | ||||
|     { | ||||
|         return $this->denominatorUnits; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return mixed | ||||
|      */ | ||||
|     #[\ReturnTypeWillChange] | ||||
|     public function jsonSerialize() | ||||
|     { | ||||
|         // Passing a compiler instance makes the method output a Sass representation instead of a CSS one, supporting full units. | ||||
|         return $this->output(new Compiler()); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return bool | ||||
|      */ | ||||
| @@ -554,7 +564,7 @@ class Number extends Node implements \ArrayAccess | ||||
|  | ||||
|         try { | ||||
|             return $this->coerceUnits($other, function ($num1, $num2) { | ||||
|                 return round($num1,self::PRECISION) == round($num2, self::PRECISION); | ||||
|                 return round($num1, self::PRECISION) == round($num2, self::PRECISION); | ||||
|             }); | ||||
|         } catch (SassScriptException $e) { | ||||
|             return false; | ||||
|   | ||||
							
								
								
									
										53
									
								
								vendor/scssphp/scssphp/src/OutputStyle.php
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										53
									
								
								vendor/scssphp/scssphp/src/OutputStyle.php
									
									
									
									
										vendored
									
									
								
							| @@ -1,9 +1,62 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * SCSSPHP | ||||
|  * | ||||
|  * @copyright 2012-2020 Leaf Corcoran | ||||
|  * | ||||
|  * @license http://opensource.org/licenses/MIT MIT | ||||
|  * | ||||
|  * @link http://scssphp.github.io/scssphp | ||||
|  */ | ||||
|  | ||||
| namespace ScssPhp\ScssPhp; | ||||
|  | ||||
| final class OutputStyle | ||||
| { | ||||
|     const EXPANDED = 'expanded'; | ||||
|     const COMPRESSED = 'compressed'; | ||||
|  | ||||
|     /** | ||||
|      * Converts a string to an output style. | ||||
|      * | ||||
|      * Using this method allows to write code which will support both | ||||
|      * versions 1.12+ and 2.0 of Scssphp. In 2.0, OutputStyle will be | ||||
|      * an enum instead of using string constants. | ||||
|      * | ||||
|      * @param string $string | ||||
|      * | ||||
|      * @return self::* | ||||
|      */ | ||||
|     public static function fromString($string) | ||||
|     { | ||||
|         switch ($string) { | ||||
|             case 'expanded': | ||||
|                 return self::EXPANDED; | ||||
|  | ||||
|             case 'compressed': | ||||
|                 return self::COMPRESSED; | ||||
|  | ||||
|             default: | ||||
|                 throw new \InvalidArgumentException('Invalid output style'); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Converts an output style to a string supported by {@see OutputStyle::fromString()}. | ||||
|      * | ||||
|      * Using this method allows to write code which will support both | ||||
|      * versions 1.12+ and 2.0 of Scssphp. In 2.0, OutputStyle will be | ||||
|      * an enum instead of using string constants. | ||||
|      * The returned string representation is guaranteed to be compatible | ||||
|      * between 1.12 and 2.0. | ||||
|      * | ||||
|      * @param self::* $outputStyle | ||||
|      * | ||||
|      * @return string | ||||
|      */ | ||||
|     public static function toString($outputStyle) | ||||
|     { | ||||
|         return $outputStyle; | ||||
|     } | ||||
| } | ||||
|   | ||||
							
								
								
									
										117
									
								
								vendor/scssphp/scssphp/src/Parser.php
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										117
									
								
								vendor/scssphp/scssphp/src/Parser.php
									
									
									
									
										vendored
									
									
								
							| @@ -273,6 +273,11 @@ class Parser | ||||
|         $this->saveEncoding(); | ||||
|         $this->extractLineNumbers($buffer); | ||||
|  | ||||
|         if ($this->utf8 && !preg_match('//u', $buffer)) { | ||||
|             $message = $this->sourceName ? 'Invalid UTF-8 file: ' . $this->sourceName : 'Invalid UTF-8 file'; | ||||
|             throw new ParserException($message); | ||||
|         } | ||||
|  | ||||
|         $this->pushBlock(null); // root block | ||||
|         $this->whitespace(); | ||||
|         $this->pushBlock(null); | ||||
| @@ -305,8 +310,9 @@ class Parser | ||||
|      * | ||||
|      * @api | ||||
|      * | ||||
|      * @param string       $buffer | ||||
|      * @param string|array $out | ||||
|      * @param string $buffer | ||||
|      * @param mixed  $out | ||||
|      * @param-out array|Number $out | ||||
|      * | ||||
|      * @return bool | ||||
|      */ | ||||
| @@ -323,6 +329,13 @@ class Parser | ||||
|  | ||||
|         $list = $this->valueList($out); | ||||
|  | ||||
|         if ($this->count !== \strlen($this->buffer)) { | ||||
|             $error = $this->parseError('Expected end of value'); | ||||
|             $message = 'Passing trailing content after the expression when parsing a value is deprecated since Scssphp 1.12.0 and will be an error in 2.0. ' . $error->getMessage(); | ||||
|  | ||||
|             @trigger_error($message, E_USER_DEPRECATED); | ||||
|         } | ||||
|  | ||||
|         $this->restoreEncoding(); | ||||
|  | ||||
|         return $list; | ||||
| @@ -333,9 +346,9 @@ class Parser | ||||
|      * | ||||
|      * @api | ||||
|      * | ||||
|      * @param string       $buffer | ||||
|      * @param string|array $out | ||||
|      * @param bool         $shouldValidate | ||||
|      * @param string $buffer | ||||
|      * @param array  $out | ||||
|      * @param bool   $shouldValidate | ||||
|      * | ||||
|      * @return bool | ||||
|      */ | ||||
| @@ -383,10 +396,13 @@ class Parser | ||||
|         $this->inParens        = false; | ||||
|         $this->eatWhiteDefault = true; | ||||
|         $this->buffer          = (string) $buffer; | ||||
|         $this->discardComments = true; | ||||
|  | ||||
|         $this->saveEncoding(); | ||||
|         $this->extractLineNumbers($this->buffer); | ||||
|  | ||||
|         $this->whitespace(); | ||||
|  | ||||
|         $isMediaQuery = $this->mediaQueryList($out); | ||||
|  | ||||
|         $this->restoreEncoding(); | ||||
| @@ -1240,10 +1256,10 @@ class Parser | ||||
|     /** | ||||
|      * Assert a parsed part is plain CSS Valid | ||||
|      * | ||||
|      * @param array|false $parsed | ||||
|      * @param array|Number|false $parsed | ||||
|      * @param int         $startPos | ||||
|      * | ||||
|      * @return array | ||||
|      * @return array|Number | ||||
|      * | ||||
|      * @throws ParserException | ||||
|      */ | ||||
| @@ -1273,10 +1289,10 @@ class Parser | ||||
|     /** | ||||
|      * Check a parsed element is plain CSS Valid | ||||
|      * | ||||
|      * @param array $parsed | ||||
|      * @param array|Number|string $parsed | ||||
|      * @param bool  $allowExpression | ||||
|      * | ||||
|      * @return array|false | ||||
|      * @return ($parsed is string ? string : ($parsed is Number ? Number : array|false)) | ||||
|      */ | ||||
|     protected function isPlainCssValidElement($parsed, $allowExpression = false) | ||||
|     { | ||||
| @@ -1285,6 +1301,10 @@ class Parser | ||||
|             return $parsed; | ||||
|         } | ||||
|  | ||||
|         if ($parsed instanceof Number) { | ||||
|             return $parsed; | ||||
|         } | ||||
|  | ||||
|         if ( | ||||
|             \in_array($parsed[0], [Type::T_FUNCTION, Type::T_FUNCTION_CALL]) && | ||||
|             !\in_array($parsed[1], [ | ||||
| @@ -1678,9 +1698,9 @@ class Parser | ||||
|      */ | ||||
|     protected function appendComment($comment) | ||||
|     { | ||||
|         assert($this->env !== null); | ||||
|  | ||||
|         if (! $this->discardComments) { | ||||
|             assert($this->env !== null); | ||||
|  | ||||
|             $this->env->comments[] = $comment; | ||||
|         } | ||||
|     } | ||||
| @@ -2079,8 +2099,9 @@ class Parser | ||||
|     /** | ||||
|      * Parse directive value list that considers $vars as keyword | ||||
|      * | ||||
|      * @param array        $out | ||||
|      * @param mixed        $out | ||||
|      * @param string|false $endChar | ||||
|      * @param-out array|Number $out | ||||
|      * | ||||
|      * @return bool | ||||
|      * | ||||
| @@ -2143,7 +2164,8 @@ class Parser | ||||
|     /** | ||||
|      * Parse comma separated value list | ||||
|      * | ||||
|      * @param array $out | ||||
|      * @param mixed $out | ||||
|      * @param-out array|Number $out | ||||
|      * | ||||
|      * @return bool | ||||
|      */ | ||||
| @@ -2161,10 +2183,11 @@ class Parser | ||||
|      * Parse a function call, where externals () are part of the call | ||||
|      * and not of the value list | ||||
|      * | ||||
|      * @param array       $out | ||||
|      * @param mixed       $out | ||||
|      * @param bool        $mandatoryEnclos | ||||
|      * @param null|string $charAfter | ||||
|      * @param null|bool   $eatWhiteSp | ||||
|      * @param-out array|Number $out | ||||
|      * | ||||
|      * @return bool | ||||
|      */ | ||||
| @@ -2200,7 +2223,8 @@ class Parser | ||||
|     /** | ||||
|      * Parse space separated value list | ||||
|      * | ||||
|      * @param array $out | ||||
|      * @param mixed $out | ||||
|      * @param-out array|Number $out | ||||
|      * | ||||
|      * @return bool | ||||
|      */ | ||||
| @@ -2212,10 +2236,11 @@ class Parser | ||||
|     /** | ||||
|      * Parse generic list | ||||
|      * | ||||
|      * @param array  $out | ||||
|      * @param mixed  $out | ||||
|      * @param string $parseItem The name of the method used to parse items | ||||
|      * @param string $delim | ||||
|      * @param bool   $flatten | ||||
|      * @param-out ($flatten is false ? array : array|Number) $out | ||||
|      * | ||||
|      * @return bool | ||||
|      */ | ||||
| @@ -2319,9 +2344,10 @@ class Parser | ||||
|     /** | ||||
|      * Parse expression | ||||
|      * | ||||
|      * @param array $out | ||||
|      * @param mixed $out | ||||
|      * @param bool  $listOnly | ||||
|      * @param bool  $lookForExp | ||||
|      * @param-out array|Number $out | ||||
|      * | ||||
|      * @return bool | ||||
|      * | ||||
| @@ -2386,10 +2412,11 @@ class Parser | ||||
|     /** | ||||
|      * Parse expression specifically checking for lists in parenthesis or brackets | ||||
|      * | ||||
|      * @param array    $out | ||||
|      * @param mixed    $out | ||||
|      * @param int      $s | ||||
|      * @param string   $closingParen | ||||
|      * @param string[] $allowedTypes | ||||
|      * @param-out array|Number $out | ||||
|      * | ||||
|      * @return bool | ||||
|      * | ||||
| @@ -2448,10 +2475,10 @@ class Parser | ||||
|     /** | ||||
|      * Parse left-hand side of subexpression | ||||
|      * | ||||
|      * @param array $lhs | ||||
|      * @param int   $minP | ||||
|      * @param array|Number $lhs | ||||
|      * @param int          $minP | ||||
|      * | ||||
|      * @return array | ||||
|      * @return array|Number | ||||
|      */ | ||||
|     protected function expHelper($lhs, $minP) | ||||
|     { | ||||
| @@ -2502,7 +2529,8 @@ class Parser | ||||
|     /** | ||||
|      * Parse value | ||||
|      * | ||||
|      * @param array $out | ||||
|      * @param mixed $out | ||||
|      * @param-out array|Number $out | ||||
|      * | ||||
|      * @return bool | ||||
|      */ | ||||
| @@ -2710,7 +2738,8 @@ class Parser | ||||
|     /** | ||||
|      * Parse parenthesized value | ||||
|      * | ||||
|      * @param array $out | ||||
|      * @param mixed $out | ||||
|      * @param-out array|Number $out | ||||
|      * | ||||
|      * @return bool | ||||
|      */ | ||||
| @@ -2782,7 +2811,8 @@ class Parser | ||||
|      * Parse function call | ||||
|      * | ||||
|      * @param string $name | ||||
|      * @param array  $func | ||||
|      * @param mixed  $func | ||||
|      * @param-out array $func | ||||
|      * | ||||
|      * @return bool | ||||
|      */ | ||||
| @@ -2885,7 +2915,8 @@ class Parser | ||||
|     /** | ||||
|      * Parse mixin/function definition  argument list | ||||
|      * | ||||
|      * @param array $out | ||||
|      * @param mixed $out | ||||
|      * @param-out list<array{string, array|Number|null, bool}> $out | ||||
|      * | ||||
|      * @return bool | ||||
|      */ | ||||
| @@ -2947,7 +2978,8 @@ class Parser | ||||
|     /** | ||||
|      * Parse map | ||||
|      * | ||||
|      * @param array $out | ||||
|      * @param mixed $out | ||||
|      * @param-out array $out | ||||
|      * | ||||
|      * @return bool | ||||
|      */ | ||||
| @@ -2989,7 +3021,8 @@ class Parser | ||||
|     /** | ||||
|      * Parse color | ||||
|      * | ||||
|      * @param array $out | ||||
|      * @param mixed $out | ||||
|      * @param-out array $out | ||||
|      * | ||||
|      * @return bool | ||||
|      */ | ||||
| @@ -3015,7 +3048,8 @@ class Parser | ||||
|     /** | ||||
|      * Parse number with unit | ||||
|      * | ||||
|      * @param array $unit | ||||
|      * @param mixed $unit | ||||
|      * @param-out Number $unit | ||||
|      * | ||||
|      * @return bool | ||||
|      */ | ||||
| @@ -3221,11 +3255,12 @@ class Parser | ||||
|      * Parse an unbounded string stopped by $end | ||||
|      * | ||||
|      * @param string $end | ||||
|      * @param array  $out | ||||
|      * @param mixed  $out | ||||
|      * @param string $nestOpen | ||||
|      * @param string $nestClose | ||||
|      * @param bool   $rtrim | ||||
|      * @param string $disallow | ||||
|      * @param-out array $out | ||||
|      * | ||||
|      * @return bool | ||||
|      */ | ||||
| @@ -3302,8 +3337,9 @@ class Parser | ||||
|     /** | ||||
|      * Parser interpolation | ||||
|      * | ||||
|      * @param string|array $out | ||||
|      * @param bool         $lookWhite save information about whitespace before and after | ||||
|      * @param mixed $out | ||||
|      * @param bool  $lookWhite save information about whitespace before and after | ||||
|      * @param-out array $out | ||||
|      * | ||||
|      * @return bool | ||||
|      */ | ||||
| @@ -3837,7 +3873,8 @@ class Parser | ||||
|     /** | ||||
|      * Parse a variable | ||||
|      * | ||||
|      * @param array $out | ||||
|      * @param mixed $out | ||||
|      * @param-out array{Type::*, string} $out | ||||
|      * | ||||
|      * @return bool | ||||
|      */ | ||||
| @@ -3866,9 +3903,10 @@ class Parser | ||||
|     /** | ||||
|      * Parse a keyword | ||||
|      * | ||||
|      * @param string $word | ||||
|      * @param bool   $eatWhitespace | ||||
|      * @param bool   $inSelector | ||||
|      * @param mixed $word | ||||
|      * @param bool  $eatWhitespace | ||||
|      * @param bool  $inSelector | ||||
|      * @param-out string $word | ||||
|      * | ||||
|      * @return bool | ||||
|      */ | ||||
| @@ -3984,7 +4022,8 @@ class Parser | ||||
|     /** | ||||
|      * Parse a url | ||||
|      * | ||||
|      * @param array $out | ||||
|      * @param mixed $out | ||||
|      * @param-out array $out | ||||
|      * | ||||
|      * @return bool | ||||
|      */ | ||||
| @@ -3994,10 +4033,10 @@ class Parser | ||||
|             $s = $this->count; | ||||
|  | ||||
|             if ( | ||||
|                 ($this->string($out) || $this->spaceList($out)) && | ||||
|                 ($this->string($inner) || $this->spaceList($inner)) && | ||||
|                 $this->matchChar(')') | ||||
|             ) { | ||||
|                 $out = [Type::T_STRING, '', ['url(', $out, ')']]; | ||||
|                 $out = [Type::T_STRING, '', ['url(', $inner, ')']]; | ||||
|  | ||||
|                 return true; | ||||
|             } | ||||
| @@ -4040,7 +4079,7 @@ class Parser | ||||
|     /** | ||||
|      * Strip assignment flag from the list | ||||
|      * | ||||
|      * @param array $value | ||||
|      * @param array|Number $value | ||||
|      * | ||||
|      * @return string[] | ||||
|      */ | ||||
|   | ||||
							
								
								
									
										3
									
								
								vendor/scssphp/scssphp/src/Type.php
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/scssphp/scssphp/src/Type.php
									
									
									
									
										vendored
									
									
								
							| @@ -95,6 +95,9 @@ class Type | ||||
|      * @internal | ||||
|      */ | ||||
|     const T_FOR = 'for'; | ||||
|     /** | ||||
|      * @internal | ||||
|      */ | ||||
|     const T_FUNCTION = 'function'; | ||||
|     /** | ||||
|      * @internal | ||||
|   | ||||
							
								
								
									
										2
									
								
								vendor/scssphp/scssphp/src/Version.php
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/scssphp/scssphp/src/Version.php
									
									
									
									
										vendored
									
									
								
							| @@ -19,5 +19,5 @@ namespace ScssPhp\ScssPhp; | ||||
|  */ | ||||
| class Version | ||||
| { | ||||
|     const VERSION = '1.11.0'; | ||||
|     const VERSION = '1.13.0'; | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user