更新
This commit is contained in:
parent
53c6128808
commit
b51f7f01df
@ -3,7 +3,12 @@
|
||||
namespace app\api\controller;
|
||||
|
||||
use app\BaseController;
|
||||
use Illuminate\Support\Env;
|
||||
use mon\util\exception\UploadException;
|
||||
use Mongdch\WebmanUploadslice\UploadSlice;
|
||||
use support\Log;
|
||||
use support\Request;
|
||||
use mon\util\Validate;
|
||||
use think\facade\Db;
|
||||
|
||||
class IndexController extends BaseController{
|
||||
@ -37,4 +42,52 @@ class IndexController extends BaseController{
|
||||
return json(['msg'=>'添加失败']);
|
||||
}
|
||||
}
|
||||
|
||||
public function upload(Request $request){
|
||||
return json(['code' => 0, 'msg' => 'upload faild']);
|
||||
|
||||
$data = $request->post();
|
||||
// 验证数据
|
||||
$validate = new Validate();
|
||||
$check = $validate->data($data)->rule([
|
||||
'action' => ['in:slice,merge'],
|
||||
'filename' => ['required', 'str'],
|
||||
'chunk' => ['int', 'min:0'],
|
||||
'chunkLength' => ['required', 'int', 'min:0'],
|
||||
'uuid' => ['required', 'str']
|
||||
])->message([
|
||||
'action' => 'action faild',
|
||||
'filename' => 'filename faild',
|
||||
'chunk' => 'chunk faild',
|
||||
'chunkLength' => 'chunkLength faild',
|
||||
'uuid' => 'uuid faild'
|
||||
])->check();
|
||||
if (!$check) {
|
||||
return json(['code' => 0, 'msg' => $validate->getError()]);
|
||||
}
|
||||
// 验证上传分片必须的参数
|
||||
if ($request->post('action') == 'slice' && is_null($request->post('chunk'))) {
|
||||
return json(['code' => 0, 'msg' => 'chunk required']);
|
||||
}
|
||||
if ($request->post('action') == 'slice' && empty($request->file())) {
|
||||
return json(['code' => 0, 'msg' => 'upload faild']);
|
||||
}
|
||||
// 上传
|
||||
$sdk = new UploadSlice();
|
||||
$file = $request->file('file');
|
||||
try {
|
||||
if ($data['action'] == 'slice') {
|
||||
// 保存分片
|
||||
$saveInfo = $sdk->upload($data['uuid'], $file, $data['chunk']);
|
||||
return json(['code' => 1, 'msg' => 'ok', 'data' => $saveInfo]);
|
||||
}
|
||||
// 合并
|
||||
$mergeInfo = $sdk->merge($data['uuid'], $data['chunkLength'], $data['filename']);
|
||||
// $mergeInfo = $sdk->merge($data['uuid'], $data['chunkLength'], $data['filename'], 'dirname');
|
||||
// return json(['code' => 1, 'msg' => 'ok', 'data' =>Env('URL'). $mergeInfo]);
|
||||
} catch (UploadException $e) {
|
||||
return json(['code' => 0, 'msg' => $e->getMessage()]);
|
||||
}
|
||||
return json($sdk->getConfig());
|
||||
}
|
||||
}
|
1803
composer.lock
generated
1803
composer.lock
generated
File diff suppressed because it is too large
Load Diff
@ -44,17 +44,17 @@ return [
|
||||
/**
|
||||
* 发送
|
||||
*/
|
||||
'mqtt_push' => [
|
||||
'handler' => app\mqtt\Publish::class,
|
||||
'listen' => 'websocket://0.0.0.0:8955',
|
||||
'count' => 1,
|
||||
],
|
||||
/**
|
||||
* 订阅
|
||||
*/
|
||||
'mqtt_sub' => [
|
||||
'handler' => app\mqtt\Subscribe::class,
|
||||
'listen' => 'websocket://0.0.0.0:8956',
|
||||
'count' => 1,
|
||||
],
|
||||
// 'mqtt_push' => [
|
||||
// 'handler' => app\mqtt\Publish::class,
|
||||
// 'listen' => 'websocket://0.0.0.0:8955',
|
||||
// 'count' => 1,
|
||||
// ],
|
||||
// /**
|
||||
// * 订阅
|
||||
// */
|
||||
// 'mqtt_sub' => [
|
||||
// 'handler' => app\mqtt\Subscribe::class,
|
||||
// 'listen' => 'websocket://0.0.0.0:8956',
|
||||
// 'count' => 1,
|
||||
// ],
|
||||
];
|
||||
|
@ -27,5 +27,5 @@ return [
|
||||
'status_file' => runtime_path() . '/webman.status',
|
||||
'stdout_file' => runtime_path() . '/logs/stdout.log',
|
||||
'log_file' => runtime_path() . '/logs/workerman.log',
|
||||
'max_package_size' => 10 * 1024 * 1024
|
||||
'max_package_size' => 350 * 1024 * 1024
|
||||
];
|
||||
|
@ -23,7 +23,7 @@ return [
|
||||
// 断线重连
|
||||
'break_reconnect' => true,
|
||||
// 关闭SQL监听日志
|
||||
'trigger_sql' => false,
|
||||
'trigger_sql' => true,
|
||||
// 自定义分页类
|
||||
'bootstrap' => ''
|
||||
],
|
||||
|
0
public/upload/asdasd.apk
Normal file
0
public/upload/asdasd.apk
Normal file
Binary file not shown.
BIN
public/upload/tmp/213213/165c468905fa4e852e23d2ab8ab2c33a_1
Normal file
BIN
public/upload/tmp/213213/165c468905fa4e852e23d2ab8ab2c33a_1
Normal file
Binary file not shown.
@ -27,6 +27,7 @@ use Twig\Error\SyntaxError;
|
||||
use Webman\App;
|
||||
use Webman\Config;
|
||||
use Webman\Route;
|
||||
use Workerman\Protocols\Http\Session;
|
||||
use Workerman\Worker;
|
||||
|
||||
// Project base path
|
||||
@ -300,7 +301,7 @@ function route(string $name, ...$parameters): string
|
||||
* Session
|
||||
* @param mixed $key
|
||||
* @param mixed $default
|
||||
* @return mixed
|
||||
* @return mixed|bool|Session
|
||||
*/
|
||||
function session($key = null, $default = null)
|
||||
{
|
||||
|
0
vendor/aliyuncs/oss-sdk-php/build-phar.sh
vendored
Normal file → Executable file
0
vendor/aliyuncs/oss-sdk-php/build-phar.sh
vendored
Normal file → Executable file
21
vendor/carbonphp/carbon-doctrine-types/LICENSE
vendored
Normal file
21
vendor/carbonphp/carbon-doctrine-types/LICENSE
vendored
Normal file
@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2023 Carbon
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
14
vendor/carbonphp/carbon-doctrine-types/README.md
vendored
Normal file
14
vendor/carbonphp/carbon-doctrine-types/README.md
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
# carbonphp/carbon-doctrine-types
|
||||
|
||||
Types to use Carbon in Doctrine
|
||||
|
||||
## Documentation
|
||||
|
||||
[Check how to use in the official Carbon documentation](https://carbon.nesbot.com/symfony/)
|
||||
|
||||
This package is an externalization of [src/Carbon/Doctrine](https://github.com/briannesbitt/Carbon/tree/2.71.0/src/Carbon/Doctrine)
|
||||
from `nestbot/carbon` package.
|
||||
|
||||
Externalization allows to better deal with different versions of dbal. With
|
||||
version 4.0 of dbal, it no longer sustainable to be compatible with all version
|
||||
using a single code.
|
36
vendor/carbonphp/carbon-doctrine-types/composer.json
vendored
Normal file
36
vendor/carbonphp/carbon-doctrine-types/composer.json
vendored
Normal file
@ -0,0 +1,36 @@
|
||||
{
|
||||
"name": "carbonphp/carbon-doctrine-types",
|
||||
"description": "Types to use Carbon in Doctrine",
|
||||
"type": "library",
|
||||
"keywords": [
|
||||
"date",
|
||||
"time",
|
||||
"DateTime",
|
||||
"Carbon",
|
||||
"Doctrine"
|
||||
],
|
||||
"require": {
|
||||
"php": "^8.1"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/dbal": "^4.0.0",
|
||||
"nesbot/carbon": "^2.71.0 || ^3.0.0",
|
||||
"phpunit/phpunit": "^10.3"
|
||||
},
|
||||
"conflict": {
|
||||
"doctrine/dbal": "<4.0.0 || >=5.0.0"
|
||||
},
|
||||
"license": "MIT",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Carbon\\Doctrine\\": "src/Carbon/Doctrine/"
|
||||
}
|
||||
},
|
||||
"authors": [
|
||||
{
|
||||
"name": "KyleKatarn",
|
||||
"email": "kylekatarnls@gmail.com"
|
||||
}
|
||||
],
|
||||
"minimum-stability": "dev"
|
||||
}
|
16
vendor/carbonphp/carbon-doctrine-types/src/Carbon/Doctrine/CarbonDoctrineType.php
vendored
Normal file
16
vendor/carbonphp/carbon-doctrine-types/src/Carbon/Doctrine/CarbonDoctrineType.php
vendored
Normal file
@ -0,0 +1,16 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Carbon\Doctrine;
|
||||
|
||||
use Doctrine\DBAL\Platforms\AbstractPlatform;
|
||||
|
||||
interface CarbonDoctrineType
|
||||
{
|
||||
public function getSQLDeclaration(array $fieldDeclaration, AbstractPlatform $platform);
|
||||
|
||||
public function convertToPHPValue(mixed $value, AbstractPlatform $platform);
|
||||
|
||||
public function convertToDatabaseValue($value, AbstractPlatform $platform);
|
||||
}
|
9
vendor/carbonphp/carbon-doctrine-types/src/Carbon/Doctrine/CarbonImmutableType.php
vendored
Normal file
9
vendor/carbonphp/carbon-doctrine-types/src/Carbon/Doctrine/CarbonImmutableType.php
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Carbon\Doctrine;
|
||||
|
||||
class CarbonImmutableType extends DateTimeImmutableType implements CarbonDoctrineType
|
||||
{
|
||||
}
|
9
vendor/carbonphp/carbon-doctrine-types/src/Carbon/Doctrine/CarbonType.php
vendored
Normal file
9
vendor/carbonphp/carbon-doctrine-types/src/Carbon/Doctrine/CarbonType.php
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Carbon\Doctrine;
|
||||
|
||||
class CarbonType extends DateTimeType implements CarbonDoctrineType
|
||||
{
|
||||
}
|
@ -1,13 +1,6 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Carbon\Doctrine;
|
||||
|
||||
@ -15,7 +8,8 @@ use Carbon\Carbon;
|
||||
use Carbon\CarbonInterface;
|
||||
use DateTimeInterface;
|
||||
use Doctrine\DBAL\Platforms\AbstractPlatform;
|
||||
use Doctrine\DBAL\Types\ConversionException;
|
||||
use Doctrine\DBAL\Types\Exception\InvalidType;
|
||||
use Doctrine\DBAL\Types\Exception\ValueNotConvertible;
|
||||
use Exception;
|
||||
|
||||
/**
|
||||
@ -23,6 +17,14 @@ use Exception;
|
||||
*/
|
||||
trait CarbonTypeConverter
|
||||
{
|
||||
/**
|
||||
* This property differentiates types installed by carbonphp/carbon-doctrine-types
|
||||
* from the ones embedded previously in nesbot/carbon source directly.
|
||||
*
|
||||
* @readonly
|
||||
*/
|
||||
public bool $external = true;
|
||||
|
||||
/**
|
||||
* @return class-string<T>
|
||||
*/
|
||||
@ -31,20 +33,9 @@ trait CarbonTypeConverter
|
||||
return Carbon::class;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getSQLDeclaration(array $fieldDeclaration, AbstractPlatform $platform)
|
||||
public function getSQLDeclaration(array $fieldDeclaration, AbstractPlatform $platform): string
|
||||
{
|
||||
$precision = $fieldDeclaration['precision'] ?: 10;
|
||||
|
||||
if ($fieldDeclaration['secondPrecision'] ?? false) {
|
||||
$precision = 0;
|
||||
}
|
||||
|
||||
if ($precision === 10) {
|
||||
$precision = DateTimeDefaultPrecision::get();
|
||||
}
|
||||
$precision = $fieldDeclaration['precision'] ?? DateTimeDefaultPrecision::get();
|
||||
|
||||
$type = parent::getSQLDeclaration($fieldDeclaration, $platform);
|
||||
|
||||
@ -63,10 +54,25 @@ trait CarbonTypeConverter
|
||||
|
||||
/**
|
||||
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
|
||||
*
|
||||
* @return T|null
|
||||
*/
|
||||
public function convertToPHPValue($value, AbstractPlatform $platform)
|
||||
public function convertToDatabaseValue($value, AbstractPlatform $platform): ?string
|
||||
{
|
||||
if ($value === null) {
|
||||
return $value;
|
||||
}
|
||||
|
||||
if ($value instanceof DateTimeInterface) {
|
||||
return $value->format('Y-m-d H:i:s.u');
|
||||
}
|
||||
|
||||
throw InvalidType::new(
|
||||
$value,
|
||||
static::class,
|
||||
['null', 'DateTime', 'Carbon']
|
||||
);
|
||||
}
|
||||
|
||||
private function doConvertToPHPValue(mixed $value)
|
||||
{
|
||||
$class = $this->getCarbonClassName();
|
||||
|
||||
@ -88,9 +94,9 @@ trait CarbonTypeConverter
|
||||
}
|
||||
|
||||
if (!$date) {
|
||||
throw ConversionException::conversionFailedFormat(
|
||||
throw ValueNotConvertible::new(
|
||||
$value,
|
||||
$this->getName(),
|
||||
static::class,
|
||||
'Y-m-d H:i:s.u or any format supported by '.$class.'::parse()',
|
||||
$error
|
||||
);
|
||||
@ -98,26 +104,4 @@ trait CarbonTypeConverter
|
||||
|
||||
return $date;
|
||||
}
|
||||
|
||||
/**
|
||||
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
|
||||
*
|
||||
* @return string|null
|
||||
*/
|
||||
public function convertToDatabaseValue($value, AbstractPlatform $platform)
|
||||
{
|
||||
if ($value === null) {
|
||||
return $value;
|
||||
}
|
||||
|
||||
if ($value instanceof DateTimeInterface) {
|
||||
return $value->format('Y-m-d H:i:s.u');
|
||||
}
|
||||
|
||||
throw ConversionException::conversionFailedInvalidType(
|
||||
$value,
|
||||
$this->getName(),
|
||||
['null', 'DateTime', 'Carbon']
|
||||
);
|
||||
}
|
||||
}
|
@ -1,13 +1,6 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of the Carbon package.
|
||||
*
|
||||
* (c) Brian Nesbitt <brian@nesbot.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Carbon\Doctrine;
|
||||
|
@ -1,12 +1,12 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Thanks to https://github.com/flaushi for his suggestion:
|
||||
* https://github.com/doctrine/dbal/issues/2873#issuecomment-534956358
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Carbon\Doctrine;
|
||||
|
||||
use Carbon\CarbonImmutable;
|
||||
use DateTimeImmutable;
|
||||
use Doctrine\DBAL\Platforms\AbstractPlatform;
|
||||
use Doctrine\DBAL\Types\VarDateTimeImmutableType;
|
||||
|
||||
class DateTimeImmutableType extends VarDateTimeImmutableType implements CarbonDoctrineType
|
||||
@ -14,6 +14,14 @@ class DateTimeImmutableType extends VarDateTimeImmutableType implements CarbonDo
|
||||
/** @use CarbonTypeConverter<CarbonImmutable> */
|
||||
use CarbonTypeConverter;
|
||||
|
||||
/**
|
||||
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
|
||||
*/
|
||||
public function convertToPHPValue(mixed $value, AbstractPlatform $platform): ?DateTimeImmutable
|
||||
{
|
||||
return $this->doConvertToPHPValue($value);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return class-string<CarbonImmutable>
|
||||
*/
|
24
vendor/carbonphp/carbon-doctrine-types/src/Carbon/Doctrine/DateTimeType.php
vendored
Normal file
24
vendor/carbonphp/carbon-doctrine-types/src/Carbon/Doctrine/DateTimeType.php
vendored
Normal file
@ -0,0 +1,24 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Carbon\Doctrine;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use DateTime;
|
||||
use Doctrine\DBAL\Platforms\AbstractPlatform;
|
||||
use Doctrine\DBAL\Types\VarDateTimeType;
|
||||
|
||||
class DateTimeType extends VarDateTimeType implements CarbonDoctrineType
|
||||
{
|
||||
/** @use CarbonTypeConverter<Carbon> */
|
||||
use CarbonTypeConverter;
|
||||
|
||||
/**
|
||||
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
|
||||
*/
|
||||
public function convertToPHPValue(mixed $value, AbstractPlatform $platform): ?DateTime
|
||||
{
|
||||
return $this->doConvertToPHPValue($value);
|
||||
}
|
||||
}
|
10
vendor/composer/autoload_psr4.php
vendored
10
vendor/composer/autoload_psr4.php
vendored
@ -7,7 +7,7 @@ $baseDir = dirname($vendorDir);
|
||||
|
||||
return array(
|
||||
'voku\\' => array($vendorDir . '/voku/portable-ascii/src/voku'),
|
||||
'think\\' => array($vendorDir . '/topthink/think-container/src', $vendorDir . '/topthink/think-helper/src', $vendorDir . '/topthink/think-orm/src'),
|
||||
'think\\' => array($vendorDir . '/topthink/think-helper/src', $vendorDir . '/topthink/think-container/src', $vendorDir . '/topthink/think-orm/src'),
|
||||
'taoser\\' => array($vendorDir . '/taoser/webman-validate/src'),
|
||||
'support\\' => array($vendorDir . '/workerman/webman-framework/src/support'),
|
||||
'mon\\util\\' => array($vendorDir . '/mongdch/mon-util/src'),
|
||||
@ -45,11 +45,12 @@ return array(
|
||||
'Qcloud\\Cos\\' => array($vendorDir . '/qcloud/cos-sdk-v5/src'),
|
||||
'Psr\\SimpleCache\\' => array($vendorDir . '/psr/simple-cache/src'),
|
||||
'Psr\\Log\\' => array($vendorDir . '/psr/log/src'),
|
||||
'Psr\\Http\\Message\\' => array($vendorDir . '/psr/http-factory/src', $vendorDir . '/psr/http-message/src'),
|
||||
'Psr\\Http\\Message\\' => array($vendorDir . '/psr/http-message/src', $vendorDir . '/psr/http-factory/src'),
|
||||
'Psr\\Http\\Client\\' => array($vendorDir . '/psr/http-client/src'),
|
||||
'Psr\\Container\\' => array($vendorDir . '/psr/container/src'),
|
||||
'Psr\\Clock\\' => array($vendorDir . '/psr/clock/src'),
|
||||
'Psr\\Cache\\' => array($vendorDir . '/psr/cache/src'),
|
||||
'Phrity\\Net\\' => array($vendorDir . '/phrity/net-uri/src'),
|
||||
'PhpOption\\' => array($vendorDir . '/phpoption/phpoption/src/PhpOption'),
|
||||
'PhpOffice\\PhpSpreadsheet\\' => array($vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet'),
|
||||
'PhpDocReader\\' => array($vendorDir . '/php-di/phpdoc-reader/src/PhpDocReader'),
|
||||
@ -60,7 +61,7 @@ return array(
|
||||
'Matrix\\' => array($vendorDir . '/markbaker/matrix/classes/src'),
|
||||
'Laravel\\SerializableClosure\\' => array($vendorDir . '/laravel/serializable-closure/src'),
|
||||
'Invoker\\' => array($vendorDir . '/php-di/invoker/src'),
|
||||
'Illuminate\\Support\\' => array($vendorDir . '/illuminate/collections', $vendorDir . '/illuminate/conditionable', $vendorDir . '/illuminate/macroable', $vendorDir . '/illuminate/support'),
|
||||
'Illuminate\\Support\\' => array($vendorDir . '/illuminate/macroable', $vendorDir . '/illuminate/conditionable', $vendorDir . '/illuminate/collections', $vendorDir . '/illuminate/support'),
|
||||
'Illuminate\\Redis\\' => array($vendorDir . '/illuminate/redis'),
|
||||
'Illuminate\\Contracts\\' => array($vendorDir . '/illuminate/contracts'),
|
||||
'GuzzleHttp\\UriTemplate\\' => array($vendorDir . '/guzzlehttp/uri-template/src'),
|
||||
@ -79,7 +80,8 @@ return array(
|
||||
'DI\\' => array($vendorDir . '/php-di/php-di/src'),
|
||||
'Cron\\' => array($vendorDir . '/dragonmantank/cron-expression/src/Cron'),
|
||||
'Complex\\' => array($vendorDir . '/markbaker/complex/classes/src'),
|
||||
'Carbon\\Doctrine\\' => array($vendorDir . '/carbonphp/carbon-doctrine-types/src/Carbon/Doctrine'),
|
||||
'Carbon\\' => array($vendorDir . '/nesbot/carbon/src/Carbon'),
|
||||
'App\\' => array($baseDir . '/app'),
|
||||
'' => array($baseDir . '/'),
|
||||
'' => array($baseDir . '/', $vendorDir . '/phrity/util-errorhandler/src'),
|
||||
);
|
||||
|
23
vendor/composer/autoload_static.php
vendored
23
vendor/composer/autoload_static.php
vendored
@ -111,6 +111,7 @@ class ComposerStaticInita5e937600be5568fba59bedece01053c
|
||||
'Psr\\Container\\' => 14,
|
||||
'Psr\\Clock\\' => 10,
|
||||
'Psr\\Cache\\' => 10,
|
||||
'Phrity\\Net\\' => 11,
|
||||
'PhpOption\\' => 10,
|
||||
'PhpOffice\\PhpSpreadsheet\\' => 25,
|
||||
'PhpDocReader\\' => 13,
|
||||
@ -164,6 +165,7 @@ class ComposerStaticInita5e937600be5568fba59bedece01053c
|
||||
array (
|
||||
'Cron\\' => 5,
|
||||
'Complex\\' => 8,
|
||||
'Carbon\\Doctrine\\' => 16,
|
||||
'Carbon\\' => 7,
|
||||
),
|
||||
'A' =>
|
||||
@ -179,8 +181,8 @@ class ComposerStaticInita5e937600be5568fba59bedece01053c
|
||||
),
|
||||
'think\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/topthink/think-container/src',
|
||||
1 => __DIR__ . '/..' . '/topthink/think-helper/src',
|
||||
0 => __DIR__ . '/..' . '/topthink/think-helper/src',
|
||||
1 => __DIR__ . '/..' . '/topthink/think-container/src',
|
||||
2 => __DIR__ . '/..' . '/topthink/think-orm/src',
|
||||
),
|
||||
'taoser\\' =>
|
||||
@ -333,8 +335,8 @@ class ComposerStaticInita5e937600be5568fba59bedece01053c
|
||||
),
|
||||
'Psr\\Http\\Message\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/psr/http-factory/src',
|
||||
1 => __DIR__ . '/..' . '/psr/http-message/src',
|
||||
0 => __DIR__ . '/..' . '/psr/http-message/src',
|
||||
1 => __DIR__ . '/..' . '/psr/http-factory/src',
|
||||
),
|
||||
'Psr\\Http\\Client\\' =>
|
||||
array (
|
||||
@ -352,6 +354,10 @@ class ComposerStaticInita5e937600be5568fba59bedece01053c
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/psr/cache/src',
|
||||
),
|
||||
'Phrity\\Net\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/phrity/net-uri/src',
|
||||
),
|
||||
'PhpOption\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/phpoption/phpoption/src/PhpOption',
|
||||
@ -394,9 +400,9 @@ class ComposerStaticInita5e937600be5568fba59bedece01053c
|
||||
),
|
||||
'Illuminate\\Support\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/illuminate/collections',
|
||||
0 => __DIR__ . '/..' . '/illuminate/macroable',
|
||||
1 => __DIR__ . '/..' . '/illuminate/conditionable',
|
||||
2 => __DIR__ . '/..' . '/illuminate/macroable',
|
||||
2 => __DIR__ . '/..' . '/illuminate/collections',
|
||||
3 => __DIR__ . '/..' . '/illuminate/support',
|
||||
),
|
||||
'Illuminate\\Redis\\' =>
|
||||
@ -471,6 +477,10 @@ class ComposerStaticInita5e937600be5568fba59bedece01053c
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/markbaker/complex/classes/src',
|
||||
),
|
||||
'Carbon\\Doctrine\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/carbonphp/carbon-doctrine-types/src/Carbon/Doctrine',
|
||||
),
|
||||
'Carbon\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/nesbot/carbon/src/Carbon',
|
||||
@ -483,6 +493,7 @@ class ComposerStaticInita5e937600be5568fba59bedece01053c
|
||||
|
||||
public static $fallbackDirsPsr4 = array (
|
||||
0 => __DIR__ . '/../..' . '/',
|
||||
1 => __DIR__ . '/..' . '/phrity/util-errorhandler/src',
|
||||
);
|
||||
|
||||
public static $prefixesPsr0 = array (
|
||||
|
1876
vendor/composer/installed.json
vendored
1876
vendor/composer/installed.json
vendored
File diff suppressed because it is too large
Load Diff
215
vendor/composer/installed.php
vendored
215
vendor/composer/installed.php
vendored
@ -3,7 +3,7 @@
|
||||
'name' => 'workerman/webman',
|
||||
'pretty_version' => 'dev-master',
|
||||
'version' => 'dev-master',
|
||||
'reference' => '3a57936b3180850a6555ea18517b28261c9d2c4d',
|
||||
'reference' => '53c612880832653afb7a8d2b1d74498d6484586d',
|
||||
'type' => 'project',
|
||||
'install_path' => __DIR__ . '/../../',
|
||||
'aliases' => array(),
|
||||
@ -19,6 +19,15 @@
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'carbonphp/carbon-doctrine-types' => array(
|
||||
'pretty_version' => '3.0.0',
|
||||
'version' => '3.0.0.0',
|
||||
'reference' => '49856fbc09fe91b5433381faec60e3620ad364ad',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../carbonphp/carbon-doctrine-types',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'doctrine/annotations' => array(
|
||||
'pretty_version' => '1.14.3',
|
||||
'version' => '1.14.3.0',
|
||||
@ -29,9 +38,9 @@
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'doctrine/deprecations' => array(
|
||||
'pretty_version' => 'v1.1.1',
|
||||
'version' => '1.1.1.0',
|
||||
'reference' => '612a3ee5ab0d5dd97b7cf3874a6efe24325efac3',
|
||||
'pretty_version' => '1.1.2',
|
||||
'version' => '1.1.2.0',
|
||||
'reference' => '4f2d4f2836e7ec4e7a8625e75c6aa916004db931',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../doctrine/deprecations',
|
||||
'aliases' => array(),
|
||||
@ -65,18 +74,18 @@
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'ezyang/htmlpurifier' => array(
|
||||
'pretty_version' => 'v4.16.0',
|
||||
'version' => '4.16.0.0',
|
||||
'reference' => '523407fb06eb9e5f3d59889b3978d5bfe94299c8',
|
||||
'pretty_version' => 'v4.17.0',
|
||||
'version' => '4.17.0.0',
|
||||
'reference' => 'bbc513d79acf6691fa9cf10f192c90dd2957f18c',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../ezyang/htmlpurifier',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'graham-campbell/result-type' => array(
|
||||
'pretty_version' => 'v1.1.1',
|
||||
'version' => '1.1.1.0',
|
||||
'reference' => '672eff8cf1d6fe1ef09ca0f89c4b287d6a3eb831',
|
||||
'pretty_version' => 'v1.1.2',
|
||||
'version' => '1.1.2.0',
|
||||
'reference' => 'fbd48bce38f73f8a4ec8583362e732e4095e5862',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../graham-campbell/result-type',
|
||||
'aliases' => array(),
|
||||
@ -137,17 +146,17 @@
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'illuminate/collections' => array(
|
||||
'pretty_version' => 'v10.22.0',
|
||||
'version' => '10.22.0.0',
|
||||
'reference' => 'f494398dbaaead9e5ff16a18002d11634e8358e6',
|
||||
'pretty_version' => 'v10.34.2',
|
||||
'version' => '10.34.2.0',
|
||||
'reference' => '8e4c4f97ea066cd6aec962ef8a6abc09dfd5e754',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../illuminate/collections',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'illuminate/conditionable' => array(
|
||||
'pretty_version' => 'v10.22.0',
|
||||
'version' => '10.22.0.0',
|
||||
'pretty_version' => 'v10.34.2',
|
||||
'version' => '10.34.2.0',
|
||||
'reference' => 'd0958e4741fc9d6f516a552060fd1b829a85e009',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../illuminate/conditionable',
|
||||
@ -155,17 +164,17 @@
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'illuminate/contracts' => array(
|
||||
'pretty_version' => 'v10.22.0',
|
||||
'version' => '10.22.0.0',
|
||||
'reference' => 'eb1a7e72e159136a832f2c0467de5570bdc208ae',
|
||||
'pretty_version' => 'v10.34.2',
|
||||
'version' => '10.34.2.0',
|
||||
'reference' => 'f6bf37a272fda164f6c451407c99f820eb1eb95b',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../illuminate/contracts',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'illuminate/macroable' => array(
|
||||
'pretty_version' => 'v10.22.0',
|
||||
'version' => '10.22.0.0',
|
||||
'pretty_version' => 'v10.34.2',
|
||||
'version' => '10.34.2.0',
|
||||
'reference' => 'dff667a46ac37b634dcf68909d9d41e94dc97c27',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../illuminate/macroable',
|
||||
@ -173,27 +182,27 @@
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'illuminate/redis' => array(
|
||||
'pretty_version' => 'v10.22.0',
|
||||
'version' => '10.22.0.0',
|
||||
'reference' => '896a0f1940147417f8ce88cced703691bc5548b0',
|
||||
'pretty_version' => 'v10.34.2',
|
||||
'version' => '10.34.2.0',
|
||||
'reference' => '69771c1ef8d76a0066d86e41f26598d6650eb79f',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../illuminate/redis',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'illuminate/support' => array(
|
||||
'pretty_version' => 'v10.22.0',
|
||||
'version' => '10.22.0.0',
|
||||
'reference' => '7ff0d0d70a7b8275816398a88870e062a01ebb8b',
|
||||
'pretty_version' => 'v10.34.2',
|
||||
'version' => '10.34.2.0',
|
||||
'reference' => '88960c790553fb24aa0c52b9a0b58fab04ea6fc3',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../illuminate/support',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'laravel/serializable-closure' => array(
|
||||
'pretty_version' => 'v1.3.1',
|
||||
'version' => '1.3.1.0',
|
||||
'reference' => 'e5a3057a5591e1cfe8183034b0203921abe2c902',
|
||||
'pretty_version' => 'v1.3.3',
|
||||
'version' => '1.3.3.0',
|
||||
'reference' => '3dbf8a8e914634c48d389c1234552666b3d43754',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../laravel/serializable-closure',
|
||||
'aliases' => array(),
|
||||
@ -254,9 +263,9 @@
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'monolog/monolog' => array(
|
||||
'pretty_version' => '2.9.1',
|
||||
'version' => '2.9.1.0',
|
||||
'reference' => 'f259e2b15fb95494c83f52d3caad003bbf5ffaa1',
|
||||
'pretty_version' => '2.9.2',
|
||||
'version' => '2.9.2.0',
|
||||
'reference' => '437cb3628f4cf6042cc10ae97fc2b8472e48ca1f',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../monolog/monolog',
|
||||
'aliases' => array(),
|
||||
@ -269,9 +278,9 @@
|
||||
),
|
||||
),
|
||||
'nesbot/carbon' => array(
|
||||
'pretty_version' => '2.70.0',
|
||||
'version' => '2.70.0.0',
|
||||
'reference' => 'd3298b38ea8612e5f77d38d1a99438e42f70341d',
|
||||
'pretty_version' => '2.72.0',
|
||||
'version' => '2.72.0.0',
|
||||
'reference' => 'a6885fcbad2ec4360b0e200ee0da7d9b7c90786b',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../nesbot/carbon',
|
||||
'aliases' => array(),
|
||||
@ -323,18 +332,36 @@
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'phpoption/phpoption' => array(
|
||||
'pretty_version' => '1.9.1',
|
||||
'version' => '1.9.1.0',
|
||||
'reference' => 'dd3a383e599f49777d8b628dadbb90cae435b87e',
|
||||
'pretty_version' => '1.9.2',
|
||||
'version' => '1.9.2.0',
|
||||
'reference' => '80735db690fe4fc5c76dfa7f9b770634285fa820',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../phpoption/phpoption',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'psr/cache' => array(
|
||||
'phrity/net-uri' => array(
|
||||
'pretty_version' => '1.3.0',
|
||||
'version' => '1.3.0.0',
|
||||
'reference' => '3f458e0c4d1ddc0e218d7a5b9420127c63925f43',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../phrity/net-uri',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'phrity/util-errorhandler' => array(
|
||||
'pretty_version' => '1.0.1',
|
||||
'version' => '1.0.1.0',
|
||||
'reference' => 'd11b50ad223250cf17b86e38383413f5a6764bf8',
|
||||
'reference' => 'dc9ac8fb70d733c48a9d9d1eb50f7022172da6bc',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../phrity/util-errorhandler',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'psr/cache' => array(
|
||||
'pretty_version' => '2.0.0',
|
||||
'version' => '2.0.0.0',
|
||||
'reference' => '213f9dbc5b9bfbc4f8db86d2838dc968752ce13b',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../psr/cache',
|
||||
'aliases' => array(),
|
||||
@ -377,9 +404,9 @@
|
||||
),
|
||||
),
|
||||
'psr/http-client' => array(
|
||||
'pretty_version' => '1.0.2',
|
||||
'version' => '1.0.2.0',
|
||||
'reference' => '0955afe48220520692d2d09f7ab7e0f93ffd6a31',
|
||||
'pretty_version' => '1.0.3',
|
||||
'version' => '1.0.3.0',
|
||||
'reference' => 'bb5906edc1c324c9a05aa0873d40117941e5fa90',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../psr/http-client',
|
||||
'aliases' => array(),
|
||||
@ -407,9 +434,9 @@
|
||||
),
|
||||
),
|
||||
'psr/http-message' => array(
|
||||
'pretty_version' => '2.0',
|
||||
'version' => '2.0.0.0',
|
||||
'reference' => '402d35bcb92c70c026d1a6a9883f06b2ead23d71',
|
||||
'pretty_version' => '1.1',
|
||||
'version' => '1.1.0.0',
|
||||
'reference' => 'cb6ce4845ce34a8ad9e68117c10ee90a29919eba',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../psr/http-message',
|
||||
'aliases' => array(),
|
||||
@ -438,9 +465,9 @@
|
||||
),
|
||||
),
|
||||
'psr/simple-cache' => array(
|
||||
'pretty_version' => '1.0.1',
|
||||
'version' => '1.0.1.0',
|
||||
'reference' => '408d5eafb83c57f6365a3ca330ff23aa4a5fa39b',
|
||||
'pretty_version' => '3.0.0',
|
||||
'version' => '3.0.0.0',
|
||||
'reference' => '764e0b3939f5ca87cb904f570ef9be2d78a07865',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../psr/simple-cache',
|
||||
'aliases' => array(),
|
||||
@ -453,9 +480,9 @@
|
||||
),
|
||||
),
|
||||
'qcloud/cos-sdk-v5' => array(
|
||||
'pretty_version' => 'v2.6.6',
|
||||
'version' => '2.6.6.0',
|
||||
'reference' => '9d82ccb550fe2dca1adfb53835791d314023a9a8',
|
||||
'pretty_version' => 'v2.6.8',
|
||||
'version' => '2.6.8.0',
|
||||
'reference' => '6bbce32516a4932aca3e7b8cdcc734eb2b1ec5d4',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../qcloud/cos-sdk-v5',
|
||||
'aliases' => array(),
|
||||
@ -480,9 +507,9 @@
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'symfony/cache' => array(
|
||||
'pretty_version' => 'v5.4.28',
|
||||
'version' => '5.4.28.0',
|
||||
'reference' => '62b7ae3bccc5b474a30fadc7ef6bbc362007d3f9',
|
||||
'pretty_version' => 'v5.4.32',
|
||||
'version' => '5.4.32.0',
|
||||
'reference' => '2553faca77502a4f68dc93cd2f3b9ec650751e40',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../symfony/cache',
|
||||
'aliases' => array(),
|
||||
@ -504,17 +531,17 @@
|
||||
),
|
||||
),
|
||||
'symfony/console' => array(
|
||||
'pretty_version' => 'v6.3.4',
|
||||
'version' => '6.3.4.0',
|
||||
'reference' => 'eca495f2ee845130855ddf1cf18460c38966c8b6',
|
||||
'pretty_version' => 'v6.4.1',
|
||||
'version' => '6.4.1.0',
|
||||
'reference' => 'a550a7c99daeedef3f9d23fb82e3531525ff11fd',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../symfony/console',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'symfony/deprecation-contracts' => array(
|
||||
'pretty_version' => 'v3.3.0',
|
||||
'version' => '3.3.0.0',
|
||||
'pretty_version' => 'v3.4.0',
|
||||
'version' => '3.4.0.0',
|
||||
'reference' => '7c3aff79d10325257a001fcf92d991f24fc967cf',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../symfony/deprecation-contracts',
|
||||
@ -585,27 +612,27 @@
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'symfony/string' => array(
|
||||
'pretty_version' => 'v6.3.2',
|
||||
'version' => '6.3.2.0',
|
||||
'reference' => '53d1a83225002635bca3482fcbf963001313fb68',
|
||||
'pretty_version' => 'v6.4.0',
|
||||
'version' => '6.4.0.0',
|
||||
'reference' => 'b45fcf399ea9c3af543a92edf7172ba21174d809',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../symfony/string',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'symfony/translation' => array(
|
||||
'pretty_version' => 'v6.3.3',
|
||||
'version' => '6.3.3.0',
|
||||
'reference' => '3ed078c54bc98bbe4414e1e9b2d5e85ed5a5c8bd',
|
||||
'pretty_version' => 'v6.4.0',
|
||||
'version' => '6.4.0.0',
|
||||
'reference' => 'b1035dbc2a344b21f8fa8ac451c7ecec4ea45f37',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../symfony/translation',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'symfony/translation-contracts' => array(
|
||||
'pretty_version' => 'v3.3.0',
|
||||
'version' => '3.3.0.0',
|
||||
'reference' => '02c24deb352fb0d79db5486c0c79905a85e37e86',
|
||||
'pretty_version' => 'v3.4.0',
|
||||
'version' => '3.4.0.0',
|
||||
'reference' => 'dee0c6e5b4c07ce851b462530088e64b255ac9c5',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../symfony/translation-contracts',
|
||||
'aliases' => array(),
|
||||
@ -618,18 +645,18 @@
|
||||
),
|
||||
),
|
||||
'symfony/var-dumper' => array(
|
||||
'pretty_version' => 'v6.3.4',
|
||||
'version' => '6.3.4.0',
|
||||
'reference' => '2027be14f8ae8eae999ceadebcda5b4909b81d45',
|
||||
'pretty_version' => 'v6.4.0',
|
||||
'version' => '6.4.0.0',
|
||||
'reference' => 'c40f7d17e91d8b407582ed51a2bbf83c52c367f6',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../symfony/var-dumper',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'symfony/var-exporter' => array(
|
||||
'pretty_version' => 'v6.3.4',
|
||||
'version' => '6.3.4.0',
|
||||
'reference' => 'df1f8aac5751871b83d30bf3e2c355770f8f0691',
|
||||
'pretty_version' => 'v6.4.1',
|
||||
'version' => '6.4.1.0',
|
||||
'reference' => '2d08ca6b9cc704dce525615d1e6d1788734f36d9',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../symfony/var-exporter',
|
||||
'aliases' => array(),
|
||||
@ -645,9 +672,9 @@
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'textalk/websocket' => array(
|
||||
'pretty_version' => '1.5.8',
|
||||
'version' => '1.5.8.0',
|
||||
'reference' => 'd05dbaa97500176447ffb1f1800573f23085ab13',
|
||||
'pretty_version' => '1.6.3',
|
||||
'version' => '1.6.3.0',
|
||||
'reference' => '67de79745b1a357caf812bfc44e0abf481cee012',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../textalk/websocket',
|
||||
'aliases' => array(),
|
||||
@ -681,18 +708,18 @@
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'topthink/think-orm' => array(
|
||||
'pretty_version' => 'v3.0.13',
|
||||
'version' => '3.0.13.0',
|
||||
'reference' => 'e676e172d54055266005986d05685bdac5ac66b7',
|
||||
'pretty_version' => 'v3.0.14',
|
||||
'version' => '3.0.14.0',
|
||||
'reference' => '7b0b8ea6ca5e020217f6ba7ae34d547e148a675b',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../topthink/think-orm',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'vlucas/phpdotenv' => array(
|
||||
'pretty_version' => 'v5.5.0',
|
||||
'version' => '5.5.0.0',
|
||||
'reference' => '1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7',
|
||||
'pretty_version' => 'v5.6.0',
|
||||
'version' => '5.6.0.0',
|
||||
'reference' => '2cf9fb6054c2bb1d59d1f3817706ecdb9d2934c4',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../vlucas/phpdotenv',
|
||||
'aliases' => array(),
|
||||
@ -708,18 +735,18 @@
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'webman/console' => array(
|
||||
'pretty_version' => 'v1.2.38',
|
||||
'version' => '1.2.38.0',
|
||||
'reference' => '2a48e1d196e67f4deba2dc9d624fb09682bb034d',
|
||||
'pretty_version' => 'v1.2.39',
|
||||
'version' => '1.2.39.0',
|
||||
'reference' => 'd0ed633fa4ea7c6e7d2f5961a0cc1f5f890a5079',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../webman/console',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'webman/log' => array(
|
||||
'pretty_version' => 'v1.1.5',
|
||||
'version' => '1.1.5.0',
|
||||
'reference' => '28f722778ef722a78c9be2565d537eea7805cc01',
|
||||
'pretty_version' => 'v1.1.8',
|
||||
'version' => '1.1.8.0',
|
||||
'reference' => '3e212bd86e2580f1c32d04ec999944fe6c1ea570',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../webman/log',
|
||||
'aliases' => array(),
|
||||
@ -746,16 +773,16 @@
|
||||
'workerman/webman' => array(
|
||||
'pretty_version' => 'dev-master',
|
||||
'version' => 'dev-master',
|
||||
'reference' => '3a57936b3180850a6555ea18517b28261c9d2c4d',
|
||||
'reference' => '53c612880832653afb7a8d2b1d74498d6484586d',
|
||||
'type' => 'project',
|
||||
'install_path' => __DIR__ . '/../../',
|
||||
'aliases' => array(),
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'workerman/webman-framework' => array(
|
||||
'pretty_version' => 'v1.5.8',
|
||||
'version' => '1.5.8.0',
|
||||
'reference' => '1cf2d1c8231dd4acaf88a491170552747f325732',
|
||||
'pretty_version' => 'v1.5.13',
|
||||
'version' => '1.5.13.0',
|
||||
'reference' => '699c9c9509d472679fa1d8461b9a9bb58fbe79a7',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../workerman/webman-framework',
|
||||
'aliases' => array(),
|
||||
|
@ -11,6 +11,7 @@ use function array_reduce;
|
||||
use function assert;
|
||||
use function debug_backtrace;
|
||||
use function sprintf;
|
||||
use function str_replace;
|
||||
use function strpos;
|
||||
use function strrpos;
|
||||
use function substr;
|
||||
@ -138,7 +139,7 @@ class Deprecation
|
||||
|
||||
// first check that the caller is not from a tests folder, in which case we always let deprecations pass
|
||||
if (isset($backtrace[1]['file'], $backtrace[0]['file']) && strpos($backtrace[1]['file'], DIRECTORY_SEPARATOR . 'tests' . DIRECTORY_SEPARATOR) === false) {
|
||||
$path = DIRECTORY_SEPARATOR . 'vendor' . DIRECTORY_SEPARATOR . $package . DIRECTORY_SEPARATOR;
|
||||
$path = DIRECTORY_SEPARATOR . 'vendor' . DIRECTORY_SEPARATOR . str_replace('/', DIRECTORY_SEPARATOR, $package) . DIRECTORY_SEPARATOR;
|
||||
|
||||
if (strpos($backtrace[0]['file'], $path) === false) {
|
||||
return;
|
||||
|
22
vendor/doctrine/deprecations/phpcs.xml
vendored
22
vendor/doctrine/deprecations/phpcs.xml
vendored
@ -1,22 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<ruleset>
|
||||
<arg name="basepath" value="."/>
|
||||
<arg name="extensions" value="php"/>
|
||||
<arg name="parallel" value="80"/>
|
||||
<arg name="cache" value=".phpcs-cache"/>
|
||||
<arg name="colors"/>
|
||||
|
||||
<!-- Ignore warnings, show progress of the run and show sniff names -->
|
||||
<arg value="nps"/>
|
||||
|
||||
<config name="php_version" value="70100"/>
|
||||
|
||||
<!-- Directories to be checked -->
|
||||
<file>lib</file>
|
||||
<file>tests</file>
|
||||
|
||||
<!-- Include full Doctrine Coding Standard -->
|
||||
<rule ref="Doctrine">
|
||||
<exclude name="SlevomatCodingStandard.TypeHints.PropertyTypeHint.MissingNativeTypeHint" />
|
||||
</rule>
|
||||
</ruleset>
|
9
vendor/doctrine/deprecations/phpstan.neon
vendored
9
vendor/doctrine/deprecations/phpstan.neon
vendored
@ -1,9 +0,0 @@
|
||||
parameters:
|
||||
level: 6
|
||||
paths:
|
||||
- lib
|
||||
- tests
|
||||
|
||||
includes:
|
||||
- vendor/phpstan/phpstan-phpunit/extension.neon
|
||||
- vendor/phpstan/phpstan-phpunit/rules.neon
|
30
vendor/doctrine/deprecations/psalm.xml
vendored
30
vendor/doctrine/deprecations/psalm.xml
vendored
@ -1,30 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<psalm
|
||||
errorLevel="1"
|
||||
resolveFromConfigFile="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"
|
||||
findUnusedBaselineEntry="true"
|
||||
findUnusedCode="false"
|
||||
>
|
||||
<projectFiles>
|
||||
<directory name="lib/Doctrine/Deprecations" />
|
||||
<directory name="tests/Doctrine/Deprecations" />
|
||||
<ignoreFiles>
|
||||
<directory name="vendor" />
|
||||
</ignoreFiles>
|
||||
</projectFiles>
|
||||
<plugins>
|
||||
<pluginClass class="Psalm\PhpUnitPlugin\Plugin"/>
|
||||
</plugins>
|
||||
<issueHandlers>
|
||||
<DeprecatedMethod>
|
||||
<errorLevel type="suppress">
|
||||
<!-- Remove when dropping support for PHPUnit 9.6 -->
|
||||
<referencedMethod name="PHPUnit\Framework\TestCase::expectDeprecation"/>
|
||||
<referencedMethod name="PHPUnit\Framework\TestCase::expectDeprecationMessage"/>
|
||||
</errorLevel>
|
||||
</DeprecatedMethod>
|
||||
</issueHandlers>
|
||||
</psalm>
|
6
vendor/ezyang/htmlpurifier/CHANGELOG.md
vendored
6
vendor/ezyang/htmlpurifier/CHANGELOG.md
vendored
@ -1,6 +0,0 @@
|
||||
# [4.16.0](https://github.com/ezyang/htmlpurifier/compare/v4.15.0...v4.16.0) (2022-09-18)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* add semantic release ([#307](https://github.com/ezyang/htmlpurifier/issues/307)) ([db31243](https://github.com/ezyang/htmlpurifier/commit/db312435cb9d8d73395f75f9642a43ba6de5e903)), closes [#322](https://github.com/ezyang/htmlpurifier/issues/322) [#323](https://github.com/ezyang/htmlpurifier/issues/323) [#326](https://github.com/ezyang/htmlpurifier/issues/326) [#327](https://github.com/ezyang/htmlpurifier/issues/327) [#328](https://github.com/ezyang/htmlpurifier/issues/328) [#329](https://github.com/ezyang/htmlpurifier/issues/329) [#330](https://github.com/ezyang/htmlpurifier/issues/330) [#331](https://github.com/ezyang/htmlpurifier/issues/331) [#332](https://github.com/ezyang/htmlpurifier/issues/332) [#333](https://github.com/ezyang/htmlpurifier/issues/333) [#337](https://github.com/ezyang/htmlpurifier/issues/337) [#335](https://github.com/ezyang/htmlpurifier/issues/335) [ezyang/htmlpurifier#334](https://github.com/ezyang/htmlpurifier/issues/334) [#336](https://github.com/ezyang/htmlpurifier/issues/336) [#338](https://github.com/ezyang/htmlpurifier/issues/338)
|
2
vendor/ezyang/htmlpurifier/VERSION
vendored
2
vendor/ezyang/htmlpurifier/VERSION
vendored
@ -1 +1 @@
|
||||
4.15.0
|
||||
4.17.0
|
5
vendor/ezyang/htmlpurifier/composer.json
vendored
5
vendor/ezyang/htmlpurifier/composer.json
vendored
@ -13,7 +13,7 @@
|
||||
}
|
||||
],
|
||||
"require": {
|
||||
"php": "~5.6.0 || ~7.0.0 || ~7.1.0 || ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0"
|
||||
"php": "~5.6.0 || ~7.0.0 || ~7.1.0 || ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"cerdic/css-tidy": "^1.7 || ^2.0",
|
||||
@ -38,7 +38,8 @@
|
||||
"repositories": [
|
||||
{
|
||||
"type": "vcs",
|
||||
"url": "https://github.com/ezyang/simpletest.git"
|
||||
"url": "https://github.com/ezyang/simpletest.git",
|
||||
"no-api": true
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@ -7,7 +7,7 @@
|
||||
* primary concern and you are using an opcode cache. PLEASE DO NOT EDIT THIS
|
||||
* FILE, changes will be overwritten the next time the script is run.
|
||||
*
|
||||
* @version 4.15.0
|
||||
* @version 4.17.0
|
||||
*
|
||||
* @warning
|
||||
* You must *not* include any other HTML Purifier files before this file,
|
||||
|
@ -19,7 +19,7 @@
|
||||
*/
|
||||
|
||||
/*
|
||||
HTML Purifier 4.15.0 - Standards Compliant HTML Filtering
|
||||
HTML Purifier 4.17.0 - Standards Compliant HTML Filtering
|
||||
Copyright (C) 2006-2008 Edward Z. Yang
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
@ -58,12 +58,12 @@ class HTMLPurifier
|
||||
* Version of HTML Purifier.
|
||||
* @type string
|
||||
*/
|
||||
public $version = '4.15.0';
|
||||
public $version = '4.17.0';
|
||||
|
||||
/**
|
||||
* Constant with version of HTML Purifier.
|
||||
*/
|
||||
const VERSION = '4.15.0';
|
||||
const VERSION = '4.17.0';
|
||||
|
||||
/**
|
||||
* Global configuration object.
|
||||
|
@ -10,23 +10,21 @@ class HTMLPurifier_AttrDef_CSS_FontFamily extends HTMLPurifier_AttrDef
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->mask = '_- ';
|
||||
for ($c = 'a'; $c <= 'z'; $c++) {
|
||||
$this->mask .= $c;
|
||||
}
|
||||
for ($c = 'A'; $c <= 'Z'; $c++) {
|
||||
$this->mask .= $c;
|
||||
}
|
||||
for ($c = '0'; $c <= '9'; $c++) {
|
||||
$this->mask .= $c;
|
||||
} // cast-y, but should be fine
|
||||
// special bytes used by UTF-8
|
||||
for ($i = 0x80; $i <= 0xFF; $i++) {
|
||||
// We don't bother excluding invalid bytes in this range,
|
||||
// because the our restriction of well-formed UTF-8 will
|
||||
// prevent these from ever occurring.
|
||||
$this->mask .= chr($i);
|
||||
}
|
||||
// Lowercase letters
|
||||
$l = range('a', 'z');
|
||||
// Uppercase letters
|
||||
$u = range('A', 'Z');
|
||||
// Digits
|
||||
$d = range('0', '9');
|
||||
// Special bytes used by UTF-8
|
||||
$b = array_map('chr', range(0x80, 0xFF));
|
||||
// All valid characters for the mask
|
||||
$c = array_merge($l, $u, $d, $b);
|
||||
// Concatenate all valid characters into a string
|
||||
// Use '_- ' as an initial value
|
||||
$this->mask = array_reduce($c, function ($carry, $value) {
|
||||
return $carry . $value;
|
||||
}, '_- ');
|
||||
|
||||
/*
|
||||
PHP's internal strcspn implementation is
|
||||
|
@ -106,7 +106,7 @@ class HTMLPurifier_AttrDef_URI_Host extends HTMLPurifier_AttrDef
|
||||
// If we have Net_IDNA2 support, we can support IRIs by
|
||||
// punycoding them. (This is the most portable thing to do,
|
||||
// since otherwise we have to assume browsers support
|
||||
} elseif ($config->get('Core.EnableIDNA')) {
|
||||
} elseif ($config->get('Core.EnableIDNA') && class_exists('Net_IDNA2')) {
|
||||
$idna = new Net_IDNA2(array('encoding' => 'utf8', 'overlong' => false, 'strict' => true));
|
||||
// we need to encode each period separately
|
||||
$parts = explode('.', $string);
|
||||
|
@ -33,7 +33,11 @@ class HTMLPurifier_AttrTransform_TargetBlank extends HTMLPurifier_AttrTransform
|
||||
|
||||
// XXX Kind of inefficient
|
||||
$url = $this->parser->parse($attr['href']);
|
||||
$scheme = $url->getSchemeObj($config, $context);
|
||||
|
||||
// Ignore invalid schemes (e.g. `javascript:`)
|
||||
if (!($scheme = $url->getSchemeObj($config, $context))) {
|
||||
return $attr;
|
||||
}
|
||||
|
||||
if ($scheme->browsable && !$url->isBenign($config, $context)) {
|
||||
$attr['target'] = '_blank';
|
||||
|
@ -79,44 +79,11 @@ class HTMLPurifier_Bootstrap
|
||||
public static function registerAutoload()
|
||||
{
|
||||
$autoload = array('HTMLPurifier_Bootstrap', 'autoload');
|
||||
if (($funcs = spl_autoload_functions()) === false) {
|
||||
if (spl_autoload_functions() === false) {
|
||||
spl_autoload_register($autoload);
|
||||
} elseif (function_exists('spl_autoload_unregister')) {
|
||||
if (version_compare(PHP_VERSION, '5.3.0', '>=')) {
|
||||
// prepend flag exists, no need for shenanigans
|
||||
spl_autoload_register($autoload, true, true);
|
||||
} else {
|
||||
$buggy = version_compare(PHP_VERSION, '5.2.11', '<');
|
||||
$compat = version_compare(PHP_VERSION, '5.1.2', '<=') &&
|
||||
version_compare(PHP_VERSION, '5.1.0', '>=');
|
||||
foreach ($funcs as $func) {
|
||||
if ($buggy && is_array($func)) {
|
||||
// :TRICKY: There are some compatibility issues and some
|
||||
// places where we need to error out
|
||||
$reflector = new ReflectionMethod($func[0], $func[1]);
|
||||
if (!$reflector->isStatic()) {
|
||||
throw new Exception(
|
||||
'HTML Purifier autoloader registrar is not compatible
|
||||
with non-static object methods due to PHP Bug #44144;
|
||||
Please do not use HTMLPurifier.autoload.php (or any
|
||||
file that includes this file); instead, place the code:
|
||||
spl_autoload_register(array(\'HTMLPurifier_Bootstrap\', \'autoload\'))
|
||||
after your own autoloaders.'
|
||||
);
|
||||
}
|
||||
// Suprisingly, spl_autoload_register supports the
|
||||
// Class::staticMethod callback format, although call_user_func doesn't
|
||||
if ($compat) {
|
||||
$func = implode('::', $func);
|
||||
}
|
||||
}
|
||||
spl_autoload_unregister($func);
|
||||
}
|
||||
spl_autoload_register($autoload);
|
||||
foreach ($funcs as $func) {
|
||||
spl_autoload_register($func);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// prepend flag exists, no need for shenanigans
|
||||
spl_autoload_register($autoload, true, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -13,7 +13,7 @@ class HTMLPurifier_CSSDefinition extends HTMLPurifier_Definition
|
||||
* Assoc array of attribute name to definition object.
|
||||
* @type HTMLPurifier_AttrDef[]
|
||||
*/
|
||||
public $info = array();
|
||||
public $info = [];
|
||||
|
||||
/**
|
||||
* Constructs the info array. The meat of this class.
|
||||
@ -22,7 +22,7 @@ class HTMLPurifier_CSSDefinition extends HTMLPurifier_Definition
|
||||
protected function doSetup($config)
|
||||
{
|
||||
$this->info['text-align'] = new HTMLPurifier_AttrDef_Enum(
|
||||
array('left', 'right', 'center', 'justify'),
|
||||
['left', 'right', 'center', 'justify'],
|
||||
false
|
||||
);
|
||||
|
||||
@ -31,7 +31,7 @@ class HTMLPurifier_CSSDefinition extends HTMLPurifier_Definition
|
||||
$this->info['border-right-style'] =
|
||||
$this->info['border-left-style'] =
|
||||
$this->info['border-top-style'] = new HTMLPurifier_AttrDef_Enum(
|
||||
array(
|
||||
[
|
||||
'none',
|
||||
'hidden',
|
||||
'dotted',
|
||||
@ -42,42 +42,42 @@ class HTMLPurifier_CSSDefinition extends HTMLPurifier_Definition
|
||||
'ridge',
|
||||
'inset',
|
||||
'outset'
|
||||
),
|
||||
],
|
||||
false
|
||||
);
|
||||
|
||||
$this->info['border-style'] = new HTMLPurifier_AttrDef_CSS_Multiple($border_style);
|
||||
|
||||
$this->info['clear'] = new HTMLPurifier_AttrDef_Enum(
|
||||
array('none', 'left', 'right', 'both'),
|
||||
['none', 'left', 'right', 'both'],
|
||||
false
|
||||
);
|
||||
$this->info['float'] = new HTMLPurifier_AttrDef_Enum(
|
||||
array('none', 'left', 'right'),
|
||||
['none', 'left', 'right'],
|
||||
false
|
||||
);
|
||||
$this->info['font-style'] = new HTMLPurifier_AttrDef_Enum(
|
||||
array('normal', 'italic', 'oblique'),
|
||||
['normal', 'italic', 'oblique'],
|
||||
false
|
||||
);
|
||||
$this->info['font-variant'] = new HTMLPurifier_AttrDef_Enum(
|
||||
array('normal', 'small-caps'),
|
||||
['normal', 'small-caps'],
|
||||
false
|
||||
);
|
||||
|
||||
$uri_or_none = new HTMLPurifier_AttrDef_CSS_Composite(
|
||||
array(
|
||||
new HTMLPurifier_AttrDef_Enum(array('none')),
|
||||
[
|
||||
new HTMLPurifier_AttrDef_Enum(['none']),
|
||||
new HTMLPurifier_AttrDef_CSS_URI()
|
||||
)
|
||||
]
|
||||
);
|
||||
|
||||
$this->info['list-style-position'] = new HTMLPurifier_AttrDef_Enum(
|
||||
array('inside', 'outside'),
|
||||
['inside', 'outside'],
|
||||
false
|
||||
);
|
||||
$this->info['list-style-type'] = new HTMLPurifier_AttrDef_Enum(
|
||||
array(
|
||||
[
|
||||
'disc',
|
||||
'circle',
|
||||
'square',
|
||||
@ -87,7 +87,7 @@ class HTMLPurifier_CSSDefinition extends HTMLPurifier_Definition
|
||||
'lower-alpha',
|
||||
'upper-alpha',
|
||||
'none'
|
||||
),
|
||||
],
|
||||
false
|
||||
);
|
||||
$this->info['list-style-image'] = $uri_or_none;
|
||||
@ -95,34 +95,34 @@ class HTMLPurifier_CSSDefinition extends HTMLPurifier_Definition
|
||||
$this->info['list-style'] = new HTMLPurifier_AttrDef_CSS_ListStyle($config);
|
||||
|
||||
$this->info['text-transform'] = new HTMLPurifier_AttrDef_Enum(
|
||||
array('capitalize', 'uppercase', 'lowercase', 'none'),
|
||||
['capitalize', 'uppercase', 'lowercase', 'none'],
|
||||
false
|
||||
);
|
||||
$this->info['color'] = new HTMLPurifier_AttrDef_CSS_Color();
|
||||
|
||||
$this->info['background-image'] = $uri_or_none;
|
||||
$this->info['background-repeat'] = new HTMLPurifier_AttrDef_Enum(
|
||||
array('repeat', 'repeat-x', 'repeat-y', 'no-repeat')
|
||||
['repeat', 'repeat-x', 'repeat-y', 'no-repeat']
|
||||
);
|
||||
$this->info['background-attachment'] = new HTMLPurifier_AttrDef_Enum(
|
||||
array('scroll', 'fixed')
|
||||
['scroll', 'fixed']
|
||||
);
|
||||
$this->info['background-position'] = new HTMLPurifier_AttrDef_CSS_BackgroundPosition();
|
||||
|
||||
$this->info['background-size'] = new HTMLPurifier_AttrDef_CSS_Composite(
|
||||
array(
|
||||
[
|
||||
new HTMLPurifier_AttrDef_Enum(
|
||||
array(
|
||||
[
|
||||
'auto',
|
||||
'cover',
|
||||
'contain',
|
||||
'initial',
|
||||
'inherit',
|
||||
)
|
||||
]
|
||||
),
|
||||
new HTMLPurifier_AttrDef_CSS_Percentage(),
|
||||
new HTMLPurifier_AttrDef_CSS_Length()
|
||||
)
|
||||
]
|
||||
);
|
||||
|
||||
$border_color =
|
||||
@ -131,10 +131,10 @@ class HTMLPurifier_CSSDefinition extends HTMLPurifier_Definition
|
||||
$this->info['border-left-color'] =
|
||||
$this->info['border-right-color'] =
|
||||
$this->info['background-color'] = new HTMLPurifier_AttrDef_CSS_Composite(
|
||||
array(
|
||||
new HTMLPurifier_AttrDef_Enum(array('transparent')),
|
||||
[
|
||||
new HTMLPurifier_AttrDef_Enum(['transparent']),
|
||||
new HTMLPurifier_AttrDef_CSS_Color()
|
||||
)
|
||||
]
|
||||
);
|
||||
|
||||
$this->info['background'] = new HTMLPurifier_AttrDef_CSS_Background($config);
|
||||
@ -146,32 +146,32 @@ class HTMLPurifier_CSSDefinition extends HTMLPurifier_Definition
|
||||
$this->info['border-bottom-width'] =
|
||||
$this->info['border-left-width'] =
|
||||
$this->info['border-right-width'] = new HTMLPurifier_AttrDef_CSS_Composite(
|
||||
array(
|
||||
new HTMLPurifier_AttrDef_Enum(array('thin', 'medium', 'thick')),
|
||||
[
|
||||
new HTMLPurifier_AttrDef_Enum(['thin', 'medium', 'thick']),
|
||||
new HTMLPurifier_AttrDef_CSS_Length('0') //disallow negative
|
||||
)
|
||||
]
|
||||
);
|
||||
|
||||
$this->info['border-width'] = new HTMLPurifier_AttrDef_CSS_Multiple($border_width);
|
||||
|
||||
$this->info['letter-spacing'] = new HTMLPurifier_AttrDef_CSS_Composite(
|
||||
array(
|
||||
new HTMLPurifier_AttrDef_Enum(array('normal')),
|
||||
[
|
||||
new HTMLPurifier_AttrDef_Enum(['normal']),
|
||||
new HTMLPurifier_AttrDef_CSS_Length()
|
||||
)
|
||||
]
|
||||
);
|
||||
|
||||
$this->info['word-spacing'] = new HTMLPurifier_AttrDef_CSS_Composite(
|
||||
array(
|
||||
new HTMLPurifier_AttrDef_Enum(array('normal')),
|
||||
[
|
||||
new HTMLPurifier_AttrDef_Enum(['normal']),
|
||||
new HTMLPurifier_AttrDef_CSS_Length()
|
||||
)
|
||||
]
|
||||
);
|
||||
|
||||
$this->info['font-size'] = new HTMLPurifier_AttrDef_CSS_Composite(
|
||||
array(
|
||||
[
|
||||
new HTMLPurifier_AttrDef_Enum(
|
||||
array(
|
||||
[
|
||||
'xx-small',
|
||||
'x-small',
|
||||
'small',
|
||||
@ -181,20 +181,20 @@ class HTMLPurifier_CSSDefinition extends HTMLPurifier_Definition
|
||||
'xx-large',
|
||||
'larger',
|
||||
'smaller'
|
||||
)
|
||||
]
|
||||
),
|
||||
new HTMLPurifier_AttrDef_CSS_Percentage(),
|
||||
new HTMLPurifier_AttrDef_CSS_Length()
|
||||
)
|
||||
]
|
||||
);
|
||||
|
||||
$this->info['line-height'] = new HTMLPurifier_AttrDef_CSS_Composite(
|
||||
array(
|
||||
new HTMLPurifier_AttrDef_Enum(array('normal')),
|
||||
[
|
||||
new HTMLPurifier_AttrDef_Enum(['normal']),
|
||||
new HTMLPurifier_AttrDef_CSS_Number(true), // no negatives
|
||||
new HTMLPurifier_AttrDef_CSS_Length('0'),
|
||||
new HTMLPurifier_AttrDef_CSS_Percentage(true)
|
||||
)
|
||||
]
|
||||
);
|
||||
|
||||
$margin =
|
||||
@ -202,11 +202,11 @@ class HTMLPurifier_CSSDefinition extends HTMLPurifier_Definition
|
||||
$this->info['margin-bottom'] =
|
||||
$this->info['margin-left'] =
|
||||
$this->info['margin-right'] = new HTMLPurifier_AttrDef_CSS_Composite(
|
||||
array(
|
||||
[
|
||||
new HTMLPurifier_AttrDef_CSS_Length(),
|
||||
new HTMLPurifier_AttrDef_CSS_Percentage(),
|
||||
new HTMLPurifier_AttrDef_Enum(array('auto'))
|
||||
)
|
||||
new HTMLPurifier_AttrDef_Enum(['auto'])
|
||||
]
|
||||
);
|
||||
|
||||
$this->info['margin'] = new HTMLPurifier_AttrDef_CSS_Multiple($margin);
|
||||
@ -217,41 +217,41 @@ class HTMLPurifier_CSSDefinition extends HTMLPurifier_Definition
|
||||
$this->info['padding-bottom'] =
|
||||
$this->info['padding-left'] =
|
||||
$this->info['padding-right'] = new HTMLPurifier_AttrDef_CSS_Composite(
|
||||
array(
|
||||
[
|
||||
new HTMLPurifier_AttrDef_CSS_Length('0'),
|
||||
new HTMLPurifier_AttrDef_CSS_Percentage(true)
|
||||
)
|
||||
]
|
||||
);
|
||||
|
||||
$this->info['padding'] = new HTMLPurifier_AttrDef_CSS_Multiple($padding);
|
||||
|
||||
$this->info['text-indent'] = new HTMLPurifier_AttrDef_CSS_Composite(
|
||||
array(
|
||||
[
|
||||
new HTMLPurifier_AttrDef_CSS_Length(),
|
||||
new HTMLPurifier_AttrDef_CSS_Percentage()
|
||||
)
|
||||
]
|
||||
);
|
||||
|
||||
$trusted_wh = new HTMLPurifier_AttrDef_CSS_Composite(
|
||||
array(
|
||||
[
|
||||
new HTMLPurifier_AttrDef_CSS_Length('0'),
|
||||
new HTMLPurifier_AttrDef_CSS_Percentage(true),
|
||||
new HTMLPurifier_AttrDef_Enum(array('auto', 'initial', 'inherit'))
|
||||
)
|
||||
new HTMLPurifier_AttrDef_Enum(['auto', 'initial', 'inherit'])
|
||||
]
|
||||
);
|
||||
$trusted_min_wh = new HTMLPurifier_AttrDef_CSS_Composite(
|
||||
array(
|
||||
[
|
||||
new HTMLPurifier_AttrDef_CSS_Length('0'),
|
||||
new HTMLPurifier_AttrDef_CSS_Percentage(true),
|
||||
new HTMLPurifier_AttrDef_Enum(array('initial', 'inherit'))
|
||||
)
|
||||
new HTMLPurifier_AttrDef_Enum(['initial', 'inherit'])
|
||||
]
|
||||
);
|
||||
$trusted_max_wh = new HTMLPurifier_AttrDef_CSS_Composite(
|
||||
array(
|
||||
[
|
||||
new HTMLPurifier_AttrDef_CSS_Length('0'),
|
||||
new HTMLPurifier_AttrDef_CSS_Percentage(true),
|
||||
new HTMLPurifier_AttrDef_Enum(array('none', 'initial', 'inherit'))
|
||||
)
|
||||
new HTMLPurifier_AttrDef_Enum(['none', 'initial', 'inherit'])
|
||||
]
|
||||
);
|
||||
$max = $config->get('CSS.MaxImgLength');
|
||||
|
||||
@ -263,10 +263,10 @@ class HTMLPurifier_CSSDefinition extends HTMLPurifier_Definition
|
||||
'img',
|
||||
// For img tags:
|
||||
new HTMLPurifier_AttrDef_CSS_Composite(
|
||||
array(
|
||||
[
|
||||
new HTMLPurifier_AttrDef_CSS_Length('0', $max),
|
||||
new HTMLPurifier_AttrDef_Enum(array('auto'))
|
||||
)
|
||||
new HTMLPurifier_AttrDef_Enum(['auto'])
|
||||
]
|
||||
),
|
||||
// For everyone else:
|
||||
$trusted_wh
|
||||
@ -279,10 +279,10 @@ class HTMLPurifier_CSSDefinition extends HTMLPurifier_Definition
|
||||
'img',
|
||||
// For img tags:
|
||||
new HTMLPurifier_AttrDef_CSS_Composite(
|
||||
array(
|
||||
[
|
||||
new HTMLPurifier_AttrDef_CSS_Length('0', $max),
|
||||
new HTMLPurifier_AttrDef_Enum(array('initial', 'inherit'))
|
||||
)
|
||||
new HTMLPurifier_AttrDef_Enum(['initial', 'inherit'])
|
||||
]
|
||||
),
|
||||
// For everyone else:
|
||||
$trusted_min_wh
|
||||
@ -295,22 +295,39 @@ class HTMLPurifier_CSSDefinition extends HTMLPurifier_Definition
|
||||
'img',
|
||||
// For img tags:
|
||||
new HTMLPurifier_AttrDef_CSS_Composite(
|
||||
array(
|
||||
[
|
||||
new HTMLPurifier_AttrDef_CSS_Length('0', $max),
|
||||
new HTMLPurifier_AttrDef_Enum(array('none', 'initial', 'inherit'))
|
||||
)
|
||||
new HTMLPurifier_AttrDef_Enum(['none', 'initial', 'inherit'])
|
||||
]
|
||||
),
|
||||
// For everyone else:
|
||||
$trusted_max_wh
|
||||
);
|
||||
|
||||
// text-decoration and related shorthands
|
||||
$this->info['text-decoration'] = new HTMLPurifier_AttrDef_CSS_TextDecoration();
|
||||
|
||||
$this->info['text-decoration-line'] = new HTMLPurifier_AttrDef_Enum(
|
||||
['none', 'underline', 'overline', 'line-through', 'initial', 'inherit']
|
||||
);
|
||||
|
||||
$this->info['text-decoration-style'] = new HTMLPurifier_AttrDef_Enum(
|
||||
['solid', 'double', 'dotted', 'dashed', 'wavy', 'initial', 'inherit']
|
||||
);
|
||||
|
||||
$this->info['text-decoration-color'] = new HTMLPurifier_AttrDef_CSS_Color();
|
||||
|
||||
$this->info['text-decoration-thickness'] = new HTMLPurifier_AttrDef_CSS_Composite([
|
||||
new HTMLPurifier_AttrDef_CSS_Length(),
|
||||
new HTMLPurifier_AttrDef_CSS_Percentage(),
|
||||
new HTMLPurifier_AttrDef_Enum(['auto', 'from-font', 'initial', 'inherit'])
|
||||
]);
|
||||
|
||||
$this->info['font-family'] = new HTMLPurifier_AttrDef_CSS_FontFamily();
|
||||
|
||||
// this could use specialized code
|
||||
$this->info['font-weight'] = new HTMLPurifier_AttrDef_Enum(
|
||||
array(
|
||||
[
|
||||
'normal',
|
||||
'bold',
|
||||
'bolder',
|
||||
@ -324,7 +341,7 @@ class HTMLPurifier_CSSDefinition extends HTMLPurifier_Definition
|
||||
'700',
|
||||
'800',
|
||||
'900'
|
||||
),
|
||||
],
|
||||
false
|
||||
);
|
||||
|
||||
@ -340,21 +357,21 @@ class HTMLPurifier_CSSDefinition extends HTMLPurifier_Definition
|
||||
$this->info['border-right'] = new HTMLPurifier_AttrDef_CSS_Border($config);
|
||||
|
||||
$this->info['border-collapse'] = new HTMLPurifier_AttrDef_Enum(
|
||||
array('collapse', 'separate')
|
||||
['collapse', 'separate']
|
||||
);
|
||||
|
||||
$this->info['caption-side'] = new HTMLPurifier_AttrDef_Enum(
|
||||
array('top', 'bottom')
|
||||
['top', 'bottom']
|
||||
);
|
||||
|
||||
$this->info['table-layout'] = new HTMLPurifier_AttrDef_Enum(
|
||||
array('auto', 'fixed')
|
||||
['auto', 'fixed']
|
||||
);
|
||||
|
||||
$this->info['vertical-align'] = new HTMLPurifier_AttrDef_CSS_Composite(
|
||||
array(
|
||||
[
|
||||
new HTMLPurifier_AttrDef_Enum(
|
||||
array(
|
||||
[
|
||||
'baseline',
|
||||
'sub',
|
||||
'super',
|
||||
@ -363,11 +380,11 @@ class HTMLPurifier_CSSDefinition extends HTMLPurifier_Definition
|
||||
'middle',
|
||||
'bottom',
|
||||
'text-bottom'
|
||||
)
|
||||
]
|
||||
),
|
||||
new HTMLPurifier_AttrDef_CSS_Length(),
|
||||
new HTMLPurifier_AttrDef_CSS_Percentage()
|
||||
)
|
||||
]
|
||||
);
|
||||
|
||||
$this->info['border-spacing'] = new HTMLPurifier_AttrDef_CSS_Multiple(new HTMLPurifier_AttrDef_CSS_Length(), 2);
|
||||
@ -375,7 +392,7 @@ class HTMLPurifier_CSSDefinition extends HTMLPurifier_Definition
|
||||
// These CSS properties don't work on many browsers, but we live
|
||||
// in THE FUTURE!
|
||||
$this->info['white-space'] = new HTMLPurifier_AttrDef_Enum(
|
||||
array('nowrap', 'normal', 'pre', 'pre-wrap', 'pre-line')
|
||||
['nowrap', 'normal', 'pre', 'pre-wrap', 'pre-line']
|
||||
);
|
||||
|
||||
if ($config->get('CSS.Proprietary')) {
|
||||
@ -422,21 +439,21 @@ class HTMLPurifier_CSSDefinition extends HTMLPurifier_Definition
|
||||
// more CSS3
|
||||
$this->info['page-break-after'] =
|
||||
$this->info['page-break-before'] = new HTMLPurifier_AttrDef_Enum(
|
||||
array(
|
||||
[
|
||||
'auto',
|
||||
'always',
|
||||
'avoid',
|
||||
'left',
|
||||
'right'
|
||||
)
|
||||
]
|
||||
);
|
||||
$this->info['page-break-inside'] = new HTMLPurifier_AttrDef_Enum(array('auto', 'avoid'));
|
||||
$this->info['page-break-inside'] = new HTMLPurifier_AttrDef_Enum(['auto', 'avoid']);
|
||||
|
||||
$border_radius = new HTMLPurifier_AttrDef_CSS_Composite(
|
||||
array(
|
||||
[
|
||||
new HTMLPurifier_AttrDef_CSS_Percentage(true), // disallow negative
|
||||
new HTMLPurifier_AttrDef_CSS_Length('0') // disallow negative
|
||||
));
|
||||
]);
|
||||
|
||||
$this->info['border-top-left-radius'] =
|
||||
$this->info['border-top-right-radius'] =
|
||||
@ -453,7 +470,7 @@ class HTMLPurifier_CSSDefinition extends HTMLPurifier_Definition
|
||||
protected function doSetupTricky($config)
|
||||
{
|
||||
$this->info['display'] = new HTMLPurifier_AttrDef_Enum(
|
||||
array(
|
||||
[
|
||||
'inline',
|
||||
'block',
|
||||
'list-item',
|
||||
@ -472,12 +489,12 @@ class HTMLPurifier_CSSDefinition extends HTMLPurifier_Definition
|
||||
'table-cell',
|
||||
'table-caption',
|
||||
'none'
|
||||
)
|
||||
]
|
||||
);
|
||||
$this->info['visibility'] = new HTMLPurifier_AttrDef_Enum(
|
||||
array('visible', 'hidden', 'collapse')
|
||||
['visible', 'hidden', 'collapse']
|
||||
);
|
||||
$this->info['overflow'] = new HTMLPurifier_AttrDef_Enum(array('visible', 'hidden', 'auto', 'scroll'));
|
||||
$this->info['overflow'] = new HTMLPurifier_AttrDef_Enum(['visible', 'hidden', 'auto', 'scroll']);
|
||||
$this->info['opacity'] = new HTMLPurifier_AttrDef_CSS_AlphaValue();
|
||||
}
|
||||
|
||||
@ -487,23 +504,23 @@ class HTMLPurifier_CSSDefinition extends HTMLPurifier_Definition
|
||||
protected function doSetupTrusted($config)
|
||||
{
|
||||
$this->info['position'] = new HTMLPurifier_AttrDef_Enum(
|
||||
array('static', 'relative', 'absolute', 'fixed')
|
||||
['static', 'relative', 'absolute', 'fixed']
|
||||
);
|
||||
$this->info['top'] =
|
||||
$this->info['left'] =
|
||||
$this->info['right'] =
|
||||
$this->info['bottom'] = new HTMLPurifier_AttrDef_CSS_Composite(
|
||||
array(
|
||||
[
|
||||
new HTMLPurifier_AttrDef_CSS_Length(),
|
||||
new HTMLPurifier_AttrDef_CSS_Percentage(),
|
||||
new HTMLPurifier_AttrDef_Enum(array('auto')),
|
||||
)
|
||||
new HTMLPurifier_AttrDef_Enum(['auto']),
|
||||
]
|
||||
);
|
||||
$this->info['z-index'] = new HTMLPurifier_AttrDef_CSS_Composite(
|
||||
array(
|
||||
[
|
||||
new HTMLPurifier_AttrDef_Integer(),
|
||||
new HTMLPurifier_AttrDef_Enum(array('auto')),
|
||||
)
|
||||
new HTMLPurifier_AttrDef_Enum(['auto']),
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -21,7 +21,7 @@ class HTMLPurifier_Config
|
||||
* HTML Purifier's version
|
||||
* @type string
|
||||
*/
|
||||
public $version = '4.15.0';
|
||||
public $version = '4.17.0';
|
||||
|
||||
/**
|
||||
* Whether or not to automatically finalize
|
||||
|
@ -287,13 +287,14 @@ class HTMLPurifier_DefinitionCache_Serializer extends HTMLPurifier_DefinitionCac
|
||||
} elseif (filegroup($dir) === posix_getgid()) {
|
||||
$chmod = $chmod | 0070;
|
||||
} else {
|
||||
// PHP's probably running as nobody, so we'll
|
||||
// need to give global permissions
|
||||
$chmod = $chmod | 0777;
|
||||
// PHP's probably running as nobody, it is
|
||||
// not obvious how to fix this (777 is probably
|
||||
// bad if you are multi-user), let the user figure it out
|
||||
$chmod = null;
|
||||
}
|
||||
trigger_error(
|
||||
'Directory ' . $dir . ' not writable, ' .
|
||||
'please chmod to ' . decoct($chmod),
|
||||
'Directory ' . $dir . ' not writable. ' .
|
||||
($chmod === null ? '' : 'Please chmod to ' . decoct($chmod)),
|
||||
E_USER_WARNING
|
||||
);
|
||||
} else {
|
||||
|
0
vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Serializer/README
vendored
Normal file → Executable file
0
vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Serializer/README
vendored
Normal file → Executable file
@ -71,7 +71,7 @@ class HTMLPurifier_DefinitionCacheFactory
|
||||
return $this->caches[$method][$type];
|
||||
}
|
||||
if (isset($this->implementations[$method]) &&
|
||||
class_exists($class = $this->implementations[$method], false)) {
|
||||
class_exists($class = $this->implementations[$method])) {
|
||||
$cache = new $class($type);
|
||||
} else {
|
||||
if ($method != 'Serializer') {
|
||||
|
@ -146,175 +146,179 @@ class HTMLPurifier_Filter_ExtractStyleBlocks extends HTMLPurifier_Filter
|
||||
foreach ($this->_tidy->css as $k => $decls) {
|
||||
// $decls are all CSS declarations inside an @ selector
|
||||
$new_decls = array();
|
||||
foreach ($decls as $selector => $style) {
|
||||
$selector = trim($selector);
|
||||
if ($selector === '') {
|
||||
continue;
|
||||
} // should not happen
|
||||
// Parse the selector
|
||||
// Here is the relevant part of the CSS grammar:
|
||||
//
|
||||
// ruleset
|
||||
// : selector [ ',' S* selector ]* '{' ...
|
||||
// selector
|
||||
// : simple_selector [ combinator selector | S+ [ combinator? selector ]? ]?
|
||||
// combinator
|
||||
// : '+' S*
|
||||
// : '>' S*
|
||||
// simple_selector
|
||||
// : element_name [ HASH | class | attrib | pseudo ]*
|
||||
// | [ HASH | class | attrib | pseudo ]+
|
||||
// element_name
|
||||
// : IDENT | '*'
|
||||
// ;
|
||||
// class
|
||||
// : '.' IDENT
|
||||
// ;
|
||||
// attrib
|
||||
// : '[' S* IDENT S* [ [ '=' | INCLUDES | DASHMATCH ] S*
|
||||
// [ IDENT | STRING ] S* ]? ']'
|
||||
// ;
|
||||
// pseudo
|
||||
// : ':' [ IDENT | FUNCTION S* [IDENT S*]? ')' ]
|
||||
// ;
|
||||
//
|
||||
// For reference, here are the relevant tokens:
|
||||
//
|
||||
// HASH #{name}
|
||||
// IDENT {ident}
|
||||
// INCLUDES ==
|
||||
// DASHMATCH |=
|
||||
// STRING {string}
|
||||
// FUNCTION {ident}\(
|
||||
//
|
||||
// And the lexical scanner tokens
|
||||
//
|
||||
// name {nmchar}+
|
||||
// nmchar [_a-z0-9-]|{nonascii}|{escape}
|
||||
// nonascii [\240-\377]
|
||||
// escape {unicode}|\\[^\r\n\f0-9a-f]
|
||||
// unicode \\{h}}{1,6}(\r\n|[ \t\r\n\f])?
|
||||
// ident -?{nmstart}{nmchar*}
|
||||
// nmstart [_a-z]|{nonascii}|{escape}
|
||||
// string {string1}|{string2}
|
||||
// string1 \"([^\n\r\f\\"]|\\{nl}|{escape})*\"
|
||||
// string2 \'([^\n\r\f\\"]|\\{nl}|{escape})*\'
|
||||
//
|
||||
// We'll implement a subset (in order to reduce attack
|
||||
// surface); in particular:
|
||||
//
|
||||
// - No Unicode support
|
||||
// - No escapes support
|
||||
// - No string support (by proxy no attrib support)
|
||||
// - element_name is matched against allowed
|
||||
// elements (some people might find this
|
||||
// annoying...)
|
||||
// - Pseudo-elements one of :first-child, :link,
|
||||
// :visited, :active, :hover, :focus
|
||||
if (is_array($decls)) {
|
||||
foreach ($decls as $selector => $style) {
|
||||
$selector = trim($selector);
|
||||
if ($selector === '') {
|
||||
continue;
|
||||
} // should not happen
|
||||
// Parse the selector
|
||||
// Here is the relevant part of the CSS grammar:
|
||||
//
|
||||
// ruleset
|
||||
// : selector [ ',' S* selector ]* '{' ...
|
||||
// selector
|
||||
// : simple_selector [ combinator selector | S+ [ combinator? selector ]? ]?
|
||||
// combinator
|
||||
// : '+' S*
|
||||
// : '>' S*
|
||||
// simple_selector
|
||||
// : element_name [ HASH | class | attrib | pseudo ]*
|
||||
// | [ HASH | class | attrib | pseudo ]+
|
||||
// element_name
|
||||
// : IDENT | '*'
|
||||
// ;
|
||||
// class
|
||||
// : '.' IDENT
|
||||
// ;
|
||||
// attrib
|
||||
// : '[' S* IDENT S* [ [ '=' | INCLUDES | DASHMATCH ] S*
|
||||
// [ IDENT | STRING ] S* ]? ']'
|
||||
// ;
|
||||
// pseudo
|
||||
// : ':' [ IDENT | FUNCTION S* [IDENT S*]? ')' ]
|
||||
// ;
|
||||
//
|
||||
// For reference, here are the relevant tokens:
|
||||
//
|
||||
// HASH #{name}
|
||||
// IDENT {ident}
|
||||
// INCLUDES ==
|
||||
// DASHMATCH |=
|
||||
// STRING {string}
|
||||
// FUNCTION {ident}\(
|
||||
//
|
||||
// And the lexical scanner tokens
|
||||
//
|
||||
// name {nmchar}+
|
||||
// nmchar [_a-z0-9-]|{nonascii}|{escape}
|
||||
// nonascii [\240-\377]
|
||||
// escape {unicode}|\\[^\r\n\f0-9a-f]
|
||||
// unicode \\{h}}{1,6}(\r\n|[ \t\r\n\f])?
|
||||
// ident -?{nmstart}{nmchar*}
|
||||
// nmstart [_a-z]|{nonascii}|{escape}
|
||||
// string {string1}|{string2}
|
||||
// string1 \"([^\n\r\f\\"]|\\{nl}|{escape})*\"
|
||||
// string2 \'([^\n\r\f\\"]|\\{nl}|{escape})*\'
|
||||
//
|
||||
// We'll implement a subset (in order to reduce attack
|
||||
// surface); in particular:
|
||||
//
|
||||
// - No Unicode support
|
||||
// - No escapes support
|
||||
// - No string support (by proxy no attrib support)
|
||||
// - element_name is matched against allowed
|
||||
// elements (some people might find this
|
||||
// annoying...)
|
||||
// - Pseudo-elements one of :first-child, :link,
|
||||
// :visited, :active, :hover, :focus
|
||||
|
||||
// handle ruleset
|
||||
$selectors = array_map('trim', explode(',', $selector));
|
||||
$new_selectors = array();
|
||||
foreach ($selectors as $sel) {
|
||||
// split on +, > and spaces
|
||||
$basic_selectors = preg_split('/\s*([+> ])\s*/', $sel, -1, PREG_SPLIT_DELIM_CAPTURE);
|
||||
// even indices are chunks, odd indices are
|
||||
// delimiters
|
||||
$nsel = null;
|
||||
$delim = null; // guaranteed to be non-null after
|
||||
// two loop iterations
|
||||
for ($i = 0, $c = count($basic_selectors); $i < $c; $i++) {
|
||||
$x = $basic_selectors[$i];
|
||||
if ($i % 2) {
|
||||
// delimiter
|
||||
if ($x === ' ') {
|
||||
$delim = ' ';
|
||||
} else {
|
||||
$delim = ' ' . $x . ' ';
|
||||
}
|
||||
} else {
|
||||
// simple selector
|
||||
$components = preg_split('/([#.:])/', $x, -1, PREG_SPLIT_DELIM_CAPTURE);
|
||||
$sdelim = null;
|
||||
$nx = null;
|
||||
for ($j = 0, $cc = count($components); $j < $cc; $j++) {
|
||||
$y = $components[$j];
|
||||
if ($j === 0) {
|
||||
if ($y === '*' || isset($html_definition->info[$y = strtolower($y)])) {
|
||||
$nx = $y;
|
||||
} else {
|
||||
// $nx stays null; this matters
|
||||
// if we don't manage to find
|
||||
// any valid selector content,
|
||||
// in which case we ignore the
|
||||
// outer $delim
|
||||
}
|
||||
} elseif ($j % 2) {
|
||||
// set delimiter
|
||||
$sdelim = $y;
|
||||
// handle ruleset
|
||||
$selectors = array_map('trim', explode(',', $selector));
|
||||
$new_selectors = array();
|
||||
foreach ($selectors as $sel) {
|
||||
// split on +, > and spaces
|
||||
$basic_selectors = preg_split('/\s*([+> ])\s*/', $sel, -1, PREG_SPLIT_DELIM_CAPTURE);
|
||||
// even indices are chunks, odd indices are
|
||||
// delimiters
|
||||
$nsel = null;
|
||||
$delim = null; // guaranteed to be non-null after
|
||||
// two loop iterations
|
||||
for ($i = 0, $c = count($basic_selectors); $i < $c; $i++) {
|
||||
$x = $basic_selectors[$i];
|
||||
if ($i % 2) {
|
||||
// delimiter
|
||||
if ($x === ' ') {
|
||||
$delim = ' ';
|
||||
} else {
|
||||
$attrdef = null;
|
||||
if ($sdelim === '#') {
|
||||
$attrdef = $this->_id_attrdef;
|
||||
} elseif ($sdelim === '.') {
|
||||
$attrdef = $this->_class_attrdef;
|
||||
} elseif ($sdelim === ':') {
|
||||
$attrdef = $this->_enum_attrdef;
|
||||
} else {
|
||||
throw new HTMLPurifier_Exception('broken invariant sdelim and preg_split');
|
||||
}
|
||||
$r = $attrdef->validate($y, $config, $context);
|
||||
if ($r !== false) {
|
||||
if ($r !== true) {
|
||||
$y = $r;
|
||||
}
|
||||
if ($nx === null) {
|
||||
$nx = '';
|
||||
}
|
||||
$nx .= $sdelim . $y;
|
||||
}
|
||||
}
|
||||
}
|
||||
if ($nx !== null) {
|
||||
if ($nsel === null) {
|
||||
$nsel = $nx;
|
||||
} else {
|
||||
$nsel .= $delim . $nx;
|
||||
$delim = ' ' . $x . ' ';
|
||||
}
|
||||
} else {
|
||||
// delimiters to the left of invalid
|
||||
// basic selector ignored
|
||||
// simple selector
|
||||
$components = preg_split('/([#.:])/', $x, -1, PREG_SPLIT_DELIM_CAPTURE);
|
||||
$sdelim = null;
|
||||
$nx = null;
|
||||
for ($j = 0, $cc = count($components); $j < $cc; $j++) {
|
||||
$y = $components[$j];
|
||||
if ($j === 0) {
|
||||
if ($y === '*' || isset($html_definition->info[$y = strtolower($y)])) {
|
||||
$nx = $y;
|
||||
} else {
|
||||
// $nx stays null; this matters
|
||||
// if we don't manage to find
|
||||
// any valid selector content,
|
||||
// in which case we ignore the
|
||||
// outer $delim
|
||||
}
|
||||
} elseif ($j % 2) {
|
||||
// set delimiter
|
||||
$sdelim = $y;
|
||||
} else {
|
||||
$attrdef = null;
|
||||
if ($sdelim === '#') {
|
||||
$attrdef = $this->_id_attrdef;
|
||||
} elseif ($sdelim === '.') {
|
||||
$attrdef = $this->_class_attrdef;
|
||||
} elseif ($sdelim === ':') {
|
||||
$attrdef = $this->_enum_attrdef;
|
||||
} else {
|
||||
throw new HTMLPurifier_Exception('broken invariant sdelim and preg_split');
|
||||
}
|
||||
$r = $attrdef->validate($y, $config, $context);
|
||||
if ($r !== false) {
|
||||
if ($r !== true) {
|
||||
$y = $r;
|
||||
}
|
||||
if ($nx === null) {
|
||||
$nx = '';
|
||||
}
|
||||
$nx .= $sdelim . $y;
|
||||
}
|
||||
}
|
||||
}
|
||||
if ($nx !== null) {
|
||||
if ($nsel === null) {
|
||||
$nsel = $nx;
|
||||
} else {
|
||||
$nsel .= $delim . $nx;
|
||||
}
|
||||
} else {
|
||||
// delimiters to the left of invalid
|
||||
// basic selector ignored
|
||||
}
|
||||
}
|
||||
}
|
||||
if ($nsel !== null) {
|
||||
if (!empty($scopes)) {
|
||||
foreach ($scopes as $s) {
|
||||
$new_selectors[] = "$s $nsel";
|
||||
}
|
||||
} else {
|
||||
$new_selectors[] = $nsel;
|
||||
}
|
||||
}
|
||||
}
|
||||
if ($nsel !== null) {
|
||||
if (!empty($scopes)) {
|
||||
foreach ($scopes as $s) {
|
||||
$new_selectors[] = "$s $nsel";
|
||||
}
|
||||
} else {
|
||||
$new_selectors[] = $nsel;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (empty($new_selectors)) {
|
||||
continue;
|
||||
}
|
||||
$selector = implode(', ', $new_selectors);
|
||||
foreach ($style as $name => $value) {
|
||||
if (!isset($css_definition->info[$name])) {
|
||||
unset($style[$name]);
|
||||
if (empty($new_selectors)) {
|
||||
continue;
|
||||
}
|
||||
$def = $css_definition->info[$name];
|
||||
$ret = $def->validate($value, $config, $context);
|
||||
if ($ret === false) {
|
||||
unset($style[$name]);
|
||||
} else {
|
||||
$style[$name] = $ret;
|
||||
$selector = implode(', ', $new_selectors);
|
||||
foreach ($style as $name => $value) {
|
||||
if (!isset($css_definition->info[$name])) {
|
||||
unset($style[$name]);
|
||||
continue;
|
||||
}
|
||||
$def = $css_definition->info[$name];
|
||||
$ret = $def->validate($value, $config, $context);
|
||||
if ($ret === false) {
|
||||
unset($style[$name]);
|
||||
} else {
|
||||
$style[$name] = $ret;
|
||||
}
|
||||
}
|
||||
$new_decls[$selector] = $style;
|
||||
}
|
||||
$new_decls[$selector] = $style;
|
||||
} else {
|
||||
continue;
|
||||
}
|
||||
$new_css[$k] = $new_decls;
|
||||
}
|
||||
|
@ -221,6 +221,7 @@ class HTMLPurifier_HTMLModule_Tidy extends HTMLPurifier_HTMLModule
|
||||
*/
|
||||
public function makeFixes()
|
||||
{
|
||||
return array();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -109,7 +109,7 @@ class HTMLPurifier_LanguageFactory
|
||||
} else {
|
||||
$class = 'HTMLPurifier_Language_' . $pcode;
|
||||
$file = $this->dir . '/Language/classes/' . $code . '.php';
|
||||
if (file_exists($file) || class_exists($class, false)) {
|
||||
if (file_exists($file) || class_exists($class)) {
|
||||
$lang = new $class($config, $context);
|
||||
} else {
|
||||
// Go fallback
|
||||
|
@ -101,7 +101,7 @@ class HTMLPurifier_Lexer
|
||||
break;
|
||||
}
|
||||
|
||||
if (class_exists('DOMDocument', false) &&
|
||||
if (class_exists('DOMDocument') &&
|
||||
method_exists('DOMDocument', 'loadHTML') &&
|
||||
!extension_loaded('domxml')
|
||||
) {
|
||||
|
@ -104,7 +104,6 @@ class HTMLPurifier_Lexer_DOMLex extends HTMLPurifier_Lexer
|
||||
* To iterate is human, to recurse divine - L. Peter Deutsch
|
||||
* @param DOMNode $node DOMNode to be tokenized.
|
||||
* @param HTMLPurifier_Token[] $tokens Array-list of already tokenized tokens.
|
||||
* @return HTMLPurifier_Token of node appended to previously passed tokens.
|
||||
*/
|
||||
protected function tokenizeDOM($node, &$tokens, $config)
|
||||
{
|
||||
|
@ -32,6 +32,11 @@ class HTMLPurifier_Printer_ConfigForm extends HTMLPurifier_Printer
|
||||
*/
|
||||
protected $compress = false;
|
||||
|
||||
/**
|
||||
* @var HTMLPurifier_Config
|
||||
*/
|
||||
protected $genConfig;
|
||||
|
||||
/**
|
||||
* @param string $name Form element name for directives to be stuffed into
|
||||
* @param string $doc_url String documentation URL, will have fragment tagged on
|
||||
|
@ -33,11 +33,11 @@ class HTMLPurifier_URIScheme_tel extends HTMLPurifier_URIScheme
|
||||
$uri->host = null;
|
||||
$uri->port = null;
|
||||
|
||||
// Delete all non-numeric characters, non-x characters
|
||||
// Delete all non-numeric characters, commas, and non-x characters
|
||||
// from phone number, EXCEPT for a leading plus sign.
|
||||
$uri->path = preg_replace('/(?!^\+)[^\dx]/', '',
|
||||
$uri->path = preg_replace('/(?!^\+)[^\dx,]/', '',
|
||||
// Normalize e(x)tension to lower-case
|
||||
str_replace('X', 'x', $uri->path));
|
||||
str_replace('X', 'x', rawurldecode($uri->path)));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -261,7 +261,7 @@ class HTMLPurifier_UnitConverter
|
||||
*/
|
||||
private function round($n, $sigfigs)
|
||||
{
|
||||
$new_log = (int)floor(log(abs($n), 10)); // Number of digits left of decimal - 1
|
||||
$new_log = (int)floor(log(abs((float)$n), 10)); // Number of digits left of decimal - 1
|
||||
$rp = $sigfigs - $new_log - 1; // Number of decimal places needed
|
||||
$neg = $n < 0 ? '-' : ''; // Negative sign
|
||||
if ($this->bcmath) {
|
||||
@ -276,7 +276,7 @@ class HTMLPurifier_UnitConverter
|
||||
}
|
||||
return $n;
|
||||
} else {
|
||||
return $this->scale(round($n, $sigfigs - $new_log - 1), $rp + 1);
|
||||
return $this->scale(round((float)$n, $sigfigs - $new_log - 1), $rp + 1);
|
||||
}
|
||||
}
|
||||
|
||||
@ -300,7 +300,7 @@ class HTMLPurifier_UnitConverter
|
||||
// Now we return it, truncating the zero that was rounded off.
|
||||
return substr($precise, 0, -1) . str_repeat('0', -$scale + 1);
|
||||
}
|
||||
return sprintf('%.' . $scale . 'f', (float)$r);
|
||||
return number_format((float)$r, $scale, '.', '');
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -12,10 +12,10 @@
|
||||
],
|
||||
"require": {
|
||||
"php": "^7.2.5 || ^8.0",
|
||||
"phpoption/phpoption": "^1.9.1"
|
||||
"phpoption/phpoption": "^1.9.2"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^8.5.32 || ^9.6.3 || ^10.0.12"
|
||||
"phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
|
@ -19,6 +19,7 @@ use PhpOption\Some;
|
||||
/**
|
||||
* @template T
|
||||
* @template E
|
||||
*
|
||||
* @extends \GrahamCampbell\ResultType\Result<T,E>
|
||||
*/
|
||||
final class Error extends Result
|
||||
|
@ -19,6 +19,7 @@ use PhpOption\Some;
|
||||
/**
|
||||
* @template T
|
||||
* @template E
|
||||
*
|
||||
* @extends \GrahamCampbell\ResultType\Result<T,E>
|
||||
*/
|
||||
final class Success extends Result
|
||||
|
6
vendor/illuminate/collections/Arr.php
vendored
6
vendor/illuminate/collections/Arr.php
vendored
@ -195,6 +195,8 @@ class Arr
|
||||
foreach ($array as $item) {
|
||||
return $item;
|
||||
}
|
||||
|
||||
return value($default);
|
||||
}
|
||||
|
||||
foreach ($array as $key => $value) {
|
||||
@ -806,9 +808,9 @@ class Arr
|
||||
* @param int $options
|
||||
* @return array
|
||||
*/
|
||||
public function sortRecursiveDesc($array, $options = SORT_REGULAR)
|
||||
public static function sortRecursiveDesc($array, $options = SORT_REGULAR)
|
||||
{
|
||||
return $this->sortRecursive($array, $options, true);
|
||||
return static::sortRecursive($array, $options, true);
|
||||
}
|
||||
|
||||
/**
|
||||
|
16
vendor/illuminate/collections/LazyCollection.php
vendored
16
vendor/illuminate/collections/LazyCollection.php
vendored
@ -1421,7 +1421,21 @@ class LazyCollection implements CanBeEscapedWhenCastToString, Enumerable
|
||||
public function take($limit)
|
||||
{
|
||||
if ($limit < 0) {
|
||||
return $this->passthru('take', func_get_args());
|
||||
return new static(function () use ($limit) {
|
||||
$limit = abs($limit);
|
||||
$ringBuffer = [];
|
||||
$position = 0;
|
||||
|
||||
foreach ($this as $key => $value) {
|
||||
$ringBuffer[$position] = [$key, $value];
|
||||
$position = ($position + 1) % $limit;
|
||||
}
|
||||
|
||||
for ($i = 0, $end = min($limit, count($ringBuffer)); $i < $end; $i++) {
|
||||
$pointer = ($position + $i) % $limit;
|
||||
yield $ringBuffer[$pointer][0] => $ringBuffer[$pointer][1];
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
return new static(function () use ($limit) {
|
||||
|
@ -11,11 +11,13 @@ use Illuminate\Support\Arr;
|
||||
use Illuminate\Support\Collection;
|
||||
use Illuminate\Support\Enumerable;
|
||||
use Illuminate\Support\HigherOrderCollectionProxy;
|
||||
use InvalidArgumentException;
|
||||
use JsonSerializable;
|
||||
use Symfony\Component\VarDumper\VarDumper;
|
||||
use Traversable;
|
||||
use UnexpectedValueException;
|
||||
use UnitEnum;
|
||||
use WeakMap;
|
||||
|
||||
/**
|
||||
* @template TKey of array-key
|
||||
@ -37,6 +39,7 @@ use UnitEnum;
|
||||
* @property-read HigherOrderCollectionProxy $max
|
||||
* @property-read HigherOrderCollectionProxy $min
|
||||
* @property-read HigherOrderCollectionProxy $partition
|
||||
* @property-read HigherOrderCollectionProxy $percentage
|
||||
* @property-read HigherOrderCollectionProxy $reject
|
||||
* @property-read HigherOrderCollectionProxy $skipUntil
|
||||
* @property-read HigherOrderCollectionProxy $skipWhile
|
||||
@ -83,6 +86,7 @@ trait EnumeratesValues
|
||||
'max',
|
||||
'min',
|
||||
'partition',
|
||||
'percentage',
|
||||
'reject',
|
||||
'skipUntil',
|
||||
'skipWhile',
|
||||
@ -317,21 +321,27 @@ trait EnumeratesValues
|
||||
*
|
||||
* @template TEnsureOfType
|
||||
*
|
||||
* @param class-string<TEnsureOfType> $type
|
||||
* @return static<mixed, TEnsureOfType>
|
||||
* @param class-string<TEnsureOfType>|array<array-key, class-string<TEnsureOfType>> $type
|
||||
* @return static<TKey, TEnsureOfType>
|
||||
*
|
||||
* @throws \UnexpectedValueException
|
||||
*/
|
||||
public function ensure($type)
|
||||
{
|
||||
return $this->each(function ($item) use ($type) {
|
||||
$allowedTypes = is_array($type) ? $type : [$type];
|
||||
|
||||
return $this->each(function ($item) use ($allowedTypes) {
|
||||
$itemType = get_debug_type($item);
|
||||
|
||||
if ($itemType !== $type && ! $item instanceof $type) {
|
||||
throw new UnexpectedValueException(
|
||||
sprintf("Collection should only include '%s' items, but '%s' found.", $type, $itemType)
|
||||
);
|
||||
foreach ($allowedTypes as $allowedType) {
|
||||
if ($itemType === $allowedType || $item instanceof $allowedType) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
throw new UnexpectedValueException(
|
||||
sprintf("Collection should only include [%s] items, but '%s' found.", implode(', ', $allowedTypes), $itemType)
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
@ -350,7 +360,7 @@ trait EnumeratesValues
|
||||
*
|
||||
* @template TMapSpreadValue
|
||||
*
|
||||
* @param callable(mixed): TMapSpreadValue $callback
|
||||
* @param callable(mixed...): TMapSpreadValue $callback
|
||||
* @return static<TKey, TMapSpreadValue>
|
||||
*/
|
||||
public function mapSpread(callable $callback)
|
||||
@ -1017,6 +1027,7 @@ trait EnumeratesValues
|
||||
}
|
||||
|
||||
return match (true) {
|
||||
$items instanceof WeakMap => throw new InvalidArgumentException('Collections can not be created using instances of WeakMap.'),
|
||||
$items instanceof Enumerable => $items->all(),
|
||||
$items instanceof Arrayable => $items->toArray(),
|
||||
$items instanceof Traversable => iterator_to_array($items),
|
||||
|
8
vendor/illuminate/contracts/Events/ShouldDispatchAfterCommit.php
vendored
Normal file
8
vendor/illuminate/contracts/Events/ShouldDispatchAfterCommit.php
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
<?php
|
||||
|
||||
namespace Illuminate\Contracts\Events;
|
||||
|
||||
interface ShouldDispatchAfterCommit
|
||||
{
|
||||
//
|
||||
}
|
8
vendor/illuminate/contracts/Events/ShouldHandleEventsAfterCommit.php
vendored
Normal file
8
vendor/illuminate/contracts/Events/ShouldHandleEventsAfterCommit.php
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
<?php
|
||||
|
||||
namespace Illuminate\Contracts\Events;
|
||||
|
||||
interface ShouldHandleEventsAfterCommit
|
||||
{
|
||||
//
|
||||
}
|
8
vendor/illuminate/contracts/Queue/ShouldQueueAfterCommit.php
vendored
Normal file
8
vendor/illuminate/contracts/Queue/ShouldQueueAfterCommit.php
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
<?php
|
||||
|
||||
namespace Illuminate\Contracts\Queue;
|
||||
|
||||
interface ShouldQueueAfterCommit extends ShouldQueue
|
||||
{
|
||||
//
|
||||
}
|
@ -123,7 +123,7 @@ interface ResponseFactory
|
||||
/**
|
||||
* Create a new redirect response to a controller action.
|
||||
*
|
||||
* @param string $action
|
||||
* @param array|string $action
|
||||
* @param mixed $parameters
|
||||
* @param int $status
|
||||
* @param array $headers
|
||||
|
0
vendor/illuminate/contracts/Support/Arrayable.php
vendored
Normal file → Executable file
0
vendor/illuminate/contracts/Support/Arrayable.php
vendored
Normal file → Executable file
0
vendor/illuminate/contracts/Support/Jsonable.php
vendored
Normal file → Executable file
0
vendor/illuminate/contracts/Support/Jsonable.php
vendored
Normal file → Executable file
0
vendor/illuminate/contracts/Support/MessageProvider.php
vendored
Normal file → Executable file
0
vendor/illuminate/contracts/Support/MessageProvider.php
vendored
Normal file → Executable file
0
vendor/illuminate/contracts/Support/Renderable.php
vendored
Normal file → Executable file
0
vendor/illuminate/contracts/Support/Renderable.php
vendored
Normal file → Executable file
0
vendor/illuminate/contracts/Translation/Loader.php
vendored
Normal file → Executable file
0
vendor/illuminate/contracts/Translation/Loader.php
vendored
Normal file → Executable file
0
vendor/illuminate/contracts/View/Engine.php
vendored
Normal file → Executable file
0
vendor/illuminate/contracts/View/Engine.php
vendored
Normal file → Executable file
@ -188,11 +188,11 @@ class PhpRedisConnector implements Connector
|
||||
|
||||
return tap(new RedisCluster(...$parameters), function ($client) use ($options) {
|
||||
if (! empty($options['prefix'])) {
|
||||
$client->setOption(RedisCluster::OPT_PREFIX, $options['prefix']);
|
||||
$client->setOption(Redis::OPT_PREFIX, $options['prefix']);
|
||||
}
|
||||
|
||||
if (! empty($options['scan'])) {
|
||||
$client->setOption(RedisCluster::OPT_SCAN, $options['scan']);
|
||||
$client->setOption(Redis::OPT_SCAN, $options['scan']);
|
||||
}
|
||||
|
||||
if (! empty($options['failover'])) {
|
||||
@ -204,15 +204,15 @@ class PhpRedisConnector implements Connector
|
||||
}
|
||||
|
||||
if (array_key_exists('serializer', $options)) {
|
||||
$client->setOption(RedisCluster::OPT_SERIALIZER, $options['serializer']);
|
||||
$client->setOption(Redis::OPT_SERIALIZER, $options['serializer']);
|
||||
}
|
||||
|
||||
if (array_key_exists('compression', $options)) {
|
||||
$client->setOption(RedisCluster::OPT_COMPRESSION, $options['compression']);
|
||||
$client->setOption(Redis::OPT_COMPRESSION, $options['compression']);
|
||||
}
|
||||
|
||||
if (array_key_exists('compression_level', $options)) {
|
||||
$client->setOption(RedisCluster::OPT_COMPRESSION_LEVEL, $options['compression_level']);
|
||||
$client->setOption(Redis::OPT_COMPRESSION_LEVEL, $options['compression_level']);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
0
vendor/illuminate/redis/RedisServiceProvider.php
vendored
Normal file → Executable file
0
vendor/illuminate/redis/RedisServiceProvider.php
vendored
Normal file → Executable file
0
vendor/illuminate/redis/composer.json
vendored
Normal file → Executable file
0
vendor/illuminate/redis/composer.json
vendored
Normal file → Executable file
27
vendor/illuminate/support/Composer.php
vendored
27
vendor/illuminate/support/Composer.php
vendored
@ -60,12 +60,13 @@ class Composer
|
||||
* @param array<int, string> $packages
|
||||
* @param bool $dev
|
||||
* @param \Closure|\Symfony\Component\Console\Output\OutputInterface|null $output
|
||||
* @param string|null $composerBinary
|
||||
* @return bool
|
||||
*/
|
||||
public function requirePackages(array $packages, bool $dev = false, Closure|OutputInterface $output = null)
|
||||
public function requirePackages(array $packages, bool $dev = false, Closure|OutputInterface $output = null, $composerBinary = null)
|
||||
{
|
||||
$command = collect([
|
||||
...$this->findComposer(),
|
||||
...$this->findComposer($composerBinary),
|
||||
'require',
|
||||
...$packages,
|
||||
])
|
||||
@ -88,12 +89,13 @@ class Composer
|
||||
* @param array<int, string> $packages
|
||||
* @param bool $dev
|
||||
* @param \Closure|\Symfony\Component\Console\Output\OutputInterface|null $output
|
||||
* @param string|null $composerBinary
|
||||
* @return bool
|
||||
*/
|
||||
public function removePackages(array $packages, bool $dev = false, Closure|OutputInterface $output = null)
|
||||
public function removePackages(array $packages, bool $dev = false, Closure|OutputInterface $output = null, $composerBinary = null)
|
||||
{
|
||||
$command = collect([
|
||||
...$this->findComposer(),
|
||||
...$this->findComposer($composerBinary),
|
||||
'remove',
|
||||
...$packages,
|
||||
])
|
||||
@ -137,13 +139,14 @@ class Composer
|
||||
* Regenerate the Composer autoloader files.
|
||||
*
|
||||
* @param string|array $extra
|
||||
* @param string|null $composerBinary
|
||||
* @return int
|
||||
*/
|
||||
public function dumpAutoloads($extra = '')
|
||||
public function dumpAutoloads($extra = '', $composerBinary = null)
|
||||
{
|
||||
$extra = $extra ? (array) $extra : [];
|
||||
|
||||
$command = array_merge($this->findComposer(), ['dump-autoload'], $extra);
|
||||
$command = array_merge($this->findComposer($composerBinary), ['dump-autoload'], $extra);
|
||||
|
||||
return $this->getProcess($command)->run();
|
||||
}
|
||||
@ -151,21 +154,25 @@ class Composer
|
||||
/**
|
||||
* Regenerate the optimized Composer autoloader files.
|
||||
*
|
||||
* @param string|null $composerBinary
|
||||
* @return int
|
||||
*/
|
||||
public function dumpOptimized()
|
||||
public function dumpOptimized($composerBinary = null)
|
||||
{
|
||||
return $this->dumpAutoloads('--optimize');
|
||||
return $this->dumpAutoloads('--optimize', $composerBinary);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the Composer binary / command for the environment.
|
||||
*
|
||||
* @param string|null $composerBinary
|
||||
* @return array
|
||||
*/
|
||||
public function findComposer()
|
||||
public function findComposer($composerBinary = null)
|
||||
{
|
||||
if ($this->files->exists($this->workingPath.'/composer.phar')) {
|
||||
if (! is_null($composerBinary) && $this->files->exists($composerBinary)) {
|
||||
return [$this->phpBinary(), $composerBinary];
|
||||
} elseif ($this->files->exists($this->workingPath.'/composer.phar')) {
|
||||
return [$this->phpBinary(), 'composer.phar'];
|
||||
}
|
||||
|
||||
|
@ -70,7 +70,7 @@ class DefaultProviders
|
||||
foreach ($replacements as $from => $to) {
|
||||
$key = $current->search($from);
|
||||
|
||||
$current = $key ? $current->replace([$key => $to]) : $current;
|
||||
$current = is_int($key) ? $current->replace([$key => $to]) : $current;
|
||||
}
|
||||
|
||||
return new static($current->values()->toArray());
|
||||
|
1
vendor/illuminate/support/Facades/App.php
vendored
Normal file → Executable file
1
vendor/illuminate/support/Facades/App.php
vendored
Normal file → Executable file
@ -38,6 +38,7 @@ namespace Illuminate\Support\Facades;
|
||||
* @method static bool isProduction()
|
||||
* @method static string detectEnvironment(\Closure $callback)
|
||||
* @method static bool runningInConsole()
|
||||
* @method static bool runningConsoleCommand(string|array ...$commands)
|
||||
* @method static bool runningUnitTests()
|
||||
* @method static bool hasDebugModeEnabled()
|
||||
* @method static void registerConfiguredProviders()
|
||||
|
0
vendor/illuminate/support/Facades/Artisan.php
vendored
Normal file → Executable file
0
vendor/illuminate/support/Facades/Artisan.php
vendored
Normal file → Executable file
0
vendor/illuminate/support/Facades/Auth.php
vendored
Normal file → Executable file
0
vendor/illuminate/support/Facades/Auth.php
vendored
Normal file → Executable file
0
vendor/illuminate/support/Facades/Blade.php
vendored
Normal file → Executable file
0
vendor/illuminate/support/Facades/Blade.php
vendored
Normal file → Executable file
1
vendor/illuminate/support/Facades/Bus.php
vendored
1
vendor/illuminate/support/Facades/Bus.php
vendored
@ -33,6 +33,7 @@ use Illuminate\Support\Testing\Fakes\BusFake;
|
||||
* @method static void assertNotDispatchedAfterResponse(string|\Closure $command, callable|null $callback = null)
|
||||
* @method static void assertChained(array $expectedChain)
|
||||
* @method static void assertDispatchedWithoutChain(string|\Closure $command, callable|null $callback = null)
|
||||
* @method static \Illuminate\Support\Testing\Fakes\ChainedBatchTruthTest chainedBatch(\Closure $callback)
|
||||
* @method static void assertBatched(callable $callback)
|
||||
* @method static void assertBatchCount(int $count)
|
||||
* @method static void assertNothingBatched()
|
||||
|
0
vendor/illuminate/support/Facades/Cache.php
vendored
Normal file → Executable file
0
vendor/illuminate/support/Facades/Cache.php
vendored
Normal file → Executable file
0
vendor/illuminate/support/Facades/Config.php
vendored
Normal file → Executable file
0
vendor/illuminate/support/Facades/Config.php
vendored
Normal file → Executable file
0
vendor/illuminate/support/Facades/Cookie.php
vendored
Normal file → Executable file
0
vendor/illuminate/support/Facades/Cookie.php
vendored
Normal file → Executable file
0
vendor/illuminate/support/Facades/Crypt.php
vendored
Normal file → Executable file
0
vendor/illuminate/support/Facades/Crypt.php
vendored
Normal file → Executable file
1
vendor/illuminate/support/Facades/DB.php
vendored
Normal file → Executable file
1
vendor/illuminate/support/Facades/DB.php
vendored
Normal file → Executable file
@ -42,6 +42,7 @@ namespace Illuminate\Support\Facades;
|
||||
* @method static int affectingStatement(string $query, array $bindings = [])
|
||||
* @method static bool unprepared(string $query)
|
||||
* @method static array pretend(\Closure $callback)
|
||||
* @method static mixed withoutPretending(\Closure $callback)
|
||||
* @method static void bindValues(\PDOStatement $statement, array $bindings)
|
||||
* @method static array prepareBindings(array $bindings)
|
||||
* @method static void logQuery(string $query, array $bindings, float|null $time = null)
|
||||
|
1
vendor/illuminate/support/Facades/Event.php
vendored
Normal file → Executable file
1
vendor/illuminate/support/Facades/Event.php
vendored
Normal file → Executable file
@ -20,6 +20,7 @@ use Illuminate\Support\Testing\Fakes\EventFake;
|
||||
* @method static void forget(string $event)
|
||||
* @method static void forgetPushed()
|
||||
* @method static \Illuminate\Events\Dispatcher setQueueResolver(callable $resolver)
|
||||
* @method static \Illuminate\Events\Dispatcher setTransactionManagerResolver(callable $resolver)
|
||||
* @method static array getRawListeners()
|
||||
* @method static void macro(string $name, object|callable $macro)
|
||||
* @method static void mixin(object $mixin, bool $replace = true)
|
||||
|
8
vendor/illuminate/support/Facades/Facade.php
vendored
Normal file → Executable file
8
vendor/illuminate/support/Facades/Facade.php
vendored
Normal file → Executable file
@ -6,6 +6,7 @@ use Closure;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Support\Arr;
|
||||
use Illuminate\Support\Js;
|
||||
use Illuminate\Support\Number;
|
||||
use Illuminate\Support\Str;
|
||||
use Illuminate\Support\Testing\Fakes\Fake;
|
||||
use Mockery;
|
||||
@ -46,11 +47,11 @@ abstract class Facade
|
||||
$accessor = static::getFacadeAccessor();
|
||||
|
||||
if (static::$app->resolved($accessor) === true) {
|
||||
$callback(static::getFacadeRoot());
|
||||
$callback(static::getFacadeRoot(), static::$app);
|
||||
}
|
||||
|
||||
static::$app->afterResolving($accessor, function ($service) use ($callback) {
|
||||
$callback($service);
|
||||
static::$app->afterResolving($accessor, function ($service, $app) use ($callback) {
|
||||
$callback($service, $app);
|
||||
});
|
||||
}
|
||||
|
||||
@ -293,6 +294,7 @@ abstract class Facade
|
||||
'Log' => Log::class,
|
||||
'Mail' => Mail::class,
|
||||
'Notification' => Notification::class,
|
||||
'Number' => Number::class,
|
||||
'Password' => Password::class,
|
||||
'Process' => Process::class,
|
||||
'Queue' => Queue::class,
|
||||
|
0
vendor/illuminate/support/Facades/File.php
vendored
Normal file → Executable file
0
vendor/illuminate/support/Facades/File.php
vendored
Normal file → Executable file
0
vendor/illuminate/support/Facades/Hash.php
vendored
Normal file → Executable file
0
vendor/illuminate/support/Facades/Hash.php
vendored
Normal file → Executable file
1
vendor/illuminate/support/Facades/Http.php
vendored
1
vendor/illuminate/support/Facades/Http.php
vendored
@ -20,6 +20,7 @@ use Illuminate\Http\Client\Factory;
|
||||
* @method static void assertSequencesAreEmpty()
|
||||
* @method static \Illuminate\Support\Collection recorded(callable $callback = null)
|
||||
* @method static \Illuminate\Contracts\Events\Dispatcher|null getDispatcher()
|
||||
* @method static array getGlobalMiddleware()
|
||||
* @method static void macro(string $name, object|callable $macro)
|
||||
* @method static void mixin(object $mixin, bool $replace = true)
|
||||
* @method static bool hasMacro(string $name)
|
||||
|
1
vendor/illuminate/support/Facades/Lang.php
vendored
Normal file → Executable file
1
vendor/illuminate/support/Facades/Lang.php
vendored
Normal file → Executable file
@ -9,6 +9,7 @@ namespace Illuminate\Support\Facades;
|
||||
* @method static string choice(string $key, \Countable|int|array $number, array $replace = [], string|null $locale = null)
|
||||
* @method static void addLines(array $lines, string $locale, string $namespace = '*')
|
||||
* @method static void load(string $namespace, string $group, string $locale)
|
||||
* @method static \Illuminate\Translation\Translator handleMissingKeysUsing(callable|null $callback)
|
||||
* @method static void addNamespace(string $namespace, string $hint)
|
||||
* @method static void addJsonPath(string $path)
|
||||
* @method static array parseKey(string $key)
|
||||
|
0
vendor/illuminate/support/Facades/Log.php
vendored
Normal file → Executable file
0
vendor/illuminate/support/Facades/Log.php
vendored
Normal file → Executable file
0
vendor/illuminate/support/Facades/Mail.php
vendored
Normal file → Executable file
0
vendor/illuminate/support/Facades/Mail.php
vendored
Normal file → Executable file
0
vendor/illuminate/support/Facades/Password.php
vendored
Normal file → Executable file
0
vendor/illuminate/support/Facades/Password.php
vendored
Normal file → Executable file
0
vendor/illuminate/support/Facades/Queue.php
vendored
Normal file → Executable file
0
vendor/illuminate/support/Facades/Queue.php
vendored
Normal file → Executable file
0
vendor/illuminate/support/Facades/Redirect.php
vendored
Normal file → Executable file
0
vendor/illuminate/support/Facades/Redirect.php
vendored
Normal file → Executable file
0
vendor/illuminate/support/Facades/Redis.php
vendored
Normal file → Executable file
0
vendor/illuminate/support/Facades/Redis.php
vendored
Normal file → Executable file
0
vendor/illuminate/support/Facades/Request.php
vendored
Normal file → Executable file
0
vendor/illuminate/support/Facades/Request.php
vendored
Normal file → Executable file
2
vendor/illuminate/support/Facades/Response.php
vendored
Normal file → Executable file
2
vendor/illuminate/support/Facades/Response.php
vendored
Normal file → Executable file
@ -16,7 +16,7 @@ use Illuminate\Contracts\Routing\ResponseFactory as ResponseFactoryContract;
|
||||
* @method static \Symfony\Component\HttpFoundation\BinaryFileResponse file(\SplFileInfo|string $file, array $headers = [])
|
||||
* @method static \Illuminate\Http\RedirectResponse redirectTo(string $path, int $status = 302, array $headers = [], bool|null $secure = null)
|
||||
* @method static \Illuminate\Http\RedirectResponse redirectToRoute(string $route, mixed $parameters = [], int $status = 302, array $headers = [])
|
||||
* @method static \Illuminate\Http\RedirectResponse redirectToAction(string $action, mixed $parameters = [], int $status = 302, array $headers = [])
|
||||
* @method static \Illuminate\Http\RedirectResponse redirectToAction(array|string $action, mixed $parameters = [], int $status = 302, array $headers = [])
|
||||
* @method static \Illuminate\Http\RedirectResponse redirectGuest(string $path, int $status = 302, array $headers = [], bool|null $secure = null)
|
||||
* @method static \Illuminate\Http\RedirectResponse redirectToIntended(string $default = '/', int $status = 302, array $headers = [], bool|null $secure = null)
|
||||
* @method static void macro(string $name, object|callable $macro)
|
||||
|
1
vendor/illuminate/support/Facades/Route.php
vendored
Normal file → Executable file
1
vendor/illuminate/support/Facades/Route.php
vendored
Normal file → Executable file
@ -90,6 +90,7 @@ namespace Illuminate\Support\Facades;
|
||||
* @method static \Illuminate\Routing\RouteRegistrar controller(string $controller)
|
||||
* @method static \Illuminate\Routing\RouteRegistrar domain(string $value)
|
||||
* @method static \Illuminate\Routing\RouteRegistrar middleware(array|string|null $middleware)
|
||||
* @method static \Illuminate\Routing\RouteRegistrar missing(\Closure $missing)
|
||||
* @method static \Illuminate\Routing\RouteRegistrar name(string $value)
|
||||
* @method static \Illuminate\Routing\RouteRegistrar namespace(string|null $value)
|
||||
* @method static \Illuminate\Routing\RouteRegistrar prefix(string $prefix)
|
||||
|
6
vendor/illuminate/support/Facades/Schema.php
vendored
Normal file → Executable file
6
vendor/illuminate/support/Facades/Schema.php
vendored
Normal file → Executable file
@ -11,12 +11,15 @@ namespace Illuminate\Support\Facades;
|
||||
* @method static bool createDatabase(string $name)
|
||||
* @method static bool dropDatabaseIfExists(string $name)
|
||||
* @method static bool hasTable(string $table)
|
||||
* @method static array getTables()
|
||||
* @method static array getViews()
|
||||
* @method static bool hasColumn(string $table, string $column)
|
||||
* @method static bool hasColumns(string $table, array $columns)
|
||||
* @method static void whenTableHasColumn(string $table, string $column, \Closure $callback)
|
||||
* @method static void whenTableDoesntHaveColumn(string $table, string $column, \Closure $callback)
|
||||
* @method static string getColumnType(string $table, string $column)
|
||||
* @method static string getColumnType(string $table, string $column, bool $fullDefinition = false)
|
||||
* @method static array getColumnListing(string $table)
|
||||
* @method static array getColumns(string $table)
|
||||
* @method static void table(string $table, \Closure $callback)
|
||||
* @method static void create(string $table, \Closure $callback)
|
||||
* @method static void drop(string $table)
|
||||
@ -25,7 +28,6 @@ namespace Illuminate\Support\Facades;
|
||||
* @method static void dropAllTables()
|
||||
* @method static void dropAllViews()
|
||||
* @method static void dropAllTypes()
|
||||
* @method static array getAllTables()
|
||||
* @method static void rename(string $from, string $to)
|
||||
* @method static bool enableForeignKeyConstraints()
|
||||
* @method static bool disableForeignKeyConstraints()
|
||||
|
2
vendor/illuminate/support/Facades/Session.php
vendored
Normal file → Executable file
2
vendor/illuminate/support/Facades/Session.php
vendored
Normal file → Executable file
@ -5,6 +5,8 @@ namespace Illuminate\Support\Facades;
|
||||
/**
|
||||
* @method static bool shouldBlock()
|
||||
* @method static string|null blockDriver()
|
||||
* @method static int defaultRouteBlockLockSeconds()
|
||||
* @method static int defaultRouteBlockWaitSeconds()
|
||||
* @method static array getSessionConfig()
|
||||
* @method static string getDefaultDriver()
|
||||
* @method static void setDefaultDriver(string $name)
|
||||
|
0
vendor/illuminate/support/Facades/URL.php
vendored
Normal file → Executable file
0
vendor/illuminate/support/Facades/URL.php
vendored
Normal file → Executable file
0
vendor/illuminate/support/Facades/Validator.php
vendored
Normal file → Executable file
0
vendor/illuminate/support/Facades/Validator.php
vendored
Normal file → Executable file
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user