diff --git a/LICENSE b/LICENSE index 4570f3df..4d64cd3f 100644 --- a/LICENSE +++ b/LICENSE @@ -1,7 +1,7 @@ GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 -Copyright (C) 2017-2020 Bretton Ye +Copyright (C) 2017-2022 Bretton Ye Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. diff --git a/app/Components/Client/QuantumultX.php b/app/Components/Client/QuantumultX.php index 8e1a65c3..97955c4d 100644 --- a/app/Components/Client/QuantumultX.php +++ b/app/Components/Client/QuantumultX.php @@ -6,22 +6,21 @@ class QuantumultX { public static function buildShadowsocks($server) { - $config = [ + $config = array_filter([ "shadowsocks={$server['host']}:{$server['port']}", "method={$server['method']}", "password={$server['passwd']}", 'fast-open=true', "udp-relay={$server['udp']}", "tag={$server['name']}", - ]; - $config = array_filter($config); + ]); return implode(',', $config).PHP_EOL; } public static function buildShadowsocksr($server) { - $config = [ + $config = array_filter([ "shadowsocks={$server['host']}:{$server['port']}", "method={$server['method']}", "password={$server['passwd']}", @@ -32,8 +31,7 @@ class QuantumultX 'fast-open=true', "udp-relay={$server['udp']}", "tag={$server['name']}", - ]; - $config = array_filter($config); + ]); return implode(',', $config).PHP_EOL; } @@ -61,12 +59,12 @@ class QuantumultX if ($server['v2_tls']) { $config[] = 'tls-verification=true'; - if (isset($server['v2_host']) && ! empty($server['v2_host'])) { + if (! empty($server['v2_host'])) { $config[] = "tls-host={$server['v2_host']}"; } } - if ($server['v2_type'] === 'ws' && isset($server['v2_path']) && ! empty($server['v2_path'])) { + if ($server['v2_type'] === 'ws' && ! empty($server['v2_path'])) { $config[] = "obfs-uri={$server['v2_path']}"; $config[] = "obfs-host={$server['v2_host']}"; } @@ -76,7 +74,7 @@ class QuantumultX public static function buildTrojan($server) { - $config = [ + $config = array_filter([ "trojan={$server['host']}:{$server['port']}", "password={$server['passwd']}", 'over-tls=true', @@ -86,8 +84,7 @@ class QuantumultX 'fast-open=true', 'udp-relay=true', "tag={$server['name']}", - ]; - $config = array_filter($config); + ]); return implode(',', $config).PHP_EOL; } diff --git a/app/Components/Client/Surfboard.php b/app/Components/Client/Surfboard.php index 1beb9375..8a6b319d 100644 --- a/app/Components/Client/Surfboard.php +++ b/app/Components/Client/Surfboard.php @@ -6,7 +6,7 @@ class Surfboard { public static function buildShadowsocks($server) { - $config = [ + $config = array_filter([ "{$server['name']}=custom", $server['host'], $server['port'], @@ -15,8 +15,7 @@ class Surfboard sysConfig('website_url').'/clients/SSEncrypt.module', 'tfo=true', "udp-relay={$server['udp']}", - ]; - $config = array_filter($config); + ]); return implode(',', $config).PHP_EOL; } @@ -33,10 +32,10 @@ class Surfboard ]; if ($server['v2_tls']) { - $config = array_merge($config, ['tls=true', "sni={$server['v2_host']}"]); + array_push($config, 'tls=true', "sni={$server['v2_host']}"); } if ($server['v2_net'] === 'ws') { - $config = array_merge($config, ['ws=true', "ws-path={$server['v2_path']}", "ws-headers=Host:{$server['v2_host']}"]); + array_push($config, 'ws=true', "ws-path={$server['v2_path']}", "ws-headers=Host:{$server['v2_host']}"); } return implode(',', $config).PHP_EOL; diff --git a/app/Components/Client/Surge.php b/app/Components/Client/Surge.php index 282d9d80..2c745e28 100644 --- a/app/Components/Client/Surge.php +++ b/app/Components/Client/Surge.php @@ -6,7 +6,7 @@ class Surge { public static function buildShadowsocks($server) { - $config = [ + $config = array_filter([ "{$server['name']}=ss", $server['host'], $server['port'], @@ -14,8 +14,7 @@ class Surge "password={$server['passwd']}", 'tfo=true', "udp-relay={$server['udp']}", - ]; - $config = array_filter($config); + ]); return implode(',', $config).PHP_EOL; } @@ -32,10 +31,10 @@ class Surge ]; if ($server['v2_tls']) { - $config = array_merge($config, ['tls=true', "sni={$server['v2_host']}"]); + array_push($config, 'tls=true', "sni={$server['v2_host']}"); } if ($server['v2_net'] === 'ws') { - $config = array_merge($config, ['ws=true', "ws-path={$server['v2_path']}", "ws-headers=Host:{$server['v2_host']}"]); + array_push($config, 'ws=true', "ws-path={$server['v2_path']}", "ws-headers=Host:{$server['v2_host']}"); } return implode(',', $config).PHP_EOL; @@ -43,7 +42,7 @@ class Surge public static function buildTrojan($server) { - $config = [ + $config = array_filter([ "{$server['name']}=trojan", $server['host'], $server['port'], @@ -51,9 +50,7 @@ class Surge $server['sni'] ? "sni={$server['sni']}" : '', 'tfo=true', "udp-relay={$server['udp']}", - ]; - - $config = array_filter($config); + ]); return implode(',', $config).PHP_EOL; } diff --git a/app/Components/DDNS/Aliyun.php b/app/Components/DDNS/Aliyun.php index 717c6f8a..4da8074d 100644 --- a/app/Components/DDNS/Aliyun.php +++ b/app/Components/DDNS/Aliyun.php @@ -32,7 +32,7 @@ class Aliyun $domainList = $this->domainList(); if ($domainList) { foreach ($domainList as $domain) { - if (strpos(self::$subDomain, $domain) !== false) { + if (str_contains(self::$subDomain, $domain)) { return [$domain, rtrim(substr(self::$subDomain, 0, -(strlen($domain))), '.')]; } } @@ -139,8 +139,7 @@ class Aliyun if ($records) { $count = 0; foreach ($records as $record) { - $result = $this->send('DeleteDomainRecord', ['RecordId' => $record]); - if ($result) { + if ($this->send('DeleteDomainRecord', ['RecordId' => $record])) { $count++; } } diff --git a/app/Components/DDNS/CloudFlare.php b/app/Components/DDNS/CloudFlare.php index 8f8b5121..78f21651 100644 --- a/app/Components/DDNS/CloudFlare.php +++ b/app/Components/DDNS/CloudFlare.php @@ -24,9 +24,8 @@ class CloudFlare { $zoneInfo = $this->client->get(self::$apiHost.'zones')->json(); if ($zoneInfo && Arr::has($zoneInfo, 'result.0.id')) { - $zones = $zoneInfo['result']; - foreach ($zones as $zone) { - if (strpos(self::$subDomain, $zone['name']) !== false) { + foreach ($zoneInfo['result'] as $zone) { + if (str_contains(self::$subDomain, $zone['name'])) { return [$zone['name'], rtrim(substr(self::$subDomain, 0, -(strlen($zone['name']))), '.'), $zone['id']]; } } diff --git a/app/Components/DDNS/DNSPod.php b/app/Components/DDNS/DNSPod.php index 5d1fb6ea..62550b80 100644 --- a/app/Components/DDNS/DNSPod.php +++ b/app/Components/DDNS/DNSPod.php @@ -38,7 +38,7 @@ class DNSPod $domainList = $this->domainList(); if ($domainList) { foreach ($domainList as $key => $domain) { - if (strpos(self::$subDomain, $domain) !== false) { + if (str_contains(self::$subDomain, $domain)) { return [$domain, rtrim(substr(self::$subDomain, 0, -(strlen($domain))), '.'), $key]; } } diff --git a/app/Components/DDNS/Namesilo.php b/app/Components/DDNS/Namesilo.php index c0e3c459..c457b780 100644 --- a/app/Components/DDNS/Namesilo.php +++ b/app/Components/DDNS/Namesilo.php @@ -37,11 +37,11 @@ class Namesilo if ($domainList) { if (is_array($domainList)) { foreach ($domainList as $domain) { - if (strpos(self::$subDomain, $domain) !== false) { + if (str_contains(self::$subDomain, $domain)) { return [$domain, rtrim(substr(self::$subDomain, 0, -(strlen($domain))), '.')]; } } - } elseif (strpos(self::$subDomain, $domainList) !== false) { + } elseif (str_contains(self::$subDomain, $domainList)) { return [$domainList, rtrim(substr(self::$subDomain, 0, -(strlen($domainList))), '.')]; } } diff --git a/app/Components/IP.php b/app/Components/IP.php index 6a7d97b0..0d9ba5d6 100644 --- a/app/Components/IP.php +++ b/app/Components/IP.php @@ -108,8 +108,8 @@ class IP // 通过ip.taobao.com查询IP地址的详细信息 public static function TaoBao(string $ip) { - // 依据 http://ip.taobao.com/instructions 开发 - $response = Http::timeout(15)->get('http://ip.taobao.com/outGetIpInfo?ip='.$ip.'&accessKey=alibaba-inc'); + // 依据 https://ip.taobao.com/instructions 开发 + $response = Http::timeout(15)->get('https://ip.taobao.com/outGetIpInfo?ip='.$ip.'&accessKey=alibaba-inc'); if ($response->ok()) { $message = $response->json(); @@ -133,13 +133,13 @@ class IP // 通过api.map.baidu.com查询IP地址的详细信息 public static function Baidu(string $ip) { - if (! env('BAIDU_APP_AK')) { + if (! config('services.baidu.app_ak')) { Log::error('【百度IP库】AK信息缺失'); return false; } // 依据 http://lbsyun.baidu.com/index.php?title=webapi/ip-api 开发 - $response = Http::timeout(15)->get('https://api.map.baidu.com/location/ip?ak='.env('BAIDU_APP_AK').'&'.$ip.'&coor=bd09ll'); + $response = Http::timeout(15)->get('https://api.map.baidu.com/location/ip?ak='.config('services.baidu.app_ak').'&'.$ip.'&coor=bd09ll'); if ($response->ok()) { $message = $response->json(); diff --git a/app/Console/Commands/AutoJob.php b/app/Console/Commands/AutoJob.php index 918708f2..6bbbed06 100644 --- a/app/Console/Commands/AutoJob.php +++ b/app/Console/Commands/AutoJob.php @@ -25,7 +25,9 @@ class AutoJob extends Command { $jobTime = microtime(true); - Order::recentUnPay()->update(['status' => -1]); // 关闭超时未支付本地订单 + Order::recentUnPay()->chunk(config('tasks.chunk'), function ($orders) { + $orders->each->close(); + }); // 关闭超时未支付本地订单 $this->expireCode(); //过期验证码、优惠券、邀请码无效化 if (sysConfig('is_subscribe_ban')) { diff --git a/app/Exceptions/Handler.php b/app/Exceptions/Handler.php index fbfc4324..cea00330 100644 --- a/app/Exceptions/Handler.php +++ b/app/Exceptions/Handler.php @@ -50,10 +50,9 @@ class Handler extends ExceptionHandler public function report(Throwable $exception) { if (config('app.debug') || config('app.demo')) { // 调试模式下记录错误详情 - Log::debug('来自链接:'.url()->full()); - Log::debug($exception); + Log::debug('来源:'.url()->full().PHP_EOL.'访问者IP:'.IP::getClientIP().PHP_EOL.$exception); } else { - Log::error('异常来源:'.get_class($exception)); // 记录异常来源 + Log::error('来源:'.url()->full().PHP_EOL.'访问者IP:'.IP::getClientIP().get_class($exception)); // 记录异常来源 } parent::report($exception); diff --git a/app/Http/Controllers/Admin/CouponController.php b/app/Http/Controllers/Admin/CouponController.php index 1fe7a543..9c3fc355 100644 --- a/app/Http/Controllers/Admin/CouponController.php +++ b/app/Http/Controllers/Admin/CouponController.php @@ -49,9 +49,7 @@ class CouponController extends Controller if ($request->hasFile('logo')) { $file = $request->file('logo'); $fileName = Str::random(8).time().'.'.$file->getClientOriginalExtension(); - $path = $file->storeAs('public', $fileName); - - if (! $path) { + if (! $file->storeAs('public', $fileName)) { return Redirect::back()->withInput()->withErrors('LOGO不合法'); } $logo = 'upload/'.$fileName; diff --git a/app/Http/Controllers/Admin/LogsController.php b/app/Http/Controllers/Admin/LogsController.php index 6be00eb0..96b0061b 100644 --- a/app/Http/Controllers/Admin/LogsController.php +++ b/app/Http/Controllers/Admin/LogsController.php @@ -166,7 +166,7 @@ class LogsController extends Controller $onlineIPLogs = $query->groupBy('user_id', 'node_id')->latest()->paginate(20)->appends($request->except('page')); foreach ($onlineIPLogs as $log) { // 跳过上报多IP的 - if ($log->ip === null || strpos($log->ip, ',') !== false) { + if ($log->ip === null || str_contains($log->ip, ',')) { continue; } $ipInfo = IP::getIPInfo($log->ip); diff --git a/app/Http/Controllers/Admin/ReportController.php b/app/Http/Controllers/Admin/ReportController.php index ffa867a3..482f67f2 100644 --- a/app/Http/Controllers/Admin/ReportController.php +++ b/app/Http/Controllers/Admin/ReportController.php @@ -32,7 +32,7 @@ class ReportController extends Controller $currentDays = date('j'); $lastDays = date('t', strtotime('-1 months')); - $data['days'] = range(1, $currentDays > $lastDays ? $currentDays : $lastDays); + $data['days'] = range(1, max($currentDays, $lastDays)); $data['years'] = range(1, 12); for ($i = 1; $i <= $currentDays; $i++) { diff --git a/app/Http/Controllers/Admin/ShopController.php b/app/Http/Controllers/Admin/ShopController.php index 3dd36d82..33fa8492 100644 --- a/app/Http/Controllers/Admin/ShopController.php +++ b/app/Http/Controllers/Admin/ShopController.php @@ -78,9 +78,7 @@ class ShopController extends Controller public function fileUpload(UploadedFile $file) { $fileName = Str::random(8).time().'.'.$file->getClientOriginalExtension(); - $path = $file->storeAs('public', $fileName); - - if (! $path) { + if (! $file->storeAs('public', $fileName)) { return Redirect::back()->withInput()->withErrors('Logo存储失败'); } diff --git a/app/Http/Controllers/Admin/SystemController.php b/app/Http/Controllers/Admin/SystemController.php index dbb02807..26d84d51 100644 --- a/app/Http/Controllers/Admin/SystemController.php +++ b/app/Http/Controllers/Admin/SystemController.php @@ -95,7 +95,9 @@ class SystemController extends Controller } return redirect()->route('admin.system.index', '#other')->withErrors('更新失败'); - } elseif ($request->hasAny(['alipay_qrcode', 'wechat_qrcode'])) { + } + + if ($request->hasAny(['alipay_qrcode', 'wechat_qrcode'])) { if ($request->hasFile('alipay_qrcode')) { $validator = validator()->make($request->all(), ['alipay_qrcode' => 'image|mimes:jpeg,png,jpg,gif,svg|max:2048']); diff --git a/app/Http/Controllers/Admin/ToolsController.php b/app/Http/Controllers/Admin/ToolsController.php index 4110546f..864f683e 100644 --- a/app/Http/Controllers/Admin/ToolsController.php +++ b/app/Http/Controllers/Admin/ToolsController.php @@ -75,18 +75,18 @@ class ToolsController extends Controller $data = []; foreach ($content->port_password as $port => $passwd) { $data[] = [ - 'u' => 0, - 'd' => 0, - 'enable' => 1, - 'method' => $method, - 'obfs' => $obfs, - 'obfs_param' => empty($obfs_param) ? '' : $obfs_param, - 'passwd' => $passwd, - 'port' => $port, - 'protocol' => $protocol, - 'protocol_param' => empty($protocol_param) ? '' : $protocol_param, + 'u' => 0, + 'd' => 0, + 'enable' => 1, + 'method' => $method, + 'obfs' => $obfs, + 'obfs_param' => empty($obfs_param) ? '' : $obfs_param, + 'passwd' => $passwd, + 'port' => $port, + 'protocol' => $protocol, + 'protocol_param' => empty($protocol_param) ? '' : $protocol_param, 'transfer_enable' => $transfer_enable, - 'user' => date('Ymd').'_IMPORT_'.$port, + 'user' => date('Ymd').'_IMPORT_'.$port, ]; } @@ -234,7 +234,8 @@ class ToolsController extends Controller assert($n > 0); $pos = $n + 1; $lines = []; - while (count($lines) <= $n) { + $counts = 0; + while ($counts <= $n) { try { fseek($fp, -$pos, SEEK_END); } catch (Exception $e) { @@ -244,6 +245,7 @@ class ToolsController extends Controller $pos *= $base; while (! feof($fp)) { array_unshift($lines, fgets($fp)); + $counts++; } } diff --git a/app/Http/Controllers/Admin/UserController.php b/app/Http/Controllers/Admin/UserController.php index e8446596..f5766661 100644 --- a/app/Http/Controllers/Admin/UserController.php +++ b/app/Http/Controllers/Admin/UserController.php @@ -117,7 +117,8 @@ class UserController extends Controller $roles = $request->input('roles'); try { - if ($roles && (Auth::getUser()->can('give roles') || (in_array('Super Admin', $roles, true) && Auth::getUser()->hasRole('Super Admin')))) { + $adminUser = Auth::getUser(); + if ($roles && ($adminUser->can('give roles') || (in_array('Super Admin', $roles, true) && $adminUser->hasRole('Super Admin')))) { // 编辑用户权限 // 只有超级管理员才有赋予超级管理的权限 $user->assignRole($roles); @@ -171,7 +172,8 @@ class UserController extends Controller $roles = $request->input('roles'); try { if (isset($roles)) { - if (Auth::getUser()->can('give roles') || Auth::getUser()->hasRole('Super Admin') + $adminUser = Auth::getUser(); + if ($adminUser->can('give roles') || $adminUser->hasRole('Super Admin') || (in_array('Super Admin', $roles, true) && Auth::getUser()->hasRole('Super Admin'))) { $user->syncRoles($roles); } diff --git a/app/Http/Controllers/Api/Client/V1Controller.php b/app/Http/Controllers/Api/Client/V1Controller.php index b443a39e..75687735 100644 --- a/app/Http/Controllers/Api/Client/V1Controller.php +++ b/app/Http/Controllers/Api/Client/V1Controller.php @@ -120,13 +120,13 @@ class V1Controller extends Controller $userInfo['subUrl'] = $user->subUrl(); $totalTransfer = $user->transfer_enable; $usedTransfer = $user->used_traffic; - $unusedTraffic = $totalTransfer - $usedTransfer > 0 ? $totalTransfer - $usedTransfer : 0; + $unusedTraffic = max($totalTransfer - $usedTransfer, 0); $userInfo['unusedTraffic'] = flowAutoShow($unusedTraffic); return response()->json(['ret' => 1, 'data' => $userInfo]); } - public function nodeList(int $id = null) + public function nodeList() { return response()->json(['ret' => 1, 'data' => auth()->user()->nodes()->get()]); } diff --git a/app/Http/Controllers/Api/WebApi/BaseController.php b/app/Http/Controllers/Api/WebApi/BaseController.php index 2fe2a658..66165853 100644 --- a/app/Http/Controllers/Api/WebApi/BaseController.php +++ b/app/Http/Controllers/Api/WebApi/BaseController.php @@ -23,8 +23,8 @@ class BaseController $data = array_map('intval', $validator->validated()); if ($node->heartbeats()->create([ - 'uptime' => $data['uptime'], - 'load' => implode(' ', [$data['cpu'] / 100, $data['mem'] / 100, $data['disk'] / 100]), + 'uptime' => $data['uptime'], + 'load' => implode(' ', [$data['cpu'] / 100, $data['mem'] / 100, $data['disk'] / 100]), 'log_time' => time(), ])) { return $this->returnData('上报节点心跳信息成功', 'success', 200); @@ -56,7 +56,7 @@ class BaseController } $etag = sha1(json_encode($data)); - if ($etag === $req->header('IF-NONE-MATCH')) { + if (! empty($req->header('IF-NONE-MATCH')) && hash_equals($etag, $req->header('IF-NONE-MATCH'))) { abort(304); } @@ -125,8 +125,8 @@ class BaseController if ($ruleGroup = $node->ruleGroup) { foreach ($ruleGroup->rules as $rule) { $data[] = [ - 'id' => $rule->id, - 'type' => $rule->type_api_label, + 'id' => $rule->id, + 'type' => $rule->type_api_label, 'pattern' => $rule->pattern, ]; } diff --git a/app/Http/Controllers/Api/WebApi/TrojanController.php b/app/Http/Controllers/Api/WebApi/TrojanController.php index cbd5e3a5..405dd70e 100644 --- a/app/Http/Controllers/Api/WebApi/TrojanController.php +++ b/app/Http/Controllers/Api/WebApi/TrojanController.php @@ -12,7 +12,7 @@ class TrojanController extends BaseController { return $this->returnData('获取节点信息成功', 'success', 200, [ 'id' => $node->id, - 'is_udp' => $node->is_udp ? true : false, + 'is_udp' => (bool) $node->is_udp, 'speed_limit' => $node->getRawOriginal('speed_limit'), 'client_limit' => $node->client_limit, 'push_port' => $node->push_port, diff --git a/app/Http/Controllers/Api/WebApi/V2RayController.php b/app/Http/Controllers/Api/WebApi/V2RayController.php index 924fedee..6c2c307a 100644 --- a/app/Http/Controllers/Api/WebApi/V2RayController.php +++ b/app/Http/Controllers/Api/WebApi/V2RayController.php @@ -19,7 +19,7 @@ class V2RayController extends BaseController return $this->returnData('获取节点信息成功', 'success', 200, [ 'id' => $node->id, - 'is_udp' => $node->is_udp ? true : false, + 'is_udp' => (bool) $node->is_udp, 'speed_limit' => $node->getRawOriginal('speed_limit'), 'client_limit' => $node->client_limit, 'push_port' => $node->push_port, @@ -35,7 +35,7 @@ class V2RayController extends BaseController 'v2_type' => $node->v2_type, 'v2_host' => $node->v2_host, 'v2_path' => $node->v2_path, - 'v2_tls' => $node->v2_tls ? true : false, + 'v2_tls' => (bool) $node->v2_tls, 'v2_tls_provider' => $tlsProvider, ]); } diff --git a/app/Http/Controllers/AuthController.php b/app/Http/Controllers/AuthController.php index 606dceda..de8d5d97 100644 --- a/app/Http/Controllers/AuthController.php +++ b/app/Http/Controllers/AuthController.php @@ -373,11 +373,11 @@ class AuthController extends Controller { if (is_numeric($aff)) { return $aff; - } else { - $decode = (new Hashids(sysConfig('aff_salt'), 8))->decode($aff); - if (isset($decode)) { - return $decode[0]; - } + } + + $decode = (new Hashids(sysConfig('aff_salt'), 8))->decode($aff); + if ($decode) { + return $decode[0]; } return false; diff --git a/app/Http/Controllers/Gateway/AbstractPayment.php b/app/Http/Controllers/Gateway/AbstractPayment.php index 23b4947b..020e00e0 100644 --- a/app/Http/Controllers/Gateway/AbstractPayment.php +++ b/app/Http/Controllers/Gateway/AbstractPayment.php @@ -65,12 +65,11 @@ abstract class AbstractPayment } ksort($data, SORT_STRING); // 排序 - reset($data); return md5(urldecode(http_build_query($data)).$key); // 拼接 } - protected function paymentReceived(string $tradeNo) + protected function paymentReceived(string $tradeNo): bool { $payment = Payment::whereTradeNo($tradeNo)->with('order')->first(); if ($payment) { diff --git a/app/Http/Controllers/Gateway/EPay.php b/app/Http/Controllers/Gateway/EPay.php index ddcf143d..06f98e71 100644 --- a/app/Http/Controllers/Gateway/EPay.php +++ b/app/Http/Controllers/Gateway/EPay.php @@ -36,7 +36,7 @@ class EPay extends AbstractPayment public function notify(Request $request): void { if ($request->input('trade_status') === 'TRADE_SUCCESS' && $request->has('out_trade_no') - && $this->verify($request->all(), sysConfig('epay_key'), $request->input('sign'))) { + && $this->verify($request->except('method'), sysConfig('epay_key'), $request->input('sign'))) { if ($this->paymentReceived($request->input('out_trade_no'))) { exit('SUCCESS'); } diff --git a/app/Http/Controllers/Gateway/Manual.php b/app/Http/Controllers/Gateway/Manual.php index 8991ed10..4dfaebcc 100644 --- a/app/Http/Controllers/Gateway/Manual.php +++ b/app/Http/Controllers/Gateway/Manual.php @@ -60,7 +60,7 @@ class Manual extends AbstractPayment } } - return view('components.payment.detail', ['order' => $payment->order, 'user' => $payment->user]); + return view('components.payment.detail', ['order' => $payment->order->refresh(), 'user' => $payment->user->refresh()]); } return view('auth.error', ['message' => 'No enough information']); diff --git a/app/Http/Controllers/Gateway/PayBeaver.php b/app/Http/Controllers/Gateway/PayBeaver.php index 6f5558fb..748e5da9 100644 --- a/app/Http/Controllers/Gateway/PayBeaver.php +++ b/app/Http/Controllers/Gateway/PayBeaver.php @@ -75,7 +75,6 @@ class PayBeaver extends AbstractPayment unset($params['sign']); } ksort($params, SORT_STRING); - reset($params); return strtolower(md5(http_build_query($params).$this->appSecret)); } diff --git a/app/Http/Controllers/Gateway/Stripe.php b/app/Http/Controllers/Gateway/Stripe.php index d5dcfd24..c7b25293 100644 --- a/app/Http/Controllers/Gateway/Stripe.php +++ b/app/Http/Controllers/Gateway/Stripe.php @@ -74,7 +74,6 @@ class Stripe extends AbstractPayment { $sigHeader = $_SERVER['HTTP_STRIPE_SIGNATURE']; $endpointSecret = sysConfig('stripe_signing_secret'); - $event = null; $payload = @file_get_contents('php://input'); try { diff --git a/app/Http/Controllers/Gateway/THeadPay.php b/app/Http/Controllers/Gateway/THeadPay.php index 28093d14..c5c9349b 100644 --- a/app/Http/Controllers/Gateway/THeadPay.php +++ b/app/Http/Controllers/Gateway/THeadPay.php @@ -43,7 +43,6 @@ class THeadPay extends AbstractPayment { unset($params['sign']); ksort($params, SORT_STRING); - reset($params); $params['key'] = sysConfig('theadpay_key'); return strtoupper(md5(http_build_query($params))); diff --git a/app/Http/Controllers/PaymentController.php b/app/Http/Controllers/PaymentController.php index 836ff5ce..34f83031 100644 --- a/app/Http/Controllers/PaymentController.php +++ b/app/Http/Controllers/PaymentController.php @@ -170,7 +170,7 @@ class PaymentController extends Controller 'user_id' => auth()->id(), 'goods_id' => $credit ? null : $goods_id, 'coupon_id' => $coupon->id ?? null, - 'origin_amount' => $credit ?: $goods->price ?? 0, + 'origin_amount' => $credit ?: ($goods->price ?? 0), 'amount' => $amount, 'pay_type' => $pay_type, 'pay_way' => self::$method, diff --git a/app/Http/Controllers/User/AffiliateController.php b/app/Http/Controllers/User/AffiliateController.php index 6c50c720..5ad61dd8 100644 --- a/app/Http/Controllers/User/AffiliateController.php +++ b/app/Http/Controllers/User/AffiliateController.php @@ -49,8 +49,7 @@ class AffiliateController extends Controller } // 判断是否已存在申请 - $referralApply = ReferralApply::uid()->whereIn('status', [0, 1])->first(); - if ($referralApply) { + if (ReferralApply::uid()->whereIn('status', [0, 1])->first()) { return Response::json(['status' => 'fail', 'title' => trans('user.referral.failed'), 'message' => trans('user.referral.msg.appliedd')]); } diff --git a/app/Http/Controllers/User/SubscribeController.php b/app/Http/Controllers/User/SubscribeController.php index 3639a5b8..7538573c 100644 --- a/app/Http/Controllers/User/SubscribeController.php +++ b/app/Http/Controllers/User/SubscribeController.php @@ -107,7 +107,6 @@ class SubscribeController extends Controller private function infoGenerator($text): string { - $result = null; switch ($this->subType) { case 2: $result = 'vmess://'.base64url_encode(json_encode([ diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index 9f61a37b..62d61fdc 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -41,7 +41,7 @@ class UserController extends Controller $user = auth()->user(); $totalTransfer = $user->transfer_enable; $usedTransfer = $user->used_traffic; - $unusedTraffic = $totalTransfer - $usedTransfer > 0 ? $totalTransfer - $usedTransfer : 0; + $unusedTraffic = max($totalTransfer - $usedTransfer, 0); $expireTime = $user->expired_at; $nodes = $user->nodes()->get(); diff --git a/app/Http/Middleware/Permission.php b/app/Http/Middleware/Permission.php index e51fb02a..fcf45a57 100644 --- a/app/Http/Middleware/Permission.php +++ b/app/Http/Middleware/Permission.php @@ -13,6 +13,7 @@ class Permission * * @param Request $request * @param Closure $next + * @param null $guard * @return mixed */ public function handle($request, Closure $next, $guard = null) diff --git a/app/Jobs/VNet/addUser.php b/app/Jobs/VNet/addUser.php index 9809fb13..3abafeac 100644 --- a/app/Jobs/VNet/addUser.php +++ b/app/Jobs/VNet/addUser.php @@ -50,9 +50,7 @@ class addUser implements ShouldQueue private function send($host, $secret): void { - $request = Http::baseUrl($host)->timeout(20)->withHeaders(['secret' => $secret]); - - $response = $request->post('api/v2/user/add/list', $this->data); + $response = Http::baseUrl($host)->timeout(20)->withHeaders(['secret' => $secret])->post('api/v2/user/add/list', $this->data); $message = $response->json(); if ($message && Arr::has($message, ['success', 'content']) && $response->ok()) { if ($message['success'] === 'false') { diff --git a/app/Jobs/VNet/editUser.php b/app/Jobs/VNet/editUser.php index 4903e181..b5642d7d 100644 --- a/app/Jobs/VNet/editUser.php +++ b/app/Jobs/VNet/editUser.php @@ -53,9 +53,7 @@ class editUser implements ShouldQueue private function list($host, $secret) { - $request = Http::baseUrl($host)->timeout(20)->withHeaders(['secret' => $secret]); - - $response = $request->get('api/user/list'); + $response = Http::baseUrl($host)->timeout(20)->withHeaders(['secret' => $secret])->get('api/user/list'); $message = $response->json(); if ($message && $response->ok()) { return Arr::pluck($message, 'uid'); @@ -68,9 +66,7 @@ class editUser implements ShouldQueue private function send($host, $secret): void { - $request = Http::baseUrl($host)->timeout(20)->withHeaders(['secret' => $secret]); - - $response = $request->post('api/user/edit', $this->data); + $response = Http::baseUrl($host)->timeout(20)->withHeaders(['secret' => $secret])->post('api/user/edit', $this->data); $message = $response->json(); if ($message && Arr::has($message, ['success', 'content']) && $response->ok()) { if ($message['success'] === 'false') { diff --git a/app/Jobs/VNet/reloadNode.php b/app/Jobs/VNet/reloadNode.php index f0bb29ec..ea488853 100644 --- a/app/Jobs/VNet/reloadNode.php +++ b/app/Jobs/VNet/reloadNode.php @@ -62,9 +62,7 @@ class reloadNode implements ShouldQueue public function send($host, $secret, $data): bool { - $request = Http::baseUrl($host)->timeout(15)->withHeaders(['secret' => $secret]); - - $response = $request->post('api/v2/node/reload', $data); + $response = Http::baseUrl($host)->timeout(15)->withHeaders(['secret' => $secret])->post('api/v2/node/reload', $data); $message = $response->json(); if ($message && Arr::has($message, ['success', 'content']) && $response->ok()) { if ($message['success'] === 'false') { diff --git a/app/Models/Node.php b/app/Models/Node.php index 366712e8..366f6da9 100644 --- a/app/Models/Node.php +++ b/app/Models/Node.php @@ -223,6 +223,10 @@ class Node extends Model public function getHostAttribute(): string { - return $this->is_relay ? $this->relay_server : ($this->server ?: $this->ip); + if ($this->is_relay) { + return $this->relay_server; + } + + return $this->server ?: $this->ip; } } diff --git a/app/Models/Order.php b/app/Models/Order.php index 4ddefb0a..e8417d66 100644 --- a/app/Models/Order.php +++ b/app/Models/Order.php @@ -45,9 +45,13 @@ class Order extends Model return $query->whereUserId($uid ?: Auth::id()); } - public function scopeRecentUnPay($query) + public function scopeRecentUnPay($query, int $minutes = 0) { - return $query->whereStatus(0)->where('created_at', '<=', date('Y-m-d H:i:s', strtotime('-'.config('tasks.close.order').' minutes'))); + if (! $minutes) { + $minutes = config('tasks.close.order'); + } + + return $query->whereStatus(0)->where('created_at', '<=', date('Y-m-d H:i:s', strtotime('-'.$minutes.' minutes'))); } public function scopeUserPrepay($query, $uid = null) @@ -89,7 +93,7 @@ class Order extends Model return $this->update(['status' => -1]); } - public function paid() // 完成订单 + public function paid() // 支付需要确认的订单 { return $this->update(['status' => 1]); } diff --git a/app/Observers/UserObserver.php b/app/Observers/UserObserver.php index 59127218..6d9ddd70 100644 --- a/app/Observers/UserObserver.php +++ b/app/Observers/UserObserver.php @@ -17,7 +17,7 @@ class UserObserver $user->subscribe()->create(['code' => Helpers::makeSubscribeCode()]); $allowNodes = $user->nodes()->whereType(4)->get()->pluck('id'); - if ($allowNodes) { + if (count($allowNodes)) { addUser::dispatch($user->id, $allowNodes); } } diff --git a/app/Providers/AuthServiceProvider.php b/app/Providers/AuthServiceProvider.php index 47590c45..06e635cd 100644 --- a/app/Providers/AuthServiceProvider.php +++ b/app/Providers/AuthServiceProvider.php @@ -25,7 +25,7 @@ class AuthServiceProvider extends ServiceProvider { $this->registerPolicies(); - Gate::before(function ($user) { + Gate::before(static function ($user) { return $user->hasRole('Super Admin') ? true : null; }); } diff --git a/app/Services/OrderService.php b/app/Services/OrderService.php index c704a6dd..f680cc69 100644 --- a/app/Services/OrderService.php +++ b/app/Services/OrderService.php @@ -42,13 +42,13 @@ class OrderService $goods = self::$order->goods; switch ($goods->type) {// 商品为流量或者套餐 case 1:// 流量包 - $this->activatePackage(); + $ret = $this->activatePackage(); break; case 2:// 套餐 if (Order::userActivePlan(self::$user->id)->where('id', '<>', self::$order->id)->exists()) {// 判断套餐是否直接激活 - $this->setPrepaidPlan(); + $ret = $this->setPrepaidPlan(); } else { - $this->activatePlan(); + $ret = $this->activatePlan(); } $this->setCommissionExpense(self::$user); // 返利 break; @@ -56,7 +56,7 @@ class OrderService Log::emergency('【处理订单】出现错误-未知套餐类型'); } - return true; + return $ret ?? true; } // 余额充值 @@ -114,8 +114,7 @@ class OrderService $updateData['port'] = Helpers::getPort(); } - $ret = self::$user->update(array_merge($this->resetTimeAndData(), $updateData)); - if ($ret) { + if (self::$user->update(array_merge($this->resetTimeAndData(), $updateData))) { return Helpers::addUserTrafficModifyLog( self::$order->user_id, self::$order->id, diff --git a/composer.lock b/composer.lock index 95c2656c..a0fa9107 100644 --- a/composer.lock +++ b/composer.lock @@ -467,16 +467,16 @@ }, { "name": "doctrine/dbal", - "version": "2.13.5", + "version": "2.13.6", "source": { "type": "git", "url": "https://github.com/doctrine/dbal.git", - "reference": "d92ddb260547c2a7b650ff140f744eb6f395d8fc" + "reference": "67ef6d0327ccbab1202b39e0222977a47ed3ef2f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/d92ddb260547c2a7b650ff140f744eb6f395d8fc", - "reference": "d92ddb260547c2a7b650ff140f744eb6f395d8fc", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/67ef6d0327ccbab1202b39e0222977a47ed3ef2f", + "reference": "67ef6d0327ccbab1202b39e0222977a47ed3ef2f", "shasum": "", "mirrors": [ { @@ -495,13 +495,13 @@ "require-dev": { "doctrine/coding-standard": "9.0.0", "jetbrains/phpstorm-stubs": "2021.1", - "phpstan/phpstan": "1.1.1", + "phpstan/phpstan": "1.2.0", "phpunit/phpunit": "^7.5.20|^8.5|9.5.10", "psalm/plugin-phpunit": "0.16.1", "squizlabs/php_codesniffer": "3.6.1", "symfony/cache": "^4.4", "symfony/console": "^2.0.5|^3.0|^4.0|^5.0", - "vimeo/psalm": "4.12.0" + "vimeo/psalm": "4.13.0" }, "suggest": { "symfony/console": "For helpful console commands such as SQL execution and import of files." @@ -562,7 +562,7 @@ ], "support": { "issues": "https://github.com/doctrine/dbal/issues", - "source": "https://github.com/doctrine/dbal/tree/2.13.5" + "source": "https://github.com/doctrine/dbal/tree/2.13.6" }, "funding": [ { @@ -578,7 +578,7 @@ "type": "tidelift" } ], - "time": "2021-11-11T16:27:36+00:00" + "time": "2021-11-26T20:11:05+00:00" }, { "name": "doctrine/deprecations", @@ -1408,16 +1408,16 @@ }, { "name": "geoip2/geoip2", - "version": "v2.12.1", + "version": "v2.12.2", "source": { "type": "git", "url": "https://github.com/maxmind/GeoIP2-php.git", - "reference": "d25660633755f3f064ca647cd916c5c65074e408" + "reference": "83adb44ac4b9553d36b579a14673ed124583082f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/maxmind/GeoIP2-php/zipball/d25660633755f3f064ca647cd916c5c65074e408", - "reference": "d25660633755f3f064ca647cd916c5c65074e408", + "url": "https://api.github.com/repos/maxmind/GeoIP2-php/zipball/83adb44ac4b9553d36b579a14673ed124583082f", + "reference": "83adb44ac4b9553d36b579a14673ed124583082f", "shasum": "", "mirrors": [ { @@ -1466,9 +1466,9 @@ ], "support": { "issues": "https://github.com/maxmind/GeoIP2-php/issues", - "source": "https://github.com/maxmind/GeoIP2-php/tree/v2.12.1" + "source": "https://github.com/maxmind/GeoIP2-php/tree/v2.12.2" }, - "time": "2021-11-23T17:01:41+00:00" + "time": "2021-11-30T18:15:25+00:00" }, { "name": "guzzlehttp/guzzle", @@ -2081,16 +2081,16 @@ }, { "name": "jaybizzle/crawler-detect", - "version": "v1.2.109", + "version": "v1.2.110", "source": { "type": "git", "url": "https://github.com/JayBizzle/Crawler-Detect.git", - "reference": "487b73e6f9effc8c88c9eec3c9c451e166b7669c" + "reference": "f9d63a3581428fd8a3858e161d072f0b9debc26f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/JayBizzle/Crawler-Detect/zipball/487b73e6f9effc8c88c9eec3c9c451e166b7669c", - "reference": "487b73e6f9effc8c88c9eec3c9c451e166b7669c", + "url": "https://api.github.com/repos/JayBizzle/Crawler-Detect/zipball/f9d63a3581428fd8a3858e161d072f0b9debc26f", + "reference": "f9d63a3581428fd8a3858e161d072f0b9debc26f", "shasum": "", "mirrors": [ { @@ -2133,9 +2133,9 @@ ], "support": { "issues": "https://github.com/JayBizzle/Crawler-Detect/issues", - "source": "https://github.com/JayBizzle/Crawler-Detect/tree/v1.2.109" + "source": "https://github.com/JayBizzle/Crawler-Detect/tree/v1.2.110" }, - "time": "2021-11-24T18:07:38+00:00" + "time": "2021-12-07T18:35:06+00:00" }, { "name": "jenssegers/agent", @@ -2486,16 +2486,16 @@ }, { "name": "laravel/framework", - "version": "v7.30.5", + "version": "v7.30.6", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "afb0c034072a03a5ab1872fbdea54f8befd873c3" + "reference": "ecdafad1dda3c790af186a6d18479ea4757ef9ee" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/afb0c034072a03a5ab1872fbdea54f8befd873c3", - "reference": "afb0c034072a03a5ab1872fbdea54f8befd873c3", + "url": "https://api.github.com/repos/laravel/framework/zipball/ecdafad1dda3c790af186a6d18479ea4757ef9ee", + "reference": "ecdafad1dda3c790af186a6d18479ea4757ef9ee", "shasum": "", "mirrors": [ { @@ -2650,20 +2650,20 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2021-11-17T15:00:14+00:00" + "time": "2021-12-07T14:56:47+00:00" }, { "name": "laravel/socialite", - "version": "v5.2.5", + "version": "v5.2.6", "source": { "type": "git", "url": "https://github.com/laravel/socialite.git", - "reference": "fd0f6a3dd963ca480b598649b54f92d81a43617f" + "reference": "b5c67f187ddcf15529ff7217fa735b132620dfac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/socialite/zipball/fd0f6a3dd963ca480b598649b54f92d81a43617f", - "reference": "fd0f6a3dd963ca480b598649b54f92d81a43617f", + "url": "https://api.github.com/repos/laravel/socialite/zipball/b5c67f187ddcf15529ff7217fa735b132620dfac", + "reference": "b5c67f187ddcf15529ff7217fa735b132620dfac", "shasum": "", "mirrors": [ { @@ -2725,20 +2725,20 @@ "issues": "https://github.com/laravel/socialite/issues", "source": "https://github.com/laravel/socialite" }, - "time": "2021-08-31T15:16:26+00:00" + "time": "2021-12-07T16:32:57+00:00" }, { "name": "laravel/tinker", - "version": "v2.6.2", + "version": "v2.6.3", "source": { "type": "git", "url": "https://github.com/laravel/tinker.git", - "reference": "c808a7227f97ecfd9219fbf913bad842ea854ddc" + "reference": "a9ddee4761ec8453c584e393b393caff189a3e42" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/tinker/zipball/c808a7227f97ecfd9219fbf913bad842ea854ddc", - "reference": "c808a7227f97ecfd9219fbf913bad842ea854ddc", + "url": "https://api.github.com/repos/laravel/tinker/zipball/a9ddee4761ec8453c584e393b393caff189a3e42", + "reference": "a9ddee4761ec8453c584e393b393caff189a3e42", "shasum": "", "mirrors": [ { @@ -2797,9 +2797,9 @@ ], "support": { "issues": "https://github.com/laravel/tinker/issues", - "source": "https://github.com/laravel/tinker/tree/v2.6.2" + "source": "https://github.com/laravel/tinker/tree/v2.6.3" }, - "time": "2021-09-28T15:47:34+00:00" + "time": "2021-12-07T16:41:42+00:00" }, { "name": "lcobucci/jwt", @@ -2985,16 +2985,16 @@ }, { "name": "league/flysystem", - "version": "1.1.6", + "version": "1.1.9", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem.git", - "reference": "627be7fcde84c71aa0f15097fcf48fd5f2be5287" + "reference": "094defdb4a7001845300334e7c1ee2335925ef99" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/627be7fcde84c71aa0f15097fcf48fd5f2be5287", - "reference": "627be7fcde84c71aa0f15097fcf48fd5f2be5287", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/094defdb4a7001845300334e7c1ee2335925ef99", + "reference": "094defdb4a7001845300334e7c1ee2335925ef99", "shasum": "", "mirrors": [ { @@ -3073,7 +3073,7 @@ ], "support": { "issues": "https://github.com/thephpleague/flysystem/issues", - "source": "https://github.com/thephpleague/flysystem/tree/1.1.6" + "source": "https://github.com/thephpleague/flysystem/tree/1.1.9" }, "funding": [ { @@ -3081,7 +3081,7 @@ "type": "other" } ], - "time": "2021-11-21T11:04:36+00:00" + "time": "2021-12-09T09:40:50+00:00" }, { "name": "league/mime-type-detection", @@ -4030,16 +4030,16 @@ }, { "name": "nesbot/carbon", - "version": "2.54.0", + "version": "2.55.2", "source": { "type": "git", "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "eed83939f1aed3eee517d03a33f5ec587ac529b5" + "reference": "8c2a18ce3e67c34efc1b29f64fe61304368259a2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/eed83939f1aed3eee517d03a33f5ec587ac529b5", - "reference": "eed83939f1aed3eee517d03a33f5ec587ac529b5", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/8c2a18ce3e67c34efc1b29f64fe61304368259a2", + "reference": "8c2a18ce3e67c34efc1b29f64fe61304368259a2", "shasum": "", "mirrors": [ { @@ -4053,7 +4053,7 @@ "php": "^7.1.8 || ^8.0", "symfony/polyfill-mbstring": "^1.0", "symfony/polyfill-php80": "^1.16", - "symfony/translation": "^3.4 || ^4.0 || ^5.0" + "symfony/translation": "^3.4 || ^4.0 || ^5.0 || ^6.0" }, "require-dev": { "doctrine/dbal": "^2.0 || ^3.0", @@ -4114,6 +4114,7 @@ "time" ], "support": { + "docs": "https://carbon.nesbot.com/docs", "issues": "https://github.com/briannesbitt/Carbon/issues", "source": "https://github.com/briannesbitt/Carbon" }, @@ -4127,20 +4128,20 @@ "type": "tidelift" } ], - "time": "2021-11-01T21:22:20+00:00" + "time": "2021-12-03T14:59:52+00:00" }, { "name": "nikic/php-parser", - "version": "v4.13.1", + "version": "v4.13.2", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "63a79e8daa781cac14e5195e63ed8ae231dd10fd" + "reference": "210577fe3cf7badcc5814d99455df46564f3c077" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/63a79e8daa781cac14e5195e63ed8ae231dd10fd", - "reference": "63a79e8daa781cac14e5195e63ed8ae231dd10fd", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/210577fe3cf7badcc5814d99455df46564f3c077", + "reference": "210577fe3cf7badcc5814d99455df46564f3c077", "shasum": "", "mirrors": [ { @@ -4187,9 +4188,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.13.1" + "source": "https://github.com/nikic/PHP-Parser/tree/v4.13.2" }, - "time": "2021-11-03T20:52:16+00:00" + "time": "2021-11-30T19:35:32+00:00" }, { "name": "opis/closure", @@ -4445,16 +4446,16 @@ }, { "name": "phpoption/phpoption", - "version": "1.8.0", + "version": "1.8.1", "source": { "type": "git", "url": "https://github.com/schmittjoh/php-option.git", - "reference": "5455cb38aed4523f99977c4a12ef19da4bfe2a28" + "reference": "eab7a0df01fe2344d172bff4cd6dbd3f8b84ad15" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/5455cb38aed4523f99977c4a12ef19da4bfe2a28", - "reference": "5455cb38aed4523f99977c4a12ef19da4bfe2a28", + "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/eab7a0df01fe2344d172bff4cd6dbd3f8b84ad15", + "reference": "eab7a0df01fe2344d172bff4cd6dbd3f8b84ad15", "shasum": "", "mirrors": [ { @@ -4468,7 +4469,7 @@ }, "require-dev": { "bamarni/composer-bin-plugin": "^1.4.1", - "phpunit/phpunit": "^6.5.14 || ^7.0.20 || ^8.5.19 || ^9.5.8" + "phpunit/phpunit": "^6.5.14 || ^7.5.20 || ^8.5.19 || ^9.5.8" }, "type": "library", "extra": { @@ -4488,11 +4489,13 @@ "authors": [ { "name": "Johannes M. Schmitt", - "email": "schmittjoh@gmail.com" + "email": "schmittjoh@gmail.com", + "homepage": "https://github.com/schmittjoh" }, { "name": "Graham Campbell", - "email": "hello@gjcampbell.co.uk" + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" } ], "description": "Option Type for PHP", @@ -4504,7 +4507,7 @@ ], "support": { "issues": "https://github.com/schmittjoh/php-option/issues", - "source": "https://github.com/schmittjoh/php-option/tree/1.8.0" + "source": "https://github.com/schmittjoh/php-option/tree/1.8.1" }, "funding": [ { @@ -4516,7 +4519,7 @@ "type": "tidelift" } ], - "time": "2021-08-28T21:27:29+00:00" + "time": "2021-12-04T23:24:31+00:00" }, { "name": "psr/container", @@ -4921,16 +4924,16 @@ }, { "name": "psy/psysh", - "version": "v0.10.11", + "version": "v0.10.12", "source": { "type": "git", "url": "https://github.com/bobthecow/psysh.git", - "reference": "38017532bba35d15d28dcc001b4274df0251c4a1" + "reference": "a0d9981aa07ecfcbea28e4bfa868031cca121e7d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/38017532bba35d15d28dcc001b4274df0251c4a1", - "reference": "38017532bba35d15d28dcc001b4274df0251c4a1", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/a0d9981aa07ecfcbea28e4bfa868031cca121e7d", + "reference": "a0d9981aa07ecfcbea28e4bfa868031cca121e7d", "shasum": "", "mirrors": [ { @@ -4996,9 +4999,9 @@ ], "support": { "issues": "https://github.com/bobthecow/psysh/issues", - "source": "https://github.com/bobthecow/psysh/tree/v0.10.11" + "source": "https://github.com/bobthecow/psysh/tree/v0.10.12" }, - "time": "2021-11-23T15:02:17+00:00" + "time": "2021-11-30T14:05:36+00:00" }, { "name": "ralouphie/getallheaders", @@ -5583,16 +5586,16 @@ }, { "name": "stripe/stripe-php", - "version": "v7.103.0", + "version": "v7.107.0", "source": { "type": "git", "url": "https://github.com/stripe/stripe-php.git", - "reference": "3a029598395bb4c7cfafa64707a553f4b01a9a12" + "reference": "a90f74037261ed376c0d37066f396c48809c8e99" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/stripe/stripe-php/zipball/3a029598395bb4c7cfafa64707a553f4b01a9a12", - "reference": "3a029598395bb4c7cfafa64707a553f4b01a9a12", + "url": "https://api.github.com/repos/stripe/stripe-php/zipball/a90f74037261ed376c0d37066f396c48809c8e99", + "reference": "a90f74037261ed376c0d37066f396c48809c8e99", "shasum": "", "mirrors": [ { @@ -5608,11 +5611,10 @@ "php": ">=5.6.0" }, "require-dev": { - "friendsofphp/php-cs-fixer": "2.17.1", - "php-coveralls/php-coveralls": "^2.1", - "phpunit/phpunit": "^5.7", - "squizlabs/php_codesniffer": "^3.3", - "symfony/process": "~3.4" + "friendsofphp/php-cs-fixer": "3.2.1", + "phpstan/phpstan": "^1.2", + "phpunit/phpunit": "^5.7 || ^9.0", + "squizlabs/php_codesniffer": "^3.3" }, "type": "library", "extra": { @@ -5644,9 +5646,9 @@ ], "support": { "issues": "https://github.com/stripe/stripe-php/issues", - "source": "https://github.com/stripe/stripe-php/tree/v7.103.0" + "source": "https://github.com/stripe/stripe-php/tree/v7.107.0" }, - "time": "2021-11-20T00:36:07+00:00" + "time": "2021-12-09T20:40:29+00:00" }, { "name": "swiftmailer/swiftmailer", @@ -5732,16 +5734,16 @@ }, { "name": "symfony/console", - "version": "v5.3.11", + "version": "v5.4.1", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "3e7ab8f5905058984899b05a4648096f558bfeba" + "reference": "9130e1a0fc93cb0faadca4ee917171bd2ca9e5f4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/3e7ab8f5905058984899b05a4648096f558bfeba", - "reference": "3e7ab8f5905058984899b05a4648096f558bfeba", + "url": "https://api.github.com/repos/symfony/console/zipball/9130e1a0fc93cb0faadca4ee917171bd2ca9e5f4", + "reference": "9130e1a0fc93cb0faadca4ee917171bd2ca9e5f4", "shasum": "", "mirrors": [ { @@ -5752,14 +5754,15 @@ }, "require": { "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1", + "symfony/deprecation-contracts": "^2.1|^3", "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php73": "^1.8", + "symfony/polyfill-php73": "^1.9", "symfony/polyfill-php80": "^1.16", - "symfony/service-contracts": "^1.1|^2", - "symfony/string": "^5.1" + "symfony/service-contracts": "^1.1|^2|^3", + "symfony/string": "^5.1|^6.0" }, "conflict": { + "psr/log": ">=3", "symfony/dependency-injection": "<4.4", "symfony/dotenv": "<5.1", "symfony/event-dispatcher": "<4.4", @@ -5771,12 +5774,12 @@ }, "require-dev": { "psr/log": "^1|^2", - "symfony/config": "^4.4|^5.0", - "symfony/dependency-injection": "^4.4|^5.0", - "symfony/event-dispatcher": "^4.4|^5.0", - "symfony/lock": "^4.4|^5.0", - "symfony/process": "^4.4|^5.0", - "symfony/var-dumper": "^4.4|^5.0" + "symfony/config": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/event-dispatcher": "^4.4|^5.0|^6.0", + "symfony/lock": "^4.4|^5.0|^6.0", + "symfony/process": "^4.4|^5.0|^6.0", + "symfony/var-dumper": "^4.4|^5.0|^6.0" }, "suggest": { "psr/log": "For using the console logger", @@ -5816,7 +5819,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.3.11" + "source": "https://github.com/symfony/console/tree/v5.4.1" }, "funding": [ { @@ -5832,20 +5835,20 @@ "type": "tidelift" } ], - "time": "2021-11-21T19:41:05+00:00" + "time": "2021-12-09T11:22:43+00:00" }, { "name": "symfony/css-selector", - "version": "v5.3.4", + "version": "v5.4.0", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "7fb120adc7f600a59027775b224c13a33530dd90" + "reference": "44b933f98bb4b5220d10bed9ce5662f8c2d13dcc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/7fb120adc7f600a59027775b224c13a33530dd90", - "reference": "7fb120adc7f600a59027775b224c13a33530dd90", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/44b933f98bb4b5220d10bed9ce5662f8c2d13dcc", + "reference": "44b933f98bb4b5220d10bed9ce5662f8c2d13dcc", "shasum": "", "mirrors": [ { @@ -5888,7 +5891,7 @@ "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/css-selector/tree/v5.3.4" + "source": "https://github.com/symfony/css-selector/tree/v5.4.0" }, "funding": [ { @@ -5904,7 +5907,7 @@ "type": "tidelift" } ], - "time": "2021-07-21T12:38:00+00:00" + "time": "2021-09-09T08:06:01+00:00" }, { "name": "symfony/deprecation-contracts", @@ -5981,16 +5984,16 @@ }, { "name": "symfony/error-handler", - "version": "v5.3.11", + "version": "v5.4.1", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "eec73dd7218713f48a7996583a741b3bae58c8d3" + "reference": "1e3cb3565af49cd5f93e5787500134500a29f0d9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/eec73dd7218713f48a7996583a741b3bae58c8d3", - "reference": "eec73dd7218713f48a7996583a741b3bae58c8d3", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/1e3cb3565af49cd5f93e5787500134500a29f0d9", + "reference": "1e3cb3565af49cd5f93e5787500134500a29f0d9", "shasum": "", "mirrors": [ { @@ -6002,13 +6005,16 @@ "require": { "php": ">=7.2.5", "psr/log": "^1|^2|^3", - "symfony/var-dumper": "^4.4|^5.0" + "symfony/var-dumper": "^4.4|^5.0|^6.0" }, "require-dev": { - "symfony/deprecation-contracts": "^2.1", - "symfony/http-kernel": "^4.4|^5.0", - "symfony/serializer": "^4.4|^5.0" + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/http-kernel": "^4.4|^5.0|^6.0", + "symfony/serializer": "^4.4|^5.0|^6.0" }, + "bin": [ + "Resources/bin/patch-type-declarations" + ], "type": "library", "autoload": { "psr-4": { @@ -6035,7 +6041,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v5.3.11" + "source": "https://github.com/symfony/error-handler/tree/v5.4.1" }, "funding": [ { @@ -6051,20 +6057,20 @@ "type": "tidelift" } ], - "time": "2021-11-13T13:42:37+00:00" + "time": "2021-12-01T15:04:08+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v5.3.11", + "version": "v5.4.0", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "661a7a6e085394f8513945669e31f7c1338a7e69" + "reference": "27d39ae126352b9fa3be5e196ccf4617897be3eb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/661a7a6e085394f8513945669e31f7c1338a7e69", - "reference": "661a7a6e085394f8513945669e31f7c1338a7e69", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/27d39ae126352b9fa3be5e196ccf4617897be3eb", + "reference": "27d39ae126352b9fa3be5e196ccf4617897be3eb", "shasum": "", "mirrors": [ { @@ -6075,8 +6081,8 @@ }, "require": { "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1", - "symfony/event-dispatcher-contracts": "^2", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/event-dispatcher-contracts": "^2|^3", "symfony/polyfill-php80": "^1.16" }, "conflict": { @@ -6088,13 +6094,13 @@ }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^4.4|^5.0", - "symfony/dependency-injection": "^4.4|^5.0", - "symfony/error-handler": "^4.4|^5.0", - "symfony/expression-language": "^4.4|^5.0", - "symfony/http-foundation": "^4.4|^5.0", - "symfony/service-contracts": "^1.1|^2", - "symfony/stopwatch": "^4.4|^5.0" + "symfony/config": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/error-handler": "^4.4|^5.0|^6.0", + "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/http-foundation": "^4.4|^5.0|^6.0", + "symfony/service-contracts": "^1.1|^2|^3", + "symfony/stopwatch": "^4.4|^5.0|^6.0" }, "suggest": { "symfony/dependency-injection": "", @@ -6126,7 +6132,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v5.3.11" + "source": "https://github.com/symfony/event-dispatcher/tree/v5.4.0" }, "funding": [ { @@ -6142,7 +6148,7 @@ "type": "tidelift" } ], - "time": "2021-11-17T12:16:12+00:00" + "time": "2021-11-23T10:19:22+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -6231,16 +6237,16 @@ }, { "name": "symfony/finder", - "version": "v5.3.7", + "version": "v5.4.0", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "a10000ada1e600d109a6c7632e9ac42e8bf2fb93" + "reference": "d2f29dac98e96a98be467627bd49c2efb1bc2590" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/a10000ada1e600d109a6c7632e9ac42e8bf2fb93", - "reference": "a10000ada1e600d109a6c7632e9ac42e8bf2fb93", + "url": "https://api.github.com/repos/symfony/finder/zipball/d2f29dac98e96a98be467627bd49c2efb1bc2590", + "reference": "d2f29dac98e96a98be467627bd49c2efb1bc2590", "shasum": "", "mirrors": [ { @@ -6251,6 +6257,7 @@ }, "require": { "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", "symfony/polyfill-php80": "^1.16" }, "type": "library", @@ -6279,7 +6286,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v5.3.7" + "source": "https://github.com/symfony/finder/tree/v5.4.0" }, "funding": [ { @@ -6295,104 +6302,20 @@ "type": "tidelift" } ], - "time": "2021-08-04T21:20:46+00:00" - }, - { - "name": "symfony/http-client-contracts", - "version": "v2.5.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/http-client-contracts.git", - "reference": "ec82e57b5b714dbb69300d348bd840b345e24166" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/ec82e57b5b714dbb69300d348bd840b345e24166", - "reference": "ec82e57b5b714dbb69300d348bd840b345e24166", - "shasum": "", - "mirrors": [ - { - "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", - "preferred": true - } - ] - }, - "require": { - "php": ">=7.2.5" - }, - "suggest": { - "symfony/http-client-implementation": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "2.5-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Contracts\\HttpClient\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Generic abstractions related to HTTP clients", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "support": { - "source": "https://github.com/symfony/http-client-contracts/tree/v2.5.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-11-03T09:24:47+00:00" + "time": "2021-11-28T15:25:38+00:00" }, { "name": "symfony/http-foundation", - "version": "v5.3.11", + "version": "v5.4.1", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "d1e7059ebeb0b8f9fe5eb5b26eacd2e3c1f371cc" + "reference": "5dad3780023a707f4c24beac7d57aead85c1ce3c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/d1e7059ebeb0b8f9fe5eb5b26eacd2e3c1f371cc", - "reference": "d1e7059ebeb0b8f9fe5eb5b26eacd2e3c1f371cc", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/5dad3780023a707f4c24beac7d57aead85c1ce3c", + "reference": "5dad3780023a707f4c24beac7d57aead85c1ce3c", "shasum": "", "mirrors": [ { @@ -6403,15 +6326,15 @@ }, "require": { "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1", + "symfony/deprecation-contracts": "^2.1|^3", "symfony/polyfill-mbstring": "~1.1", "symfony/polyfill-php80": "^1.16" }, "require-dev": { "predis/predis": "~1.0", - "symfony/cache": "^4.4|^5.0", - "symfony/expression-language": "^4.4|^5.0", - "symfony/mime": "^4.4|^5.0" + "symfony/cache": "^4.4|^5.0|^6.0", + "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/mime": "^4.4|^5.0|^6.0" }, "suggest": { "symfony/mime": "To use the file extension guesser" @@ -6442,7 +6365,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v5.3.11" + "source": "https://github.com/symfony/http-foundation/tree/v5.4.1" }, "funding": [ { @@ -6458,20 +6381,20 @@ "type": "tidelift" } ], - "time": "2021-11-04T16:37:19+00:00" + "time": "2021-12-09T12:46:57+00:00" }, { "name": "symfony/http-kernel", - "version": "v5.3.12", + "version": "v5.4.1", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "f53025cd1d91b1af85d6d9e17eefa98e31ee953b" + "reference": "2bdace75c9d6a6eec7e318801b7dc87a72375052" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/f53025cd1d91b1af85d6d9e17eefa98e31ee953b", - "reference": "f53025cd1d91b1af85d6d9e17eefa98e31ee953b", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/2bdace75c9d6a6eec7e318801b7dc87a72375052", + "reference": "2bdace75c9d6a6eec7e318801b7dc87a72375052", "shasum": "", "mirrors": [ { @@ -6483,17 +6406,16 @@ "require": { "php": ">=7.2.5", "psr/log": "^1|^2", - "symfony/deprecation-contracts": "^2.1", - "symfony/error-handler": "^4.4|^5.0", - "symfony/event-dispatcher": "^5.0", - "symfony/http-client-contracts": "^1.1|^2", - "symfony/http-foundation": "^5.3.7", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/error-handler": "^4.4|^5.0|^6.0", + "symfony/event-dispatcher": "^5.0|^6.0", + "symfony/http-foundation": "^5.3.7|^6.0", "symfony/polyfill-ctype": "^1.8", "symfony/polyfill-php73": "^1.9", "symfony/polyfill-php80": "^1.16" }, "conflict": { - "symfony/browser-kit": "<4.4", + "symfony/browser-kit": "<5.4", "symfony/cache": "<5.0", "symfony/config": "<5.0", "symfony/console": "<4.4", @@ -6513,19 +6435,20 @@ }, "require-dev": { "psr/cache": "^1.0|^2.0|^3.0", - "symfony/browser-kit": "^4.4|^5.0", - "symfony/config": "^5.0", - "symfony/console": "^4.4|^5.0", - "symfony/css-selector": "^4.4|^5.0", - "symfony/dependency-injection": "^5.3", - "symfony/dom-crawler": "^4.4|^5.0", - "symfony/expression-language": "^4.4|^5.0", - "symfony/finder": "^4.4|^5.0", - "symfony/process": "^4.4|^5.0", - "symfony/routing": "^4.4|^5.0", - "symfony/stopwatch": "^4.4|^5.0", - "symfony/translation": "^4.4|^5.0", - "symfony/translation-contracts": "^1.1|^2", + "symfony/browser-kit": "^5.4|^6.0", + "symfony/config": "^5.0|^6.0", + "symfony/console": "^4.4|^5.0|^6.0", + "symfony/css-selector": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^5.3|^6.0", + "symfony/dom-crawler": "^4.4|^5.0|^6.0", + "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/finder": "^4.4|^5.0|^6.0", + "symfony/http-client-contracts": "^1.1|^2|^3", + "symfony/process": "^4.4|^5.0|^6.0", + "symfony/routing": "^4.4|^5.0|^6.0", + "symfony/stopwatch": "^4.4|^5.0|^6.0", + "symfony/translation": "^4.4|^5.0|^6.0", + "symfony/translation-contracts": "^1.1|^2|^3", "twig/twig": "^2.13|^3.0.4" }, "suggest": { @@ -6560,7 +6483,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v5.3.12" + "source": "https://github.com/symfony/http-kernel/tree/v5.4.1" }, "funding": [ { @@ -6576,20 +6499,20 @@ "type": "tidelift" } ], - "time": "2021-11-24T08:46:46+00:00" + "time": "2021-12-09T13:36:09+00:00" }, { "name": "symfony/mime", - "version": "v5.3.11", + "version": "v5.4.0", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "dffc0684f10526db12c52fcd6238c64695426d61" + "reference": "d4365000217b67c01acff407573906ff91bcfb34" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/dffc0684f10526db12c52fcd6238c64695426d61", - "reference": "dffc0684f10526db12c52fcd6238c64695426d61", + "url": "https://api.github.com/repos/symfony/mime/zipball/d4365000217b67c01acff407573906ff91bcfb34", + "reference": "d4365000217b67c01acff407573906ff91bcfb34", "shasum": "", "mirrors": [ { @@ -6600,7 +6523,7 @@ }, "require": { "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1", + "symfony/deprecation-contracts": "^2.1|^3", "symfony/polyfill-intl-idn": "^1.10", "symfony/polyfill-mbstring": "^1.0", "symfony/polyfill-php80": "^1.16" @@ -6614,10 +6537,10 @@ "require-dev": { "egulias/email-validator": "^2.1.10|^3.1", "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", - "symfony/dependency-injection": "^4.4|^5.0", - "symfony/property-access": "^4.4|^5.1", - "symfony/property-info": "^4.4|^5.1", - "symfony/serializer": "^5.2" + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/property-access": "^4.4|^5.1|^6.0", + "symfony/property-info": "^4.4|^5.1|^6.0", + "symfony/serializer": "^5.2|^6.0" }, "type": "library", "autoload": { @@ -6649,7 +6572,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v5.3.11" + "source": "https://github.com/symfony/mime/tree/v5.4.0" }, "funding": [ { @@ -6665,7 +6588,7 @@ "type": "tidelift" } ], - "time": "2021-11-20T16:42:42+00:00" + "time": "2021-11-23T10:19:22+00:00" }, { "name": "symfony/polyfill-ctype", @@ -7611,16 +7534,16 @@ }, { "name": "symfony/process", - "version": "v5.3.12", + "version": "v5.4.0", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "e498803a6e95ede78e9d5646ad32a2255c033a6a" + "reference": "5be20b3830f726e019162b26223110c8f47cf274" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/e498803a6e95ede78e9d5646ad32a2255c033a6a", - "reference": "e498803a6e95ede78e9d5646ad32a2255c033a6a", + "url": "https://api.github.com/repos/symfony/process/zipball/5be20b3830f726e019162b26223110c8f47cf274", + "reference": "5be20b3830f726e019162b26223110c8f47cf274", "shasum": "", "mirrors": [ { @@ -7659,7 +7582,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v5.3.12" + "source": "https://github.com/symfony/process/tree/v5.4.0" }, "funding": [ { @@ -7675,20 +7598,20 @@ "type": "tidelift" } ], - "time": "2021-11-22T22:39:13+00:00" + "time": "2021-11-28T15:25:38+00:00" }, { "name": "symfony/routing", - "version": "v5.3.11", + "version": "v5.4.0", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "fcbc2b81d55984f04bb704c2269755fa5aaf5cca" + "reference": "9eeae93c32ca86746e5d38f3679e9569981038b1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/fcbc2b81d55984f04bb704c2269755fa5aaf5cca", - "reference": "fcbc2b81d55984f04bb704c2269755fa5aaf5cca", + "url": "https://api.github.com/repos/symfony/routing/zipball/9eeae93c32ca86746e5d38f3679e9569981038b1", + "reference": "9eeae93c32ca86746e5d38f3679e9569981038b1", "shasum": "", "mirrors": [ { @@ -7699,7 +7622,7 @@ }, "require": { "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1", + "symfony/deprecation-contracts": "^2.1|^3", "symfony/polyfill-php80": "^1.16" }, "conflict": { @@ -7711,11 +7634,11 @@ "require-dev": { "doctrine/annotations": "^1.12", "psr/log": "^1|^2|^3", - "symfony/config": "^5.3", - "symfony/dependency-injection": "^4.4|^5.0", - "symfony/expression-language": "^4.4|^5.0", - "symfony/http-foundation": "^4.4|^5.0", - "symfony/yaml": "^4.4|^5.0" + "symfony/config": "^5.3|^6.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/http-foundation": "^4.4|^5.0|^6.0", + "symfony/yaml": "^4.4|^5.0|^6.0" }, "suggest": { "symfony/config": "For using the all-in-one router or any loader", @@ -7755,7 +7678,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v5.3.11" + "source": "https://github.com/symfony/routing/tree/v5.4.0" }, "funding": [ { @@ -7771,7 +7694,7 @@ "type": "tidelift" } ], - "time": "2021-11-04T16:37:19+00:00" + "time": "2021-11-23T10:19:22+00:00" }, { "name": "symfony/service-contracts", @@ -7864,16 +7787,16 @@ }, { "name": "symfony/string", - "version": "v5.3.10", + "version": "v5.4.0", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "d70c35bb20bbca71fc4ab7921e3c6bda1a82a60c" + "reference": "9ffaaba53c61ba75a3c7a3a779051d1e9ec4fd2d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/d70c35bb20bbca71fc4ab7921e3c6bda1a82a60c", - "reference": "d70c35bb20bbca71fc4ab7921e3c6bda1a82a60c", + "url": "https://api.github.com/repos/symfony/string/zipball/9ffaaba53c61ba75a3c7a3a779051d1e9ec4fd2d", + "reference": "9ffaaba53c61ba75a3c7a3a779051d1e9ec4fd2d", "shasum": "", "mirrors": [ { @@ -7890,11 +7813,14 @@ "symfony/polyfill-mbstring": "~1.0", "symfony/polyfill-php80": "~1.15" }, + "conflict": { + "symfony/translation-contracts": ">=3.0" + }, "require-dev": { - "symfony/error-handler": "^4.4|^5.0", - "symfony/http-client": "^4.4|^5.0", + "symfony/error-handler": "^4.4|^5.0|^6.0", + "symfony/http-client": "^4.4|^5.0|^6.0", "symfony/translation-contracts": "^1.1|^2", - "symfony/var-exporter": "^4.4|^5.0" + "symfony/var-exporter": "^4.4|^5.0|^6.0" }, "type": "library", "autoload": { @@ -7933,7 +7859,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v5.3.10" + "source": "https://github.com/symfony/string/tree/v5.4.0" }, "funding": [ { @@ -7949,20 +7875,20 @@ "type": "tidelift" } ], - "time": "2021-10-27T18:21:46+00:00" + "time": "2021-11-24T10:02:00+00:00" }, { "name": "symfony/translation", - "version": "v5.3.11", + "version": "v5.4.1", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "17a965c8f3b1b348cf15d903ac53942984561f8a" + "reference": "8c82cd35ed861236138d5ae1c78c0c7ebcd62107" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/17a965c8f3b1b348cf15d903ac53942984561f8a", - "reference": "17a965c8f3b1b348cf15d903ac53942984561f8a", + "url": "https://api.github.com/repos/symfony/translation/zipball/8c82cd35ed861236138d5ae1c78c0c7ebcd62107", + "reference": "8c82cd35ed861236138d5ae1c78c0c7ebcd62107", "shasum": "", "mirrors": [ { @@ -7973,13 +7899,14 @@ }, "require": { "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1", + "symfony/deprecation-contracts": "^2.1|^3", "symfony/polyfill-mbstring": "~1.0", "symfony/polyfill-php80": "^1.16", "symfony/translation-contracts": "^2.3" }, "conflict": { "symfony/config": "<4.4", + "symfony/console": "<5.3", "symfony/dependency-injection": "<5.0", "symfony/http-kernel": "<5.0", "symfony/twig-bundle": "<5.0", @@ -7990,15 +7917,16 @@ }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^4.4|^5.0", - "symfony/console": "^4.4|^5.0", - "symfony/dependency-injection": "^5.0", - "symfony/finder": "^4.4|^5.0", - "symfony/http-kernel": "^5.0", - "symfony/intl": "^4.4|^5.0", + "symfony/config": "^4.4|^5.0|^6.0", + "symfony/console": "^5.4|^6.0", + "symfony/dependency-injection": "^5.0|^6.0", + "symfony/finder": "^4.4|^5.0|^6.0", + "symfony/http-client-contracts": "^1.1|^2.0|^3.0", + "symfony/http-kernel": "^5.0|^6.0", + "symfony/intl": "^4.4|^5.0|^6.0", "symfony/polyfill-intl-icu": "^1.21", - "symfony/service-contracts": "^1.1.2|^2", - "symfony/yaml": "^4.4|^5.0" + "symfony/service-contracts": "^1.1.2|^2|^3", + "symfony/yaml": "^4.4|^5.0|^6.0" }, "suggest": { "psr/log-implementation": "To use logging capability in translator", @@ -8034,7 +7962,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v5.3.11" + "source": "https://github.com/symfony/translation/tree/v5.4.1" }, "funding": [ { @@ -8050,7 +7978,7 @@ "type": "tidelift" } ], - "time": "2021-11-04T16:37:19+00:00" + "time": "2021-12-05T20:33:52+00:00" }, { "name": "symfony/translation-contracts", @@ -8138,16 +8066,16 @@ }, { "name": "symfony/var-dumper", - "version": "v5.3.11", + "version": "v5.4.1", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "a029b3a11b757f9cc8693040339153b4745a913f" + "reference": "2366ac8d8abe0c077844613c1a4f0c0a9f522dcc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/a029b3a11b757f9cc8693040339153b4745a913f", - "reference": "a029b3a11b757f9cc8693040339153b4745a913f", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/2366ac8d8abe0c077844613c1a4f0c0a9f522dcc", + "reference": "2366ac8d8abe0c077844613c1a4f0c0a9f522dcc", "shasum": "", "mirrors": [ { @@ -8167,8 +8095,9 @@ }, "require-dev": { "ext-iconv": "*", - "symfony/console": "^4.4|^5.0", - "symfony/process": "^4.4|^5.0", + "symfony/console": "^4.4|^5.0|^6.0", + "symfony/process": "^4.4|^5.0|^6.0", + "symfony/uid": "^5.1|^6.0", "twig/twig": "^2.13|^3.0.4" }, "suggest": { @@ -8212,7 +8141,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v5.3.11" + "source": "https://github.com/symfony/var-dumper/tree/v5.4.1" }, "funding": [ { @@ -8228,20 +8157,20 @@ "type": "tidelift" } ], - "time": "2021-11-12T11:38:27+00:00" + "time": "2021-12-01T15:04:08+00:00" }, { "name": "symfony/yaml", - "version": "v5.3.11", + "version": "v5.4.0", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "226638aa877bc4104e619a15f27d8141cd6b4e4a" + "reference": "034ccc0994f1ae3f7499fa5b1f2e75d5e7a94efc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/226638aa877bc4104e619a15f27d8141cd6b4e4a", - "reference": "226638aa877bc4104e619a15f27d8141cd6b4e4a", + "url": "https://api.github.com/repos/symfony/yaml/zipball/034ccc0994f1ae3f7499fa5b1f2e75d5e7a94efc", + "reference": "034ccc0994f1ae3f7499fa5b1f2e75d5e7a94efc", "shasum": "", "mirrors": [ { @@ -8252,14 +8181,14 @@ }, "require": { "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1", - "symfony/polyfill-ctype": "~1.8" + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-ctype": "^1.8" }, "conflict": { - "symfony/console": "<4.4" + "symfony/console": "<5.3" }, "require-dev": { - "symfony/console": "^4.4|^5.0" + "symfony/console": "^5.3|^6.0" }, "suggest": { "symfony/console": "For validating YAML files using the lint command" @@ -8293,7 +8222,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v5.3.11" + "source": "https://github.com/symfony/yaml/tree/v5.4.0" }, "funding": [ { @@ -8309,20 +8238,20 @@ "type": "tidelift" } ], - "time": "2021-11-20T16:42:42+00:00" + "time": "2021-11-28T15:25:38+00:00" }, { "name": "tijsverkoyen/css-to-inline-styles", - "version": "2.2.3", + "version": "2.2.4", "source": { "type": "git", "url": "https://github.com/tijsverkoyen/CssToInlineStyles.git", - "reference": "b43b05cf43c1b6d849478965062b6ef73e223bb5" + "reference": "da444caae6aca7a19c0c140f68c6182e337d5b1c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/b43b05cf43c1b6d849478965062b6ef73e223bb5", - "reference": "b43b05cf43c1b6d849478965062b6ef73e223bb5", + "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/da444caae6aca7a19c0c140f68c6182e337d5b1c", + "reference": "da444caae6aca7a19c0c140f68c6182e337d5b1c", "shasum": "", "mirrors": [ { @@ -8335,10 +8264,10 @@ "ext-dom": "*", "ext-libxml": "*", "php": "^5.5 || ^7.0 || ^8.0", - "symfony/css-selector": "^2.7 || ^3.0 || ^4.0 || ^5.0" + "symfony/css-selector": "^2.7 || ^3.0 || ^4.0 || ^5.0 || ^6.0" }, "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^7.5" + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^7.5 || ^8.5.21 || ^9.5.10" }, "type": "library", "extra": { @@ -8366,9 +8295,9 @@ "homepage": "https://github.com/tijsverkoyen/CssToInlineStyles", "support": { "issues": "https://github.com/tijsverkoyen/CssToInlineStyles/issues", - "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/2.2.3" + "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/2.2.4" }, - "time": "2020-07-13T06:12:54+00:00" + "time": "2021-12-08T09:12:39+00:00" }, { "name": "tymon/jwt-auth", @@ -8462,16 +8391,16 @@ }, { "name": "vlucas/phpdotenv", - "version": "v4.2.1", + "version": "v4.2.2", "source": { "type": "git", "url": "https://github.com/vlucas/phpdotenv.git", - "reference": "d38f4d1edcbe32515a0ad593cbd4c858e337263c" + "reference": "77e974614d2ead521f18069dccc571696f52b8dc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/d38f4d1edcbe32515a0ad593cbd4c858e337263c", - "reference": "d38f4d1edcbe32515a0ad593cbd4c858e337263c", + "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/77e974614d2ead521f18069dccc571696f52b8dc", + "reference": "77e974614d2ead521f18069dccc571696f52b8dc", "shasum": "", "mirrors": [ { @@ -8513,11 +8442,13 @@ "authors": [ { "name": "Graham Campbell", - "email": "hello@gjcampbell.co.uk" + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" }, { "name": "Vance Lucas", - "email": "vance@vancelucas.com" + "email": "vance@vancelucas.com", + "homepage": "https://github.com/vlucas" } ], "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.", @@ -8528,7 +8459,7 @@ ], "support": { "issues": "https://github.com/vlucas/phpdotenv/issues", - "source": "https://github.com/vlucas/phpdotenv/tree/v4.2.1" + "source": "https://github.com/vlucas/phpdotenv/tree/v4.2.2" }, "funding": [ { @@ -8540,7 +8471,7 @@ "type": "tidelift" } ], - "time": "2021-10-02T19:17:08+00:00" + "time": "2021-12-12T23:07:53+00:00" }, { "name": "voku/portable-ascii", @@ -9001,16 +8932,16 @@ }, { "name": "barryvdh/laravel-debugbar", - "version": "v3.6.4", + "version": "v3.6.5", "source": { "type": "git", "url": "https://github.com/barryvdh/laravel-debugbar.git", - "reference": "3c2d678269ba60e178bcd93e36f6a91c36b727f1" + "reference": "ccf109f8755dcc7e58779d1aeb1051b04e0b4bef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/3c2d678269ba60e178bcd93e36f6a91c36b727f1", - "reference": "3c2d678269ba60e178bcd93e36f6a91c36b727f1", + "url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/ccf109f8755dcc7e58779d1aeb1051b04e0b4bef", + "reference": "ccf109f8755dcc7e58779d1aeb1051b04e0b4bef", "shasum": "", "mirrors": [ { @@ -9044,7 +8975,7 @@ "Barryvdh\\Debugbar\\ServiceProvider" ], "aliases": { - "Debugbar": "Barryvdh\\Debugbar\\Facade" + "Debugbar": "Barryvdh\\Debugbar\\Facades\\Debugbar" } } }, @@ -9076,7 +9007,7 @@ ], "support": { "issues": "https://github.com/barryvdh/laravel-debugbar/issues", - "source": "https://github.com/barryvdh/laravel-debugbar/tree/v3.6.4" + "source": "https://github.com/barryvdh/laravel-debugbar/tree/v3.6.5" }, "funding": [ { @@ -9088,7 +9019,7 @@ "type": "github" } ], - "time": "2021-10-21T10:57:31+00:00" + "time": "2021-12-14T14:45:18+00:00" }, { "name": "barryvdh/laravel-ide-helper", @@ -9294,16 +9225,16 @@ }, { "name": "composer/composer", - "version": "2.1.12", + "version": "2.1.14", "source": { "type": "git", "url": "https://github.com/composer/composer.git", - "reference": "6e3c2b122e0ec41a7e885fcaf19fa15e2e0819a0" + "reference": "cd28fc05b0c9d3beaf58b57018725c4dc15a6446" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/composer/zipball/6e3c2b122e0ec41a7e885fcaf19fa15e2e0819a0", - "reference": "6e3c2b122e0ec41a7e885fcaf19fa15e2e0819a0", + "url": "https://api.github.com/repos/composer/composer/zipball/cd28fc05b0c9d3beaf58b57018725c4dc15a6446", + "reference": "cd28fc05b0c9d3beaf58b57018725c4dc15a6446", "shasum": "", "mirrors": [ { @@ -9324,7 +9255,7 @@ "react/promise": "^1.2 || ^2.7", "seld/jsonlint": "^1.4", "seld/phar-utils": "^1.0", - "symfony/console": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0", + "symfony/console": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0", "symfony/filesystem": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0", "symfony/finder": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0", "symfony/process": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0" @@ -9378,7 +9309,7 @@ "support": { "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/composer/issues", - "source": "https://github.com/composer/composer/tree/2.1.12" + "source": "https://github.com/composer/composer/tree/2.1.14" }, "funding": [ { @@ -9394,7 +9325,7 @@ "type": "tidelift" } ], - "time": "2021-11-09T15:02:04+00:00" + "time": "2021-11-30T09:51:43+00:00" }, { "name": "composer/metadata-minifier", @@ -9471,6 +9402,83 @@ ], "time": "2021-04-07T13:37:33+00:00" }, + { + "name": "composer/pcre", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/composer/pcre.git", + "reference": "3d322d715c43a1ac36c7fe215fa59336265500f2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/pcre/zipball/3d322d715c43a1ac36c7fe215fa59336265500f2", + "reference": "3d322d715c43a1ac36c7fe215fa59336265500f2", + "shasum": "", + "mirrors": [ + { + "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", + "preferred": true + } + ] + }, + "require": { + "php": "^5.3.2 || ^7.0 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^1", + "phpstan/phpstan-strict-rules": "^1.1", + "symfony/phpunit-bridge": "^4.2 || ^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Pcre\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "PCRE wrapping library that offers type-safe preg_* replacements.", + "keywords": [ + "PCRE", + "preg", + "regex", + "regular expression" + ], + "support": { + "issues": "https://github.com/composer/pcre/issues", + "source": "https://github.com/composer/pcre/tree/1.0.0" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2021-12-06T15:17:27+00:00" + }, { "name": "composer/semver", "version": "3.2.6", @@ -9646,16 +9654,16 @@ }, { "name": "composer/xdebug-handler", - "version": "2.0.2", + "version": "2.0.3", "source": { "type": "git", "url": "https://github.com/composer/xdebug-handler.git", - "reference": "84674dd3a7575ba617f5a76d7e9e29a7d3891339" + "reference": "6555461e76962fd0379c444c46fd558a0fcfb65e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/84674dd3a7575ba617f5a76d7e9e29a7d3891339", - "reference": "84674dd3a7575ba617f5a76d7e9e29a7d3891339", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/6555461e76962fd0379c444c46fd558a0fcfb65e", + "reference": "6555461e76962fd0379c444c46fd558a0fcfb65e", "shasum": "", "mirrors": [ { @@ -9665,12 +9673,14 @@ ] }, "require": { + "composer/pcre": "^1", "php": "^5.3.2 || ^7.0 || ^8.0", "psr/log": "^1 || ^2 || ^3" }, "require-dev": { - "phpstan/phpstan": "^0.12.55", - "symfony/phpunit-bridge": "^4.2 || ^5" + "phpstan/phpstan": "^1.0", + "phpstan/phpstan-strict-rules": "^1.1", + "symfony/phpunit-bridge": "^4.2 || ^5.0 || ^6.0" }, "type": "library", "autoload": { @@ -9696,7 +9706,7 @@ "support": { "irc": "irc://irc.freenode.org/composer", "issues": "https://github.com/composer/xdebug-handler/issues", - "source": "https://github.com/composer/xdebug-handler/tree/2.0.2" + "source": "https://github.com/composer/xdebug-handler/tree/2.0.3" }, "funding": [ { @@ -9712,7 +9722,7 @@ "type": "tidelift" } ], - "time": "2021-07-31T17:03:58+00:00" + "time": "2021-12-08T13:07:32+00:00" }, { "name": "doctrine/instantiator", @@ -9862,16 +9872,16 @@ }, { "name": "facade/ignition", - "version": "2.17.1", + "version": "2.17.2", "source": { "type": "git", "url": "https://github.com/facade/ignition.git", - "reference": "317f6110c1977b50e06365bbb155fbe5079035ec" + "reference": "af3cd70d58ca3ef5189ff0e59efbe5a5c043e2d2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/facade/ignition/zipball/317f6110c1977b50e06365bbb155fbe5079035ec", - "reference": "317f6110c1977b50e06365bbb155fbe5079035ec", + "url": "https://api.github.com/repos/facade/ignition/zipball/af3cd70d58ca3ef5189ff0e59efbe5a5c043e2d2", + "reference": "af3cd70d58ca3ef5189ff0e59efbe5a5c043e2d2", "shasum": "", "mirrors": [ { @@ -9942,7 +9952,7 @@ "issues": "https://github.com/facade/ignition/issues", "source": "https://github.com/facade/ignition" }, - "time": "2021-11-25T10:26:30+00:00" + "time": "2021-11-29T14:04:22+00:00" }, { "name": "facade/ignition-contracts", @@ -10005,16 +10015,16 @@ }, { "name": "fakerphp/faker", - "version": "v1.16.0", + "version": "v1.17.0", "source": { "type": "git", "url": "https://github.com/FakerPHP/Faker.git", - "reference": "271d384d216e5e5c468a6b28feedf95d49f83b35" + "reference": "b85e9d44eae8c52cca7aa0939483611f7232b669" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/271d384d216e5e5c468a6b28feedf95d49f83b35", - "reference": "271d384d216e5e5c468a6b28feedf95d49f83b35", + "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/b85e9d44eae8c52cca7aa0939483611f7232b669", + "reference": "b85e9d44eae8c52cca7aa0939483611f7232b669", "shasum": "", "mirrors": [ { @@ -10026,7 +10036,7 @@ "require": { "php": "^7.1 || ^8.0", "psr/container": "^1.0 || ^2.0", - "symfony/deprecation-contracts": "^2.2" + "symfony/deprecation-contracts": "^2.2 || ^3.0" }, "conflict": { "fzaninotto/faker": "*" @@ -10045,7 +10055,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "v1.16-dev" + "dev-main": "v1.17-dev" } }, "autoload": { @@ -10070,9 +10080,9 @@ ], "support": { "issues": "https://github.com/FakerPHP/Faker/issues", - "source": "https://github.com/FakerPHP/Faker/tree/v1.16.0" + "source": "https://github.com/FakerPHP/Faker/tree/v1.17.0" }, - "time": "2021-09-06T14:53:37+00:00" + "time": "2021-12-05T17:14:47+00:00" }, { "name": "filp/whoops", @@ -11157,16 +11167,16 @@ }, { "name": "phpseclib/bcmath_compat", - "version": "2.0.0", + "version": "2.0.1", "source": { "type": "git", "url": "https://github.com/phpseclib/bcmath_compat.git", - "reference": "fd896dfceffc13d8cf45d2ee3470777a70026f3c" + "reference": "2ffea8bfe1702b4535a7b3c2649c4301968e9a3c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpseclib/bcmath_compat/zipball/fd896dfceffc13d8cf45d2ee3470777a70026f3c", - "reference": "fd896dfceffc13d8cf45d2ee3470777a70026f3c", + "url": "https://api.github.com/repos/phpseclib/bcmath_compat/zipball/2ffea8bfe1702b4535a7b3c2649c4301968e9a3c", + "reference": "2ffea8bfe1702b4535a7b3c2649c4301968e9a3c", "shasum": "", "mirrors": [ { @@ -11179,7 +11189,7 @@ "phpseclib/phpseclib": "^3.0" }, "provide": { - "ext-bcmath": "8.0.0" + "ext-bcmath": "8.1.0" }, "require-dev": { "phpunit/phpunit": "^4.8.35|^5.7|^6.0|^9.4", @@ -11208,7 +11218,7 @@ "homepage": "http://phpseclib.sourceforge.net" } ], - "description": "PHP 5.x/7.x polyfill for bcmath extension", + "description": "PHP 5.x-8.x polyfill for bcmath extension", "keywords": [ "BigInteger", "bcmath", @@ -11221,20 +11231,20 @@ "issues": "https://github.com/phpseclib/bcmath_compat/issues", "source": "https://github.com/phpseclib/bcmath_compat" }, - "time": "2020-12-22T16:38:51+00:00" + "time": "2021-12-16T02:35:52+00:00" }, { "name": "phpseclib/phpseclib", - "version": "3.0.11", + "version": "3.0.12", "source": { "type": "git", "url": "https://github.com/phpseclib/phpseclib.git", - "reference": "6e794226a35159eb06f355efe59a0075a16551dd" + "reference": "89bfb45bd8b1abc3b37e910d57f5dbd3174f40fb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/6e794226a35159eb06f355efe59a0075a16551dd", - "reference": "6e794226a35159eb06f355efe59a0075a16551dd", + "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/89bfb45bd8b1abc3b37e910d57f5dbd3174f40fb", + "reference": "89bfb45bd8b1abc3b37e910d57f5dbd3174f40fb", "shasum": "", "mirrors": [ { @@ -11322,7 +11332,7 @@ ], "support": { "issues": "https://github.com/phpseclib/phpseclib/issues", - "source": "https://github.com/phpseclib/phpseclib/tree/3.0.11" + "source": "https://github.com/phpseclib/phpseclib/tree/3.0.12" }, "funding": [ { @@ -11338,20 +11348,20 @@ "type": "tidelift" } ], - "time": "2021-10-27T03:01:46+00:00" + "time": "2021-11-28T23:46:03+00:00" }, { "name": "phpspec/prophecy", - "version": "1.14.0", + "version": "v1.15.0", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "d86dfc2e2a3cd366cee475e52c6bb3bbc371aa0e" + "reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/d86dfc2e2a3cd366cee475e52c6bb3bbc371aa0e", - "reference": "d86dfc2e2a3cd366cee475e52c6bb3bbc371aa0e", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/bbcd7380b0ebf3961ee21409db7b38bc31d69a13", + "reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13", "shasum": "", "mirrors": [ { @@ -11409,22 +11419,22 @@ ], "support": { "issues": "https://github.com/phpspec/prophecy/issues", - "source": "https://github.com/phpspec/prophecy/tree/1.14.0" + "source": "https://github.com/phpspec/prophecy/tree/v1.15.0" }, - "time": "2021-09-10T09:02:12+00:00" + "time": "2021-12-08T12:19:24+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "9.2.9", + "version": "9.2.10", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "f301eb1453c9e7a1bc912ee8b0ea9db22c60223b" + "reference": "d5850aaf931743067f4bfc1ae4cbd06468400687" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/f301eb1453c9e7a1bc912ee8b0ea9db22c60223b", - "reference": "f301eb1453c9e7a1bc912ee8b0ea9db22c60223b", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/d5850aaf931743067f4bfc1ae4cbd06468400687", + "reference": "d5850aaf931743067f4bfc1ae4cbd06468400687", "shasum": "", "mirrors": [ { @@ -11486,7 +11496,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.9" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.10" }, "funding": [ { @@ -11494,20 +11504,20 @@ "type": "github" } ], - "time": "2021-11-19T15:21:02+00:00" + "time": "2021-12-05T09:12:13+00:00" }, { "name": "phpunit/php-file-iterator", - "version": "3.0.5", + "version": "3.0.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "aa4be8575f26070b100fccb67faabb28f21f66f8" + "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/aa4be8575f26070b100fccb67faabb28f21f66f8", - "reference": "aa4be8575f26070b100fccb67faabb28f21f66f8", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", + "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", "shasum": "", "mirrors": [ { @@ -11552,7 +11562,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", - "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.5" + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6" }, "funding": [ { @@ -11560,7 +11570,7 @@ "type": "github" } ], - "time": "2020-09-28T05:57:25+00:00" + "time": "2021-12-02T12:48:52+00:00" }, { "name": "phpunit/php-invoker", @@ -13057,16 +13067,16 @@ }, { "name": "seld/phar-utils", - "version": "1.1.2", + "version": "1.2.0", "source": { "type": "git", "url": "https://github.com/Seldaek/phar-utils.git", - "reference": "749042a2315705d2dfbbc59234dd9ceb22bf3ff0" + "reference": "9f3452c93ff423469c0d56450431562ca423dcee" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/phar-utils/zipball/749042a2315705d2dfbbc59234dd9ceb22bf3ff0", - "reference": "749042a2315705d2dfbbc59234dd9ceb22bf3ff0", + "url": "https://api.github.com/repos/Seldaek/phar-utils/zipball/9f3452c93ff423469c0d56450431562ca423dcee", + "reference": "9f3452c93ff423469c0d56450431562ca423dcee", "shasum": "", "mirrors": [ { @@ -13105,9 +13115,9 @@ ], "support": { "issues": "https://github.com/Seldaek/phar-utils/issues", - "source": "https://github.com/Seldaek/phar-utils/tree/1.1.2" + "source": "https://github.com/Seldaek/phar-utils/tree/1.2.0" }, - "time": "2021-08-19T21:01:38+00:00" + "time": "2021-12-10T11:20:11+00:00" }, { "name": "symfony/debug", @@ -13185,16 +13195,16 @@ }, { "name": "symfony/filesystem", - "version": "v5.3.4", + "version": "v5.4.0", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "343f4fe324383ca46792cae728a3b6e2f708fb32" + "reference": "731f917dc31edcffec2c6a777f3698c33bea8f01" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/343f4fe324383ca46792cae728a3b6e2f708fb32", - "reference": "343f4fe324383ca46792cae728a3b6e2f708fb32", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/731f917dc31edcffec2c6a777f3698c33bea8f01", + "reference": "731f917dc31edcffec2c6a777f3698c33bea8f01", "shasum": "", "mirrors": [ { @@ -13206,6 +13216,7 @@ "require": { "php": ">=7.2.5", "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.8", "symfony/polyfill-php80": "^1.16" }, "type": "library", @@ -13234,7 +13245,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v5.3.4" + "source": "https://github.com/symfony/filesystem/tree/v5.4.0" }, "funding": [ { @@ -13250,7 +13261,7 @@ "type": "tidelift" } ], - "time": "2021-07-21T12:40:44+00:00" + "time": "2021-10-28T13:39:27+00:00" }, { "name": "theseer/tokenizer", diff --git a/config/common.php b/config/common.php index bcaf53c3..98403b86 100644 --- a/config/common.php +++ b/config/common.php @@ -52,7 +52,7 @@ return [ ], 'network_status' => [ - 1 => '✔️ 通讯正常', + 1 => '✔️ 正常', 2 => '🛑 海外阻断', 3 => '🛑 国内阻断', 4 => '❌ 断连', diff --git a/config/services.php b/config/services.php index 95a0025e..e83d7a62 100644 --- a/config/services.php +++ b/config/services.php @@ -73,9 +73,13 @@ return [ ], 'telegram' => [ - 'bot' => env('TELEGRAM_BOT_NAME'), // The bot's username - 'client_id' => null, + 'bot' => env('TELEGRAM_BOT_NAME'), // The bot's username + 'client_id' => null, 'client_secret' => env('TELEGRAM_TOKEN'), - 'redirect' => '/oauth/telegram/redirect', + 'redirect' => '/oauth/telegram/redirect', + ], + + 'baidu' => [ + 'app_ak' => env('BAIDU_APP_AK'), ], ];